@import "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wdth,wght@12..96,75..100,400..800&display=swap";:root{--ch-paper:#fffaf0;--ch-ink:#1f1a17;--ch-soft:#5c544d;--ch-red:#ff5a36;--ch-sun:#ffb800;--ch-green:#22b573;--ch-blue:#2d7ff9;--ch-purple:#9b4dff;--ch-pink:#ff3d8b;--ch-accent:var(--ch-red);--ch-font:"Bricolage Grotesque",system-ui,sans-serif;--ch-title:clamp(34px,9vw,56px);--ch-btn:18px;--ch-small:14px;--ch-radius:12px;--ch-in:.18s;--ch-stagger:60ms}.ch-title{font-family:var(--ch-font);font-weight:800;font-stretch:75%;font-size:var(--ch-title);letter-spacing:-.02em;line-height:.92}.ch-small{font-family:var(--ch-font);font-size:var(--ch-small);font-weight:600}.ch-btn{min-height:48px;font:800 var(--ch-btn)/1 var(--ch-font);color:var(--ch-ink);background:var(--ch-paper);border:2px solid var(--ch-ink);border-radius:var(--ch-radius);box-shadow:none;cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:8px;padding:12px 22px;transition:transform .12s,background-color .12s;display:inline-flex}.ch-btn:hover{transform:translateY(-2px)}.ch-btn:active{transform:translateY(1px)}.ch-btn.primary{background:var(--ch-accent)}.ch-btn.danger{background:0 0}.ch-btn:focus-visible{outline:3px solid var(--ch-blue);outline-offset:3px}@keyframes ch-in{0%{opacity:0;transform:translateY(16px)}}.ch-enter>*{animation:ch-in var(--ch-in) ease-out both}.ch-enter>:nth-child(2){animation-delay:calc(var(--ch-stagger)*1)}.ch-enter>:nth-child(3){animation-delay:calc(var(--ch-stagger)*2)}.ch-enter>:nth-child(4){animation-delay:calc(var(--ch-stagger)*3)}.ch-enter>:nth-child(n+5){animation-delay:calc(var(--ch-stagger)*4)}@media (prefers-reduced-motion:reduce){.ch-enter>*{animation-name:none}.ch-btn{transition:none}}:root{--paper:#fffaf0;--ink:#1f1a17;--red:#ff5a36;--gold:#ffb800;--green:#22b573;--blue:#2d7ff9;--purple:#9b4dff;--pink:#ff3d8b}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}html,body{background:var(--paper);overscroll-behavior:none;touch-action:none;height:100%;color:var(--ink);margin:0;font-family:Bricolage Grotesque,system-ui,-apple-system,sans-serif;overflow:hidden}#gl{width:100vw;height:100dvh;display:block;position:fixed;inset:0}#ui{pointer-events:none;height:100dvh;position:fixed;inset:0}#ui button,.modal,.mapcard{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer;border:0}.screen{padding:max(12px,env(safe-area-inset-top)) 16px max(14px,env(safe-area-inset-bottom));flex-direction:column;align-items:center;gap:1.2dvh;display:flex;position:absolute;inset:0}.topbar{justify-content:space-between;align-items:center;width:100%;display:flex}.row{gap:8px;display:flex}.pill{background:var(--paper);border:3px solid var(--ink);box-shadow:0 4px 0 var(--ink);border-radius:999px;padding:6px 14px;font-size:18px;font-weight:800}.pill.coin{color:var(--ink)}.pill.coin:first-letter{color:var(--gold)}.icon{background:var(--paper);border:3px solid var(--ink);width:48px;height:48px;box-shadow:0 4px 0 var(--ink);border-radius:14px;place-items:center;font-size:20px;font-weight:900;display:grid}.title{letter-spacing:-.02em;color:var(--paper);-webkit-text-stroke:3px var(--ink);text-shadow:0 6px 0 var(--ink);flex-direction:column;align-items:center;margin:1dvh 0 0;font-size:min(19vw,15dvh,120px);font-weight:900;font-stretch:75%;line-height:.86;display:flex;transform:rotate(-4deg)}.title span:first-child{color:var(--red)}.title span:last-child{color:var(--gold)}.spacer{flex:1}.mapcard{background:var(--paper);border:3px solid var(--ink);width:min(100%,460px);box-shadow:0 6px 0 var(--ink);border-radius:22px;align-items:center;gap:8px;padding:10px;display:flex}.arrow{background:var(--ink);width:52px;height:64px;color:var(--paper);border-radius:14px;font-size:40px;font-weight:900;line-height:1}.mapinfo{text-align:center;flex:1;min-width:0}.mapname{font-size:26px;font-weight:900;font-stretch:80%}.mapblurb{opacity:.75;font-size:14px}.mapbest{margin-top:4px;font-size:14px;font-weight:700}.dots{justify-content:center;gap:6px;margin-top:6px;display:flex}.dots i{background:#d8cfc3;border-radius:50%;width:9px;height:9px}.dots i.on{background:var(--red)}.big{letter-spacing:.04em;border:3px solid var(--ink);width:min(100%,460px);min-height:64px;box-shadow:0 6px 0 var(--ink);background:var(--paper);border-radius:20px;font-size:28px;font-weight:900}.big.buy{background:var(--gold)}.big.buy:disabled{opacity:.5}.big.ghost{min-height:52px;font-size:20px}.big.small{min-height:52px;font-size:22px}.missions{border:3px solid var(--ink);background:#fffaf0f0;border-radius:18px;width:min(100%,460px);padding:8px 12px}.mis{align-items:baseline;gap:8px;padding:3px 0;font-size:14px;display:flex}.mis .mt{flex:1;font-weight:700}.mis .mp{opacity:.65;font-variant-numeric:tabular-nums}.mis .mr{color:#b07d00;text-align:right;width:44px;font-weight:800}.mis.done{opacity:.55}.mis.done .mt{text-decoration:line-through}.hud{padding:max(10px,env(safe-area-inset-top)) 14px;position:absolute;inset:0}.hudtop{justify-content:space-between;align-items:flex-start;display:flex}.score{color:var(--paper);-webkit-text-stroke:2px var(--ink);text-shadow:0 4px 0 var(--ink);font-variant-numeric:tabular-nums;font-size:40px;font-weight:900;line-height:1}.dist{color:var(--ink);background:#fffaf0d9;border-radius:8px;margin-top:6px;padding:2px 8px;font-size:16px;font-weight:800;display:inline-block}.hr{align-items:center;gap:8px;display:flex}.pw{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.b{color:#fff;border:2px solid var(--ink);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:900}.b.blue{background:var(--blue)}.b.red{background:var(--red)}.b.purple{background:var(--purple)}.b.warn{background:var(--ink);color:var(--gold);animation:.5s infinite alternate blink}@keyframes blink{to{opacity:.5}}.toast{text-align:center;-webkit-text-stroke:2px var(--ink);text-shadow:0 5px 0 var(--ink);opacity:0;font-size:min(12vw,64px);font-weight:900;position:absolute;top:30%;left:0;right:0}.toast.pop{animation:.8s ease-out pop}@keyframes pop{0%{opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.15)}30%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-20px)}}.modal{background:#1f1a178c;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.card{background:var(--paper);border:3px solid var(--ink);width:min(100%,420px);box-shadow:0 8px 0 var(--ink);text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:12px;padding:18px;display:flex}.card h2{margin:0;font-size:30px;font-weight:900}.card p{margin:0;font-size:15px;line-height:1.35}.over{background:#fffaf0d1;justify-content:center}.cause{text-align:center;margin-top:4dvh;font-size:18px;font-weight:800}.bigscore{color:var(--gold);-webkit-text-stroke:3px var(--ink);text-shadow:0 6px 0 var(--ink);font-size:min(22vw,96px);font-weight:900;line-height:1}.sub{font-weight:800}.nb{color:var(--pink);font-size:22px}.stats{text-align:center;gap:16px;font-size:15px;display:flex}.stats b{font-size:22px;display:block}.earned{background:var(--green);color:#fff;border:3px solid var(--ink);text-align:center;border-radius:16px;padding:8px 14px;font-size:14px;font-weight:700}@media (height<=640px){.title{font-size:min(15vw,11dvh)}.mis{font-size:12px}.big{min-height:54px;font-size:24px}}.gc{color:var(--gold)}.acct{display:contents}.acct .cga-fab{border-radius:14px;width:48px;height:48px;box-shadow:0 4px #1f1a17}.passbtn{border:3px solid var(--ink);width:100%;max-width:420px;min-height:48px;color:var(--ink);font:inherit;box-shadow:0 4px 0 var(--ink);cursor:pointer;background:#fffaf0;border-radius:14px;margin-top:10px;font-size:16px;font-weight:900}.passon{color:#ffb800;text-shadow:0 2px #1f1a17;letter-spacing:.04em;margin-top:10px;font-size:14px;font-weight:900}.x2{color:#1f1a17;background:#ffb800;border-radius:8px;padding:0 6px;font-size:.8em;display:inline-block}.charbar{border:3px solid var(--ink);pointer-events:auto;background:#fffaf0eb;border-radius:16px;align-items:center;gap:6px;width:min(100%,460px);padding:5px;display:flex}.carrow{background:var(--paper);border:3px solid var(--ink);border-radius:11px;width:40px;height:44px;font-size:28px;font-weight:900;line-height:1}.charinfo{text-align:left;flex:1;min-width:0;padding-left:4px}.charname{font-size:18px;font-weight:900;font-stretch:80%;line-height:1.1}.charname .tick{color:var(--green);font-style:normal}.charperk{opacity:.7;white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.hire{background:var(--gold);border:3px solid var(--ink);white-space:nowrap;border-radius:11px;height:44px;padding:0 8px;font-size:14px;font-weight:900}.hire:disabled{opacity:.5}.mis .ck{letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--gold);white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:900}.mis.career{border-top:2px dashed #d8cfc3;margin-top:3px;padding-top:5px}.earned.career{background:var(--purple)}.nextgoal{border:3px solid var(--ink);background:#fffaf0f0;border-radius:14px;padding:6px 12px;font-size:14px;font-weight:700}.nextgoal .ck{letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:var(--gold);border-radius:6px;margin-right:4px;padding:1px 6px;font-size:11px;font-weight:900}.nextgoal b{color:#b07d00}.reveal{padding:0 16px max(28px,env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(#1f1a178c 0,#1f1a1700 18% 62%,#1f1a1799 100%);flex-direction:column;justify-content:flex-end;align-items:center;display:flex;position:absolute;inset:0}.reveal:before,.reveal:after{content:"";background:var(--ink);height:9dvh;animation:.35s ease-out both bars;position:absolute;left:0;right:0}.reveal:before{top:0}.reveal:after{z-index:-1;bottom:0}@keyframes bars{0%{height:0}}.rv{text-align:center;margin-bottom:6dvh;animation:.5s cubic-bezier(.2,1.4,.4,1) .15s both rvIn}.rv small{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-size:15px;font-weight:900;display:block}.rv b{color:var(--paper);-webkit-text-stroke:2px var(--ink);text-shadow:0 5px 0 var(--ink);margin:4px 0 8px;font-size:min(13vw,64px);font-weight:900;font-stretch:75%;line-height:.95;display:block;transform:rotate(-3deg)}.rv span{max-width:330px;color:var(--paper);text-shadow:0 2px 6px #0009;font-size:16px;font-weight:700;display:inline-block}.skip{z-index:1;letter-spacing:.14em;text-transform:uppercase;color:#fffaf0b3;font-size:12px;font-weight:800;position:relative}@keyframes rvIn{0%{opacity:0;transform:translateY(30px)scale(.8)}}.lbline{justify-content:space-between;align-items:center;gap:10px;width:min(100%,460px);margin-top:10px;font-size:15px;font-weight:800;display:flex}.lbline .lbmsg.link{cursor:pointer;text-decoration:underline}.lbline button{background:var(--paper);border:3px solid var(--ink);box-shadow:0 3px 0 var(--ink);font:inherit;border-radius:12px;margin-left:auto;padding:6px 12px;font-size:14px;font-weight:900}@media (width<=400px){.topbar .row{gap:6px}.topbar .icon,.acct .cga-fab{width:42px;height:42px}}.big.slim{min-height:48px;font-size:16px}:root{--ch-accent:var(--ch-red)}html,body{font-family:var(--ch-font)}.pill{border-radius:var(--ch-radius);box-shadow:none;border-width:2px;align-items:center;min-height:48px;font-size:17px;display:flex}.icon,.acct .cga-fab{border-radius:var(--ch-radius);box-shadow:none;border-width:2px;font-size:16px}.mapcard{box-shadow:none;border-width:2px;border-radius:16px}.arrow{border-radius:var(--ch-radius);border:2px solid var(--ink)}.mapblurb,.mapbest{font-size:14px}.big{font-family:var(--ch-font);border:2px solid var(--ink);border-radius:var(--ch-radius);box-shadow:none;letter-spacing:0;min-height:56px;font-size:22px;font-weight:800;transition:transform .12s}.big:hover{transform:translateY(-2px)}.big:active{box-shadow:none;transform:translateY(1px)}.big.go{background:var(--ch-accent);color:var(--ink);-webkit-text-stroke:0}.big.ghost,.big.small,.big.slim{min-height:48px;font-size:18px}.btnrow{gap:8px;width:min(100%,460px);display:flex}.btnrow .big{flex:1}.missions{background:var(--paper);border-width:2px;border-radius:16px}.mh{letter-spacing:0;text-transform:none;opacity:1;font-size:15px;font-weight:800}.mis{font-size:14px}.mis .ck,.nextgoal .ck{letter-spacing:0;text-transform:none;color:var(--ink);background:0 0;padding:0;font-size:14px;font-weight:800}.charbar{background:var(--paper);border-width:2px;border-radius:16px}.carrow{border-radius:var(--ch-radius);border-width:2px;width:44px;height:48px}.charperk{font-size:13px}.hire{border-radius:var(--ch-radius);border-width:2px;height:48px;font-size:14px}.b{border-radius:8px;font-size:14px;font-weight:800}.card{box-shadow:none;border-width:2px;border-radius:16px}.card h2{font-size:34px;font-weight:800;font-stretch:75%}.passbtn{border-radius:var(--ch-radius);box-shadow:none;border-width:2px;font-weight:800}.passon{color:var(--ink);text-shadow:none;letter-spacing:0;background:var(--ch-sun);border:2px solid var(--ink);border-radius:var(--ch-radius);padding:4px 10px;font-size:14px}.earned,.nextgoal{border-radius:var(--ch-radius);border-width:2px}.bigscore{text-shadow:none}.lbline button{box-shadow:none;border-width:2px;min-height:48px;font-size:15px;font-weight:800}.rv small{letter-spacing:0;text-transform:none;font-size:16px;font-weight:800}.skip{letter-spacing:0;text-transform:none;font-size:14px}@media (height<=640px){.mis{font-size:13px}.big{min-height:48px;font-size:20px}}.big.cornerhome{z-index:5;top:max(12px,env(safe-area-inset-top));width:auto;padding:0 14px;position:absolute;left:16px}.screen.over{padding-top:calc(max(12px,env(safe-area-inset-top)) + 60px)}.passchip{border:2px solid var(--ink);border-radius:var(--ch-radius);background:var(--paper);min-height:48px;color:var(--ink);font:inherit;cursor:pointer;pointer-events:auto;align-items:center;margin-right:6px;padding:0 12px;font-size:14px;font-weight:800;display:inline-flex}.passchip.on{background:var(--ch-sun,#ffb800);cursor:default}.lockchip{background:var(--ch-sun,#ffb800);color:var(--ink);border:2px solid var(--ink);border-radius:8px;padding:0 6px;font-weight:800;display:inline-block}.mapinfo[data-a=lock]{cursor:pointer;pointer-events:auto}.locksheet{flex-direction:column;gap:10px;max-width:420px;display:flex}.locksheet p{margin:0}.locksheet .big{width:100%;min-height:52px;font-size:17px}.locksheet .earnfree{opacity:.8;font-size:14px}.passline{opacity:.85;pointer-events:auto;cursor:pointer;margin-top:8px;font-size:14px;font-weight:700}.floattoast{left:50%;top:max(72px,env(safe-area-inset-top));z-index:50;color:#fffaf0;pointer-events:none;background:#1f1a17;border-radius:12px;padding:10px 16px;font:800 16px system-ui,sans-serif;position:fixed;transform:translate(-50%)}.near{text-align:center;width:min(100%,460px)}.nearlabel{margin-bottom:6px;font-size:24px;font-weight:900;font-stretch:85%;line-height:1.1}.near.isbest .nearlabel{color:var(--pink)}.track{border:2px solid var(--ink);background:var(--paper);border-radius:999px;height:22px;position:relative;overflow:visible}.track i{width:var(--p);background:var(--gold);border-radius:999px;animation:.9s cubic-bezier(.2,.8,.2,1) .2s both nearfill;position:absolute;top:0;bottom:0;left:0}.track b{top:-7px;bottom:-7px;left:calc(var(--p) - 2px);background:var(--ink);border-radius:2px;width:4px;animation:.9s cubic-bezier(.2,.8,.2,1) .2s both nearmark;position:absolute}.near.isbest .track i{background:var(--pink)}.trackends{opacity:.7;justify-content:space-between;margin-top:3px;font-size:12px;font-weight:800;display:flex}@keyframes nearfill{0%{width:0}}@keyframes nearmark{0%{left:0}}@media (prefers-reduced-motion:reduce){.track i,.track b{animation:none}}.conth{margin:0;font-size:28px;font-weight:900}.contp{text-align:center;max-width:460px;margin:0;font-size:14px;font-weight:700}.contp.small{opacity:.7;font-size:13px}.big:focus-visible,.lbline button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.mult{background:var(--gold);color:var(--ink);border:2px solid var(--ink);border-radius:8px;margin-top:6px;padding:1px 8px;font-size:16px;font-weight:900;display:inline-block}.mult.sm{margin:0 0 0 6px;font-size:14px}.multline{text-align:center}.over .nextgoal{padding:4px 10px}.trackends.center{justify-content:center}.trypass{color:inherit;font:inherit;cursor:pointer;pointer-events:auto;background:0 0;border:2px solid;border-radius:999px;margin-left:4px;padding:3px 10px}.trypass:focus-visible{outline-offset:2px;outline:3px solid}
