:root{color:#e9ede7;font-synthesis:none;text-rendering:optimizelegibility;background:#10110f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,select{font:inherit}button{color:#e9ede7;cursor:pointer;background:#262a23;border:1px solid #565d50;border-radius:6px;min-height:40px}button:hover:not(:disabled),.run-row a:hover{border-color:#9eb67d}button:disabled{cursor:not-allowed;color:#74786f;background:#1b1d1a;border-color:#33372f}.game-shell{background:#10110f;grid-template-columns:minmax(0,1fr) 336px;min-height:100vh;display:grid}.stage-shell{background:#060706;place-items:center;min-width:0;min-height:100vh;display:grid;position:relative;overflow:hidden}.stage-media{object-fit:contain;opacity:0;background:#060706;width:100%;height:100vh;transition:opacity .18s;display:block}.stage-player{background:#060706;width:100%;height:100vh;position:relative;overflow:hidden}.stage-player .stage-media{width:100%;height:100%;position:absolute;inset:0}.stage-fallback{z-index:0}.stage-video{z-index:1;pointer-events:none;transition:none}.stage-media.is-ready{opacity:1}.mock-stage{position:relative;overflow:hidden}.mock-stage img{object-fit:contain;width:100%;height:100%;display:block;transform:scale(1.04)}.mock-stage.is-running img{animation:2.4s ease-in-out infinite alternate mock-drift}.mock-stage:after{content:"";pointer-events:none;background:linear-gradient(90deg,#ffffff08,#0000 22% 78%,#ffffff08),linear-gradient(#0000002e,#0000 30% 76%,#0003);position:absolute;inset:0}.stage-cue{color:#e8eddf;text-align:center;pointer-events:none;background:#10110fc7;border:1px solid #b9ca7247;border-radius:6px;max-width:min(420px,100% - 48px);padding:10px 14px;font-size:.88rem;line-height:1.35;position:absolute;bottom:34px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #00000052}.stage-cue:before{content:"";background:#c7e36e;border-radius:999px;width:8px;height:8px;margin-right:9px;animation:1.1s ease-in-out infinite cue-pulse;display:inline-block;box-shadow:0 0 15px #c7e36e8c}.control-strip{background:#171916;border-left:1px solid #2d312a;flex-direction:column;gap:16px;min-width:0;min-height:100vh;padding:18px;display:flex}.title-row,.run-row,.readout-row{align-items:center;gap:10px;display:flex}.title-row{justify-content:space-between}.title-row strong{font-size:1rem;line-height:1.2}.title-row span,.readout-row span{color:#a5aea0;font-size:.82rem;line-height:1.25}.mode-switch{grid-template-columns:1fr 1fr;gap:8px;display:grid}.mode-switch button{overflow-wrap:anywhere;text-align:center;width:100%;padding:0 12px}.mode-switch button.is-selected{color:#11140f;background:#bccf9d;border-color:#d6e5ba}.scenario-button{color:#eef1eb;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:#262a23;border:1px solid #454c41;border-radius:6px;outline:none;width:100%;min-height:40px;padding:0 12px;overflow:hidden}.scenario-button:focus-visible{border-color:#b8cc92}.scenario-button:disabled{color:#71766c;background:#141713;border-color:#30352d}.scenario-modal-backdrop{z-index:20;background:#050605b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.scenario-modal{background:#171916;border:1px solid #3e4539;border-radius:8px;gap:12px;width:min(460px,100%);max-height:min(640px,100vh - 36px);padding:14px;display:grid;box-shadow:0 28px 80px #00000080}.scenario-modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.scenario-modal-header strong{font-size:.95rem}.scenario-modal-close{color:#b7c0b0;background:#20241e;place-items:center;width:32px;min-height:32px;padding:0;display:grid}.scenario-card-list{gap:10px;max-height:min(520px,62vh);padding-right:4px;display:grid;overflow-y:auto}.scenario-card{text-align:left;background:#20241e;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;width:100%;min-height:96px;padding:8px;display:grid}.scenario-card:hover,.scenario-card:focus-visible{border-color:#9eb67d}.scenario-card.is-selected{border-color:#c7e36e;box-shadow:inset 0 0 0 1px #c7e36e38}.scenario-card img{aspect-ratio:16/10;object-fit:cover;background:#0b0d0a;border-radius:4px;width:112px;display:block}.scenario-card span{gap:5px;min-width:0;display:grid}.scenario-card strong{color:#eef1eb;text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;line-height:1.2;overflow:hidden}.scenario-card small{color:#a5aea0;font-size:.78rem;line-height:1.35}.runtime-input{color:#eef1eb;background:#0f110f;border:1px solid #454c41;border-radius:6px;outline:none;width:100%;min-height:40px;padding:0 11px}.runtime-input:focus{border-color:#b8cc92}.runtime-input:disabled{color:#71766c;background:#141713;border-color:#30352d}.key-panel{border-top:1px solid #2d312a;border-bottom:1px solid #2d312a;gap:14px;padding:12px 0;display:grid}.key-group{gap:7px;display:grid}.key-group>span{color:#a5aea0;font-size:.78rem;line-height:1.2}.key-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:34px;gap:6px;display:grid}.key-grid kbd{color:#aab2a5;background:#0f110f;border:1px solid #3b4138;border-radius:6px;place-items:center;min-width:0;font-family:inherit;font-size:.82rem;font-weight:800;display:grid}.move-grid kbd[data-key=w],.camera-grid kbd[data-key=i]{grid-area:1/2}.move-grid kbd[data-key=a],.camera-grid kbd[data-key=j]{grid-area:2/1}.move-grid kbd[data-key=s],.camera-grid kbd[data-key=k]{grid-area:2/2}.move-grid kbd[data-key=d],.camera-grid kbd[data-key=l]{grid-area:2/3}.key-grid kbd.is-active{color:#11140f;background:#c7e36e;border-color:#edf6a3;box-shadow:0 0 18px #c7e36e59}.run-row{grid-template-columns:minmax(0,1fr) minmax(116px,auto);display:grid}.primary-action{color:#10110f;background:#b9ca72;border-color:#d8e796;font-weight:800}.primary-action:disabled{color:#74786f;background:#1b1d1a;border-color:#33372f}.run-row a{color:#e9ede7;background:#252821;border:1px solid #565d50;border-radius:6px;place-items:center;min-height:40px;padding:0 12px;font-weight:700;text-decoration:none;display:grid}.readout-row{border-top:1px solid #2d312a;justify-content:space-between;min-height:38px;padding-top:4px}.readout-row span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.error-line{color:#f09a87;overflow-wrap:anywhere;margin:0;line-height:1.4}.sidebar-footer{justify-content:flex-end;align-items:center;gap:6px;margin-top:auto;padding-top:2px;display:flex}.about-button,.github-link{color:#858f80;border:1px solid #0000;border-radius:6px;place-items:center;width:34px;height:34px;text-decoration:none;display:grid}.about-button{min-height:34px;padding:0;font-size:.95rem;font-weight:800}.about-button:hover,.about-button:focus-visible,.github-link:hover,.github-link:focus-visible{color:#c7d4bc;border-color:#3d4538}.github-link svg{width:20px;height:20px;display:block}.about-modal-backdrop{z-index:20;background:#050605b8;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.about-modal{background:#171916;border:1px solid #3e4539;border-radius:8px;gap:14px;width:min(560px,100%);max-height:min(680px,100vh - 36px);padding:16px;display:grid;box-shadow:0 28px 80px #00000080}.about-modal-header,.about-modal-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.about-modal-header strong{font-size:.95rem}.about-modal-close{color:#b7c0b0;background:#20241e;place-items:center;width:32px;min-height:32px;padding:0;display:grid}.about-copy{gap:14px;max-height:min(500px,62vh);padding-right:4px;display:grid;overflow-y:auto}.about-copy section{gap:6px;display:grid}.about-copy h2,.about-copy p{margin:0}.about-copy h2{color:#eef1eb;font-size:.9rem;line-height:1.25}.about-copy p{color:#b7c0b0;font-size:.86rem;line-height:1.5}.about-copy a{color:#d3e5a6;text-underline-offset:3px;text-decoration-thickness:1px}.about-copy a:hover,.about-copy a:focus-visible{color:#eef6c6}.about-modal-footer{justify-content:flex-end;padding-top:2px}@media (width<=860px){body{overflow:auto}.game-shell{grid-template-columns:1fr;min-height:100vh}.stage-shell,.control-strip{min-height:auto}.stage-media{aspect-ratio:16/9;object-fit:cover;height:auto}.stage-player{aspect-ratio:16/9;height:auto}.mock-stage img{object-fit:cover}.control-strip{border-top:1px solid #2d312a;border-left:0}.stage-cue{bottom:16px}.scenario-modal-backdrop{align-items:end}.scenario-modal{max-height:calc(100vh - 36px)}.about-modal-backdrop{align-items:end}.about-modal{max-height:calc(100vh - 36px)}.scenario-card{grid-template-columns:96px minmax(0,1fr)}.scenario-card img{width:96px}}@keyframes mock-drift{0%{transform:scale(1.04)translate(-1.2%,-.6%)}to{transform:scale(1.08)translate(1.2%,.8%)}}@keyframes cue-pulse{0%,to{opacity:.45;transform:scale(.85)}50%{opacity:1;transform:scale(1.08)}}
