@font-face{font-family:LocalMono;src:local('SFMono-Regular'),local('Menlo'),local('Consolas');font-display:swap}
:root{color-scheme:dark;--ink:#e1e4d2;--muted:#778d8e;--green:#b9cf8c;--line:#2c3e40;--mono:LocalMono,'Courier New',monospace}
*{box-sizing:border-box}body{margin:0;background:#101a22;color:var(--ink);font-family:var(--mono);background-image:radial-gradient(ellipse at 50% 30%,#1c3034 0,transparent 65%);min-height:100vh}body:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.22' filter='url(%23n)'/%3E%3C/svg%3E")}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:5px}main{max-width:1152px;margin:auto;padding:0 48px}.masthead{height:86px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:20px}.wordmark{text-decoration:none;color:var(--ink);font-size:14px;letter-spacing:2px;font-weight:bold;display:flex;align-items:center;gap:12px}.rat-mark{font-size:22px;color:var(--green);text-shadow:-5px 4px 0 #618176}.edition{font-size:9px;color:var(--muted);letter-spacing:1.1px;margin-left:auto}.small-button{font-size:9px;letter-spacing:1px;border:1px solid #3a5050;background:#1a2b31;padding:9px 10px;margin-left:20px}.small-button span{color:var(--green);margin-left:8px}.game-heading{display:flex;align-items:end;justify-content:space-between;margin:38px 0 25px}.eyebrow{display:flex;align-items:center;gap:9px;color:var(--green);font-size:9px;letter-spacing:2px;margin:0 0 12px}.eyebrow span{width:5px;height:5px;background:var(--green);box-shadow:0 0 9px #b9cf8c44}h1{font-size:36px;letter-spacing:-1.8px;font-weight:600;line-height:1.1;margin:0}h1 span{color:var(--green)}.game-heading>p{color:#8ca09c;font-size:11px;text-align:right;line-height:1.7;margin:0}.arcade{border:1px solid #41544f;background:#0c141b;box-shadow:0 16px 65px #0005,0 0 0 5px #18282b,0 0 0 6px #2e4040}.frame-top,.frame-bottom{height:31px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;color:#91a49a;font-size:8px;letter-spacing:1px}.frame-top{border-bottom:1px solid #344941}.frame-top i{display:inline-block;width:5px;height:5px;background:var(--green);margin-right:6px;box-shadow:0 0 9px #b9cf8c55}.frame-top b{color:#acbb83;margin-left:10px;font-size:7px}.screen-wrap{position:relative;aspect-ratio:16/9;background:#15252d;overflow:hidden}canvas{width:100%;height:100%;display:block;image-rendering:pixelated;image-rendering:crisp-edges;outline:none;touch-action:none}.screen-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 55px #070f1820}.frame-bottom{border-top:1px solid #31423e;font-size:8px}.frame-bottom>span{color:#b2c294}.frame-bottom button{border:0;background:none;font-size:8px;letter-spacing:1px;color:#8b9b90;padding:5px 0 5px 12px}.frame-bottom button span{font-size:13px;margin-left:7px}.under-game{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:23px 0 29px}.controls{display:flex;gap:19px;flex-wrap:wrap}.controls>span{display:flex;align-items:center;font-size:8px;color:#a2afa8;gap:5px;letter-spacing:.5px}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:21px;padding:5px 6px;background:#203237;border:1px solid #40534f;border-bottom:2px solid #4d6259;border-radius:3px;font:9px var(--mono);color:#d5dfc7}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:20px 0 25px;color:#647b7c;font-size:8px;line-height:1.8;letter-spacing:.3px}.story-note{color:#98a895}.story-note>span{color:#b5c986;margin-right:7px}.dot{margin:0 5px}.touch-controls{display:none}.arcade:fullscreen{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;border:0;background:#0c141b}.arcade:fullscreen .screen-wrap{width:min(100vw,calc((100vh - 62px)*16/9));height:auto;flex-shrink:0}.arcade:fullscreen .frame-top,.arcade:fullscreen .frame-bottom{width:100%;max-width:calc((100vh - 62px)*16/9)}
@media(min-width:1450px){main{padding-top:12px}.game-heading{margin-top:45px}}
@media(max-width:780px){main{padding:0 22px}.masthead{height:67px}.edition{display:none}.small-button{margin-left:auto}.game-heading{margin:28px 0 23px}h1{font-size:29px}.controls{gap:12px}.under-game{align-items:flex-start}.controls>span{font-size:7px}footer{flex-direction:column;gap:8px}.game-heading>p{font-size:9px}.wordmark{font-size:11px;letter-spacing:1px}}
@media(max-width:540px){main{padding:0 14px}.wordmark{font-size:10px}.game-heading{margin-top:23px}h1{font-size:25px}.game-heading>p{font-size:8px}.frame-top,.frame-bottom{font-size:6px;padding:0 7px;height:27px}.frame-bottom button{font-size:6px}.frame-top{letter-spacing:.5px}.under-game{margin:18px 0}.controls{gap:8px;max-width:265px}.controls>span{font-size:6px}kbd{font-size:8px;padding:4px;min-width:18px}.screen-vignette{box-shadow:none}}
@media(pointer:coarse){.touch-controls{display:flex;justify-content:space-between;gap:7px;margin:0 0 20px}.touch-controls>div{display:flex;gap:6px}.touch-controls button{touch-action:none;user-select:none;-webkit-user-select:none;border:1px solid #465d58;border-bottom:3px solid #506b5a;background:#263b3d;color:#d3e1bf;border-radius:4px;min-width:43px;min-height:44px;font-size:10px}.touch-controls button:active{background:#4a6250}footer>span:last-child{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
[hidden] { display: none !important; }

.touch-controls>div{flex-wrap:wrap}.touch-controls>div:last-child{justify-content:flex-end}

.chapter-practice{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 24px;font-size:9px;color:#98aba4}.chapter-practice button{background:#243740;border:1px solid #4b625d;padding:9px 11px;font-size:9px}.chapter-practice small{width:100%;font-size:8px;color:#829993}
