.compass{z-index:6;pointer-events:none;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:440px;height:34px;color:var(--fg);border:1px solid #ffffff14;border-radius:10px;font:11px/1 system-ui,sans-serif;transition:top .25s,height .2s;position:fixed;top:14px;left:50%;overflow:hidden;transform:translate(-50%)}.compass.two{height:50px}.compass .band{position:absolute;inset:0}.compass .tick{will-change:transform;background:#ffffff47;width:1px;height:4px;position:absolute;bottom:0;left:50%}.compass .tick.major{background:#ffffff80;height:7px}.compass .card{text-align:center;letter-spacing:.04em;color:#fffc;will-change:transform;width:8px;margin-left:-4px;font-size:10px;font-weight:700;position:absolute;bottom:3px;left:50%}.compass .card.n{color:var(--accent)}.compass .needle{background:var(--accent);opacity:.8;width:1px;height:100%;position:absolute;top:0;left:50%}.compass .heading{letter-spacing:.06em;color:var(--accent);background:#0c100ed9;border-radius:4px;padding:1px 4px;font:600 9px/1.2 ui-monospace,Menlo,monospace;position:absolute;bottom:1px;left:50%;transform:translate(-50%)}.compass .pois{position:absolute;inset:0}.compass .poi{white-space:nowrap;will-change:transform, opacity;background:#0006;border:1px solid #ffffff0f;border-radius:999px;align-items:center;gap:4px;height:16px;padding:0 6px;font-size:10px;transition:opacity .25s;display:flex;position:absolute;top:3px;left:50%}.compass .poi .dot{background:var(--c,var(--accent));width:6px;height:6px;box-shadow:0 0 6px var(--c,var(--accent));border-radius:50%}.compass .poi .g{color:var(--c,var(--accent));font-size:11px;font-style:normal;line-height:1}.compass .poi .l{letter-spacing:.02em;font-weight:600}.compass .poi .d{color:var(--dim);font-variant-numeric:tabular-nums}.compass .poi .d:before{content:"·";margin-right:4px}.compass .poi.edge{border-color:#0000}.compass .poi.r2{height:14px;padding:0 5px;font-size:9px;top:19px}.compass .poi.r2 .g{font-size:10px}.compass .poi.compact .l,.compass .poi.compact .d{display:none}.compass .poi.pulse{animation:1.8s ease-out poipulse}@keyframes poipulse{0%{background:#9fe0a859;box-shadow:0 0 #9fe0a899}60%{box-shadow:0 0 0 8px #9fe0a800}to{background:#0006;box-shadow:0 0 #9fe0a800}}@media (max-width:520px){.compass{width:calc(100vw - 32px)}}.disc-toast{z-index:7;pointer-events:none;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #9fe0a859;border-left:3px solid var(--accent);min-width:200px;max-width:300px;color:var(--fg);opacity:0;border-radius:10px;padding:8px 12px 9px;font:13px/1.3 system-ui,sans-serif;transition:opacity .4s,transform .4s cubic-bezier(.2,.8,.2,1);position:fixed;top:14px;right:16px;transform:translate(24px)}.disc-toast.on{opacity:1;transform:translate(0)}.disc-toast .eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;font-size:10px}.disc-toast .t{font-size:14px;font-weight:650}.disc-toast .p{color:var(--dim);font-variant-numeric:tabular-nums;margin-top:2px;font-size:11px}.journal{z-index:9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:min(440px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--fg);pointer-events:none;background:#0c100ee6;border:1px solid #9fe0a84d;border-radius:14px;padding:16px 18px;font:13px/1.4 system-ui,sans-serif;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.journal header{justify-content:space-between;align-items:center;display:flex}.journal h2{letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin:0;font-size:12px}.journal button.x{pointer-events:auto;font:inherit;color:var(--dim);cursor:pointer;background:0 0;border:0;padding:2px 6px;font-size:22px;line-height:1}.journal button.x:hover{color:var(--fg)}.journal .progress{grid-template-columns:1fr auto;align-items:center;gap:10px;margin:10px 0 8px;display:grid}.journal .progress i{background:#ffffff1f;border-radius:3px;height:5px;display:block;overflow:hidden}.journal .progress u{background:var(--accent);border-radius:3px;height:100%;transition:width .4s;display:block}.journal .progress .n{color:var(--dim);font-variant-numeric:tabular-nums;font-size:12px}.journal ul{margin:0;padding:0;list-style:none}.journal li{border-top:1px solid #ffffff0f;grid-template-columns:18px 1fr;align-items:start;gap:8px;padding:6px 0;display:grid}.journal li .chk{border:1px solid #fff3;border-radius:4px;place-content:center;width:14px;height:14px;margin-top:2px;font-size:10px;font-style:normal;display:grid}.journal li.on .chk{background:var(--accent);border-color:var(--accent);color:#0b1a0e}.journal li.on .chk:before{content:"✓";font-weight:700}.journal li b{color:var(--dim);font-weight:600;display:block}.journal li.on b{color:var(--fg)}.journal li .hint{color:#f2f4f166;font-size:12px;font-style:italic;display:block}.journal li.on .hint{display:none}.journal .small{color:var(--dim);text-align:right;margin:10px 0 0;font-size:11px}.welcome{z-index:12;opacity:0;pointer-events:auto;background:#00000059;place-content:center;padding:16px;transition:opacity .3s;display:grid;position:fixed;inset:0}.welcome.on{opacity:1}.welcome.out{opacity:0;pointer-events:none}.welcome .card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(420px,100vw - 32px);color:var(--fg);background:#0c100eeb;border:1px solid #9fe0a84d;border-radius:16px;padding:22px 24px 20px;font:14px/1.5 system-ui,sans-serif;transition:transform .4s cubic-bezier(.2,.8,.2,1);transform:translateY(8px)}.welcome.on .card{transform:translateY(0)}.welcome .eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--dim);font-size:10px}.welcome h1{letter-spacing:.4em;color:var(--fg);margin:2px 0 12px;font-size:24px;font-weight:600}.welcome h1:after{content:"";background:var(--accent);border-radius:2px;width:40px;height:3px;margin-top:10px;display:block}.welcome ul{color:var(--dim);margin:0 0 12px;padding-left:18px}.welcome li{margin:3px 0}.welcome b{color:var(--fg);font-weight:600}.welcome .keys{color:var(--dim);letter-spacing:.02em;border-top:1px solid #ffffff14;margin-bottom:14px;padding-top:10px;font-size:12px}.welcome .keys b{color:var(--accent)}.welcome button.pri{background:var(--accent);color:#0b1a0e;cursor:pointer;border:0;border-radius:8px;margin-left:auto;padding:9px 18px;font:600 14px system-ui,sans-serif;display:block}.welcome button.pri:hover{filter:brightness(1.08)}.clean .compass,.clean .disc-toast,.clean .journal,.clean .welcome{display:none!important}@media (max-width:1180px){.compass:not(.below){top:54px}}:root{--fg:#f2f4f1;--dim:#f2f4f19e;--panel:#0c100e9e;--accent:#9fe0a8}*{box-sizing:border-box}html,body{height:100%;color:var(--fg);background:#0b0f0d;margin:0;font:13px/1.4 ui-sans-serif,-apple-system,SF Pro Text,Inter,system-ui,sans-serif;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}#loading{text-align:center;z-index:20;background:radial-gradient(#17221b 0%,#070a08 70%);place-content:center;gap:14px;transition:opacity .6s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}#loading .title{letter-spacing:.5em;font-size:18px;font-weight:600}#loading .bar{background:#ffffff1f;border-radius:2px;width:260px;height:3px;overflow:hidden}#loading .bar i{background:var(--accent);width:0;height:100%;transition:width .2s;display:block}#loading .msg{color:var(--dim);font-size:12px}.hud{z-index:10;pointer-events:none;position:fixed}.hud .chip{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #ffffff14;border-radius:8px;margin:0 6px 6px 0;padding:6px 10px;display:inline-block}.hud-tl{top:14px;left:14px}.hud-bl{color:var(--dim);bottom:14px;left:14px}.hud-bl b{color:var(--fg);font-weight:600}.hud-bl a{color:var(--accent);pointer-events:auto}.crosshair{z-index:10;pointer-events:none;background:#fffc;border-radius:50%;width:4px;height:4px;margin:-2px;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #00000059}.click-to-play{z-index:11;cursor:pointer;letter-spacing:.08em;background:#00000040;place-content:center;font-size:15px;display:grid;position:fixed;inset:0}.hidden{display:none!important}body.viewer #app{width:calc(100% - 280px);left:280px}#list{z-index:5;background:#101512;width:280px;padding:10px;position:fixed;top:0;bottom:0;left:0;overflow:auto}#list h3{letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:14px 4px 6px;font-size:11px}#list button{text-align:left;width:100%;color:var(--fg);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:6px;padding:5px 6px;display:block}#list button:hover,#list button.on{background:#9fe0a824}#info{background:var(--panel);z-index:5;border-radius:8px;max-width:360px;padding:10px 12px;position:fixed;top:12px;right:12px}#info .clips button{color:var(--fg);cursor:pointer;background:#ffffff14;border:0;border-radius:5px;margin:3px 3px 0 0;padding:3px 7px}body.viewer #app canvas{position:absolute}body.viewer.shot #list,body.viewer.shot #info{display:none}body.viewer.shot #app{width:100%;left:0}.banner{text-align:center;pointer-events:none;z-index:6;opacity:0;text-shadow:0 2px 18px #0000008c;transition:opacity .7s,transform .7s;position:fixed;top:16%;left:50%;transform:translate(-50%,-8px)}.banner.show{opacity:1;transform:translate(-50%)}.banner .t{letter-spacing:.12em;color:#fff;font-size:clamp(40px,8vw,96px);font-weight:800;line-height:1}.banner .t:after{content:"";background:var(--accent);border-radius:2px;width:64px;height:4px;margin:14px auto 10px;display:block}.banner .c{letter-spacing:.3em;text-transform:uppercase;color:#ffffffd9;font-size:clamp(12px,1.6vw,16px)}.hint{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:6;pointer-events:none;border-radius:999px;padding:8px 14px;font-size:14px;position:fixed;bottom:64px;left:50%;transform:translate(-50%)}.hint b{color:var(--accent)}.prof{background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--fg);z-index:7;pointer-events:none;border-radius:8px;margin:0;padding:10px 12px;font:12px/1.45 ui-monospace,Menlo,monospace;position:fixed;top:12px;right:12px}.fade{opacity:0;pointer-events:none;z-index:8;background:#000;transition:opacity .4s;position:fixed;inset:0}.fade.on{opacity:1}.scope{pointer-events:none;z-index:5;position:fixed;inset:0}.scope-mask{--ox:0vmin;--oy:0vmin;position:absolute;inset:0}.scope.scoped .scope-mask{background:radial-gradient(circle at calc(50% + var(--ox)) calc(50% + var(--oy)), #1e322800 0, #141e1914 38vmin, #000000eb 43vmin, #000 46vmin), radial-gradient(circle at 50% 50%, transparent 0, transparent 41vmin, #000 48vmin)}.scope-reticle{width:92vmin;height:92vmin;margin:-46vmin 0 0 -46vmin;position:absolute;top:50%;left:50%}.scope:not(.scoped) .scope-reticle{opacity:.9;width:9vmin;height:9vmin;margin:-4.5vmin 0 0 -4.5vmin}.scope-reticle svg{width:100%;height:100%;display:block}.scope-info{color:#d8f0d8;text-shadow:0 1px 4px #000;flex-direction:column;align-items:flex-end;gap:3px;font:600 13px/1.3 ui-monospace,Menlo,monospace;display:flex;position:absolute;bottom:18px;right:18px}.scope-info b{letter-spacing:.06em;font-size:15px}.scope-info .warn{color:#ffb04a}.scope-info .heat,.scope-info .breath{background:#ffffff2e;border-radius:3px;width:140px;height:5px;overflow:hidden}.scope-info .heat i{background:linear-gradient(90deg,#ffd35a,#ff4a2a);height:100%;display:block}.scope-info .breath i{background:#9fe0ff;height:100%;display:block}.scope-flash{opacity:0;background:radial-gradient(circle,#fff0d28c,#ffc87800 60%);position:absolute;inset:0}.scope-flash.on{animation:.12s ease-out scopeflash}@keyframes scopeflash{0%{opacity:1}to{opacity:0}}.hitmarker{pointer-events:none;z-index:6;opacity:0;background:linear-gradient(45deg,#0000 45%,#fff 45% 55%,#0000 55%),linear-gradient(-45deg,#0000 45%,#fff 45% 55%,#0000 55%);width:26px;height:26px;margin:-13px 0 0 -13px;position:fixed;top:50%;left:50%;-webkit-mask:radial-gradient(circle,#0000 5px,#000 6px);mask:radial-gradient(circle,#0000 5px,#000 6px)}.hitmarker.on{animation:.35s ease-out hitm}.hitmarker.kill{filter:drop-shadow(0 0 3px #ff3a3a)hue-rotate();background:linear-gradient(45deg,#0000 43%,#ff4a3a 43% 57%,#0000 57%),linear-gradient(-45deg,#0000 43%,#ff4a3a 43% 57%,#0000 57%)}@keyframes hitm{0%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(1)}}.killfeed{z-index:6;pointer-events:none;color:#fff;text-shadow:0 1px 6px #000;opacity:0;flex-direction:column;align-items:flex-end;gap:2px;font:600 14px/1.3 -apple-system,Helvetica,sans-serif;transition:opacity .3s;display:flex;position:fixed;top:64px;right:16px}.killfeed.on{opacity:1}.killfeed span{color:#ffb3a8;font-size:12px}.siege-hud{z-index:6;pointer-events:none;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);min-width:380px;color:var(--fg);border-radius:10px;padding:8px 12px 9px;font:12px/1.3 system-ui,sans-serif;position:fixed;top:12px;left:50%;transform:translate(-50%)}.siege-hud .top{white-space:nowrap;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.siege-hud .top b{color:#e8b54a;letter-spacing:.08em}.siege-hud .top span{color:var(--dim)}.siege-hud .top .combo{color:#ffd35a;font-weight:700}.siege-hud .b{grid-template-columns:64px 1fr 42px;align-items:center;gap:8px;margin-top:3px;display:grid}.siege-hud .b span{letter-spacing:.12em;color:var(--dim);font-size:10px}.siege-hud .b i{background:#ffffff24;border-radius:4px;height:7px;overflow:hidden}.siege-hud .b u{border-radius:4px;height:100%;transition:width .2s;display:block}.siege-hud .b em{text-align:right;font-variant-numeric:tabular-nums;font-style:normal}.siege-tip{z-index:6;pointer-events:none;opacity:0;color:#ffd9b8;background:#3c140ac7;border-radius:8px;padding:7px 12px;font:600 13px system-ui,sans-serif;transition:opacity .2s,transform .2s;position:fixed;top:112px;left:50%;transform:translate(-50%,-6px)}.siege-tip.on{opacity:1;transform:translate(-50%)}.siege-panel{z-index:9;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--fg);background:#0c100ee6;border:1px solid #e8b54a59;border-radius:14px;padding:18px 20px;font:14px/1.45 system-ui,sans-serif;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.siege-panel h2{letter-spacing:.1em;text-transform:uppercase;color:#e8b54a;margin:0 0 6px;font-size:22px}.siege-panel h2.win{color:#9fe0a8}.siege-panel h2.lose{color:#ef5a43}.siege-panel .lead{color:var(--fg);margin:0 0 10px}.siege-panel ul{color:var(--dim);margin:0 0 10px;padding-left:18px}.siege-panel li{margin:3px 0}.siege-panel b{color:var(--fg)}.siege-panel .small{color:var(--dim);margin:0 0 12px;font-size:12px}.siege-panel .diffs{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;display:grid}.siege-panel .diffs button{text-align:left;flex-direction:column;gap:2px;padding:10px;display:flex}.siege-panel .diffs span,.siege-panel .diffs em{color:var(--dim);font-size:12px;font-style:normal}.siege-panel button{color:var(--fg);cursor:pointer;font:inherit;background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;padding:8px 14px}.siege-panel button:hover{background:#e8b54a2e;border-color:#e8b54a80}.siege-panel button.pri{color:#1a1406;background:#e8b54a;border-color:#e8b54a;font-weight:700}.siege-panel .row{justify-content:flex-end;gap:8px;display:flex}.siege-panel table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0 14px}.siege-panel td{color:var(--dim);border-bottom:1px solid #ffffff14;padding:5px 0}.siege-panel td:last-child{text-align:right;color:var(--fg)}.siege-panel tr.total td{color:#e8b54a;border-bottom:0;padding-top:9px;font-size:17px;font-weight:700}@media (max-width:520px){.siege-hud{width:calc(100vw - 32px);min-width:0}.siege-hud .top{flex-wrap:wrap}.siege-panel .diffs{grid-template-columns:1fr}}.siege-open .click-to-play{display:none}.banner.small{top:118px}.banner.small .t{font-size:clamp(26px,4vw,40px)}.banner.small .t:after{width:40px;height:3px;margin:8px auto 6px}.banner.small .c{letter-spacing:.18em}.sphere-panel{z-index:9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);width:min(380px,100vw - 32px);color:var(--fg);background:#080a12e6;border:1px solid #78a0ff40;border-radius:14px;padding:14px 16px;font:13px/1.4 system-ui,sans-serif;position:fixed;top:16px;bottom:16px;right:16px;overflow:auto}.sphere-panel header{justify-content:space-between;align-items:center;display:flex}.sphere-panel h2{letter-spacing:.3em;text-transform:uppercase;color:#9cc4ff;margin:0;font-size:18px}.sphere-panel h3{letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:14px 0 6px;font-size:10px}.sphere-panel section{border-top:1px solid #ffffff12;margin-top:10px;padding-top:4px}.sphere-panel .now{border:0;margin-top:8px}.sphere-panel .now .title{white-space:nowrap;text-overflow:ellipsis;margin-bottom:8px;font-size:14px;font-weight:650;overflow:hidden}.sphere-panel .row{align-items:center;gap:6px;margin:6px 0;display:flex}.sphere-panel .chips{flex-wrap:wrap;gap:5px;margin:6px 0;display:flex}.sphere-panel button{color:var(--fg);cursor:pointer;font:inherit;background:#ffffff12;border:1px solid #ffffff1a;border-radius:7px;padding:6px 10px}.sphere-panel button:hover:not(:disabled){border-color:#9cc4ff99}.sphere-panel button:disabled{opacity:.35;cursor:default}.sphere-panel button.on{background:#6e96ff40;border-color:#7fa8ff}.sphere-panel button.pri{color:#07101f;background:#7fa8ff;border-color:#7fa8ff;font-weight:700}.sphere-panel button.x{color:var(--dim);background:0 0;border:0;padding:2px 6px;font-size:22px;line-height:1}.sphere-panel input:not([type=range]){min-width:0;color:var(--fg);font:inherit;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:7px;flex:1;padding:6px 9px}.sphere-panel input[name=bpm]{flex:none;width:52px;padding:2px 5px}.sphere-panel input.bad{border-color:#ef5a43}.sphere-panel input[type=range]{accent-color:#7fa8ff;flex:1}.sphere-panel .small{color:var(--dim);margin:4px 0;font-size:11px}.sphere-panel .list{max-height:140px;margin:6px 0 0;padding-left:20px;overflow:auto}.sphere-panel .list button{text-align:left;background:0 0;border:0;padding:2px 4px}.yt-dock{z-index:8;border-radius:8px;display:none;position:fixed;bottom:48px;left:16px;overflow:hidden;box-shadow:0 6px 24px #00000080}.yt-dock.on{display:block}.yt-dock iframe{border:0;width:240px;height:135px;display:block}.sphere-open .click-to-play{display:none}.sphere-panel header span{gap:2px;display:flex}.sphere-panel.collapsed{bottom:auto}.sphere-panel.collapsed>section{display:none}.sphere-panel .list.media em{letter-spacing:.08em;text-transform:uppercase;color:#ffb04a;border:1px solid #ffb04a80;border-radius:4px;margin-left:4px;padding:0 4px;font-size:10px;font-style:normal}.clean .hud,.clean .hint,.clean .sphere-panel,.clean .crosshair,.clean .click-to-play,.clean .banner,.clean .killfeed,.clean .siege-hud,.clean .siege-tip,.clean .scope-info,.clean .prof{display:none!important}
