@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2)format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff)format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fraunces-latin-700-normal-CEOla-zY.woff2)format("woff2"),url(/assets/fraunces-latin-700-normal-DTjk5d1Q.woff)format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-italic-ChpO6tcr.woff2)format("woff2"),url(/assets/fraunces-latin-400-italic-B7iDoVhm.woff)format("woff")}:root{--night:#070a1c;--panel:#111739;--panel-2:#1a2150;--line:#a0afff21;--ink:#eeebf8;--muted:#a3aad0;--amber:#ffb547;--amber-2:#f29a2e;--amber-ink:#2a1a00;--tender:#ff9db0;--petty:#b9e36a;--mundane:#b7bfd8;--neon:#8dffc1;--gutter:16px;--nav-h:64px;--radius:14px;--display:"Fraunces", Georgia, "Times New Roman", serif;--town-glow:#1c2654;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--night);color:var(--ink);margin:0}body{-webkit-tap-highlight-color:transparent;overscroll-behavior:none;background:radial-gradient(120% 60% at 50% 0%, var(--town-glow), transparent 70%), var(--night);background-attachment:fixed;font:15px/1.4 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}button{font:inherit;color:inherit;cursor:pointer}h2{font:600 1.2rem/1.2 var(--display);letter-spacing:.005em;margin:0 0 .5rem}.muted{color:var(--muted)}[hidden]{display:none!important}svg{display:block}#app{max-width:560px;min-height:100dvh;padding-bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 64px);flex-direction:column;margin:0 auto;display:flex}.hud{padding:calc(10px + env(safe-area-inset-top)) var(--gutter) 8px;z-index:5;background:linear-gradient(var(--night) 78%, #070a1c00);grid-template-columns:auto 1fr;align-items:end;gap:2px 12px;display:grid;position:sticky;top:0}.brand{font:italic 600 1.05rem var(--display);color:var(--amber);letter-spacing:.01em;align-items:center;gap:6px;display:flex}.brand svg{width:22px;height:22px}.money{text-align:right}.coins{font:700 2rem/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.01em;align-items:center;gap:6px;display:inline-flex}.coins svg{width:22px;height:22px;color:var(--amber)}.rate{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.85rem}.chips{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:4px;min-height:22px;display:flex}.chip{color:var(--amber);font-variant-numeric:tabular-nums;white-space:nowrap;background:#ffb5471f;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-flex}.chip svg{width:13px;height:13px}.chip.neon{color:var(--neon);background:#8dffc11f}.chip.warn{color:var(--tender);background:#ff9db024}.scene{height:clamp(200px,33vh,290px);margin:0 var(--gutter);cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 0 0 1px var(--line), 0 18px 40px #00000073;background:var(--sky-top,#070b22);border-radius:18px;position:relative;overflow:hidden;container-type:inline-size}.scene svg{width:100%;height:100%}.scene .far2{fill:var(--far2)}.scene .far{fill:var(--far)}.scene .mid{fill:var(--mid)}.scene .near{fill:var(--near)}.scene .rim{fill:none;stroke:var(--rim);stroke-width:.9px;opacity:.4}.scene .rim-fill{fill:var(--rim);opacity:.3}.scene .door,.scene .dormer{fill:var(--near)}.scene .porch{fill:var(--win)}.scene .win{fill:var(--near);transition:fill 1.2s}.scene .win.lit{fill:var(--win)}.scene .win.occupied{fill:#fff0cc}.scene .win-halo{opacity:0;transition:opacity 1.2s}.scene .win-halo.lit{opacity:1}.scene .mullion{fill:none;stroke:var(--mid);stroke-width:.7px;opacity:.85}.scene .win.pulse{animation:1s ease-out winpulse}@keyframes winpulse{0%{fill:#fff6dc}to{}}.scene .far-light{fill:var(--win);opacity:.7;animation:9s ease-in-out infinite alternate breathe}.scene .far-light.soft{fill:var(--win-glow)}.scene .far-light.big{opacity:.9}@keyframes breathe{0%{opacity:.45}to{opacity:.85}}.scene .clock,.scene .beacon{fill:var(--win);opacity:.85}.scene .hedge{fill:var(--far)}.scene .gate rect{fill:var(--near)}.scene .gate{opacity:.85}.scene .sea{fill:var(--sea,var(--far2))}.scene .sea-glint rect{fill:var(--rim);opacity:.3}.scene .falls{fill:var(--fog);opacity:.5}.scene .smoke circle{fill:var(--fog);opacity:.14}.scene .smoke{animation:14s ease-in-out infinite alternate smoke}@keyframes smoke{0%{transform:translate(0)}to{transform:translate(8px,-4px)}}.scene .beam path{fill:var(--win);opacity:.08}.scene .beam{animation:16s ease-in-out infinite alternate beam}@keyframes beam{0%{transform:rotate(-8deg)}to{transform:rotate(14deg)}}.scene .sails{animation:60s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scene .moon-disc{fill:#f3ead2}.scene .moon-crater{fill:#cbbd98;opacity:.45}.scene .star{fill:#e2e6ff;animation:7s ease-in-out infinite alternate twinkle}@keyframes twinkle{0%{opacity:.25}to{opacity:.85}}.scene .stars,.scene .dawn-glow{transition:opacity 2s}.scene .sky-lantern{animation:7s ease-in-out infinite alternate bob}.scene .lantern-body{fill:#ffe1a6}@keyframes bob{0%{transform:translateY(0)}to{transform:translateY(-3px)}}.scene .rising-lantern{animation:6s ease-out forwards rise}@keyframes rise{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-170px)}}.scene .fog ellipse{fill:var(--fog);opacity:calc(.06 + var(--fog-strength,.1) * .35)}.scene .fog{animation:30s ease-in-out infinite alternate drift}.scene .fog-band{opacity:calc(.18 + var(--fog-strength,.1) * 1.1)}@keyframes drift{0%{transform:translate(-18px)}to{transform:translate(18px)}}.scene .lamp-light{fill:var(--win)}.scene .mailbox-body{fill:#2b3a86}.scene .mailbox-slot{fill:var(--win);opacity:.8}.scene .mailbox-flag{fill:#d9546f}.scene[data-moment=dim] .win.lit{fill:#4a3320;transition:fill 2.5s}.scene[data-moment=dim] .win-halo.lit{opacity:.15;transition:opacity 2.5s}.scene .fx-face{animation:7s ease-in-out forwards fadeinout}.scene .fx-letter{animation:7s ease-in-out forwards floatletter}.scene .fx-shadow,.scene .fx-candle{animation:7s ease-in-out forwards fadeinout}.scene .fx-candle .flame{transform-origin:0 4px;animation:7s ease-in-out forwards lean}@keyframes fadeinout{0%{opacity:0}35%{opacity:1}70%{opacity:1}to{opacity:0}}@keyframes floatletter{0%{opacity:0;transform:translate(0)rotate(-6deg)}30%{opacity:1}to{opacity:0;transform:translate(120px,30px)rotate(8deg)}}@keyframes lean{0%,20%{transform:rotate(0)}60%{transform:rotate(-28deg)}to{transform:rotate(0)}}.scene-caption{-webkit-backdrop-filter:blur(4px);font:italic 400 .93rem/1.38 var(--display);opacity:0;pointer-events:none;z-index:3;background:#060816cc;border-radius:12px;margin:0;padding:9px 12px;transition:opacity .8s,transform .8s;position:absolute;bottom:10px;left:10px;right:10px;transform:translateY(6px)}.scene-caption.show{opacity:1;transform:none}.wisp{z-index:2;background:radial-gradient(circle,#e6f6ff 0 18%,#8fd3ff 30%,#8fd3ff00 70%);border:0;border-radius:50%;width:44px;height:44px;animation:10s ease-in-out forwards wander;position:absolute}@keyframes wander{0%{opacity:0;transform:translate(0)}10%{opacity:1}50%{transform:translate(40px,-12px)}85%{opacity:1}to{opacity:0;transform:translate(80px,-30px)}}.person{z-index:2;background:0 0;border:0;width:44px;height:44px;margin:-26px 0 0 -22px;padding:0;animation:.9s ease-out appear;position:absolute}.person:before{content:"";background:radial-gradient(circle,#ffd68c8c,#ffc76b00 70%);border-radius:50%;width:36px;height:36px;animation:2.6s ease-in-out infinite glowpulse;position:absolute;top:10px;left:4px}.person .who{fill:#1a1206;opacity:.8;width:14px;height:17px;position:absolute;top:20px;left:15px}.person .env{filter:drop-shadow(0 0 4px #ffb547cc);width:18px;height:14px;animation:2.4s ease-in-out infinite alternate bob;position:absolute;top:1px;left:13px}.person .env rect{fill:#f4ead2;stroke:#a08e62;stroke-width:1px}.person .env path{fill:none;stroke:#a08e62;stroke-width:1px}.person.rare:before{background:radial-gradient(circle,#ffec96bf,#ffdc6b00 70%)}.person.rare .env rect{fill:#ffe38a;stroke:#b98a1a}.person.rare .env{filter:drop-shadow(0 0 6px #ffd24a)}@keyframes glowpulse{0%,to{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}.person.leaving{opacity:0;pointer-events:none;transition:opacity .6s}@keyframes appear{0%{opacity:0}to{opacity:1}}.courier{top:var(--y);opacity:.8;pointer-events:none;z-index:1;filter:drop-shadow(0 0 6px #dce4ff73);width:20px;height:24px;animation:20s linear infinite courier;position:absolute;left:-30px}.courier svg{width:100%;height:100%;animation:1.8s ease-in-out infinite alternate bob}@keyframes courier{0%{transform:translate(0)}to{transform:translate(calc(100cqw + 60px))}}.hunter{z-index:2;background:0 0;border:0;width:44px;height:64px;padding:0;position:absolute;bottom:6px}.hunter svg{width:24px;height:40px;position:absolute;bottom:0;left:10px}.hunter .beam{transform-origin:0;clip-path:polygon(0 45%,100% 0,100% 100%,0 55%);pointer-events:none;background:linear-gradient(90deg,#fff4c473,#fff4c400);width:120px;height:60px;animation:5s ease-in-out infinite alternate sweep;position:absolute;bottom:26px;left:30px}.hunter[data-kind=certified] .beam{background:linear-gradient(90deg,#bee6ff80,#bee6ff00)}@keyframes sweep{0%{transform:rotate(-35deg)}to{transform:rotate(-5deg)}}.scene .office-body{fill:#07120f}.scene .office-window{fill:#1b5a44;filter:drop-shadow(0 0 5px #7dffb059)}.scene .office-awning{fill:#0d2a21}.scene .office-stripe{fill:#3dbb7a;opacity:.5}.scene .office-dim{fill:#0e221d}.scene .office-door{fill:#12302a}.scene .office-knob{fill:var(--neon)}.express-sign{letter-spacing:.12em;text-transform:uppercase;text-align:center;color:#c8ffe0;text-shadow:0 0 4px #3dff95,0 0 9px #3dff9599;pointer-events:none;white-space:nowrap;z-index:1;background:#04140e99;border:1px solid #8dffc1b3;border-radius:3px;padding:1px 5px;font:700 8px/1.05 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;position:absolute;transform:translate(-50%,-100%);box-shadow:0 0 10px #3dff9559,inset 0 0 6px #3dff9533}.vane{z-index:2;background:0 0;border:0;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;position:absolute}.vane svg{fill:#02030a;opacity:.75;width:20px;height:30px;transition:opacity .6s;position:absolute;top:8px;left:12px}.vane[data-mode=idle] svg{opacity:.45}.vane .coin{opacity:0;background:radial-gradient(circle at 35% 35%,#fff3c4,#e0a93a 60%,#8a5a12);border-radius:50%;width:10px;height:10px;margin-left:-5px;transition:opacity .6s;position:absolute;top:-4px;left:50%;box-shadow:0 0 6px #ffb547}.vane[data-mode=offer] svg{opacity:1}.vane[data-mode=offer] .coin{opacity:1;animation:1.6s ease-in-out infinite alternate bob}.vane[data-mode=offer]:before{content:"";background:radial-gradient(circle,#7dffb059,#7dffb000 70%);border-radius:50%;width:36px;height:36px;animation:2.6s ease-in-out infinite glowpulse;position:absolute;top:4px;left:4px}.long-letter{z-index:2;filter:drop-shadow(0 4px 10px #00000080)drop-shadow(0 0 8px #ffbe6e8c);background:0 0;border:0;width:48px;height:44px;padding:0;animation:2.8s ease-in-out infinite alternate bob;position:absolute;top:38%;right:10px}.long-letter svg{width:40px;height:30px;margin:7px 4px}.long-letter .ll-paper{fill:#f3e7c8;stroke:#a38c5c;stroke-width:1px}.long-letter .ll-flap{fill:none;stroke:#a38c5c;stroke-width:1px}.long-letter .ll-seal{fill:#b8323f}.ticker{margin:10px var(--gutter) 0;font:italic 400 .8rem/1.3 var(--display);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;overflow:hidden}.ticker.open{white-space:normal}.goal{cursor:pointer;margin:8px var(--gutter) 0;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;align-items:center;gap:8px;padding:9px 12px;font-size:.88rem;display:flex;position:relative;overflow:hidden}.goal:before{content:"";background:var(--amber);width:8px;height:8px;box-shadow:0 0 8px var(--amber);z-index:1;border-radius:50%;flex:none;position:relative}.goal-text{z-index:1;text-overflow:ellipsis;white-space:nowrap;min-width:0;position:relative;overflow:hidden}.goal-bar{transform-origin:0;background:linear-gradient(90deg,#ffb5473d,#ffb54712);transition:transform .3s linear;position:absolute;top:0;bottom:0;left:0;right:0;transform:scaleX(0)}.letter-card{border-left:3px solid var(--mundane);color:#2a2214;font:italic 400 .92rem/1.38 var(--display);opacity:0;pointer-events:none;z-index:4;background:linear-gradient(#f6ecd4,#ecdfbf);border-radius:6px;max-height:calc(100% - 20px);padding:9px 13px;transition:opacity .5s,transform .5s;position:absolute;top:10px;left:10px;right:10px;overflow:auto;transform:translateY(-8px)rotate(-.4deg);box-shadow:0 8px 22px #00000073}.letter-card.show{opacity:1;pointer-events:auto;transform:rotate(-.4deg)}.letter-card[data-tone=tender]{border-left-color:#d9546f}.letter-card[data-tone=petty]{border-left-color:#6a9a1f}.panel{padding:10px var(--gutter) 0;flex-direction:column;flex:1;gap:8px;display:flex}.intro{margin:4px 0}.amounts,.segmented{gap:6px;display:flex}.amounts button,.segmented button{background:var(--panel);min-height:40px;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted);border:0;border-radius:10px;flex:1;font-weight:600}.amounts button.active,.segmented button.active{background:linear-gradient(var(--amber), var(--amber-2));color:var(--amber-ink);box-shadow:0 2px 10px #ffaa3c4d}.route,.ghost,.upgrade,.dawn,.settings,.drawer,.odds,.account,.stats,.promise,.town{border-radius:var(--radius);background:linear-gradient(180deg, #ffffff09, #ffffff02), var(--panel);box-shadow:inset 0 0 0 1px var(--line), inset 0 1px 0 #ffffff0a, 0 6px 18px #00000038;padding:12px;position:relative}.route{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;grid-template-columns:1fr auto;gap:8px 10px;padding:10px 12px;display:grid}.route.locked{opacity:.55}.route.locked .track,.route.locked .route-info{visibility:hidden}.route.staffed{cursor:default}.route-head{align-items:center;gap:12px;min-width:0;display:flex}.route-title{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.route-title strong{font:600 1rem/1.2 var(--display)}.route-title small{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.tag{letter-spacing:.02em;white-space:nowrap;border-radius:999px;margin-top:3px;padding:1px 7px;font-size:.7rem;font-weight:600;display:inline-block}.tag.loved{color:var(--amber);background:#ffb54729}.tag.shrug{color:var(--muted);background:#a3aad024}.tag.remember{color:var(--neon);background:#8dffc11f}.ring{--p:0;background:conic-gradient(var(--amber) calc(var(--p) * 1turn), #a0afff29 0);border-radius:50%;flex:none;place-items:center;width:46px;height:46px;display:grid;position:relative}.ring .icon{width:38px;height:38px;color:var(--amber);background:radial-gradient(circle at 50% 35%,#232b66,#121840);border-radius:50%;place-items:center;display:grid}.ring .icon svg{width:22px;height:22px}.route.staffed .ring .icon{color:#ffd690}.owned{min-width:22px;height:18px;box-shadow:0 0 0 1.5px var(--amber);font-variant-numeric:tabular-nums;color:var(--ink);background:#0b0f2a;border-radius:9px;place-items:center;padding:0 5px;font:700 .66rem/1 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;display:grid;position:absolute;bottom:-4px;right:-7px}.owned.bump{animation:.35s ease-out bump}@keyframes bump{50%{transform:scale(1.25)}}.track{background:#00000059;border-radius:4px;grid-column:1/-1;height:8px;overflow:hidden;box-shadow:inset 0 1px 2px #0006}.bar{background:linear-gradient(90deg, #d9862b, var(--amber) 70%, #ffd892);transform-origin:0;border-radius:4px;height:100%;transform:scaleX(0)}.bar.blur{background:repeating-linear-gradient(90deg, #d98b2b 0 10px, var(--amber) 10px 20px);background-size:40px 100%;animation:1s linear infinite flow}@keyframes flow{to{background-position:40px 0}}.route-info{grid-column:1/-1;margin-top:-2px;font-size:.78rem}.buy{background:linear-gradient(#ffc766, var(--amber-2));min-width:118px;min-height:44px;color:var(--amber-ink);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;border:0;border-radius:12px;padding:0 12px;font-weight:700;transition:transform 80ms,box-shadow 80ms;position:relative;box-shadow:inset 0 1px #ffffff73,0 3px #b86f18,0 6px 14px #ff962838}.buy:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #ffffff73,0 1px #b86f18}.route .buy{flex-direction:column;grid-area:1/2;justify-content:center;align-self:center;min-width:96px;padding:4px 12px;line-height:1.1;display:flex}.route .buy .verb{opacity:.75;font-size:.72rem;font-weight:600}.route .buy .cost{font-size:1.02rem}.buy:disabled{background:var(--panel-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);cursor:default}.buy.hint,.deliver.hint{animation:1.6s ease-in-out infinite hint}@keyframes hint{0%,to{box-shadow:0 0 #ffb54799}50%{box-shadow:0 0 0 7px #ffb54700}}.route.milestone{animation:1.6s ease-out glow}.route.milestone .ring{animation:1.6s ease-out ringflare}@keyframes glow{0%{box-shadow:inset 0 0 0 2px var(--amber), 0 0 26px #ffb54780}to{}}@keyframes ringflare{0%{box-shadow:0 0 #ffc864cc}to{box-shadow:0 0 0 16px #ffc86400}}.pop{color:var(--amber);font:700 .95rem var(--display);pointer-events:none;text-shadow:0 2px 6px #0009;animation:.9s ease-out forwards pop;position:absolute;top:6px;right:16px}@keyframes pop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-22px)}}.spark{z-index:20;pointer-events:none;background:radial-gradient(circle at 35% 35%,#fff4c8,#ffb547 60%,#a8680f);border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;animation:.7s cubic-bezier(.2,.7,.4,1) forwards spark;position:fixed}@keyframes spark{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(.4);opacity:0}}.ghost{grid-template-columns:56px 1fr;align-items:start;gap:4px 12px;display:grid}.ghost .portrait{background:radial-gradient(circle at 50% 40%,#2a3478,#131a44);border-radius:16px;grid-row:span 5;place-items:center;width:56px;height:56px;display:grid}.ghost .portrait svg{width:48px;height:48px}.ghost.hired .portrait{box-shadow:0 0 0 2px #ffb54799,0 0 18px #ffb54740}.ghost strong{font:600 1.05rem var(--display)}.ghost p,.upgrade p{margin:0;font-size:.88rem}.ghost .flaw{color:var(--tender)}.ghost .buy{justify-self:start;margin-top:6px}.upgrade{flex-direction:column;gap:4px;display:flex}.upgrade strong{font:600 1rem var(--display)}.upgrade .buy{align-self:flex-start;margin-top:6px}.g-body{fill:#eef0ff}.g-eye{fill:#121634}.g-line{fill:none;stroke:#121634;stroke-width:1.5px;stroke-linecap:round}.g-line.thick{stroke-width:2.4px}.g-blush{fill:#ff9db0;opacity:.6}.g-acc{fill:#ff9db0}.g-hat{fill:#1a1f44}.g-paper{fill:#f3e7c8}.g-ink{fill:none;stroke:#9c8e6a;stroke-width:1px}.g-glow{fill:#ffd780;opacity:.35}.g-bulb{fill:#ffe7a0;stroke:#b88a2a;stroke-width:.8px}.g-coin{fill:#ffc24a;stroke:#a8680f;stroke-width:.8px}.g-candy{fill:#ff8fb0}.g-candy-swirl{fill:none;stroke:#fff;stroke-width:1.2px}.g-quill{fill:#f3e7c8;stroke:#9c8e6a;stroke-width:.8px}.g-veil{fill:#1a1f44;opacity:.88}.g-lit{fill:#ffc56a}.v-glow{fill:#3dff95;opacity:.12}.v-suit{fill:#0b1a15}.v-shirt{fill:#d8f5e6}.v-face{fill:#cfe8dc}.v-band{fill:#3dbb7a}.v-eye{fill:#0b1a15}.dawn p,.settings p,.drawer p,.odds p,.account p,.stats p,.promise p,.town p{margin:.35rem 0}.big{font:700 1.6rem var(--display);color:var(--amber)}.primary{background:linear-gradient(#ffc766, var(--amber-2));width:100%;min-height:48px;color:var(--amber-ink);border:0;border-radius:14px;margin-top:8px;font-weight:700;box-shadow:inset 0 1px #ffffff73,0 3px #b86f18}.primary:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px #ffffff73,0 1px #b86f18}.primary:disabled{background:var(--panel-2);color:var(--muted);box-shadow:none}.secondary{background:var(--panel-2);width:100%;min-height:44px;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);border:0;border-radius:12px;margin-top:8px}.toggle{justify-content:space-between;align-items:center;min-height:44px;display:flex}.toggle input{width:22px;height:22px;accent-color:var(--amber)}.drawer blockquote{color:#2a2214;font:italic .92rem/1.42 var(--display);background:linear-gradient(#f6ecd4,#ecdfbf);border-radius:6px;margin:.5rem 0;padding:9px 11px}.drawer h3{font:600 .95rem var(--display);color:var(--amber);margin:.8rem 0 .2rem}.drawer .from{color:#6b5a3a;margin-top:4px;font:.75rem system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue;display:block}.code{letter-spacing:.06em;color:var(--amber);-webkit-user-select:all;user-select:all;font:600 1.1rem ui-monospace,Menlo,monospace}.code-input{border:1px solid var(--line);background:var(--night);width:100%;min-height:44px;color:var(--ink);text-transform:uppercase;border-radius:10px;margin:6px 0;padding:0 10px;font:1rem ui-monospace,monospace}.account button:not(.primary){background:var(--panel-2);min-height:44px;box-shadow:inset 0 0 0 1px var(--line);border:0;border-radius:10px;padding:0 16px}.collection{grid-template-columns:repeat(2,1fr);gap:6px;margin-top:6px;display:grid}.collection span{background:#0003;border-radius:10px;padding:6px 8px;font-size:.82rem}.collection span.met{color:#ffe38a;box-shadow:inset 0 0 0 1px #ffe38a59}.deliver{left:50%;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom) + 10px);z-index:6;min-width:180px;min-height:52px;color:var(--ink);font:600 1.05rem var(--display);touch-action:manipulation;background:#2a3270;border:0;border-radius:26px;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000080}.deliver.ready{background:linear-gradient(#ffc766, var(--amber-2));color:var(--amber-ink)}.tabs{z-index:6;padding-bottom:env(safe-area-inset-bottom);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);background:#090c20f0;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:96px;height:var(--nav-h);color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:0 2px;font-size:.72rem;display:flex;position:relative}.tab svg{width:22px;height:22px}.tab.active{color:var(--amber);font-weight:600}.tab.active:before{content:"";background:var(--amber);height:2px;box-shadow:0 0 8px var(--amber);border-radius:0 0 2px 2px;position:absolute;top:0;left:30%;right:30%}.tab.badge:after{content:"";background:var(--amber);border-radius:50%;width:8px;height:8px;position:absolute;top:10px;right:calc(50% - 18px);box-shadow:0 0 0 2px #090c20f0}.overlay{z-index:10;padding:var(--gutter);padding-bottom:calc(var(--gutter) + env(safe-area-inset-bottom));background:#03040c9e;place-items:end center;animation:.25s ease-out fadein;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fadein{0%{opacity:0}}.sheet{background:linear-gradient(180deg, #1a2150, var(--panel) 40%);width:100%;max-width:528px;max-height:calc(100dvh - 40px);box-shadow:inset 0 0 0 1px var(--line), 0 24px 60px #0009;border-radius:20px;padding:18px;animation:.35s cubic-bezier(.2,.8,.3,1) slideup;overflow-y:auto}@keyframes slideup{0%{opacity:0;transform:translateY(30px)}}.sheet p{margin:.4rem 0}.sheet .dusk{color:var(--amber)}.sheet .kicker,.town .kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--amber);margin:0;font-size:.72rem}.haunt h2{margin:.15rem 0 .3rem;font-size:1.4rem}.haunt .descriptor{font:italic .96rem/1.38 var(--display);margin:0}.haunt .mood{color:var(--tender);margin:.4rem 0 0;font-size:.88rem}.haunt.rare .kicker{color:#ffe38a}.paper{border-left:3px solid var(--mundane);color:#2a2214;font:italic .97rem/1.42 var(--display);background:linear-gradient(#f6ecd4,#ecdfbf);border-radius:6px;margin:.7rem 0 .4rem;padding:11px 13px;box-shadow:0 4px 12px #0000004d}.paper[data-tone=tender]{border-left-color:#d9546f}.paper[data-tone=petty]{border-left-color:#6a9a1f}.haunt .hint{margin:.2rem 0 .6rem;font-size:.82rem}.spooks{flex-direction:column;gap:6px;display:flex}.spook{background:var(--panel-2);min-height:46px;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);touch-action:manipulation;border:0;border-radius:12px;justify-content:space-between;align-items:center;padding:0 14px;font-weight:600;display:flex}.spook:active{background:var(--amber);color:var(--amber-ink)}.spook-dots{letter-spacing:2px;color:var(--amber);font-size:.7rem}.haunt.result h2{font-size:1.7rem}.haunt.result[data-outcome=right] h2{color:var(--amber)}.haunt.result[data-outcome=much] h2{color:var(--tender)}.haunt.result[data-outcome=little] h2{color:var(--muted)}.reaction{font:italic 1.02rem/1.42 var(--display)}.streak{color:var(--amber);font-weight:600}.offering{color:var(--petty)}.collect{color:#ffe38a;font-weight:600}.sheet.long-sheet{color:#2a2214;background:linear-gradient(#f7eed8,#ebdcb8)}.long-sheet .kicker{color:#9a3a3a}.long-sheet h2{color:#2a2214;font-size:1.45rem}.long-sheet .meta{color:#6b5a3a;margin:0 0 .6rem;font-size:.8rem}.long-sheet .body{font:italic 1.02rem/1.55 var(--display)}.long-sheet .seal{color:#b8323f;float:right;width:38px;height:38px;margin:0 0 6px 10px}.long-sheet .primary{color:#f7eed8;box-shadow:none;background:linear-gradient(#3a2a18,#22180c)}.long-sheet .next{color:#6b5a3a;font-size:.82rem}.pop-row{grid-template-columns:7.5em 1fr 3em;align-items:center;gap:8px;margin:6px 0;font-size:.88rem;display:grid}.pop-bar{background:#0000004d;border-radius:4px;height:8px;position:relative;overflow:hidden}.pop-bar:after{content:"";width:var(--w);background:var(--mundane);border-radius:4px;position:absolute;top:0;bottom:0;left:0;right:auto}.pop-bar[data-side=good]:after{background:var(--tender)}.pop-bar[data-side=bad]:after{background:var(--petty)}.pop-share{text-align:right;font-variant-numeric:tabular-nums}.segmented button[aria-checked]{font-variant-numeric:tabular-nums}.meter{background:#0000004d;border-radius:5px;height:10px;overflow:hidden}.meter-fill{transform-origin:0;background:linear-gradient(90deg,#b9e36a,#ff9db0);height:100%;transition:transform .5s linear;display:block;transform:scaleX(0)}.guide-row{border-top:1px solid var(--line);justify-content:space-between;gap:10px;padding:8px 0;font-size:.9rem;display:flex}.guide-row:first-of-type{border-top:0}.twist{align-items:center;gap:10px;padding:6px 0;display:flex}.twist .icon{width:34px;height:34px;color:var(--amber);background:#ffb5471f;border-radius:10px;flex:none;place-items:center;display:grid}.twist .icon svg{width:20px;height:20px}.twist.shrug .icon{color:var(--muted);background:#a3aad01f}.twist-why{font-size:.82rem}.desk-options{flex-direction:column;gap:8px;margin:.6rem 0 .2rem;display:flex}.desk-option{background:var(--panel-2);width:100%;min-height:44px;box-shadow:inset 0 0 0 1px var(--line);text-align:left;touch-action:manipulation;border:0;border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.desk-option strong{font:600 1.05rem var(--display)}.desk-option .effects{color:var(--muted);font-size:.8rem}.desk-option[data-desk=blessings] strong{color:var(--tender)}.desk-option[data-desk=grudges] strong{color:var(--petty)}.desk-option.current{box-shadow:inset 0 0 0 2px var(--amber)}.desk-option .tag{letter-spacing:.06em;text-transform:uppercase;color:var(--amber);margin:0;padding:0;font-size:.7rem}.vane-sheet .kicker{color:var(--neon)}.vane-sheet .vane-head{align-items:center;gap:12px;display:flex}.vane-sheet .vane-head svg{background:radial-gradient(circle at 50% 40%,#12382a,#07120f);border-radius:16px;flex:none;width:56px;height:56px}.vane-sheet .offer{font:italic 1.04rem/1.42 var(--display)}.vane-sheet .stakes{color:var(--amber)}.bet-bar{background:#0000004d;border-radius:4px;height:8px;margin:.5rem 0;overflow:hidden}.bet-bar span{background:linear-gradient(90deg, #3dbb7a, var(--neon));transform-origin:0;height:100%;display:block}.breakdown{font-size:.85rem}@media (prefers-reduced-motion:reduce){.courier{left:calc(20% + var(--y));animation:none}.hunter .beam{animation:none;transform:rotate(-20deg)}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scene .rising-lantern,.scene .fx-letter,.spark{display:none}.wisp{opacity:1;animation:none}}
