/* (c) 2026 K2 Physics, k2physics.com. All rights reserved. Copying, reuse or redistribution of this code is not permitted. */
:root{--ink:#e8edf5;--mute:#93a1b8;--line:#28334b;--paper:rgba(13,19,31,.92);--blue:#4f7cff;--green:#22c58b;--red:#ff6b6b;--f2:#1a2336;--f3:#2b3752}#stage canvas#scene{position:absolute;inset:0;width:100%;height:100%;display:block}#stage .panel{position:absolute;top:14px;z-index:10;background:var(--paper);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #232e45;border-radius:14px;box-shadow:0 12px 40px #00000080;padding:16px;max-height:calc(100% - 28px);overflow-y:auto}#stage #left{left:14px;width:300px}#stage #right{right:14px;width:430px}#stage h1,#stage .panel-title{font-size:1.2rem;margin:0;font-weight:800}#stage .sub{font-size:.76rem;color:var(--mute);margin:2px 0 0}#stage .sec{margin-top:13px;padding-top:12px;border-top:1px solid var(--line)}#stage .sec>b{display:block;font-size:.78rem;margin-bottom:8px}#stage .row{display:flex;align-items:center;justify-content:space-between;gap:10px}#stage .lab{font-size:.78rem;font-weight:600;display:flex;justify-content:space-between;margin:10px 0 2px}#stage .lab span{font-family:IBM Plex Mono,monospace;color:#8fb0ff}#stage input[type=range]{width:100%;accent-color:var(--blue);margin:0}#stage .seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--f2);border-radius:9px;padding:3px;gap:3px}#stage .seg button{border:0;background:transparent;padding:7px 4px;border-radius:7px;font:600 .76rem Inter;color:var(--mute);cursor:pointer}#stage .seg button.on{background:var(--f3);color:#fff}#stage .sw{position:relative;flex:none;width:50px;height:28px;border-radius:14px;border:0;background:#3a4560;cursor:pointer;transition:.2s}#stage .sw:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.2s}#stage .sw.on{background:var(--green)}#stage .sw.on:after{left:25px}#stage .pill{font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:20px;background:var(--f2);color:var(--mute)}#stage .pill.ok{background:#0f3d2e;color:#5ee6b0}#stage .pill.cc{background:#4a1d24;color:#ff8a8a}#stage .pill.hot{background:#4a3410;color:#ffc46b}#stage .grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}#stage .cell{background:#050911;border:1px solid #1d2840;border-radius:9px;padding:8px 10px}#stage .cell small{display:block;font-size:.66rem;color:#8fa0bf;font-weight:600}#stage .cell b{font:600 1.08rem IBM Plex Mono,monospace;color:#7ff0c0}#stage .cell b.w{color:#ffc96b}#stage .btn{width:100%;border:0;border-radius:10px;padding:11px;font:700 .86rem Inter;cursor:pointer;background:var(--blue);color:#fff}#stage .btn:hover{filter:brightness(1.12)}#stage .btn:disabled{background:#2a3347;color:#6b7791;cursor:not-allowed;filter:none}#stage .btn.ghost{background:var(--f3);color:var(--ink)}#stage .info{font-size:.75rem;line-height:1.5;color:var(--mute);background:#111a2c;border-radius:9px;padding:9px 11px}#stage .tabs{display:flex;gap:4px;margin-bottom:10px}#stage .tabs button{flex:1;border:0;padding:8px;border-radius:8px;background:transparent;font:700 .8rem Inter;color:var(--mute);cursor:pointer}#stage .tabs button.on{background:var(--blue);color:#fff}#stage .tabs button.x{flex:none;width:36px}#stage .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}#stage .chip{border:1px solid var(--line);background:var(--f2);color:var(--ink);border-radius:20px;padding:5px 10px;font:600 .72rem Inter;cursor:pointer;display:flex;align-items:center;gap:6px}#stage .chip.on{border-color:var(--blue);background:#1b2a52}#stage .chip i{width:8px;height:8px;border-radius:50%}#stage .chip span{color:var(--mute)}#stage table{width:100%;border-collapse:collapse;font:500 .78rem IBM Plex Mono,monospace;text-align:center;margin-top:8px}#stage th{font:700 .68rem Inter;color:var(--mute);padding:6px 4px;border-bottom:2px solid var(--line);line-height:1.3}#stage td{padding:6px 4px;border-bottom:1px solid var(--line)}#stage td b{color:#7ff0c0}#stage tfoot td{border:0;color:var(--mute);font-family:Inter;font-weight:700;text-align:right;padding-top:8px}#stage tfoot td b{font-family:IBM Plex Mono}#stage .del{border:0;background:transparent;color:#6b7791;cursor:pointer;font-size:.8rem}#stage .del:hover{color:var(--red)}#stage .empty{text-align:center;color:var(--mute);font-size:.8rem;padding:22px 10px;line-height:1.5}#stage .chartbox{height:260px;position:relative}#stage .note{font-size:.76rem;color:var(--mute);line-height:1.5}#stage .tag{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%);background:#0b1220;border:1px solid #2a3550;color:#e8edf5;font-size:.7rem;font-weight:700;padding:4px 9px;border-radius:7px;white-space:nowrap}#stage #openR{position:absolute;top:14px;right:14px;z-index:9;width:auto;padding:10px 16px;box-shadow:0 8px 24px #2f5bea73}#stage #guide{position:absolute;left:50%;top:16px;transform:translate(-50%);z-index:8;background:#0b1220;border:1px solid #2a3550;color:#fff;padding:9px 20px;border-radius:30px;font-size:.84rem;font-weight:600;max-width:46%;text-align:center}#stage #right.full:not([hidden]){top:3%;left:3%;right:3%;width:auto;height:94%;max-height:none;z-index:30;display:flex;flex-direction:column}#stage #right.full #t2:not([hidden]){flex:1;display:flex;flex-direction:column;min-height:0}#stage #right.full .chartbox{flex:1;height:auto;min-height:0}@media(max-width:900px){#stage #left{width:calc(100% - 28px);max-height:42%}#stage #right{top:auto;bottom:14px;width:calc(100% - 28px);max-height:46%}#stage #openR{top:auto;bottom:14px}#stage #guide{top:auto;bottom:62px;max-width:90%}}@media(max-width:700px){#stage{aspect-ratio:auto!important;height:84vh}}#stage{position:relative;width:100%;aspect-ratio:16/9;background:#0b1019;border-radius:16px;overflow:hidden;border:1px solid #243049;box-shadow:0 30px 80px #0000008c}#stage:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0;border:0}#stage:-webkit-full-screen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0;border:0}#stage.pfs{position:fixed;inset:0;width:100%;height:100%;aspect-ratio:auto;border-radius:0;border:0;z-index:1000}#stage #tools{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:12;display:flex;gap:8px}#stage #tools button{background:#0b1220;border:1px solid #2a3550;color:#fff;border-radius:20px;padding:8px 14px;font:700 .78rem Inter;cursor:pointer}#stage #tools button:hover{background:#18233b}#stage.compact #left{width:252px;padding:11px;top:10px;left:10px}#stage.compact h1,#stage.compact .panel-title{font-size:1rem}#stage.compact .sub,#stage.compact #left .note,#stage.compact .d,#stage.compact #left .info br{display:none}#stage.compact .sec{margin-top:8px;padding-top:8px}#stage.compact .lab{margin:6px 0 0;font-size:.72rem}#stage.compact .seg button{padding:5px 2px;font-size:.7rem}#stage.compact .cell{padding:5px 8px}#stage.compact .cell b{font-size:.92rem}#stage.compact .btn{padding:8px}#stage.compact #right{width:380px;right:10px;top:10px}#stage.compact #openR{top:10px;right:10px}#stage.tiny #left{width:222px}#stage.tiny #right{width:330px}#stage.tiny .lab{font-size:.68rem}#stage.tiny .cell small{font-size:.58rem}#stage.tiny #guide{max-width:38%;font-size:.68rem}#stage.tiny #tools button{padding:6px 10px;font-size:.7rem}#stage.compact .tag{font-size:.62rem;padding:2px 6px}#stage.compact #guide{font-size:.74rem;padding:6px 14px;top:10px}.lab-page #stage,.lab-page #stage *,.lab-page .lab-main,.lab-page .lab-main *{box-sizing:border-box}.lab-subnav{position:sticky;top:0;z-index:25;margin-top:96px;background:#050508e0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.12)}.lab-subnav .in{max-width:1300px;margin:0 auto;padding:0 30px;display:flex;align-items:center;gap:6px;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.lab-subnav .in::-webkit-scrollbar{display:none}.lab-subnav .lab-name{font-weight:800;font-size:1.05rem;color:#fff;margin-right:14px;padding:14px 0}.lab-subnav a{color:#bdc3c7;text-decoration:none;font-weight:700;font-size:.98rem;padding:14px 12px;border-bottom:3px solid transparent;transition:color .2s,border-color .2s}.lab-subnav a:hover{color:#fff}.lab-subnav a.active{color:#fff;border-bottom-color:#3498db}.lab-subnav .spacer{flex:1}.lab-subnav a.sub-back{color:#74b9ff}.lab-top{position:relative;z-index:10;max-width:1300px;margin:0 auto;padding:34px 30px 20px;display:grid;grid-template-columns:minmax(300px,30%) 1fr;gap:30px;align-items:center;scroll-margin-top:60px}.lab-intro .crumbs{font-size:.9rem;margin-bottom:14px}.lab-intro .crumbs a{color:#74b9ff;text-decoration:none;font-weight:600}.lab-intro .tags{display:flex;flex-wrap:wrap;gap:8px}.lab-intro .tags span{font-size:.78rem;font-weight:800;letter-spacing:1px;text-transform:uppercase;padding:5px 11px;border-radius:20px;background:#3498db26;color:#74b9ff;border:1px solid rgba(52,152,219,.4)}.lab-intro .tags span.time{background:#ffffff0f;color:#d5d8dc;border-color:#ffffff2e}.lab-intro h1{font-size:clamp(2.2rem,3.4vw,3.3rem);font-weight:800;letter-spacing:-1px;line-height:1.1;margin:16px 0 12px;text-shadow:0 4px 20px rgba(0,0,0,.8)}.lab-intro .lead{color:#d5d8dc;font-size:1.12rem;line-height:1.6;margin:0 0 18px;text-shadow:0 2px 10px rgba(0,0,0,.8)}.lab-intro .facts{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:10px;color:#d5d8dc;font-size:1.02rem}.lab-intro .facts li:before{content:"✓";color:#2ecc71;margin-right:10px;font-weight:800}.lab-intro .lab-actions{display:flex;gap:12px;flex-wrap:wrap}.lab-intro .lab-actions .btn-main,.lab-intro .lab-actions .btn-outline{font-size:1rem;padding:14px 24px;font-family:Inter,sans-serif}.stagecol{min-width:0}.lab-hint{color:#bdc3c7;font-size:.92rem;text-align:center;margin:12px 0 0;text-shadow:0 2px 10px rgba(0,0,0,.8)}.lab-main{position:relative;z-index:10;max-width:1300px;margin:0 auto;padding:40px 30px 30px}.lab-main section{padding:0;max-width:none;margin:0 0 46px;scroll-margin-top:70px}.lab-main h2{font-size:2.1rem;font-weight:800;letter-spacing:-.5px;margin:0 0 16px;text-shadow:0 2px 10px rgba(0,0,0,.8)}.lab-card{background:#0f1115bf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:26px;color:#d5d8dc;font-size:1.05rem;line-height:1.7;box-shadow:0 10px 30px #00000080}.lab-card h3{margin:0 0 8px;font-size:1.25rem;color:#fff;font-weight:800}.lab-card p{margin:0 0 10px}.lab-card ul{margin:0;padding-left:20px}.lab-card li{margin:5px 0}.lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.eq{background:#00000073;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:6px 14px;margin:12px 0;color:#f1c40f;text-align:center;overflow-x:auto}.eq .katex{font-size:1.2em}.steps{list-style:none;counter-reset:s;padding:0!important;display:grid;gap:14px;margin:0}.steps li{counter-increment:s;display:flex;gap:14px;align-items:flex-start;margin:0!important}.steps li:before{content:counter(s);flex:none;width:30px;height:30px;border-radius:50%;background:#3498db;color:#fff;font-weight:800;display:grid;place-items:center;font-size:.85rem}.ct{width:100%;border-collapse:collapse;font-size:1rem;text-align:left;margin:0}.ct th{text-align:left;font-weight:800;font-size:.85rem;color:#bdc3c7;padding:10px;border-bottom:2px solid rgba(255,255,255,.15)}.ct td{padding:10px;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.08)}.lab-card details{border-bottom:1px solid rgba(255,255,255,.1);padding:14px 0}.lab-card details:last-child{border-bottom:0}.lab-card summary{cursor:pointer;font-weight:700;color:#fff;font-size:1.08rem}.lab-card details p{margin:8px 0 0;color:#bdc3c7}.lab-page #stage{z-index:10;scroll-margin-top:64px}#stage #tools button{white-space:nowrap}@media(max-width:1000px){.lab-top{grid-template-columns:1fr}}@media(max-width:900px){.lab-subnav{margin-top:205px}.lab-subnav .in{padding:0 12px}.lab-subnav .lab-name{display:none}.lab-subnav a{font-size:.92rem;padding:12px 10px}.lab-top,.lab-main{padding-left:16px;padding-right:16px}.lab-main h2{font-size:1.7rem}.lab-grid{grid-template-columns:1fr}.lab-card{padding:20px;font-size:1rem}.ct{font-size:.92rem}#stage #tools{left:12px;transform:none;bottom:14px;gap:5px}#stage #tools button{padding:7px 9px;font-size:.72rem}#stage #openR{padding:9px 12px;font-size:.8rem}}@media(max-width:340px){#stage #openR{bottom:56px}}.lab-main .sec-intro{color:#bdc3c7;font-size:1.05rem;margin:-6px 0 18px;text-shadow:0 2px 10px rgba(0,0,0,.8)}#stage .btn.rec{background:#22c58b;color:#04210f}#stage .btn.rec:disabled{background:#2a3347;color:#6b7791}#stage .btn.stop{background:#e74c3c;color:#fff}#stage #guide{transition:opacity .4s}#stage table td b{color:#7ff0c0}#stage #tools .view-sw{background:linear-gradient(135deg,#3498db,#9b59b6);border-color:transparent;color:#fff;box-shadow:0 0 0 2px #ffffff2e,0 6px 18px #3498db8c;animation:k2-glow 2.2s ease-in-out 4}#stage #tools .view-sw:hover{filter:brightness(1.12);background:linear-gradient(135deg,#3498db,#9b59b6)}#stage #tools .view-sw:before{content:"⇄ "}@keyframes k2-glow{0%,to{box-shadow:0 0 0 2px #ffffff2e,0 6px 18px #3498db8c}50%{box-shadow:0 0 0 6px #9b59b659,0 6px 26px #3498dbcc}}@media(max-width:900px){#stage #openR{bottom:58px}}@media(max-width:600px){#stage #tools{gap:5px}#stage #tools button[data-short]{font-size:0!important;padding:7px 10px}#stage #tools button[data-short]:after{content:attr(data-short);font-size:.74rem}#stage #tools .view-sw:before{font-size:.74rem}}#stage.no-tags .tag{display:none!important}@media(max-width:900px){#stage #left,#stage.compact #left,#stage.tiny #left{width:calc(100% - 28px);top:14px;left:14px;padding:12px 14px}#stage #right,#stage.compact #right,#stage.tiny #right{width:calc(100% - 28px);right:14px;top:auto;bottom:56px;max-height:calc(58% - 56px)}#stage #openR,#stage.compact #openR,#stage.tiny #openR{top:auto;bottom:58px;right:14px}#stage #guide,#stage.compact #guide,#stage.tiny #guide{top:auto;bottom:104px;max-width:90%}#stage.compact .tag,#stage.tiny .tag{font-size:.62rem;padding:2px 6px}}body.lab-fs{overflow:hidden}body.lab-fs .lab-top{z-index:auto}body.lab-fs nav,body.lab-fs .lab-subnav,body.lab-fs .floating-founder-btn,body.lab-fs .wa-float{visibility:hidden}#stage.pfs{z-index:2000}
