@font-face{font-family:Fredoka;src:url(fonts/fredoka-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Fredoka;src:url(fonts/fredoka-latin-500-normal.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Fredoka;src:url(fonts/fredoka-latin-600-normal.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Fredoka;src:url(fonts/fredoka-latin-700-normal.woff2) format("woff2");font-weight:700;font-display:swap}:root{--teal: #3fa7a3;--teal-d: #2b7f7d;--teal-l: #cdeee8;--orange: #f29b52;--orange-d: #d9773a;--cream: #f6ead2;--cream-d: #e6d3ae;--brown: #4a3326;--brown-m: #7a5236;--red: #e0584f;--green: #5bb56a;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#bfe6e8;font-family:Fredoka,system-ui,sans-serif;color:var(--brown);user-select:none;-webkit-user-select:none;touch-action:none}#app canvas{display:block;touch-action:none}button{font:inherit;color:inherit;cursor:pointer}.btn{background:var(--orange);color:#fff;border:3px solid var(--brown);border-radius:16px;padding:10px 16px;font-weight:700;font-size:16px;box-shadow:0 4px 0 var(--brown);text-shadow:0 2px 0 rgba(74,51,38,.35);transition:transform .06s,box-shadow .06s}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--brown)}.btn.teal{background:var(--teal)}.btn.cream{background:var(--cream);color:var(--brown);text-shadow:none}.btn.red{background:var(--red)}.btn.small{padding:6px 10px;font-size:14px;border-radius:12px;box-shadow:0 3px 0 var(--brown)}.btn:disabled{filter:grayscale(.7) opacity(.65)}#hud{position:fixed;inset:0;pointer-events:none;z-index:10}#hud>*{pointer-events:auto}#top{position:absolute;top:calc(8px + var(--safe-t));left:8px;right:8px;display:flex;gap:6px;align-items:center}.pill{background:var(--cream);border:3px solid var(--brown);border-radius:999px;padding:3px 10px 3px 6px;font-weight:700;font-size:16px;display:flex;align-items:center;gap:5px;box-shadow:0 3px 0 var(--brown);white-space:nowrap}.pill b{font-weight:700}.coin{width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe7a8,#f3b74a 60%,#c9832c);border:2px solid var(--brown);display:inline-grid;place-items:center;font-size:10px;font-weight:700;color:var(--brown)}.coin:after{content:"J"}.spacer{flex:1}.round{width:44px;height:44px;border-radius:50%;border:3px solid var(--brown);background:var(--cream);box-shadow:0 3px 0 var(--brown);font-size:20px;display:grid;place-items:center;padding:0}#goal{position:absolute;top:calc(58px + var(--safe-t));left:50%;transform:translate(-50%);width:min(440px,calc(100% - 16px));background:var(--cream);border:3px solid var(--brown);border-radius:16px;box-shadow:0 3px 0 var(--brown);padding:6px 10px;display:flex;gap:8px;align-items:center}#goal .gi{font-size:22px}#goal .gt{flex:1;font-weight:600;font-size:15px;line-height:1.15}#goal .gh{font-weight:400;font-size:12px;opacity:.8}#goal .bar{height:7px;background:var(--cream-d);border-radius:9px;margin-top:3px;overflow:hidden;border:1.5px solid var(--brown)}#goal .bar i{display:block;height:100%;background:var(--teal);width:0;transition:width .4s}#goal .rw{background:var(--orange);color:#fff;border:2px solid var(--brown);border-radius:10px;padding:1px 6px;font-weight:700;font-size:13px;display:flex;gap:3px;align-items:center}#goal.done{animation:pulse .6s 2}@keyframes pulse{50%{transform:translate(-50%) scale(1.06);background:#fff6c9}}#nav{position:absolute;bottom:calc(10px + var(--safe-b));left:50%;transform:translate(-50%);display:flex;gap:10px}.navb{width:70px;height:66px;border-radius:20px;border:3px solid var(--brown);background:var(--teal);color:#fff;box-shadow:0 4px 0 var(--brown);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:12px;text-shadow:0 1px 0 rgba(0,0,0,.25);padding:0}.navb span{font-size:26px;line-height:1;text-shadow:none}.navb:active{transform:translateY(3px);box-shadow:0 1px 0 var(--brown)}.navb.orange{background:var(--orange)}.navb.on{background:var(--orange-d)}#markers{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}.mk{position:absolute;left:0;top:0;pointer-events:auto;white-space:nowrap;will-change:transform}.mk.sign{background:var(--orange);color:#fff;border:3px solid var(--brown);border-radius:14px;padding:5px 10px;font-weight:700;font-size:14px;box-shadow:0 3px 0 var(--brown);text-shadow:0 1px 0 rgba(0,0,0,.3);animation:bob 1.6s ease-in-out infinite}.mk.sign.locked{background:#a99c86}.mk.sign small{display:block;font-size:11px;font-weight:500;opacity:.95}.mk.bub{background:#f6ead2f2;border:2px solid var(--brown);border-radius:12px;padding:1px 7px;font-weight:700;font-size:13px;pointer-events:none}.mk.gate{background:var(--cream);border:2px solid var(--brown);border-radius:10px;padding:2px 7px;font-weight:700;font-size:12px;box-shadow:0 2px 0 var(--brown)}@keyframes bob{50%{margin-top:-4px}}#pops{position:fixed;inset:0;pointer-events:none;z-index:6}.pop{position:absolute;left:0;top:0;font-weight:700;font-size:18px;color:#fff;text-shadow:0 0 3px var(--brown),0 2px 0 var(--brown),2px 0 0 var(--brown),-2px 0 0 var(--brown),0 -2px 0 var(--brown)}.pop.coin:after{content:none}.pop.coin{background:none;border:0;width:auto;height:auto;color:#ffe08a}#sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;max-height:74vh;background:var(--cream);border-top:4px solid var(--brown);border-radius:22px 22px 0 0;box-shadow:0 -4px #4a332633;transform:translateY(105%);transition:transform .25s ease;display:flex;flex-direction:column;padding-bottom:var(--safe-b)}#sheet.open{transform:translateY(0)}@media(min-width:760px){#sheet{left:50%;width:640px;margin-left:-320px;border:4px solid var(--brown);border-bottom:0}}.sh-head{display:flex;align-items:center;gap:8px;padding:10px 14px 6px}.sh-head h2{margin:0;font-size:22px;flex:1}.sh-body{overflow-y:auto;padding:4px 14px 16px;touch-action:pan-y}.x{width:38px;height:38px;border-radius:50%;border:3px solid var(--brown);background:var(--red);color:#fff;font-weight:700;font-size:18px;box-shadow:0 3px 0 var(--brown);padding:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}.card{background:#fff8ea;border:3px solid var(--brown);border-radius:16px;padding:6px;text-align:center;box-shadow:0 3px 0 var(--brown);position:relative}.card img{width:100%;aspect-ratio:1;object-fit:contain;display:block;background:radial-gradient(circle,#e9f6f1,#d3ece6 70%);border-radius:10px}.card .nm{font-weight:700;font-size:14px;margin-top:4px;line-height:1.1}.card .cost{display:inline-flex;gap:3px;align-items:center;font-weight:700;font-size:14px;margin-top:3px}.card .cost .coin{width:17px;height:17px;font-size:8px}.card.locked{opacity:.55}.card.locked:after{content:"\1f512";position:absolute;top:4px;right:6px}.card .lk{font-size:11px;line-height:1.1;margin-top:2px}.row{display:flex;gap:8px;align-items:center;margin:8px 0;flex-wrap:wrap}.lbl{font-weight:600;min-width:92px}.chip{border:2.5px solid var(--brown);background:#fff8ea;border-radius:12px;padding:5px 10px;font-weight:600;font-size:14px}.chip.on{background:var(--teal);color:#fff}.chip:disabled{opacity:.45}.box{background:#fff8ea;border:2.5px solid var(--brown);border-radius:14px;padding:8px 10px;margin:8px 0}.muted{opacity:.75;font-size:14px}.train-row{display:flex;gap:10px;align-items:center;background:#fff8ea;border:3px solid var(--brown);border-radius:14px;padding:6px 10px;margin:6px 0;box-shadow:0 3px 0 var(--brown)}.train-row img{width:56px;height:56px;border-radius:10px;background:#d3ece6}.train-row .t{flex:1}.scripts{font-size:15px;opacity:.8}.stars{color:var(--orange)}#modal{position:fixed;inset:0;z-index:30;background:#2b201873;display:none;align-items:center;justify-content:center;padding:16px}#modal.open{display:flex}.mcard{background:var(--cream);border:4px solid var(--brown);border-radius:22px;box-shadow:0 6px 0 var(--brown);width:min(420px,100%);padding:16px;text-align:center;animation:popin .25s ease;max-height:92vh;overflow-y:auto}@keyframes popin{0%{transform:scale(.85);opacity:0}}.mcard h2{margin:6px 0;font-size:24px}.mcard p{margin:6px 0 12px;font-size:16px;line-height:1.35}.art{font-size:54px;background:linear-gradient(#cdeee8,#f7e6c4);border:3px solid var(--brown);border-radius:16px;padding:10px;letter-spacing:6px}.opts{display:grid;gap:10px;margin-top:10px}.opt{display:flex;align-items:center;gap:10px;text-align:left;background:#fff8ea;border:3px solid var(--brown);border-radius:16px;padding:10px;box-shadow:0 4px 0 var(--brown);font-weight:600;font-size:15px}.opt .oi{font-size:30px}.opt:active{transform:translateY(3px);box-shadow:0 1px 0 var(--brown)}#toasts{position:fixed;top:calc(120px + var(--safe-t));left:50%;transform:translate(-50%);z-index:25;display:flex;flex-direction:column;gap:6px;align-items:center;pointer-events:none}.toast{background:var(--brown);color:var(--cream);border-radius:14px;padding:8px 14px;font-weight:600;font-size:15px;animation:popin .2s ease;box-shadow:0 3px #00000040;max-width:92vw;text-align:center}#placebar{position:absolute;bottom:calc(10px + var(--safe-b));left:50%;transform:translate(-50%);width:min(460px,calc(100% - 16px));background:var(--cream);border:3px solid var(--brown);border-radius:18px;box-shadow:0 4px 0 var(--brown);padding:8px;display:none;align-items:center;gap:8px}#placebar.open{display:flex}#placebar .pt{flex:1;font-weight:600;font-size:14px;line-height:1.15}#placebar .pt small{display:block;font-weight:500}#placebar .pt small.bad{color:var(--red)}#placebar .pt small.good{color:var(--teal-d)}#title{position:fixed;inset:0;z-index:40;background-image:linear-gradient(#bfe6e800 50%,#4a332673),url(assets/title.jpg)!important;background-size:cover!important;background-position:62% center!important;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:calc(40px + var(--safe-t)) 16px calc(28px + var(--safe-b));background:linear-gradient(#bfe6e800,#f6ead240 60%,#4a332659);transition:opacity .5s}#title.hide{opacity:0;pointer-events:none}.logo{text-align:center;filter:drop-shadow(0 5px 0 var(--brown))}.logo .l1{font-size:clamp(46px,13vw,92px);font-weight:700;color:var(--cream);-webkit-text-stroke:4px var(--brown);paint-order:stroke fill;line-height:.95;letter-spacing:1px}.logo .l1 em{font-style:normal;color:var(--orange);font-size:.62em;vertical-align:middle}.logo .l2{display:inline-block;margin-top:10px;background:var(--teal);color:#fff;border:3px solid var(--brown);border-radius:999px;padding:4px 14px;font-weight:600;font-size:clamp(14px,3.6vw,18px)}.tbtm{display:flex;flex-direction:column;align-items:center;gap:10px}.tbtm .btn{font-size:26px;padding:12px 46px;border-radius:22px}.tbtm small{color:#fff;text-shadow:0 1px 2px var(--brown);font-weight:500}#tour{position:fixed;inset:0;z-index:35;display:none}#tour.open{display:block}#tour .hole{position:absolute;border-radius:18px;box-shadow:0 0 0 9999px #2b20188c;border:3px dashed #fff;transition:all .35s ease;pointer-events:none}#tour .bubble{position:absolute;left:50%;transform:translate(-50%);width:min(380px,calc(100% - 24px));background:var(--cream);border:4px solid var(--brown);border-radius:20px;box-shadow:0 5px 0 var(--brown);padding:12px 14px;transition:top .35s ease}#tour .bubble p{margin:0 0 10px;font-size:16px;line-height:1.35}#tour .bubble .rb{display:flex;gap:8px;justify-content:space-between;align-items:center}#tour .who{display:flex;gap:8px;align-items:center;font-weight:700;margin-bottom:4px}#tour .who img{width:38px;height:38px}.map svg{width:100%;max-height:46vh;display:block}.toggle{width:54px;height:30px;border-radius:999px;border:3px solid var(--brown);background:var(--cream-d);position:relative;padding:0}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;border:2px solid var(--brown);transition:left .15s}.toggle.on{background:var(--teal)}.toggle.on:after{left:26px}textarea{width:100%;min-height:80px;border:2.5px solid var(--brown);border-radius:12px;padding:8px;font:12px monospace;background:#fff;user-select:text;-webkit-user-select:text}a{color:var(--teal-d)}body.titling #hud,body.titling #markers{display:none}
