:root{--lb-world-backdrop:#eed5d0;--lb-world-asphalt:#5e5b73;--lb-world-lane:#4a4860;--lb-world-line:#f4f4ee;--lb-world-kerb:#c5c2d5;--lb-world-pavement:#b4b0c4;--lb-world-plinth:#8c6a5a;--lb-backdrop-lit:#ffe4db;--lb-ink:#3b2340;--lb-ink-muted:#6b4762;--lb-on-ink:#fff7f1;--lb-on-ink-muted:#e8d7df;--lb-panel:#fff7f1;--lb-panel-sunk:#f6e4e4;--lb-outline:var(--lb-ink);--lb-rule:#3b23402e;--lb-shadow-ink:#3b23403d;--lb-scrim:#3b234080;--lb-key:#58395d;--lb-key-edge:#1f1024;--lb-primary:#4cc790;--lb-primary-edge:#23905e;--lb-on-primary:var(--lb-ink);--lb-good:#4cc790;--lb-good-ink:#17734a;--lb-bad:#ef4458;--lb-bad-ink:#c0283f;--lb-fine:#ffd84d;--lb-fine-edge:#d9a520;--lb-clamp:#ff9447;--lb-clamp-edge:#cf6a22;--lb-tow:#cc2742;--lb-tow-edge:#8e1529;--lb-on-tow:#fff7f1;--lb-disabled:#efe2e4;--lb-alert:#ef4458;--lb-coin:#ffc531;--lb-coin-edge:#d99a16;--lb-deed:#fff0c4;--lb-deed-edge:#e2b84a;--lb-sign-blue:#1f5fa8;--lb-select-glow:#62c0ff;--lb-select-glow-halo:#2f8cff;--lb-font-display:DynaPuff, "Arial Rounded MT Bold", system-ui, sans-serif;--lb-font-body:"SN Pro", "Segoe UI", system-ui, sans-serif;--lb-font-mono:"Overpass Mono", ui-monospace, Menlo, monospace;--lb-type-title:700 26px/30px var(--lb-font-display);--lb-type-cash:700 21px/24px var(--lb-font-display);--lb-type-stat:600 19px/21px var(--lb-font-display);--lb-type-button:600 18px/20px var(--lb-font-display);--lb-type-total:700 30px/36px var(--lb-font-display);--lb-type-money-pop:700 22px/24px var(--lb-font-display);--lb-type-body:700 15px/19px var(--lb-font-body);--lb-type-caption:700 13px/16px var(--lb-font-body);--lb-type-plate:700 22px/26px var(--lb-font-mono);--lb-space-1:4px;--lb-space-2:8px;--lb-space-3:12px;--lb-space-4:16px;--lb-space-6:24px;--lb-tap-min:44px;--lb-button-h:56px;--lb-radius-s:9px;--lb-radius-key:12px;--lb-radius-m:14px;--lb-radius-l:22px;--lb-outline-w:2.5px;--lb-rule-w:2px;--lb-press-travel:3px;--lb-text-stroke:5px;--lb-contact:0 5px 0 #3b23403d;--lb-bevel-primary:0 4px 0 #23905e;--lb-bevel-fine:0 4px 0 #d9a520;--lb-bevel-clamp:0 4px 0 #cf6a22;--lb-bevel-tow:0 4px 0 #8e1529;--lb-bevel-secondary:0 4px 0 #3b2340;--lb-bevel-key:0 3px 0 #1f1024;--lb-bevel-deed:0 4px 0 #e2b84a;--lb-marker:0 3px 0 #3b234059;--lb-press-ms:60ms;--lb-pop-ms:.24s;--lb-ease-pop:cubic-bezier(.34, 1.56, .64, 1);--lb-glow-ms:.16s;--lb-tick-ms:.6s;--lb-float-ms:.9s;--st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px)}@font-face{font-family:DynaPuff;font-style:normal;font-weight:600 700;font-display:swap;src:url(/assets/dynapuff-latin-ext-DQAE_Hb8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DynaPuff;font-style:normal;font-weight:600 700;font-display:swap;src:url(/assets/dynapuff-latin-BWa2ZJeG.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:SN Pro;font-style:normal;font-weight:700 800;font-display:swap;src:url(/assets/snpro-latin-ext-D90rEB5c.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:SN Pro;font-style:normal;font-weight:700 800;font-display:swap;src:url(/assets/snpro-latin-CZuRBtv8.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Overpass Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/overpassmono-latin-ext-C0aIey48.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Overpass Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/overpassmono-latin-vNbQIM5P.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}html,body{background:var(--lb-backdrop-lit);touch-action:none;height:100%;font-family:var(--lb-font-body);color:var(--lb-ink);-webkit-user-select:none;user-select:none;margin:0;font-weight:700;overflow:hidden}canvas{width:100vw;height:100dvh;display:block}button{font:inherit;color:var(--lb-ink);border-radius:var(--lb-radius-m);background:var(--lb-panel);min-height:var(--lb-tap-min);box-shadow:var(--lb-contact);touch-action:manipulation;border:0;padding:0 12px;font-weight:700}button:active{transform:translateY(var(--lb-press-travel));box-shadow:none}button.on{background:var(--lb-ink);color:var(--lb-on-ink)}button:focus-visible{outline:3px solid var(--lb-select-glow);outline-offset:3px}.lb-btn,:where(.overlay .card) button{box-sizing:border-box;min-height:var(--lb-tap-min);border-radius:var(--lb-radius-m);font:var(--lb-type-button);color:var(--lb-ink);background:var(--lb-panel);border:var(--lb-outline-w) solid var(--lb-outline);box-shadow:var(--lb-bevel-secondary);transition:transform var(--lb-press-ms), box-shadow var(--lb-press-ms);padding:0 16px;position:relative}.lb-btn small,:where(.overlay .card) button small{font:var(--lb-type-caption)}.lb-btn:active,:where(.overlay .card) button:active{transform:translateY(var(--lb-press-travel));box-shadow:none}.lb-btn-primary,.lb-btn.primary,:where(.overlay .card) button.primary{background:var(--lb-primary);color:var(--lb-on-primary);box-shadow:var(--lb-bevel-primary);min-height:var(--lb-button-h);border:0}.lb-btn-secondary,.lb-btn.secondary,:where(.overlay .card) button.secondary{background:var(--lb-panel);border:var(--lb-outline-w) solid var(--lb-outline);box-shadow:var(--lb-bevel-secondary)}.lb-btn-ghost,.lb-btn.ghost,:where(.overlay .card) button.ghost{background:var(--lb-panel-sunk);box-shadow:0 4px 0 var(--lb-shadow-ink);border:0}.lb-btn-danger,.lb-btn.danger,:where(.overlay .card) button.danger{background:var(--lb-tow);color:var(--lb-on-tow);box-shadow:var(--lb-bevel-tow);border:0}.lb-btn-warn,.lb-btn.warn,:where(.overlay .card) button.warn{background:var(--lb-clamp);color:var(--lb-ink);box-shadow:var(--lb-bevel-clamp);border:0}.lb-btn:disabled,:where(.overlay .card) button:disabled{background:var(--lb-disabled);color:var(--lb-ink-muted);box-shadow:none;border:0;transform:none}.overlay{background:var(--lb-scrim);z-index:5;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.overlay[hidden]{display:none}.card{background:var(--lb-panel);color:var(--lb-ink);width:100%;max-width:440px;padding:16px 16px calc(var(--sb) + 16px);box-sizing:border-box;box-shadow:var(--lb-contact);border-radius:24px 24px 0 0;flex-direction:column;gap:10px;display:flex;overflow:hidden}.overlay:not([hidden])>.card{animation:lb-pop var(--lb-pop-ms) var(--lb-ease-pop) both;transform-origin:50% 100%}.card h2{font:var(--lb-type-title);margin:0}.overlay>.card>h2:first-child{background:var(--lb-ink);color:var(--lb-on-ink);margin:-16px -16px 2px;padding:13px 16px 12px}.row{font:var(--lb-type-body);border-bottom:var(--lb-rule-w) dashed var(--lb-rule);justify-content:space-between;align-items:baseline;gap:12px;padding:5px 0;display:flex}.row span{color:var(--lb-ink-muted)}.row b{font-family:var(--lb-font-display);font-variant-numeric:tabular-nums;font-size:17px;font-weight:600}.row[hidden]{display:none}.row.total{font-size:17px}.row.total b{font-size:19px;font-weight:700}.bad,.row.bad b{color:var(--lb-bad-ink)}.row.good b{color:var(--lb-good-ink)}.actions{gap:8px;display:flex}.actions button{flex:1}@keyframes lb-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important;animation-delay:0s!important}}#top{left:8px;right:8px;top:calc(var(--st) + 8px);pointer-events:none;color:var(--lb-ink);z-index:6;align-items:stretch;gap:5px;display:flex;position:fixed}#top>div{background:var(--lb-panel);border-radius:var(--lb-radius-m);border-bottom:3px solid var(--lb-ink);box-shadow:var(--lb-contact);padding:6px 8px 5px}#top>div.cash{border-bottom-color:var(--lb-good)}#top>div.rep{border-bottom-color:var(--lb-coin);flex:1;min-width:0;overflow:hidden}#top small{font-family:var(--lb-font-body);color:var(--lb-ink-muted);font-size:11px;font-weight:700;line-height:13px;display:block}#top .val{align-items:center;gap:3px;display:flex}#top .val svg{flex:none;width:18px;height:18px}#top b{font-family:var(--lb-font-display);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:19px;font-weight:600;line-height:24px}#top>div.cash b{font-weight:700}#top button.about{pointer-events:auto;min-width:44px;font-family:var(--lb-font-display);background:var(--lb-panel);box-shadow:var(--lb-contact);padding:0;font-size:20px;font-weight:700}body:has(.overlay:not([hidden])) #top button.about{pointer-events:none}#rep-bar{background:var(--lb-rule);border-radius:4px;height:8px;margin:3px 0;overflow:hidden}#rep-fill{width:60%;height:100%;transition:width var(--lb-tick-ms);border-radius:4px}@media (width<=340px){#top>div{padding:6px 6px 5px}#top b{font-size:17px}#top .val svg{width:16px;height:16px}}#deck{left:8px;right:8px;bottom:calc(var(--sb) + 8px);background:var(--lb-ink);color:var(--lb-on-ink);box-shadow:var(--lb-contact);border-radius:20px;flex-direction:column;gap:6px;padding:8px 8px 11px;display:flex;position:fixed}#hint{font:var(--lb-type-caption);color:var(--lb-on-ink);pointer-events:none;text-align:left;padding:0 4px;font-size:14px;line-height:18px}#hint:empty{display:none}#controls{gap:4px;display:flex}#controls .grp{gap:3px;display:flex}#controls .grp.rate{align-items:center;gap:4px;margin-left:auto}#controls button{border-radius:var(--lb-radius-key);background:var(--lb-key);min-width:44px;color:var(--lb-on-ink);font-family:var(--lb-font-display);box-shadow:var(--lb-bevel-key);transition:transform var(--lb-press-ms), box-shadow var(--lb-press-ms);padding:0 7px;font-size:17px;font-weight:600}#controls button.on{background:var(--lb-primary);color:var(--lb-on-primary);box-shadow:none;transform:translateY(var(--lb-press-travel))}#rate{font-family:var(--lb-font-display);white-space:nowrap;text-align:center;font-variant-numeric:tabular-nums;min-width:58px;color:var(--lb-on-ink);font-size:16px;font-weight:700}.plate{font:var(--lb-type-plate);letter-spacing:1px;background:var(--lb-panel);border:var(--lb-outline-w) solid var(--lb-outline);border-radius:var(--lb-radius-s);padding:2px 8px;display:inline-block}.tag{font:var(--lb-type-caption);border-radius:var(--lb-radius-key);background:var(--lb-panel-sunk);vertical-align:middle;margin-left:8px;padding:4px 8px}.tag.vip{background:var(--lb-coin)}.verdict{font:var(--lb-type-body);border-bottom:var(--lb-rule-w) dashed var(--lb-rule);padding:4px 0 8px;font-weight:800}.verdict.bad{color:var(--lb-bad-ink)}.verdict.good{color:var(--lb-good-ink)}.verdict .glyph{margin-right:6px;font-weight:800}.actions.decide{grid-template-columns:1fr 1fr;gap:9px;display:grid}.actions.decide[hidden]{display:none}.actions.decide button{flex-direction:column;justify-content:center;align-items:center;padding:6px 4px 7px;display:flex}.actions.decide small{opacity:1}#sheet-fine:not(:disabled){background:var(--lb-fine);color:var(--lb-ink);box-shadow:var(--lb-bevel-fine);border:0}#sheet-clamp:not(:disabled){background:var(--lb-clamp);color:var(--lb-ink);box-shadow:var(--lb-bevel-clamp);border:0}#sheet-tow:not(:disabled){background:var(--lb-tow);color:var(--lb-on-tow);box-shadow:var(--lb-bevel-tow);border:0}:is(#sheet-fine,#sheet-clamp,#sheet-tow):not(:disabled):active{box-shadow:none}.actions.decide button:disabled{background:var(--lb-disabled);color:var(--lb-ink-muted);box-shadow:none;border:0}#sheet-decide.legal button:not(:disabled){background:var(--lb-panel);color:var(--lb-ink);border:var(--lb-rule-w) dashed var(--lb-ink-muted);box-shadow:none}#sheet-decide.legal button:not(:disabled) small{color:var(--lb-bad-ink)}.rep-block{flex-direction:column;gap:0;display:flex}.rep-block .row.cause{padding-left:10px;font-size:14px}.rep-block .row.down b{color:var(--lb-bad-ink)}.rep-block .row.up b{color:var(--lb-good-ink)}#sum-tip{font:var(--lb-type-body);color:var(--lb-ink-muted);padding-top:2px;font-size:14px}#shop .card{max-height:calc(100dvh - var(--st) - 80px)}#shop-items{touch-action:pan-y;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:0;min-height:0;margin:0 -4px;padding:0 4px 4px;display:flex;overflow-y:auto}.item{border-bottom:var(--lb-rule-w) dashed var(--lb-rule);align-items:center;gap:10px;padding:8px 0 10px;display:flex}.item>div{flex:1;min-width:0}.item b{font:var(--lb-type-body);font-size:16px;display:block}.item small{font:var(--lb-type-caption);color:var(--lb-ink-muted);display:block}.item small.why{color:var(--lb-bad-ink)}.item small.why.owned{color:var(--lb-good-ink)}.item button{font-variant-numeric:tabular-nums;background:var(--lb-primary);min-width:84px;color:var(--lb-on-primary);box-shadow:var(--lb-bevel-primary);border:0}.item button:disabled{background:var(--lb-disabled);color:var(--lb-ink-muted);box-shadow:none}#shop-deed{background:var(--lb-deed);border-radius:var(--lb-radius-m);box-shadow:var(--lb-bevel-deed);align-items:center;gap:10px;margin-bottom:4px;padding:8px 8px 8px 12px;display:flex}#shop-deed[hidden]{display:none}#shop-deed>div{flex:1;min-width:0}#shop-deed:not(:has(button)){flex-direction:column;align-items:stretch;gap:2px;padding:10px 12px}#shop-deed b{font:var(--lb-type-body);display:block}#shop-deed small{font:var(--lb-type-caption);color:var(--lb-ink-muted);display:block}#shop-deed .deed-bar{background:var(--lb-rule);border-radius:4px;height:8px;margin-top:5px;overflow:hidden}#shop-deed .deed-bar i{background:var(--lb-coin);border-radius:4px;height:100%;display:block}#shop-deed button{min-width:84px}#shop-deed button.ready{background:var(--lb-primary);color:var(--lb-on-primary);box-shadow:var(--lb-bevel-primary);border:0}body:has(#shop:not([hidden])):not(:has(.overlay:not([hidden]):not(#shop))) #top button.about{pointer-events:auto}#about p{font:var(--lb-type-body);margin:0;font-size:14px;line-height:1.4}#about a{color:var(--lb-ink);font-weight:800}#about-version{font:var(--lb-type-caption);color:var(--lb-on-ink-muted);margin-left:8px}#about .credits{color:var(--lb-ink-muted);font-size:13px}#about-confirm{background:var(--lb-panel-sunk);border-radius:var(--lb-radius-m);flex-direction:column;gap:8px;padding:10px;display:flex}#about-confirm[hidden],#about-reset[hidden]{display:none}#about-confirm p{color:var(--lb-bad-ink);font-weight:800}#city .card{max-height:calc(100dvh - var(--st) - 80px)}#city-list{touch-action:pan-y;-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:0;min-height:0;margin:0 -4px;padding:0 4px 4px;display:flex;overflow-y:auto}#city-list .item.here{background:var(--lb-panel-sunk);border-radius:var(--lb-radius-m);border-bottom-color:#0000;padding-left:10px;padding-right:8px}#city-list .item.locked{opacity:.6}#city-list .dots{letter-spacing:1px;color:var(--lb-ink);opacity:1}#city-list button.buy{background:var(--lb-primary)}#city-list button.wall{background:var(--lb-panel-sunk);color:var(--lb-ink);box-shadow:0 4px 0 var(--lb-shadow-ink)}#city-list small.why.trial{color:var(--lb-ink-muted)}#city-list button.buy:disabled{background:var(--lb-disabled)}#city-sub,#trial p{font:var(--lb-type-body);margin:0;font-size:14px;line-height:1.4}#trial .note{font:var(--lb-type-caption);color:var(--lb-ink-muted)}#lot-list{touch-action:pan-y;flex-direction:column;gap:6px;min-height:0;max-height:60dvh;display:flex;overflow-y:auto}#arrows{pointer-events:none;z-index:4;position:fixed;inset:0}.edge-arrow{pointer-events:auto;background:var(--lb-panel);width:44px;height:44px;color:var(--c);box-shadow:0 0 0 3px var(--c), var(--lb-marker);font-family:var(--lb-font-display);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:18px;font-weight:700;line-height:1;display:flex;position:absolute;top:-22px;left:-22px}.edge-arrow[hidden]{display:none}.edge-arrow:active{transform:none}.edge-arrow .tip{pointer-events:none;position:absolute;inset:0}.edge-arrow .tip:after{content:"";border:8px solid #0000;border-left:10px solid var(--c);border-right:0;margin-top:-8px;position:absolute;top:50%;right:-13px}.edge-arrow .glyph{position:relative}#fit{right:12px;bottom:calc(var(--sb) + 112px);z-index:4;font:var(--lb-type-button);background:var(--lb-panel);box-shadow:var(--lb-contact);border-radius:var(--lb-radius-key);padding:0 14px;font-size:16px;position:fixed}#fit[hidden]{display:none}#toast{left:50%;top:calc(var(--st) + 66px);opacity:0;transition:opacity var(--lb-pop-ms), transform var(--lb-pop-ms) var(--lb-ease-pop);background:var(--lb-ink);color:var(--lb-on-ink);font:var(--lb-type-body);text-align:center;border-radius:var(--lb-radius-key);box-sizing:border-box;width:max-content;max-width:calc(100vw - 32px);box-shadow:var(--lb-contact);pointer-events:none;z-index:7;padding:10px 16px;position:fixed;transform:translate(-50%,-8px)}#toast.warn{background:var(--lb-fine);color:var(--lb-ink);box-shadow:var(--lb-bevel-fine)}#toast.show{opacity:1;transform:translate(-50%)}#info{right:8px;top:calc(var(--st) + 112px);color:var(--lb-ink);opacity:.55;pointer-events:none;font-size:10px;position:fixed}#rotate{display:none}@media (orientation:landscape) and (height<=520px) and (width<=899.98px){#rotate{z-index:20;background:var(--lb-backdrop-lit);padding:calc(var(--st) + 16px) 16px calc(var(--sb) + 16px);box-sizing:border-box;touch-action:none;pointer-events:auto;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#rotate .card{border-radius:var(--lb-radius-l);text-align:center;width:auto;max-width:420px;box-shadow:var(--lb-contact);align-items:center;padding:20px 24px}#rotate svg{width:112px;height:80px}#rotate p{font:var(--lb-type-body);color:var(--lb-ink-muted);margin:0;font-size:16px;line-height:1.4}}
