:root{--bg:#0f110f;--panel:#131614f2;--panel-raised:#1c201d;--border:#3b423d;--border-strong:#59625b;--text:#ece7d8;--muted:#aaa594;--accent:#dcb65c;--accent-ink:#1b1608;--ok:#72d6a0;--ok-bg:#72d6a017;--err:#f08e7b;--err-bg:#f08e7b14;--focus:#ffd47e;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:19px;--fs-xl:24px;--fs-title:clamp(34px, 6vw, 54px);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--radius:8px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);width:100%;height:100%;color:var(--text);font-family:var(--font);font-size:var(--fs-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5;overflow:hidden}#app{position:fixed;inset:0;overflow:hidden}#scene{outline:none;width:100%;height:100%;display:block}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}kbd{border:1px solid var(--border-strong);background:var(--panel-raised);min-width:1.7em;font-family:var(--mono);text-align:center;color:var(--text);border-bottom-width:2px;border-radius:4px;margin:0 2px;padding:1px 6px;font-size:.85em;line-height:1.4;display:inline-block}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}#vignette{pointer-events:none;opacity:0;z-index:1;background:radial-gradient(60% 62% at 50% 52%,#0000 40%,#000000eb 100%);position:fixed;inset:0}#crosshair{pointer-events:none;z-index:5;background:#fffaebbf;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;transition:transform .12s,background .12s;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #0009}#crosshair.is-target{background:var(--accent);transform:scale(1.8)}.hud{top:var(--sp-4);left:var(--sp-4);z-index:10;gap:var(--sp-2);pointer-events:none;max-width:calc(100vw - 2 * var(--sp-4));flex-direction:column;display:flex;position:fixed}.hud__progress{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--mono);font-size:var(--fs-sm);background:#0c0e0cb8;width:-moz-fit-content;width:fit-content;display:flex}.hud__label{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-size:var(--fs-xs)}.hud__count{color:var(--text)}.gates{gap:6px;margin:0;padding:0;list-style:none;display:flex}.gate{border:1.5px solid var(--border-strong);height:26px;color:var(--muted);border-radius:4px;align-items:center;gap:5px;padding:0 7px;font-weight:700;display:flex}.gate.is-open{border-color:var(--ok);background:var(--ok);color:#0d1a12}.gate__icon{width:9px;height:11px;display:inline-block;position:relative}.gate.is-locked .gate__icon:before{content:"";border:1.5px solid;border-bottom:0;border-radius:3px 3px 0 0;width:5px;height:6px;position:absolute;top:0;left:2px}.gate.is-locked .gate__icon:after{content:"";background:currentColor;border-radius:1px;width:9px;height:6px;position:absolute;bottom:0;left:0}.gate.is-open .gate__icon:after{content:"";border:2px solid;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:1px;left:2px;transform:rotate(40deg)}.hud__objective{padding:var(--sp-1) var(--sp-3);border-radius:var(--radius);font-size:var(--fs-sm);color:var(--text);background:#0c0e0c99;width:-moz-fit-content;width:fit-content;max-width:100%;margin:0}.prompt{z-index:10;max-width:calc(100vw - 32px);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:var(--fs-md);text-align:center;pointer-events:none;background:#0a0c0ad1;position:fixed;bottom:16%;left:50%;transform:translate(-50%)}.prompt.is-open{border-color:var(--ok)}.toast{top:var(--sp-4);z-index:15;max-width:min(560px,100vw - 32px);padding:var(--sp-2) var(--sp-4);border:1px solid var(--border-strong);border-radius:var(--radius);font-size:var(--fs-sm);text-align:center;opacity:0;pointer-events:none;background:#0e100ee6;transition:opacity .2s,transform .2s;position:fixed;left:50%;transform:translate(-50%,-8px)}.toast.is-visible{opacity:1;transform:translate(-50%)}.overlay{z-index:20;padding:var(--sp-4);background:#070807b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.overlay--start{background:radial-gradient(at 50% 40%,#0c0e0c9e,#050605f0)}.overlay--puzzle{background:#05060594}.panel{width:min(860px,100%);max-height:calc(100vh - 2 * var(--sp-4));max-height:calc(100dvh - 2 * var(--sp-4));padding:var(--sp-6);border:1px solid var(--border);background:var(--panel);border-radius:10px;overflow:auto;box-shadow:0 20px 60px #0000008c}.panel--narrow{width:min(540px,100%)}.panel--start{border-top:3px solid var(--accent)}.panel--victory{border-top:3px solid var(--ok)}.eyebrow{margin:0 0 var(--sp-2);font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.title{font-size:var(--fs-title);letter-spacing:.04em;text-transform:uppercase;margin:0;font-weight:800;line-height:1.05}.title--small{font-size:clamp(28px,4.5vw,38px)}.subtitle{margin:var(--sp-1) 0 var(--sp-4);font-size:var(--fs-lg);color:var(--muted)}.panel__title{margin:0 0 var(--sp-3);font-size:var(--fs-xl);line-height:1.25}.section-title{margin:0 0 var(--sp-2);font-size:var(--fs-sm);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.premise{margin:0 0 var(--sp-5);max-width:68ch}.start__grid{gap:var(--sp-5);margin-bottom:var(--sp-4);grid-template-columns:1fr 1fr;display:grid}.controls{gap:6px;margin:0;display:grid}.controls div{align-items:center;gap:var(--sp-2);grid-template-columns:9.5em 1fr;display:grid}.controls dt,.controls dd{font-size:var(--fs-sm);margin:0}.howto{font-size:var(--fs-sm);gap:6px;margin:0;padding-left:1.2em;display:grid}.notice{gap:var(--sp-3);margin:0 0 var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-raised);font-size:var(--fs-sm);align-items:flex-start;display:flex}.notice__icon{border:2px solid var(--accent);border-radius:7px;flex:none;width:14px;height:20px;margin-top:2px;position:relative}.notice__icon:after{content:"";background:var(--accent);width:2px;height:5px;margin-left:-1px;position:absolute;top:3px;left:50%}.start__progress{color:var(--ok);font-size:var(--fs-sm)}.start__footer{justify-content:space-between;align-items:flex-end;gap:var(--sp-5);display:flex}.start__meta{max-width:54ch}.start__meta p{margin:0 0 var(--sp-1)}.start__meta p:last-child{margin-bottom:0}.start__footer .actions{flex:none}.actions{gap:var(--sp-3);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.actions--stack{margin:var(--sp-4) 0;flex-direction:column;align-items:stretch}.alert{margin:var(--sp-3) 0 0;padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--err);background:var(--err-bg);font-size:var(--fs-sm)}.btn{min-height:42px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:9px 18px;font-size:15px;font-weight:650;transition:background .12s,border-color .12s,color .12s}.btn:focus-visible,.choice:focus-within,.seq-btn:focus-visible,.text-input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover:not(:disabled){background:#e8c672}.btn--ghost{border-color:var(--border-strong);color:var(--text);background:0 0}.btn--ghost:hover:not(:disabled){background:#ffffff0d}.btn--danger{color:#f4a898;background:0 0;border-color:#8f4c42}.btn--danger:hover:not(:disabled){background:#f08e7b14}.panel--puzzle{border-top:3px solid var(--accent);flex-direction:column;width:min(780px,100%);padding:0;display:flex;overflow:hidden}.puzzle__header{padding:var(--sp-5) var(--sp-5) var(--sp-2)}.puzzle__header .panel__title{margin:0}.puzzle__scroll{min-height:0;padding:0 var(--sp-5) var(--sp-3);flex:auto;overflow:auto}.puzzle__context{margin:var(--sp-2) 0 var(--sp-3);padding:var(--sp-3) var(--sp-4);border-left:3px solid var(--border-strong);background:var(--panel-raised);font-size:var(--fs-sm)}.puzzle__question{margin:0 0 var(--sp-3);font-weight:650;font-size:var(--fs-md)}.puzzle__footer{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);background:#0000002e;flex-wrap:wrap;display:flex}.puzzle__footer p{margin:0}.choices{gap:var(--sp-2);border:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;display:grid}.choice{align-items:flex-start;gap:var(--sp-3);padding:10px var(--sp-3);border:1px solid var(--border);cursor:pointer;font-size:var(--fs-sm);background:#ffffff04;border-radius:6px;display:flex}.choice:hover{border-color:var(--border-strong)}.choice:has(input:checked){border-color:var(--accent);background:#dcb65c17}.choice input{accent-color:var(--accent);flex:none;margin:3px 0 0}.field-label{margin-bottom:var(--sp-2);font-size:var(--fs-sm);color:var(--muted);display:block}.text-input{width:100%;min-height:44px;padding:10px var(--sp-3);border:1px solid var(--border-strong);color:var(--text);font:inherit;background:#0d0f0d;border-radius:6px}.sequence{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.seq-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);font-size:var(--fs-sm);background:#ffffff04;border-radius:6px;grid-template-columns:30px 1fr auto;display:grid}.seq-pos{border:1px solid var(--accent);width:28px;height:28px;color:var(--accent);font-family:var(--mono);border-radius:50%;place-items:center;font-weight:700;display:grid}.seq-buttons{gap:var(--sp-1);display:flex}.seq-btn{border:1px solid var(--border-strong);width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border-radius:6px;font-size:16px}.seq-btn:hover:not(:disabled){background:#ffffff0f}.seq-btn:disabled{opacity:.3;cursor:default}.classify{gap:0;display:grid}.classify-row{align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px dashed var(--border);grid-template-columns:1fr auto;display:grid}.classify-text{font-size:var(--fs-sm);margin:0}.segmented{border:1px solid var(--border-strong);border-radius:6px;display:flex;overflow:hidden}.seg{cursor:pointer;position:relative}.seg input{opacity:0;width:1px;height:1px;position:absolute}.seg span{text-align:center;min-width:58px;font-size:var(--fs-sm);border-left:1px solid var(--border);padding:7px 10px;font-weight:650;display:block}.seg:first-child span{border-left:0}.seg input:focus-visible+span{outline:3px solid var(--focus);outline-offset:-3px}.seg input:checked+span{background:var(--accent);color:var(--accent-ink)}.seg:hover input:not(:checked)+span{background:#ffffff0f}.feedback{min-height:0;margin-top:var(--sp-3);font-size:var(--fs-sm)}.feedback:empty{display:none}.feedback.is-error,.feedback.is-info{padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--err);background:var(--err-bg)}.feedback.is-info{border-left-color:var(--accent);background:#dcb65c12}.hints{margin-top:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--accent);background:#dcb65c0f}.hints__title{margin:0 0 var(--sp-1);font-size:var(--fs-xs);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.hints ol{font-size:var(--fs-sm);gap:var(--sp-1);margin:0;padding-left:1.3em;display:grid}.success{margin-top:var(--sp-2);padding:var(--sp-3) var(--sp-4);border:1px solid var(--ok);background:var(--ok-bg);border-radius:6px}.success__title{margin:0 0 var(--sp-2);color:var(--ok);font-weight:700}.success__subtitle{margin:0 0 var(--sp-1);font-size:var(--fs-xs);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.success__text{font-size:var(--fs-sm);margin:0}.checklist{margin:var(--sp-3) 0;gap:6px;padding:0;list-style:none;display:grid}.checklist li{gap:var(--sp-2);font-size:var(--fs-sm);display:flex}.checklist li:before{content:"✓";color:var(--ok);font-weight:700}.recap{margin:var(--sp-4) 0;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);background:var(--panel-raised);border-radius:6px}.recap p{font-size:var(--fs-sm);margin:0}@media (max-width:720px){.panel{padding:var(--sp-5) var(--sp-4)}.start__grid{gap:var(--sp-4);grid-template-columns:1fr}.choices{grid-template-columns:1fr}.classify-row{gap:var(--sp-2);grid-template-columns:1fr}.puzzle__header,.puzzle__scroll,.puzzle__footer{padding-left:var(--sp-4);padding-right:var(--sp-4)}.actions{justify-content:stretch}.actions .btn{flex:auto}.start__footer{flex-direction:column;align-items:stretch}}@media (max-height:800px){.panel--start{padding-top:var(--sp-5);padding-bottom:var(--sp-5)}.premise{margin-bottom:var(--sp-4)}.start__grid{margin-bottom:var(--sp-3)}.controls,.howto{gap:3px}.notice{margin-bottom:var(--sp-3);padding:var(--sp-2) var(--sp-3)}}@media (max-height:700px){.panel{padding:var(--sp-4) var(--sp-5)}.premise{margin-bottom:var(--sp-3)}.title{font-size:clamp(28px,5vw,40px)}.subtitle{margin-bottom:var(--sp-2)}.puzzle__header{padding-top:var(--sp-3)}}@media (prefers-reduced-motion:reduce){.toast,#crosshair,.btn{transition:none}}
