:root{color-scheme:dark;--bg:#111613;--panel:#17201a;--line:#303c32;--muted:#839184;--text:#e5e8d9;--accent:#c3e9ad;--red:#e58f7a;font-family:'Helvetica Neue','Hiragino Kaku Gothic ProN','Yu Gothic',Meiryo,sans-serif;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.3}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button{border:0}button svg{width:21px;height:21px;display:block}a{color:inherit;text-decoration:none}button,[hidden]{-webkit-user-select:none;user-select:none}[hidden]{display:none!important}kbd{font-family:inherit}.ambient{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 55% 35%,#24322766,transparent 67%),linear-gradient(90deg,#ffffff02 1px,transparent 1px),linear-gradient(#ffffff02 1px,transparent 1px);background-size:auto,64px 64px,64px 64px;z-index:-1}.app{max-width:1224px;margin:auto;padding:0 48px}.masthead{height:88px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d6e0ce12}.brand{display:flex;align-items:center;gap:10px;font-size:16px;letter-spacing:2.2px;font-weight:650}.slash{font-weight:300;color:#647f67;margin:0 1px}.brand-mark{display:grid;grid-template-columns:repeat(2,7px);gap:3px;margin-right:8px;transform:rotate(-2deg)}.brand-mark i{width:7px;height:7px;background:var(--accent);border-radius:1px}.brand-mark i:last-child{background:#456047}.header-right{display:flex;align-items:center;gap:16px}.build-label{font-size:9px;letter-spacing:2px;color:#8f9b8b}.online-dot{width:5px;height:5px;background:#a1bc8a;border-radius:50%;margin-right:13px}.icon-button{background:none;color:#84917f;padding:10px;border:1px solid #394436;border-radius:50%;transition:.2s}.icon-button:hover{color:var(--accent);border-color:#849978}.icon-button svg{width:17px;height:17px}main{padding-top:32px}.room-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow{font-size:10px;font-weight:500;letter-spacing:2.4px;color:#93a18b;display:flex;align-items:center;gap:10px}.tiny-line{width:17px;height:1px;background:#93a18b}h1{font-size:42px;letter-spacing:3px;font-weight:500;margin:15px 0 11px;line-height:1.3}h1 span{color:var(--accent)}.room-heading p{font-size:12px;letter-spacing:2px;color:#8e9a88;margin:0}.room-index{font-family:Georgia,serif;font-size:105px;line-height:1;font-style:italic;color:#7182681f;letter-spacing:-5px;padding-right:10px}.game-shell{position:relative;border:1px solid #4a5b43;border-radius:12px;overflow:hidden;box-shadow:0 30px 80px #0004,0 1px 0 #b8d8aa15;background:#141d16}.window-bar{height:42px;background:#212a21;display:flex;align-items:center;justify-content:space-between;padding:0 17px;color:#8e9b89;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;letter-spacing:.5px;border-bottom:1px solid #3c4a37}.window-dots{display:flex;gap:6px;flex:1}.window-dots i{width:6px;height:6px;border-radius:50%;background:#55614d}.window-dots i:first-child{background:#8b765d}.window-dots i:nth-child(2){background:#8c8c59}.window-dots i:nth-child(3){background:#63845c}.window-actions{display:flex;justify-content:flex-end;align-items:center;gap:17px;flex:1}.text-button{display:flex;gap:6px;background:none;font-size:8px;letter-spacing:1px;color:#9caa94;padding:7px 0}.text-button span{color:#65725f}.text-button[aria-pressed=true] span{color:var(--accent)}.mini-icon{background:none;color:#9aaa90;padding:3px}.mini-icon svg{width:15px;height:15px}.formula-bar{height:34px;background:#1b241c;border-bottom:1px solid #34412f;display:flex;gap:16px;align-items:center;padding:0 17px;color:#91a184;font-size:10px;font-family:ui-monospace,Consolas,monospace}.formula-bar #cellAddress{width:40px}.formula-divider{height:14px;width:1px;background:#3d4b36}.formula-bar i{font-family:Georgia,serif;font-size:16px;color:#65775b}.formula-content{color:#5f7255}.board-wrap{position:relative;width:100%;aspect-ratio:2.04;background:#131d16;overflow:hidden}canvas{display:block;width:100%;height:100%;outline:none}.hint-button{position:absolute;right:20px;top:18px;width:35px;height:35px;background:#223324;border:1px solid #5a7350;border-radius:50%;font-family:Georgia,serif;font-size:21px;color:#d8e8c9;z-index:4;box-shadow:0 3px 10px #0002;transition:.2s}.hint-button:hover{background:#354a2f;transform:rotate(8deg)}.sheet-bar{height:31px;display:flex;align-items:center;gap:15px;background:#172219;border-top:1px solid #34412f;font-size:9px;letter-spacing:.6px;color:#7f9373}.sheet-tab{height:31px;padding:0 17px;border-top:2px solid var(--accent);background:#223323;display:flex;align-items:center;gap:8px;color:#c0d0b3}.tab-dot{height:4px;width:4px;border-radius:50%;background:var(--accent)}.sheet-line{flex:1}.sheet-status{font-family:ui-monospace,monospace;font-size:8px;letter-spacing:1.5px;white-space:nowrap;flex:none;padding-left:10px}.zoom-label{margin:0 17px 0 5px;color:#5e7355}.game-footer{height:61px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;border-top:1px solid #34412f;background:#1b251b}.movement-legend{display:flex;align-items:center;gap:9px;font-size:10px;color:#93a187;letter-spacing:.6px}.movement-legend kbd{display:flex;align-items:center;justify-content:center;border:1px solid #4b5b42;min-width:22px;height:23px;line-height:1;border-bottom-width:2px;border-radius:4px;font-size:11px;color:#b6c2a8}.keycaps{display:flex;gap:4px;margin-right:1px}.legend-divider{height:13px;width:1px;background:#42513a;margin:0 9px}.death-counter{display:flex;align-items:center;gap:9px}.death-counter svg{height:17px;width:17px;color:#9aa58d}.death-counter span{font-size:8px;letter-spacing:1.8px;color:#87977a}.death-counter strong{font-family:ui-monospace,monospace;font-size:17px;font-weight:400;color:#e6e9d8;margin-left:3px;min-width:22px}.below-game{display:flex;align-items:center;justify-content:space-between;margin-top:21px;color:#7a8b72}.room-caption{font-size:10px;letter-spacing:1px;display:flex;align-items:center;gap:8px}.room-caption i{height:4px;width:4px;background:#78986b;border-radius:50%}.edition{font-size:8px;letter-spacing:1.5px;color:#5d7155}.page-footer{display:flex;justify-content:space-between;padding:48px 0 27px;color:#5d7055;letter-spacing:1.3px;font-size:9px}.page-footer span:last-child{font-size:8px;letter-spacing:1.5px}.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:3;background:#111b15ba;backdrop-filter:blur(3px)}.screen-kicker{font-family:ui-monospace,monospace;font-size:9px;letter-spacing:3.3px;color:#b2cb9e}.screen h2{font-size:32px;letter-spacing:4px;font-weight:500;margin:15px 0 25px;line-height:1.5}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:35px;min-width:172px;min-height:43px;border-radius:5px;background:var(--accent);color:#24311e;padding:12px 19px;font-size:12px;font-weight:600;letter-spacing:1px;box-shadow:inset 0 -2px #00000012;transition:background .15s,transform .15s}.primary-button:hover{background:#d4f1bf;transform:translateY(-1px)}.primary-button span{font-size:18px;font-weight:400;line-height:1}.keyboard-note{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.8px;color:#899b7d;margin:19px 0 0}.keyboard-note svg{width:18px;height:13px}.start-orbit{width:50px;height:50px;display:flex;align-items:center;justify-content:center;margin-bottom:23px;border:1px solid #a7c68f33;border-radius:13px;transform:rotate(-7deg);background:#3d50302e;box-shadow:0 0 40px #b4df9620}.little-cell{display:flex;align-items:center;justify-content:center;gap:7px;width:25px;height:27px;background:#e7eed6;border-radius:5px;transform:rotate(7deg);box-shadow:0 4px 0 #b0cb8d}.little-cell i{width:3px;height:6px;border-radius:1px;background:#34442a}.result-screen{background:#111714b3;backdrop-filter:blur(3px)}.result-screen h2{margin:12px 0;font-size:29px}.result-screen p{color:#95a18a;font-size:11px;letter-spacing:1px;margin:0 0 24px}.result-key{font-size:8px;letter-spacing:2px;color:#7a8b70;margin-top:14px}.result-screen.failed .screen-kicker{color:#de9f8a}.result-screen.failed .primary-button{background:#e5ddc8}.result-screen.failed .primary-button:hover{background:#f6eed8}.result-screen.won{background:#16251cb8}.result-screen.won h2{color:#d3efb9}.focus-notice{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#111b1555;z-index:2}.focus-notice button{background:#19271ce8;border:1px solid #738a60;border-radius:7px;padding:14px 23px;color:#d3dfc7;letter-spacing:1px;font-size:12px}.focus-notice button span{margin-left:18px}.dialog{background:#202b20;border:1px solid #5c7050;color:var(--text);border-radius:14px;padding:27px 30px 30px;width:min(430px,calc(100% - 32px));box-shadow:0 24px 90px #0008;max-height:90vh;overflow:auto}.dialog::backdrop{background:#060c08ad;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between}.dialog-top .eyebrow{font-size:9px;letter-spacing:2px}.close-button{background:transparent;width:28px;height:28px;font-size:23px;font-weight:300;color:#92a584;line-height:1}.dialog h2{font-size:22px;letter-spacing:1px;font-weight:500;margin:18px 0}.hint-orb{margin-top:22px;font-family:Georgia,serif;font-size:23px;width:43px;height:43px;display:flex;align-items:center;justify-content:center;border:1px solid #748d60;border-radius:50%;color:#d5eabd;background:#2b3c26}.hint-progress{display:flex;gap:5px;margin:23px 0 0}.hint-progress i{height:3px;width:26px;border-radius:3px;background:#405337}.hint-progress i.active{background:var(--accent)}#hintText{line-height:2.05;letter-spacing:.7px;color:#c3ceb7;min-height:74px;font-size:13px;margin:21px 0 24px;white-space:pre-line}.hint-key-diagram{display:flex;align-items:center;justify-content:center;gap:13px;margin:0 0 25px;color:#93a685}.hint-key-diagram kbd{font-size:15px;padding:12px 18px;border:1px solid #748764;border-bottom-width:4px;border-radius:7px;color:#dbe8cc;background:#2e3e28}.dialog-buttons{display:flex;gap:10px;justify-content:space-between}.dialog-buttons .primary-button{min-width:0;gap:20px;font-size:11px}.secondary-button{background:transparent;color:#a7b59c;padding:12px 5px;font-size:11px}.setting-row{position:relative;display:flex;align-items:center;gap:10px;justify-content:space-between;padding:21px 0;border-bottom:1px solid #405235;font-size:13px;letter-spacing:.5px;cursor:pointer}.setting-row input{position:absolute;right:0;width:40px;height:24px;opacity:0;cursor:pointer}.switch{width:37px;height:22px;background:#3a4932;border:1px solid #607450;border-radius:15px;position:relative;pointer-events:none}.switch::after{content:'';position:absolute;top:3px;left:3px;width:14px;height:14px;border-radius:50%;background:#9daa91;transition:.15s}.setting-row input:checked+.switch{background:#b5dca0}.setting-row input:checked+.switch::after{left:18px;background:#263d1e}.setting-row input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:5px}.settings-note{font-size:10px;color:#93a385;line-height:1.8;margin:19px 0 27px}.settings-dialog .primary-button{width:100%}.mobile-note{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.reduce-motion *{animation:none!important;transition:none!important}
.result-screen.failed{inset:auto 0 0;flex-direction:row;flex-wrap:wrap;gap:8px 22px;padding:30px 20px 18px;background:linear-gradient(#11171400,#111714e0 45%);backdrop-filter:none;animation:fail-in .18s ease-out}.result-screen.failed .screen-kicker{display:none}.result-screen.failed h2{margin:0;font-size:22px;letter-spacing:3px}.result-screen.failed .primary-button{min-width:0;min-height:38px;gap:24px;padding:9px 16px}.result-screen.failed .result-key{margin:0}@keyframes fail-in{from{opacity:0;transform:translateY(8px)}}
.sheet-tabs{display:flex;align-self:stretch;overflow-x:auto;scrollbar-width:none;min-width:0;flex:0 1 auto}.sheet-tabs::-webkit-scrollbar{display:none}.sheet-tabs .sheet-tab{flex:none}.sheet-tabs .sheet-tab{height:100%;border:0;border-top:2px solid transparent;background:none;color:#7f9373;font-size:9px;letter-spacing:.6px;padding:0 14px}.sheet-tabs .sheet-tab .tab-dot{visibility:hidden}.sheet-tabs .sheet-tab.active{border-top-color:var(--accent);background:#223323;color:#c0d0b3}.sheet-tabs .sheet-tab.active .tab-dot{visibility:visible}.sheet-tabs .sheet-tab:not(:disabled):not(.active):hover{color:#c0d0b3}.sheet-tabs .sheet-tab:disabled{opacity:.35}.hint-key-diagram .sep{color:#6d8060;font-size:14px}.hint-key-diagram.compact{gap:7px;flex-wrap:wrap}.hint-key-diagram.compact kbd{font-size:13px;padding:8px 11px;border-bottom-width:3px}
.cell-editor{position:absolute;z-index:5;resize:none;overflow:hidden;margin:0;padding:3px 5px;border:2px solid var(--accent);border-radius:2px;background:#0f1912;color:#e9f3dc;font:12px/1.35 ui-monospace,SFMono-Regular,Consolas,monospace;box-shadow:0 6px 18px #0007;outline:none}
.cmd-panel{position:absolute;z-index:5;left:50%;top:14px;transform:translateX(-50%);width:min(320px,calc(100% - 24px));background:#1d281ef2;border:1px solid #6f8a5f;border-radius:9px;padding:14px 16px 13px;box-shadow:0 14px 40px #0009;font-size:12px;color:#d8e4cb}.result-screen.all-clear{justify-content:flex-start;padding:18px 16px;overflow:auto}.result-screen.all-clear h2{margin:6px 0 4px}.result-screen.all-clear p{margin:0 0 10px}.allclear{list-style:none;margin:0 0 14px;padding:0;width:min(720px,100%);display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:3px 18px;font-size:11px}.allclear li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #2f3d2c;padding:3px 0}.allclear .ac-room{color:#c9d8b5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.allclear .ac-keys{color:#f2d27e;font-family:ui-monospace,monospace;font-size:10px;text-align:right;white-space:nowrap}.cmd-panel.low{top:auto;bottom:14px}.cmd-panel .menu-item{display:block;width:100%;text-align:left;margin:3px 0;background:#223023;border-color:#46593d}.cmd-panel .menu-item:focus{outline:2px solid var(--accent);outline-offset:1px}.sheet-tabs .sheet-tab.sub{font-style:italic;color:#9fb48f}.sheet-tabs .sheet-tab.sub:disabled{opacity:.6}.sheet-tabs .sheet-tab.sub.active{opacity:1}.cmd-panel .cmd-title{font-size:9px;letter-spacing:2px;color:#9fb48f;margin-bottom:10px;display:flex;justify-content:space-between}.cmd-panel label{display:block;font-size:10px;color:#9fb08f;margin:8px 0 4px}.cmd-panel input[type=text]{width:100%;background:#0f1912;border:1px solid #5b7250;border-radius:4px;color:#eef5e3;padding:7px 9px;font:13px ui-monospace,Consolas,monospace}.cmd-panel input[type=text]:focus{outline:2px solid var(--accent);outline-offset:1px}.cmd-panel .cmd-status{min-height:15px;font-size:10px;color:#e3b07f;margin-top:7px}.cmd-panel .cmd-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.cmd-panel button{border-radius:4px;padding:7px 12px;font-size:11px;background:#2c3b2b;color:#d3e0c6;border:1px solid #5b7250}.cmd-panel button.go{background:var(--accent);color:#24311e;border-color:transparent;font-weight:600}.cmd-panel .choice{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:12px;color:#d8e4cb}.cmd-panel .scope{font-size:10px;color:#9fb08f;margin-top:8px}.cmd-panel .note-body{font:15px ui-monospace,Consolas,monospace;background:#f1e7b4;color:#3b3420;border-radius:3px;padding:10px 12px;margin:2px 0 4px;white-space:pre-wrap}.cmd-panel.confirm{text-align:center;padding:18px 18px 15px}.cmd-panel.confirm .big{font-size:15px;letter-spacing:1px;margin:4px 0 6px}.cmd-panel.confirm .art{font-size:26px;letter-spacing:6px;margin:4px 0 8px;color:#e9d08a}.cmd-panel.confirm .cmd-actions{justify-content:center}.cmd-panel.confirm button.go{min-width:120px;font-size:13px;padding:10px 14px}
@media(min-width:1450px){.app{max-width:1344px}.board-wrap{aspect-ratio:2.18}}
@media(max-width:800px){.app{padding:0 23px}.masthead{height:80px}.build-label,.online-dot{display:none}main{padding-top:32px}.room-heading{margin-bottom:23px}h1{font-size:34px;margin-top:12px}.room-index{font-size:86px}.board-wrap{aspect-ratio:1.75}.window-bar{padding:0 12px}.game-footer{padding:0 16px;height:57px}.movement-legend{gap:6px}.legend-divider{margin:0 5px}.death-counter{gap:6px}.edition{display:none}.page-footer{padding-top:36px}.start-orbit{margin-bottom:17px}.screen h2{font-size:28px;margin:12px 0 20px}.hint-button{right:13px;top:13px}}
@media(max-width:540px){.app{padding:0 14px}.sheet-tabs .sheet-tab{padding:0 8px;gap:5px}.sheet-tabs .tab-word{display:none}.zoom-label{display:none}.brand{font-size:12px;gap:7px;letter-spacing:1.3px}.brand-mark{margin-right:3px}.masthead{height:72px}.room-heading p{font-size:11px}.room-index{font-size:72px}.board-wrap{aspect-ratio:1.26}.game-footer{padding:0 12px}.movement-legend .legend-divider,.movement-legend>kbd,.movement-legend>kbd+span{display:none}.movement-legend{font-size:9px}.keycaps{gap:3px}.movement-legend kbd{min-width:18px;height:21px;font-size:10px}.death-counter span{font-size:7px}.death-counter strong{font-size:15px}.window-bar{font-size:9px}.text-button{font-size:7px;gap:4px}.window-actions{gap:10px}.window-dots{gap:4px}.window-dots i{width:5px;height:5px}.room-caption{font-size:9px}.page-footer{font-size:8px;letter-spacing:.5px}.screen h2,.result-screen h2{font-size:25px}.screen-kicker{font-size:8px}.mobile-note{display:block;text-align:center;color:#819475;font-size:10px;margin-top:22px;letter-spacing:.6px}.dialog{padding:22px}.formula-bar{height:30px}.sheet-bar{height:28px}.hint-button{width:31px;height:31px;font-size:19px}.start-orbit{margin-bottom:13px}.keyboard-note{font-size:8px}.primary-button{min-height:41px}.start-screen .primary-button{min-width:153px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.game-shell:fullscreen{display:flex;flex-direction:column;justify-content:center;border-radius:0;background:#111a13;padding:2vh 3vw}.game-shell:fullscreen .board-wrap{flex:1;min-height:0;aspect-ratio:auto}.game-shell:fullscreen .game-footer{flex-shrink:0}

@media(min-width:801px){.board-wrap{aspect-ratio:auto;height:min(430px,calc(100svh - 440px));min-height:280px}.game-shell:fullscreen .board-wrap{height:auto;min-height:0}}
