@charset "UTF-8";
:root{--paper:#f4ecdd;--ink:#332e27;--muted:#7b6e58;--wine:#742f36}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:14px "Segoe UI",Arial,sans-serif}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;border:0;background:transparent}
button:disabled{cursor:default;opacity:.56}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid #8f4935;outline-offset:3px}
kbd{font:700 9px "Segoe UI",Arial,sans-serif;letter-spacing:.025em;white-space:nowrap}
.page-paper{position:fixed;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:.5;z-index:0}
.page-shell{position:relative;z-index:1;max-width:1376px;margin:auto;padding:0 36px}
.masthead{position:relative;isolation:isolate;height:81px;display:flex;align-items:center;justify-content:space-between}
.paper-surface{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;z-index:-1;pointer-events:none}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-size:14px;font-weight:800;letter-spacing:.16em}
.brand-mark{position:relative;isolation:isolate;display:grid;place-items:center;width:42px;height:44px;color:var(--wine);font-size:30px}
.brand-sub{display:block;color:var(--muted);font-size:6px;letter-spacing:.18em;margin-top:5px}
.masthead-right{display:flex;align-items:center;gap:22px}.edition{font-size:8px;color:var(--muted);letter-spacing:.12em}.edition span{margin-left:10px;color:var(--wine)}
.raster-button{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:42px;padding:10px 19px;color:#fff1d6;background-color:#763837;transition:filter .15s}
.raster-button:hover:not(:disabled){filter:brightness(1.12)}.raster-button:active:not(:disabled){filter:brightness(.9)}
.raster-button:has(>.raster-surface[data-painted]){background-color:transparent}
.raster-surface{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}
.raster-icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;flex:0 0 auto;vertical-align:middle}
.raster-icon canvas{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.quiet-button{font-size:8px;font-weight:700;letter-spacing:.07em;padding:8px 15px;min-height:40px}.quiet-button .raster-icon{width:21px;height:21px}
.title-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:26px 0 24px}
.eyebrow{color:var(--wine);font-size:8px;font-weight:700;letter-spacing:.17em;margin-bottom:8px}
h1{font:normal clamp(30px,3.8vw,53px)/1.09 Georgia,"Times New Roman",serif;letter-spacing:-.043em;margin:0}h1 em{color:var(--wine);font-weight:normal}
.title-note{flex-shrink:0;font:italic 13px/1.7 Georgia,serif;color:var(--muted);margin:10px 0 0}.title-note span{color:var(--wine)}
.game-frame{position:relative;isolation:isolate;aspect-ratio:16/9;overflow:hidden;background:#d4bf9c;user-select:none;-webkit-user-select:none}
#gameCanvas{display:block;width:100%;height:100%}
.hud{position:absolute;inset:18px 23px auto;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;z-index:3;pointer-events:none}
.hud-distance,.hud-fireflies,.pursuit{position:relative;isolation:isolate;padding:8px 13px 10px;color:#403629}
.hud .raster-surface{opacity:.92}.hud-label{display:block;font-size:8px;font-weight:800;letter-spacing:.14em}
.hud-distance strong,.hud-fireflies strong{display:flex;align-items:center;gap:5px;font:normal 32px/1.2 Georgia,serif;letter-spacing:-.03em}
.hud-distance small{font-size:16px;align-self:flex-end;margin-bottom:4px}.best-line{display:block;font-size:6px;letter-spacing:.07em;margin-top:2px}.best-line b{font-weight:700;margin-left:5px}
.hud-fireflies{text-align:right}.hud-fireflies strong{justify-content:flex-end;gap:8px}.firefly-symbol{font-size:25px;color:#9c6a31}
.pursuit{width:28%;text-align:center;padding:10px 15px 17px}.pursuit .hud-label{font-size:7px}
.pursuit-track{position:relative;isolation:isolate;height:7px;margin:14px 9px 0}.pursuit-track>.raster-surface{opacity:.27}
.pursuit-fill{display:block;position:relative;height:7px;width:70%;overflow:hidden;background:none!important;transition:width .2s linear}.pursuit-fill canvas{display:block;width:100%;height:100%;object-fit:cover;filter:sepia(.5) saturate(.65) brightness(1.5)}
.monster-dot,.runner-dot{position:absolute;top:-8px;font:bold 19px/1 Georgia,serif;z-index:1;color:#635239}.monster-dot{left:-11px}.runner-dot{right:-12px;font-size:16px}
.illustrated-menu{position:absolute;z-index:10;isolation:isolate;left:50%;top:54%;transform:translate(-50%,-50%);display:grid;grid-template-columns:62% 38%;width:min(850px,86%);aspect-ratio:2.2;max-height:calc(100% - 105px);overflow:auto;overscroll-behavior:contain;background:var(--paper);scrollbar-width:thin;scrollbar-color:#a28560 #f1e4ca}
.menu-paper,.menu-frame,.menu-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:-3}
.menu-frame{z-index:-2}.menu-scene{inset:10px;width:calc(100% - 20px);height:calc(100% - 20px);z-index:-1;object-position:left center}
.menu-art{min-width:0;min-height:100%}
.menu-copy{position:relative;isolation:isolate;padding:22px 24px 22px 14px;display:flex;flex-direction:column;justify-content:center;min-width:0;text-align:left}
.menu-copy-paper{display:block;position:absolute;inset:12px 10px 12px 0;width:calc(100% - 10px);height:calc(100% - 24px);object-fit:cover;z-index:-1;opacity:.96;pointer-events:none}
.menu-title-paper{display:none}
.menu-help{width:min(940px,94%);height:min(390px,calc(100% - 92px));max-height:calc(100% - 92px);aspect-ratio:auto}
.menu-help>.menu-scene{width:calc(62% - 12px);height:calc(100% - 20px);object-fit:contain;object-position:center}
.menu-help .menu-copy{padding-top:17px;padding-bottom:17px}
.card-kicker{display:block;font-size:7px;font-weight:800;letter-spacing:.12em;color:#7d4036}
.menu-copy h2{font:italic normal clamp(28px,3vw,39px)/1.03 Georgia,serif;letter-spacing:-.045em;margin:11px 0 13px}
.menu-copy p{font-size:11px;line-height:1.65;color:#65513d;margin:0 0 8px;max-width:330px}
.menu-copy .ink-emphasis{font:italic 18px/1.2 Georgia,serif;color:var(--wine);margin:3px 0 14px}
.primary-button{display:flex;justify-content:space-between;gap:13px;min-height:46px;width:100%;padding:14px 20px;font-size:9px;font-weight:700;letter-spacing:.1em;line-height:1.3}
.primary-button>span:not(.raster-icon){position:relative}.primary-button>span[aria-hidden]{font:normal 23px/.75 Georgia,serif}
.start-hint{font-size:8px;color:#786047;margin-top:10px;line-height:1.5}.start-hint kbd{font-size:8px}
.hidden{display:none!important}
.illustrated-menu:has(>.menu-scene[data-painted]),.toast:has(>.raster-surface[data-painted]){background:transparent}
.result-stats{display:flex;gap:30px;margin:8px 0 18px}.result-stats strong{display:block;color:var(--wine);font:normal 34px/1.15 Georgia,serif}.result-stats span{display:block;font-size:6px;letter-spacing:.08em;margin-top:5px;color:#80654b}
.panel-close{position:sticky;align-self:flex-end;top:6px;right:0;margin:-13px -17px -24px 0;z-index:7;padding:0;width:36px;height:36px;min-height:36px;flex:0 0 auto;background:transparent}.panel-close .raster-icon{width:22px;height:22px}
.instructions-panel .menu-copy{padding-top:24px;padding-bottom:22px}.instructions-panel .menu-copy h2{font-size:34px;margin-bottom:10px}
.instruction-row{display:flex;align-items:center;gap:10px;margin:8px 0 0}.instruction-row>kbd{flex:0 0 77px;font-size:8px;color:#79543b}.instruction-row strong{font:normal 15px/1.2 Georgia,serif}.instruction-row p{font-size:9px;line-height:1.5;margin:4px 0 0}
.instructions-panel .help-foot{font-size:9px;line-height:1.5;margin:13px 0}.instructions-panel .primary-button{min-height:43px;padding-block:12px}
.scene-caption{position:absolute;bottom:19px;left:24px;color:#fff0d1;font-size:7px;letter-spacing:.13em;text-shadow:1px 1px 2px #362d28;z-index:3}
.game-tools{position:absolute;bottom:12px;right:16px;display:flex;gap:6px;z-index:6}
.round-button{width:36px;height:36px;min-height:36px;padding:5px;background:transparent}.round-button .raster-icon{width:24px;height:24px}
.dash-indicator{position:absolute;isolation:isolate;bottom:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:6px;z-index:3;padding:7px 12px;color:#4f3e2d}.dash-indicator>.raster-surface{opacity:.88}
.lantern-icon{width:26px;height:30px}.dash-text{display:block;font-size:6px;font-weight:800;letter-spacing:.08em;margin-bottom:5px}
.energy-track{position:relative;isolation:isolate;display:block;width:90px;height:6px}.energy-track>.raster-surface{opacity:.25}.energy-track>span{display:block;position:relative;width:100%;height:100%;overflow:hidden;transition:width .15s}.energy-track>span canvas{width:100%;height:100%;object-fit:cover;filter:sepia(.7) brightness(1.6)}
.dash-indicator kbd{font-size:7px}.dash-indicator.empty{opacity:.62}
.toast{position:absolute;isolation:isolate;left:50%;top:24%;transform:translate(-50%,-7px);opacity:0;z-index:8;pointer-events:none;padding:10px 19px;color:#674634;font:italic 14px/1.4 Georgia,serif;max-width:85%;text-align:center;transition:opacity .18s,transform .18s;background:var(--paper)}.toast.visible{opacity:1;transform:translate(-50%,0)}
.below-game{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 0}.control-legend{display:flex;gap:22px;color:#7e6d55;font-size:10px}.control-legend>span{display:flex;align-items:center;gap:6px}.control-legend kbd{color:#624a34}
.help-button{font-size:8px;font-weight:700;letter-spacing:.08em;padding:9px 15px;min-height:39px;white-space:nowrap}.help-button .raster-icon{width:18px;height:18px}
.touch-controls{display:none;gap:8px;margin:0 0 6px}.touch-controls button{flex:1;min-width:0;min-height:50px;padding:10px 12px;gap:7px;font-size:9px;font-weight:800;letter-spacing:.08em;touch-action:none}.touch-controls .raster-icon{width:27px;height:27px}
footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0 24px;color:#968367;font-size:6px;letter-spacing:.11em}footer>span:first-child{font:italic 12px Georgia,serif;letter-spacing:0}footer i{font-style:normal;margin:0 7px;color:#9d6c47}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.game-frame:fullscreen{width:100vw;height:100vh;aspect-ratio:auto;background:#252b24}.game-frame:fullscreen #gameCanvas{object-fit:contain}.game-frame:fullscreen .illustrated-menu{top:50%}
@media(min-width:1600px){.page-shell{max-width:1440px}.masthead{height:90px}.title-row{padding:30px 0}}
@media(max-width:1050px){.page-shell{padding:0 24px}.masthead{height:72px}.title-row{padding:22px 0}.title-note{font-size:12px}.menu-copy{padding:23px 26px 23px 20px}.menu-copy h2{font-size:35px}.menu-copy p{font-size:10px}.menu-copy .ink-emphasis{font-size:16px}.card-kicker{font-size:6px}.primary-button{font-size:8px;padding:12px 16px;min-height:42px}.instructions-panel .menu-copy h2{font-size:29px}.instruction-row{gap:7px;margin-top:7px}.instruction-row>kbd{flex-basis:66px;font-size:7px}.instruction-row strong{font-size:13px}.instruction-row p,.instructions-panel .help-foot{font-size:8px}.instructions-panel .help-foot{margin:10px 0}.control-legend{gap:14px}.hud{inset:14px 17px auto}.hud-distance strong,.hud-fireflies strong{font-size:28px}.hud-label{font-size:7px}.pursuit .hud-label{font-size:6px}.best-line{font-size:5px}}
@media(max-width:700px){.page-shell{padding:0 12px}.masthead{height:62px}.brand{font-size:11px;letter-spacing:.12em;gap:7px}.brand-mark{width:31px;height:35px;font-size:24px}.brand-sub{font-size:5px;letter-spacing:.1em}.edition{display:none}.quiet-button{font-size:6px;padding:8px 10px;gap:5px}.quiet-button .raster-icon{width:18px;height:18px}.title-row{padding:18px 0}.eyebrow{font-size:6px;letter-spacing:.12em;margin-bottom:7px}h1{font-size:29px;line-height:1.08}h1 em{display:block}.title-note{display:none}.game-frame{aspect-ratio:4/3}#gameCanvas{position:absolute;width:133.333%;height:100%;left:-6%}.hud{inset:7px 7px auto;gap:5px}.hud-distance,.hud-fireflies{padding:5px 7px 7px}.hud-label{font-size:5px}.hud-distance strong,.hud-fireflies strong{font-size:22px}.hud-distance small{font-size:11px;margin-bottom:3px}.hud-fireflies strong{gap:4px}.firefly-symbol{font-size:18px}.best-line{font-size:4px}.hud-fireflies .best-line{display:none}.pursuit{padding:7px 7px 12px;width:35%}.pursuit .hud-label{font-size:4.5px;letter-spacing:.02em}.pursuit-track{margin:12px 7px 0;height:5px}.pursuit-fill{height:5px}.monster-dot,.runner-dot{font-size:15px;top:-6px}.runner-dot{font-size:13px}.illustrated-menu{display:block;top:53%;width:calc(100% - 18px);aspect-ratio:auto;max-height:calc(100% - 76px)}.menu-art{height:96px;min-height:96px}.menu-scene{top:7px;left:7px;width:calc(100% - 14px);height:96px;object-fit:cover;object-position:left 15%}.menu-copy{padding:11px 17px 15px;display:block}.menu-copy-paper{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;pointer-events:none}.card-kicker{display:none}.menu-copy h2{position:absolute;top:-78px;right:17px;width:46%;margin:0;font-size:26px;line-height:1.02}.menu-copy h2 br{display:initial}.menu-copy p{font-size:10px;line-height:1.5;max-width:none;margin-bottom:7px}.menu-copy .ink-emphasis{font-size:14px;margin:3px 0 10px}.primary-button{min-height:44px;font-size:8px;padding:12px 16px}.start-hint{font-size:7px;margin-top:7px}.result-stats{gap:28px;margin:6px 0 12px}.result-stats strong{font-size:26px}.result-stats span{font-size:5px}.instructions-panel .menu-copy{padding:9px 15px 14px}.instructions-panel .menu-copy h2{font-size:24px;top:-75px}.panel-close{position:sticky;display:flex;float:right;top:4px;margin:-4px -4px 0 6px;width:39px;height:39px;min-height:39px}.instruction-row{gap:9px;margin-top:7px}.instruction-row>kbd{flex-basis:67px;font-size:7px}.instruction-row strong{font-size:13px}.instruction-row p,.instructions-panel .help-foot{font-size:9px;line-height:1.5}.instructions-panel .help-foot{margin:11px 0}.instructions-panel .primary-button{min-height:44px}.scene-caption{bottom:13px;left:10px;font-size:4.5px;letter-spacing:.05em}.game-tools{right:7px;bottom:7px;gap:4px}.round-button{width:31px;height:31px;min-height:31px;padding:4px}.round-button .raster-icon{width:22px;height:22px}.dash-indicator{bottom:7px;left:53%;padding:5px 7px;gap:4px}.lantern-icon{width:21px;height:24px}.dash-text{font-size:4.5px;margin-bottom:4px}.energy-track{width:57px;height:5px}.dash-indicator kbd{display:none}.toast{top:23%;font-size:11px;padding:7px 13px}.below-game{padding:11px 0;gap:10px}.control-legend{gap:12px;font-size:8px}.control-legend kbd{font-size:8px}.control-legend span:nth-child(3),.pause-legend{display:none!important}.help-button{font-size:6px;padding:8px 12px;min-height:37px;gap:4px}.help-button .raster-icon{width:17px;height:17px}.touch-controls{display:flex}.touch-controls button{padding:9px 7px;gap:4px;min-height:48px;font-size:8px}.touch-controls .raster-icon{width:25px;height:25px}footer{padding:15px 0 21px;font-size:4.5px;gap:5px}footer>span:first-child{font-size:10px}footer i{margin:0 3px}#fullscreenButton{display:none}}
@media(max-width:380px){.brand{font-size:10px}.brand-sub{font-size:4px}h1{font-size:27px}.menu-art{height:88px;min-height:88px}.menu-scene{height:88px}.menu-copy h2{top:-71px;font-size:23px}.instructions-panel .menu-copy h2{top:-70px;font-size:22px}.menu-copy p{font-size:9px}.menu-copy .ink-emphasis{font-size:13px}}
@media(pointer:coarse){.touch-controls{display:flex}.raster-button{min-height:44px}.round-button,.panel-close{width:44px;height:44px;padding:7px;min-height:44px}.round-button .raster-icon,.panel-close .raster-icon{width:25px;height:25px}.touch-controls button{min-height:50px}#fullscreenButton{display:none}.game-tools{bottom:7px}.scene-caption{max-width:31%}.start-hint{font-size:7px}}
@media(max-height:600px) and (orientation:landscape){.game-frame{width:min(100%,calc(92svh * 16 / 9));aspect-ratio:16/9;margin-inline:auto}#gameCanvas{width:100%;left:0}.illustrated-menu{top:53%;max-height:calc(100% - 74px);width:88%;aspect-ratio:2.2}.menu-copy{padding:18px 23px 18px 17px}.menu-copy h2{font-size:28px;margin:8px 0 9px}.menu-copy p{font-size:9px}.card-kicker{font-size:5px}.menu-copy .ink-emphasis{font-size:14px;margin-bottom:10px}.primary-button{font-size:7px;min-height:39px;padding:11px 14px}.instructions-panel .menu-copy{padding-top:18px;padding-bottom:18px}.instructions-panel .menu-copy h2{font-size:26px}.instructions-panel .help-foot{font-size:8px}.start-hint{font-size:6px}.instruction-row strong{font-size:12px}.instruction-row p{font-size:8px}.instruction-row>kbd{font-size:6px;flex-basis:60px}.hud{inset:8px 12px auto}.hud-distance,.hud-fireflies{padding:5px 8px}.hud-distance strong,.hud-fireflies strong{font-size:24px}.best-line{font-size:4px}.pursuit{padding-top:6px;padding-bottom:11px}.pursuit-track{margin-top:11px}.hud-label{font-size:5px}.pursuit .hud-label{font-size:5px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media(max-width:700px){.illustrated-menu{top:50%;max-height:calc(100% - 16px)}.illustrated-menu .start-hint{display:none}.menu-help{width:calc(100% - 18px);height:auto;max-height:calc(100% - 16px)}.menu-help>.menu-scene{width:calc(100% - 14px);height:96px;object-fit:contain;object-position:left center}.menu-copy h2{isolation:isolate}.menu-title-paper{display:block;position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);object-fit:cover;pointer-events:none;z-index:-1}.menu-help .menu-copy{padding-top:9px;padding-bottom:14px}.menu-caught .result-stats{margin-top:4px;margin-bottom:8px}}
@media(pointer:coarse){.primary-button,.help-button,.quiet-button{min-height:44px}}
/* A menu is the whole game aperture: one unframed illustrated paper page. */
#gameFrame.menu-open #gameCanvas,#gameFrame.menu-open>.hud,#gameFrame.menu-open>.game-tools,#gameFrame.menu-open>.scene-caption,#gameFrame.menu-open>.dash-indicator,#gameFrame.menu-open>.toast{visibility:hidden;pointer-events:none}
#gameFrame.menu-open~.touch-controls{visibility:hidden;pointer-events:none}
#gameFrame .illustrated-menu{inset:0;left:0;top:0;transform:none;width:100%;height:100%;min-height:0;max-height:100%;aspect-ratio:auto;grid-template-columns:62% 38%;background:var(--paper);overflow:auto}
#gameFrame .menu-paper{inset:0;width:100%;height:100%;object-fit:cover;opacity:1}
#gameFrame .menu-scene{inset:0;width:62%;height:100%;object-fit:cover;object-position:45% center}
.menu-scene-mobile{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:-1}
#gameFrame .menu-help>.menu-scene{object-fit:contain;object-position:left center}
#gameFrame .menu-copy{padding:28px 32px 28px 22px}
#gameFrame .menu-copy h2{font-size:clamp(29px,3.2vw,44px)}
#gameFrame .menu-help .menu-copy{padding-top:22px;padding-bottom:22px}
@media(max-width:1050px){#gameFrame .menu-copy{padding:22px 25px 22px 18px}#gameFrame .menu-copy h2{font-size:34px}#gameFrame .menu-help .menu-copy{padding-top:18px;padding-bottom:18px}}
@media(max-width:700px){#gameFrame .illustrated-menu{display:block;inset:0;width:100%;height:100%;max-height:100%}#gameFrame .menu-scene{display:none}#gameFrame .menu-scene-mobile{display:block;inset:0;width:100%;height:100px;object-position:left 15%}#gameFrame .menu-help>.menu-scene-mobile{width:60%;object-fit:contain;object-position:left center}#gameFrame .menu-art{height:100px;min-height:100px}#gameFrame .menu-copy{padding:10px 18px 15px}#gameFrame .menu-copy h2{top:-80px;right:17px;width:36%;font-size:23px;line-height:1.04}#gameFrame .menu-help .menu-copy{padding:9px 17px 14px}#gameFrame .menu-help .menu-copy h2{top:-79px;font-size:23px}#gameFrame .panel-close{top:4px}#gameFrame .menu-caught .result-stats{margin-top:4px;margin-bottom:8px}}
@media(max-width:380px){#gameFrame .menu-art{height:88px;min-height:88px}#gameFrame .menu-scene-mobile{height:88px}#gameFrame .menu-copy h2{top:-72px;font-size:21px}#gameFrame .menu-help .menu-copy h2{top:-72px;font-size:21px}}
@media(max-width:700px){#gameFrame .menu-caught>.menu-scene-mobile{width:62%;object-fit:contain;object-position:left top}}



