:root{--ink:#23445c;--hot:#ff8c1a;--sky:#7cc8f2;--card:#fffdf7;--safe-t:max(12px, env(safe-area-inset-top));--safe-b:max(12px, env(safe-area-inset-bottom));--safe-l:max(12px, env(safe-area-inset-left));--safe-r:max(12px, env(safe-area-inset-right));color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body{background:var(--sky);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;height:100%;margin:0;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}[hidden]{display:none!important}button{font:inherit;color:var(--ink);cursor:pointer;touch-action:manipulation;background:#fff;border:3px solid #23445c26;border-radius:18px;padding:10px 16px;font-weight:800}button:active{transform:translateY(1px)scale(.98)}button.primary{background:var(--hot);color:#fff;border-color:#e0700a}button.ghost{background:0 0;border-color:#0000;text-decoration:underline}button.big{padding:14px 22px;font-size:20px}input[type=text]{font:inherit;min-width:0;color:var(--ink);-webkit-user-select:text;user-select:text;border:3px solid #23445c2e;border-radius:14px;flex:1;padding:11px 14px;font-size:17px}.screen{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l);z-index:20;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}#setup,#loading{background:radial-gradient(circle at 50% 30%,#b8e6ff 0%,#7cc8f2 60%,#5fb0dd 100%)}.screen.dim{-webkit-backdrop-filter:blur(3px);background:#14283c73}.card{background:var(--card);text-align:center;border-radius:28px;width:100%;max-width:520px;margin:auto;padding:24px 24px 18px;box-shadow:0 14px #23445c2e,0 20px 40px #00000026}.card h1{letter-spacing:-.5px;margin:4px 0 6px;font-size:40px}.card h2{margin:6px 0 10px;font-size:26px}.logo{font-size:64px;line-height:1}.lead{margin:0 0 16px;font-size:17px;line-height:1.4}.saved{margin:4px 0 14px}#home-form label{text-align:left;margin-bottom:8px;font-size:18px;font-weight:800;display:block}.row{gap:8px;display:flex}.msg{min-height:1.3em;margin:8px 0 0;font-size:15px}.msg.err{color:#c2361f;font-weight:700}.privacy{opacity:.8;margin:10px 0 0;font-size:13.5px}.spinner{font-size:56px;animation:.9s ease-in-out infinite alternate bob}@keyframes bob{0%{transform:translateY(0)rotate(-8deg)}to{transform:translateY(-12px)rotate(8deg)}}.bar{background:#e7eef3;border-radius:10px;height:16px;margin:6px 0;overflow:hidden}#load-bar{background:linear-gradient(90deg, #ffb347, var(--hot));width:0;height:100%;transition:width .25s}#load-actions{justify-content:center;gap:10px;margin-top:10px;display:flex}#hud{pointer-events:none;z-index:10;position:fixed;inset:0}#hud-left{left:var(--safe-l);top:var(--safe-t);flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute}#hud-right{right:var(--safe-r);top:var(--safe-t);flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute}.hud-row{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:330px;display:flex}.pill{white-space:nowrap;text-overflow:ellipsis;background:#ffffffe6;border-radius:999px;max-width:62vw;padding:7px 14px;font-size:16px;font-weight:800;overflow:hidden;box-shadow:0 3px #23445c26}.hud-btn{pointer-events:auto;font-size:17px;box-shadow:0 4px #23445c2e}.hud-btn.icon{border-radius:16px;width:48px;height:48px;padding:0;font-size:22px}.hud-btn.hot{background:var(--hot);color:#fff;border-color:#e0700a;padding:12px 18px;font-size:19px}#minimap{pointer-events:auto;background:#a8dc84;border:4px solid #fff;border-radius:50%;width:150px;height:150px;box-shadow:0 4px #23445c2e}#credits{right:var(--safe-r);opacity:.75;pointer-events:auto;font-size:11px;position:absolute;bottom:4px}#credits a{color:var(--ink)}.toast{left:50%;top:calc(var(--safe-t) + 70px);white-space:nowrap;background:#fff;border-radius:20px;padding:12px 20px;font-size:20px;font-weight:800;animation:.35s cubic-bezier(.2,1.6,.4,1) pop;position:absolute;transform:translate(-50%);box-shadow:0 6px #23445c33}@keyframes pop{0%{opacity:0;transform:translate(-50%)scale(.4)}to{opacity:1;transform:translate(-50%)scale(1)}}.banner{left:50%;bottom:calc(var(--safe-b) + 18px);pointer-events:auto;text-align:center;background:#fffffff5;border-radius:24px;width:min(560px,100vw - 24px);padding:12px 16px;position:absolute;transform:translate(-50%);box-shadow:0 6px #23445c33}.banner .big-word{font-size:28px;font-weight:900;transition:color .3s}.banner .hint{margin-top:4px;font-size:16px}.banner .actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.banner .sub{opacity:.8;font-size:14px}.chips{flex-wrap:wrap;justify-content:center;gap:8px;margin:8px 0;display:flex}.chip{border-radius:999px;padding:8px 14px;font-size:17px}.chip.on{background:var(--hot);color:#fff;border-color:#e0700a}.gift-grid{grid-template-columns:repeat(5,1fr);gap:8px;margin:10px 0;display:grid}.gift-grid button{padding:6px 0;font-size:30px}.gift-grid button.on{border-color:var(--hot);background:#ffe2c2}.modal-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:14px;display:flex}.note-bubble{background:#fff6d6;border:3px dashed #f0c060;border-radius:20px;margin:12px 0;padding:14px 18px;font-size:22px;font-weight:800}.huge{font-size:84px;line-height:1.1}.pass-card{color:#fff;background:#23445c}.pass-card h2{font-size:32px}.pass-card .chip{color:var(--ink)}.book{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:10px 0;display:grid}.sticker{background:#f1f5f8;border-radius:18px;padding:10px 6px;font-size:14px;font-weight:700}.sticker .e{font-size:40px;display:block}.sticker.got{background:#fff1d6;box-shadow:inset 0 0 0 3px #ffc46b}.sticker.no .e{filter:grayscale();opacity:.35}.finds{text-align:left;max-width:340px;margin:6px auto;font-size:16px}.treasure-list{flex-direction:column;gap:8px;margin:10px 0;display:flex}.small{opacity:.8;font-size:14px}.menu-list{flex-direction:column;gap:10px;margin-top:12px;display:flex}.menu-list a{color:var(--ink);font-weight:800}#confetti{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.cf{font-size:26px;animation:linear forwards fall;position:absolute;top:-40px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}#touch-ui{z-index:5;display:none;position:fixed;inset:0}body.touch #touch-ui.on{display:block}.stick-zone{pointer-events:auto;width:50vw;height:60vh;position:absolute;bottom:0;left:0}.stick-base{background:#ffffff40;border:3px solid #fff9;border-radius:50%;width:110px;height:110px;position:absolute;transform:translate(-50%,-50%)}.stick-nub{background:#ffffffd9;border-radius:50%;width:52px;height:52px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 3px 8px #00000040}.touch-btn{color:var(--ink);pointer-events:auto;background:#ffffff8c;border:3px solid #fffc;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:26px;display:flex;position:absolute}.touch-btn:active{background:#ffffffe6}#tb-run{right:calc(var(--safe-r) + 14px);bottom:calc(var(--safe-b) + 120px);width:84px;height:84px}#tb-jump{right:calc(var(--safe-r) + 108px);bottom:calc(var(--safe-b) + 40px);width:72px;height:72px}body.touch .banner{bottom:auto;top:calc(var(--safe-t) + 4px);width:min(460px,100vw - 380px);min-width:260px}body.touch #minimap{pointer-events:none}body.touch #credits{left:50%;right:auto;transform:translate(-50%)}@media (max-width:640px){.card{border-radius:22px;padding:18px 16px 14px}.card h1{font-size:32px}.row{flex-direction:column}#minimap{width:104px;height:104px}.hud-btn.icon{width:42px;height:42px;font-size:19px}.hud-row{max-width:200px}.hud-btn.hot{padding:9px 12px;font-size:16px}body.touch .banner{width:calc(100vw - 24px);top:auto;bottom:calc(var(--safe-b) + 210px)}.pill{font-size:14px}}#map{z-index:25;background:#9c6b46;position:fixed;inset:0}#map[hidden]{display:none}#map-canvas{touch-action:none;width:100%;height:100%;position:absolute;inset:0}#map-bar{left:var(--safe-l);right:var(--safe-r);top:var(--safe-t);pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex;position:absolute}#map-bar>*{pointer-events:auto}.map-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.map-buttons button{box-shadow:0 4px #23445c2e}.map-buttons button.on{color:#fff;background:#23445c;border-color:#23445c}.car-pick{margin:10px 0 4px}.car-pick h3{text-align:center;margin:6px 0 2px;font-size:18px}.swatches{flex-wrap:wrap;justify-content:center;gap:8px;margin:6px 0;display:flex}.swatch{border:3px solid #fff;border-radius:50%;width:36px;min-width:36px;height:36px;padding:0;box-shadow:0 0 0 1px #0004}.swatch.on{box-shadow:0 0 0 4px var(--hot)}#gps{left:50%;top:var(--safe-t);color:#fff;background:#0f7a45;border-radius:20px;flex-direction:column;gap:6px;width:min(480px,100vw - 460px);min-width:280px;padding:10px 18px 10px 12px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 6px #063c2059}#gps-main{align-items:center;gap:12px;display:flex}#gps-arrow{flex:none;justify-content:center;align-items:center;width:52px;height:52px;display:flex}#gps-arrow svg{width:52px;height:52px}.gps-flag{font-size:40px;line-height:1}#gps-dist{font-size:28px;font-weight:900;line-height:1.05}#gps-text{font-size:18px;font-weight:800;line-height:1.15}#gps-then{background:#0a5c33;border-radius:10px;align-self:flex-start;align-items:center;gap:4px;padding:2px 10px;font-size:15px;font-weight:800;display:flex}#gps-then[hidden]{display:none}.gps-mini svg{vertical-align:middle;width:22px;height:22px}.gps-mini .gps-flag{font-size:18px}#gps-bar{left:50%;bottom:calc(var(--safe-b) + 14px);white-space:nowrap;pointer-events:auto;background:#fffffff5;border-radius:999px;align-items:center;gap:12px;padding:6px 6px 6px 16px;font-size:17px;font-weight:800;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 5px #23445c33}#gps-end{color:#fff;background:#e5484d;border-color:#c93a3f;border-radius:999px;padding:7px 14px;font-size:16px}body.navigating .toast{top:calc(var(--safe-t) + 118px)}body.navigating.touch #gps-bar{bottom:calc(var(--safe-b) + 6px)}@media (max-width:760px){#gps{width:calc(100vw - 24px);top:calc(var(--safe-t) + 150px)}body.navigating .toast{top:calc(var(--safe-t) + 260px)}}#map-hint{left:50%;bottom:calc(var(--safe-b) + 12px);pointer-events:none;position:absolute;transform:translate(-50%)}#map-sheet{left:50%;bottom:calc(var(--safe-b) + 12px);background:var(--card);text-align:center;border-radius:22px;width:min(560px,100vw - 24px);padding:14px 16px 12px;position:absolute;transform:translate(-50%);box-shadow:0 8px #23445c33}#sheet-title{font-size:22px;font-weight:900}#sheet-sub{opacity:.8;margin-top:2px;font-size:15px}.sheet-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:10px;display:flex}#map-sheet .chips{max-height:34vh;overflow-y:auto}
