:root{--ink:#05070a;--panel:#0a0f14d1;--panel-solid:#0b1116;--line:#78a0b433;--line-strong:#78b4c86b;--text:#e6eef3;--dim:#93a5b3;--dimmer:#64748099;--accent:#5fd0c4;--warn:#e0a44f;--bad:#dd8080;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--sans:"Helvetica Neue", Inter, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;margin:0;overflow:hidden}body{font-family:var(--sans);color:var(--text);-webkit-font-smoothing:antialiased}canvas#stage{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui>.ann-layer,#ui>.ann-layer *{pointer-events:none}#boot{z-index:50;background:radial-gradient(60% 60% at 50% 45%,#0d151b 0%,#05070a 100%);place-items:center;transition:opacity .7s,visibility .7s;display:grid;position:fixed;inset:0}#boot.done{opacity:0;visibility:hidden;pointer-events:none}.boot-inner{text-align:center;width:min(520px,84vw)}.boot-mark{letter-spacing:.26em;font-size:54px;font-weight:700}.boot-mark span{color:var(--accent);margin-left:.24em}.boot-sub{font-family:var(--mono);letter-spacing:.42em;color:var(--dim);margin-top:10px;font-size:11px}.boot-bar{background:#ffffff1a;width:180px;height:1px;margin:34px auto 0;overflow:hidden}.boot-bar i{background:var(--accent);width:6%;height:100%;transition:width .45s;display:block}.boot-status{font-family:var(--mono);letter-spacing:.22em;color:var(--dim);text-transform:uppercase;font-size:11px}.boot-note{font-family:var(--mono);letter-spacing:.1em;color:var(--dimmer);margin-top:22px;font-size:10px}#fatal{z-index:60;background:#05070a;place-items:center;padding:8vw;display:grid;position:fixed;inset:0}#fatal[hidden]{display:none}#fatal .box{border:1px solid var(--bad);max-width:720px;padding:28px 32px}#fatal h1{font-family:var(--mono);letter-spacing:.3em;color:var(--bad);margin:0 0 14px;font-size:13px}#fatal pre{font-family:var(--mono);color:var(--dim);white-space:pre-wrap;margin:0;font-size:12px;line-height:1.7}.brand,.stats{text-shadow:0 1px 10px #000000eb,0 0 3px #000000b3}.brand:before,.stats:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(135% 135% at var(--sx,0%) 0%, #04070af0 0%, #04070adb 30%, #04070a8c 58%, #04070a00 88%);position:absolute;inset:-30px -46px -34px}.brand{--sx:0%}.stats{--sx:100%}.brand{isolation:isolate;position:fixed;top:22px;left:26px}.brand .name{letter-spacing:.2em;font-size:19px;font-weight:700}.brand .name span{color:var(--accent)}.brand .sub{font-family:var(--mono);letter-spacing:.32em;color:#b7c6d2;margin-top:6px;font-size:9.5px}.brand .engine{font-family:var(--mono);letter-spacing:.16em;color:var(--warn);background:#e0a44f12;border:1px solid #e0a44f57;margin-top:10px;padding:4px 8px;font-size:9px;display:inline-block}.stats{text-align:right;font-family:var(--mono);isolation:isolate;position:fixed;top:22px;right:26px}.stats dl{grid-template-columns:auto auto;justify-content:end;gap:3px 14px;margin:0;display:grid}.stats dt{letter-spacing:.24em;color:#b7c6d2;text-transform:uppercase;font-size:9px}.stats dd{color:var(--text);font-variant-numeric:tabular-nums;margin:0;font-size:12px}.stats .fps{letter-spacing:.18em;color:#b7c6d2b8;margin-top:10px;font-size:9.5px}.bar{background:var(--line);border:1px solid var(--line);backdrop-filter:blur(14px);gap:1px;padding:1px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.bar button{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);cursor:pointer;white-space:nowrap;background:#080c10db;border:0;padding:12px 17px;font-size:10px;transition:color .16s,background .16s}.bar button:hover{color:var(--text);background:#141e26f0}.bar button[aria-pressed=true]{color:var(--ink);background:var(--accent)}.sheet{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(18px);overscroll-behavior:contain;width:372px;transition:transform .42s cubic-bezier(.22,.61,.36,1),opacity .3s;position:fixed;top:152px;bottom:84px;overflow:auto}.sheet.left{left:26px}.sheet.right{right:26px}.sheet[hidden]{opacity:0;pointer-events:none;display:block}.sheet.left[hidden]{transform:translate(-24px)}.sheet.right[hidden]{transform:translate(24px)}.sheet::-webkit-scrollbar{width:6px}.sheet::-webkit-scrollbar-thumb{background:#78a0b43d}.sheet h2{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--line);background:var(--panel-solid);z-index:2;justify-content:space-between;align-items:center;margin:0;padding:16px 18px 13px;font-size:10px;display:flex;position:sticky;top:0}.sheet h2 button{color:var(--dim);cursor:pointer;font-family:var(--mono);background:0 0;border:0;padding:2px 4px;font-size:14px;line-height:1}.sheet h2 button:hover{color:var(--text)}.sheet .body{padding:16px 18px 24px}.row{border-bottom:1px solid #78a0b41a;grid-template-columns:1fr auto;gap:10px;padding:9px 0;display:grid}.row:last-child{border-bottom:0}.row .k{font-family:var(--mono);letter-spacing:.2em;color:var(--dim);text-transform:uppercase;font-size:9.5px}.row .v{color:var(--text);text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.item{text-align:left;border:1px solid #0000;border-left:2px solid var(--line-strong);cursor:pointer;width:100%;color:inherit;font:inherit;background:#ffffff05;margin-bottom:6px;padding:11px 13px;transition:background .15s,border-color .15s;display:block}.item:hover{border-left-color:var(--accent);background:#5fd0c414}.item[aria-current=true]{border-left-color:var(--accent);background:#5fd0c421}.item .t{font-size:13px;font-weight:500}.item .m{font-family:var(--mono);letter-spacing:.13em;color:var(--dim);text-transform:uppercase;margin-top:5px;font-size:9.5px}.tag{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;border:1px solid;margin:0 5px 5px 0;padding:3px 7px;font-size:8.5px;display:inline-block}.tag.ok{color:var(--accent)}.tag.warn{color:var(--warn)}.tag.bad{color:var(--bad)}.tag.dim{color:var(--dim)}.note{color:var(--dim);border-left:2px solid var(--warn);background:#e0a44f0f;margin:12px 0;padding:9px 12px;font-size:11.5px;line-height:1.62}.note.info{border-left-color:var(--accent);background:#5fd0c40d}.native{color:var(--text);font-size:15px;line-height:1.65}.gloss{color:var(--dim);margin-top:6px;font-size:12px;line-height:1.6}.section{font-family:var(--mono);letter-spacing:.26em;color:var(--dim);text-transform:uppercase;border-bottom:1px solid var(--line);margin:20px 0 9px;padding-bottom:6px;font-size:9px}.section:first-child{margin-top:0}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border:1px solid var(--line);color:var(--dim);cursor:pointer;background:#ffffff05;padding:6px 10px;font-size:9.5px}.chip:hover{border-color:var(--line-strong);color:var(--text)}.chip[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:#5fd0c41a}.tour-caption{z-index:6;text-align:center;pointer-events:none;background:radial-gradient(60% 120% at 50% 100%,#030508db 0%,#03050800 78%);max-width:min(760px,88vw);padding:18px 32px 20px;position:fixed;bottom:11vh;left:50%;transform:translate(-50%)}.tour-caption .shot{font-family:var(--mono);letter-spacing:.34em;color:var(--accent);text-shadow:0 2px 16px #000000f2;font-size:9px}.tour-caption .line{text-shadow:0 2px 22px #000000e6;margin-top:9px;font-size:17px;line-height:1.5}.tour-caption .sub{font-family:var(--mono);letter-spacing:.16em;color:#b6c6d2;text-shadow:0 2px 16px #000000f2;margin-top:8px;font-size:10.5px}.bars{z-index:5;pointer-events:none;background:#000;height:8vh;transition:height .7s cubic-bezier(.22,.61,.36,1);position:fixed;left:0;right:0}.bars.top{top:0}.bars.bottom{bottom:0}.bars.hidden{height:0}body.cinematic .stats,body.cinematic .timeline,body.cinematic .sheet{opacity:0;pointer-events:none;transition:opacity .5s}body.cinematic .brand{opacity:.55;transition:opacity .5s}body.cinematic .bar{opacity:.42;transition:opacity .5s}body.cinematic .bar:hover{opacity:1}@media (width<=1200px){.sheet{width:320px}}@media (width<=900px){.sheet{width:calc(100vw - 44px)}.sheet.right{right:22px}.sheet.left{left:22px}.bar{flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 32px)}}.map{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(16px);width:168px;padding:6px 6px 4px;transition:opacity .3s,transform .3s;position:fixed;bottom:84px;left:26px}.map.hidden{opacity:0;pointer-events:none;transform:translateY(12px)}.map canvas{width:100%;height:auto;display:block}.map-legend{font-family:var(--mono);letter-spacing:.16em;color:var(--dim);text-transform:uppercase;text-align:center;padding:6px 0 3px;font-size:8.5px}.hint{font-family:var(--mono);letter-spacing:.13em;color:var(--dim);border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;background:#060a0ecc;max-width:82vw;padding:7px 15px;font-size:10.5px;transition:opacity .6s;position:fixed;bottom:66px;left:50%;overflow:hidden;transform:translate(-50%)}.hint.fade{opacity:.32}.story{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--accent);backdrop-filter:blur(18px);z-index:8;width:372px;padding:16px 20px 18px;position:fixed;top:152px;right:26px}.story[hidden]{display:none}.story-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.story-step{font-family:var(--mono);letter-spacing:.28em;color:var(--accent);font-size:9px}.story .x{color:var(--dim);cursor:pointer;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;background:0 0;border:0;font-size:9px}.story .x:hover{color:var(--text)}.story h3{letter-spacing:-.01em;margin:0 0 10px;font-size:19px;font-weight:600}.story-body p{color:#c3d2dc;margin:0 0 10px;font-size:13px;line-height:1.66}.story-rail{gap:5px;margin:16px 0 14px;display:flex}.story-rail .pip{cursor:pointer;background:#ffffff21;border:0;flex:1;height:3px;padding:0;transition:background .2s}.story-rail .pip:hover{background:#5fd0c48c}.story-rail .pip[aria-current=true]{background:var(--accent)}.story-ctl{gap:8px;display:flex}.story-ctl button{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:1px solid var(--line);color:var(--dim);background:#ffffff0a;flex:1;padding:10px;font-size:10px}.story-ctl button:hover{color:var(--text);border-color:var(--line-strong)}.story-ctl .primary{background:var(--accent);color:var(--ink);border-color:var(--accent);font-weight:700}.story-ctl .primary:hover{color:var(--ink);background:#7fe0d5}body.storytelling .sheet{opacity:0;pointer-events:none}.modal{z-index:40;backdrop-filter:blur(6px);background:#030508c7;place-items:center;padding:6vw;display:grid;position:fixed;inset:0}.modal[hidden]{display:none}.modal-box{background:var(--panel-solid);border:1px solid var(--line-strong);width:min(560px,92vw);max-height:86vh;padding:26px 30px 24px;overflow:auto}.modal-box.wide{width:min(720px,94vw)}.modal-box h3{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--accent);margin:0 0 18px;font-size:11px}.modal-box .primary{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:var(--accent);color:var(--ink);border:0;margin-top:20px;padding:11px 20px;font-size:10px;font-weight:700}.modal-box .primary:hover{background:#7fe0d5}.keys{grid-template-columns:auto 1fr;align-items:center;gap:9px 16px;display:grid}.keys kbd{font-family:var(--mono);letter-spacing:.06em;color:var(--text);border:1px solid var(--line);white-space:nowrap;text-align:center;background:#ffffff0f;padding:5px 9px;font-size:10px}.keys span{color:var(--dim);font-size:12.5px}.ob-mark{letter-spacing:.2em;margin-bottom:14px;font-size:30px;font-weight:700}.ob-mark span{color:var(--accent)}.ob-lead{color:#cfdbe4;margin:0 0 22px;font-size:14.5px;line-height:1.68}.ob-grid{grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:6px;display:grid}.ob-grid>div{border-top:1px solid var(--line);padding-top:11px}.ob-grid b{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:7px;font-size:9.5px;display:block}.ob-grid span{color:var(--dim);font-size:12px;line-height:1.6}.ob-ctl{gap:10px;margin-top:24px;display:flex}.ob-ctl button{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;border:1px solid var(--line);color:var(--dim);background:#ffffff0a;padding:12px 20px;font-size:10px}.ob-ctl button:hover{color:var(--text);border-color:var(--line-strong)}.ob-ctl .primary{background:var(--accent);color:var(--ink);border-color:var(--accent);font-weight:700}.ob-ctl .primary:hover{background:#7fe0d5}body.cinematic .map,body.cinematic .hint,body.cinematic .story{opacity:0;pointer-events:none}@media (width<=1100px){.map{width:148px}.story{width:320px}.ob-grid{grid-template-columns:1fr;gap:12px}}:root{--indic:"Noto Sans Devanagari", "Noto Sans Bengali", "Noto Sans Tamil", "Noto Sans Telugu", "Nirmala UI", "Kohinoor Devanagari", "Kohinoor Bangla", "Tamil Sangam MN", "Telugu Sangam MN", "Devanagari Sangam MN", system-ui, sans-serif}.exec{overscroll-behavior:contain;border:1px solid var(--line);border-left:2px solid var(--accent);backdrop-filter:blur(20px);z-index:7;background:#080d12eb;width:372px;max-height:calc(100vh - 260px);padding:14px 18px 15px;position:fixed;top:96px;left:26px;overflow:auto}.exec::-webkit-scrollbar{width:5px}.exec::-webkit-scrollbar-thumb{background:#78a0b43d}.exec[hidden]{display:none}.exec-head{flex-direction:column;gap:3px;display:flex}.exec-head .k{font-family:var(--mono);letter-spacing:.3em;color:var(--dim);margin-right:10px;font-size:8.5px}.exec-head .id{font-family:var(--mono);color:var(--accent);letter-spacing:.12em;font-size:11px}.exec-head .action{font-family:var(--mono);color:var(--text);letter-spacing:.1em;margin-left:10px;font-size:11px}.exec-head .frames{font-family:var(--mono);color:var(--dim);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:2px;font-size:9.5px}.exec-head .action{margin-top:3px;display:block;margin-left:0!important}.langs{flex-wrap:wrap;gap:4px;margin:11px 0 10px;display:flex}.lang{border:1px solid var(--line);cursor:pointer;color:var(--dim);background:#ffffff09;flex-direction:column;align-items:center;gap:2px;padding:5px 11px 6px;transition:color .15s,border-color .15s,background .15s;display:flex}.lang .native{font-family:var(--indic);font-size:13px;line-height:1.25}.lang .latin{font-family:var(--mono);letter-spacing:.16em;opacity:.75;font-size:7.5px}.lang:hover{color:var(--text);border-color:var(--line-strong)}.lang[aria-pressed=true]{color:var(--ink);background:var(--accent);border-color:var(--accent);font-weight:600}.lang.off{opacity:.3;cursor:not-allowed}.lang.off:hover{color:var(--dim);border-color:var(--line)}.native-line{font-family:var(--indic);color:#f2f7fa;letter-spacing:.005em;text-wrap:pretty;margin:2px 0 8px;font-size:17px;line-height:1.6}.native-line.missing{font-family:var(--mono);color:var(--bad);letter-spacing:.14em;font-size:13px}.gloss-line{color:var(--dim);margin-bottom:12px;font-size:11.5px;line-height:1.55}.gloss-line[hidden]{display:none}.exec .track{cursor:pointer;background:#ffffff17;height:4px;position:relative}.exec .track i{background:var(--accent);position:absolute;inset:0 auto 0 0}.exec .track b{background:var(--text);width:2px;height:12px;position:absolute;top:-4px}.exec .ctl{flex-wrap:wrap;align-items:center;gap:4px;margin-top:11px;display:flex}.exec .ctl button{font-family:var(--mono);letter-spacing:.14em;color:var(--dim);border:1px solid var(--line);cursor:pointer;background:#ffffff08;padding:6px 11px;font-size:9.5px}.exec .ctl button:hover{color:var(--text);border-color:var(--line-strong)}.exec .ctl button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.exec .ctl .spacer{flex-basis:100%;height:0}.exec .ctl .prov{font-family:var(--mono);letter-spacing:.18em;color:var(--warn);border:1px solid #e0a44f66;padding:5px 9px;font-size:8.5px}body.cinematic .exec,body.storytelling .exec{opacity:0;pointer-events:none}@media (width<=1100px){.exec{width:320px}.native-line{font-size:15px}}.ann-layer{pointer-events:none;z-index:4;position:fixed;inset:0}.ann-layer[hidden]{display:none}.ann-leaders{position:absolute;inset:0;overflow:visible}.ann{will-change:transform;border:1px solid #78a0b438;border-left:2px solid var(--ann,var(--accent));backdrop-filter:blur(9px);background:#070b0fe6;max-width:236px;padding:7px 11px 8px;transition:opacity .22s linear;position:absolute;top:0;left:0}.ann[hidden]{display:none}.ann-kind{font-family:var(--mono);letter-spacing:.26em;text-transform:uppercase;color:var(--ann,var(--accent));margin-bottom:4px;font-size:7.5px;display:block}.ann-title{color:var(--text);letter-spacing:-.005em;font-size:12.5px;font-weight:600;line-height:1.32;display:block}.ann-value{font-family:var(--mono);color:var(--ann,var(--accent));font-variant-numeric:tabular-nums;margin-top:3px;font-size:11px;line-height:1.4;display:block}.ann-value[hidden]{display:none}.ann-note{color:var(--dim);margin-top:4px;font-size:10.5px;line-height:1.5;display:block}.ann-note[hidden]{display:none}.ann-note.script{font-family:var(--indic);color:#d8e6ee;font-size:13px;line-height:1.62}.ann.k-caution{background:#1c1106e6}.ann.k-language{background:#100914e6}.ann.k-structure{opacity:.92}.ann.k-structure .ann-title{font-weight:500}body.cinematic .ann-layer{display:none}.ann.compact{max-width:214px;padding:5px 9px 6px}.ann.compact .ann-kind{margin-bottom:3px;font-size:7px}.ann.compact .ann-title{font-size:11.5px;line-height:1.26}.ann.compact .ann-value{margin-top:2px;font-size:10px}.ann.compact .ann-note{margin-top:3px;font-size:9.5px;line-height:1.42}.ann.compact .ann-note.script{font-size:11.5px;line-height:1.5}
