:root{--bg: #070707;--surface: #0d0e0d;--surface-2: #121312;--ink: #e8e5da;--bone: #bdb7a8;--muted: #858178;--line: #32332e;--acid: #d1ff32;--rust: #ce5a43;--violet: #afa4d9;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Consolas, monospace;--display: "UnifrakturCook", "Pirata One", Georgia, serif;--display-alt: "Pirata One", Georgia, serif}*{box-sizing:border-box}html{background:var(--bg)}.scene-canvas{position:fixed;z-index:0;inset:0;width:100%;height:100%;pointer-events:none;opacity:1}.scene-canvas.three-unavailable{display:none}body{margin:0;min-width:320px;color:var(--ink);background:var(--bg);font-family:var(--mono);letter-spacing:.02em}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 44% 28% at 50% 8%,rgba(175,164,217,.08),transparent 74%),radial-gradient(ellipse 34% 42% at 6% 58%,rgba(209,255,50,.035),transparent 72%),radial-gradient(ellipse 34% 42% at 94% 66%,rgba(206,90,67,.03),transparent 72%)}body:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 82% 68% at 50% 46%,transparent 42%,rgba(0,0,0,.72) 100%)}button{font:inherit}h1,h2,p{margin:0}.app-shell{position:relative;z-index:1;isolation:isolate;width:min(100%,720px);margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 18px max(24px,env(safe-area-inset-bottom))}.app-shell:before{content:"NQX";position:absolute;z-index:-1;top:205px;right:-78px;color:#afa4d906;font-family:var(--display);font-size:176px;line-height:.8;writing-mode:vertical-rl;transform:rotate(180deg);pointer-events:none}.topbar,.market-head,.signal-header,.row-title,.row-risk,.safety-bar,.footer-line{display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar{position:relative;align-items:flex-start;margin-bottom:24px}.brand-kicker,.code-label,.section-mark,.state-chip,.confidence,.signal-count,dt,.footer-line,.lock{font-size:9px;letter-spacing:.16em;text-transform:uppercase}.brand-kicker{color:var(--acid);margin:0 0 5px}.brandlock h1{font-family:var(--display);font-size:clamp(38px,11vw,72px);font-weight:700;line-height:.88;letter-spacing:.015em;text-shadow:0 0 24px rgba(232,229,218,.06);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.brand-subline{color:var(--muted);font-size:10px;margin-top:12px;letter-spacing:.08em}.bridge-block{display:flex;align-items:center;gap:8px;padding-top:5px}.bridge-dot{width:6px;height:6px;border-radius:50%;background:var(--acid);box-shadow:0 0 0 3px #d1ff3214}.state-chip{color:var(--acid);border:1px solid var(--line);padding:7px 8px;white-space:nowrap}.state-chip.connected{color:var(--acid);border-color:#d1ff328c}.ops-console{position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#070707ad}.ops-console:before{content:"◆";position:absolute;z-index:2;top:-7px;left:50%;color:#afa4d9b8;font-size:9px;transform:translate(-50%)}.ops-console:after{content:"NQX / NOCTURNE / CONTROL ROOM";position:absolute;top:78px;right:-29px;color:#bdb7a861;font-size:8px;letter-spacing:.18em;writing-mode:vertical-rl;pointer-events:none}.console-main{min-width:0;background:linear-gradient(180deg,#0d0e0d6b,#070707c7 43%,#070707b8)}.market-band{position:relative;overflow:hidden;padding:18px 17px 16px;border-bottom:1px solid var(--line);background:linear-gradient(108deg,rgba(209,255,50,.034),transparent 38%)}.market-band:after{content:"NQX";position:absolute;right:-6px;bottom:-29px;color:#e8e5da07;font-family:var(--display);font-size:116px;line-height:1;pointer-events:none}.market-band>*{position:relative;z-index:1}.code-label,.section-mark{color:var(--muted)}.market-head strong{display:block;color:var(--ink);margin-top:5px;font-size:13px}.sim-state{color:var(--acid);font-size:9px;letter-spacing:.14em}.sim-state i{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--acid)}.price-line{display:flex;align-items:baseline;gap:12px;margin:20px 0 13px}.price-line>span:first-child{font-family:var(--mono);font-size:clamp(34px,9vw,60px);font-weight:600;letter-spacing:-.035em}.price-change{color:var(--acid);font-size:13px}.price-change small{color:var(--muted);font-size:10px}.market-meta{display:flex;flex-wrap:wrap;gap:15px;color:var(--muted);font-size:10px}.market-meta b{color:var(--ink)}.market-meta .negative{color:var(--rust)}.market-meta .accent{color:var(--violet)}.signal-header{padding:21px 17px 12px;align-items:flex-end}.signal-header strong{display:block;margin-top:7px;color:var(--bone);font-family:var(--display-alt);font-size:21px;font-weight:400;letter-spacing:.02em}.signal-count{color:var(--muted);white-space:nowrap}.scenario-tape{padding:0 17px}.scenario-row{display:grid;grid-template-columns:32px minmax(150px,1.2fr) minmax(145px,1fr) 100px 126px;gap:13px;align-items:center;min-height:132px;padding:17px 0;border-top:1px solid var(--line);transition:background .18s cubic-bezier(.22,1,.36,1)}.scenario-row:last-child{border-bottom:1px solid var(--line)}.scenario-row.long:hover,.scenario-row.long:focus-within{background:linear-gradient(90deg,rgba(209,255,50,.045),transparent 68%)}.scenario-row.short:hover,.scenario-row.short:focus-within{background:linear-gradient(90deg,rgba(206,90,67,.045),transparent 68%)}.row-index{align-self:start;color:var(--muted);font-size:11px;padding-top:4px}.row-title{justify-content:flex-start}.side-mark{color:var(--acid);font-family:var(--display-alt);font-size:22px;line-height:1}.short .side-mark{color:var(--rust)}.confidence{color:var(--muted)}.row-signal h2{margin-top:12px;color:var(--ink);font-family:var(--display-alt);font-weight:400;font-size:23px;line-height:1}.scenario-note{margin-top:8px;color:var(--muted);font-size:10px;line-height:1.55}.levels{display:grid;gap:5px;margin:0}.levels div{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(255,255,255,.07);padding-bottom:4px}dt{color:var(--muted)}dd{margin:0;color:var(--ink);font-size:11px}.row-risk{display:grid;gap:5px;color:var(--muted);font-size:10px}.row-risk b{color:var(--ink)}.scenario-action,.preview-action{min-height:40px;border:1px solid var(--acid);color:var(--acid);background:transparent;cursor:pointer;transition:color .16s ease,background .16s ease,transform .16s ease}.scenario-action span{margin-right:6px}.short .scenario-action{border-color:var(--rust);color:var(--rust)}.scenario-action:hover,.scenario-action:focus-visible,.preview-action.send:hover,.preview-action.send:focus-visible{color:var(--bg);background:var(--acid)}.short .scenario-action:hover,.short .scenario-action:focus-visible{color:var(--ink);background:var(--rust)}button:focus-visible{outline:1px solid var(--violet);outline-offset:3px}button:active{transform:translateY(1px)}.preview-panel{min-height:145px;padding:18px 17px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse 55% 100% at 15% 50%,rgba(175,164,217,.035),transparent 76%)}.preview-empty{display:flex;align-items:center;gap:14px;min-height:106px;color:var(--muted)}.empty-glyph{color:var(--violet);font-size:32px;line-height:1}.preview-empty strong,.preview-filled strong{display:block;color:var(--ink);font-family:var(--display-alt);font-size:20px;font-weight:400}.preview-empty p,.preview-filled p{margin-top:8px;font-size:10px;line-height:1.6}.preview-filled{display:grid;gap:13px}.preview-header,.preview-metrics{display:flex;align-items:center;justify-content:space-between;gap:10px}.preview-header .tag{color:var(--acid);font-size:9px;letter-spacing:.12em}.preview-metrics{color:var(--muted);font-size:10px}.preview-metrics b{color:var(--ink)}.preview-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.preview-action{min-height:42px}.preview-action.discard{border-color:var(--line);color:var(--muted)}.preview-action.discard:hover,.preview-action.discard:focus-visible{color:var(--ink);background:var(--surface-2)}.safety-bar{margin:13px 17px 0;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.safety-icon{color:var(--violet);font-size:18px}.safety-bar strong,.safety-bar small{display:block}.safety-bar strong{color:var(--acid);font-size:10px;letter-spacing:.12em}.safety-bar small{margin-top:4px;color:var(--muted);font-size:9px}.lock{color:var(--muted);white-space:nowrap}.footer-line{margin-top:14px;color:#686860}.sigil-caption{position:fixed;z-index:2;left:50%;bottom:max(58px,calc(env(safe-area-inset-bottom) + 46px));width:max-content;max-width:calc(100% - 32px);transform:translate(-50%,8px);color:#e8d9a8;font-size:9px;letter-spacing:.34em;text-align:center;text-transform:uppercase;text-shadow:0 0 14px rgba(232,217,168,.45);opacity:0;pointer-events:none;transition:opacity .9s ease,transform .9s cubic-bezier(.22,1,.36,1)}.sigil-caption.show{opacity:.92;transform:translate(-50%)}.toast{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translate(-50%,15px);width:max-content;max-width:calc(100% - 36px);padding:10px 13px;border:1px solid var(--acid);color:var(--acid);background:var(--bg);opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;font-size:11px}.toast.show{opacity:1;transform:translate(-50%)}@media(max-width:700px){.scene-canvas{opacity:.34}.ops-console:after{display:none}.scenario-row{grid-template-columns:26px minmax(135px,1fr) minmax(122px,.9fr)}.row-risk{grid-column:2;grid-row:2;display:flex;justify-content:flex-start;gap:16px}.scenario-action{grid-column:3;grid-row:2}}@media(max-width:460px){.scene-canvas{opacity:.28}.app-shell:before{right:-32px;font-size:116px}.app-shell{padding-left:12px;padding-right:12px}.brandlock h1{font-size:clamp(34px,12vw,52px)}.brand-subline{font-size:9px}.market-band,.signal-header,.scenario-tape,.preview-panel{padding-left:12px;padding-right:12px}.safety-bar{margin-left:12px;margin-right:12px}.scenario-row{grid-template-columns:22px minmax(0,1fr);gap:9px;padding:15px 0}.row-signal{min-width:0}.row-signal h2{font-size:20px}.levels{grid-column:2;grid-row:2;margin-top:4px}.row-risk{grid-column:2;grid-row:3}.scenario-action{grid-column:2;grid-row:4}.signal-header strong{font-size:18px}}@media(prefers-reduced-motion:reduce){.scene-canvas{opacity:.5}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
