:root{--cream: #fff6e3;--cream-2: #f6e7c1;--cream-3: #ead6a8;--ink: #3b2e1e;--ink-soft: #6b5a43;--green: #5e9a4b;--green-dark: #3f7a3a;--green-light: #9ccb74;--earth: #8a5a3b;--rose: #e5546b;--sun: #f6be3b;--shadow: 0 6px 18px rgba(59, 46, 30, .18);--radius: 20px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--font: ui-rounded, "SF Pro Rounded", "Nunito", "Segoe UI", system-ui, -apple-system, sans-serif;color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--cream);color:var(--ink);font-family:var(--font);-webkit-text-size-adjust:100%;overscroll-behavior:none}body{touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}#app{position:fixed;inset:0;display:flex;flex-direction:column;padding-left:var(--safe-left);padding-right:var(--safe-right);background:linear-gradient(#fff6e3,#f3e6c4)}button{font:inherit;color:inherit}.hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:calc(var(--safe-top) + 6px) 14px 4px}.title{margin:0;font-size:20px;font-weight:800;color:var(--green-dark);letter-spacing:.2px;white-space:nowrap}.petals{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:4px 14px 4px 8px;border-radius:999px;background:#fff;border:2px solid var(--cream-3);box-shadow:var(--shadow);font-size:20px}.petals b{min-width:1.5em;font-variant-numeric:tabular-nums}.petals.bump{animation:bump .4s ease}.listik-btn{justify-self:end;width:56px;height:56px;border-radius:50%;border:2px solid var(--cream-3);background:#fff;box-shadow:var(--shadow);display:grid;place-items:center;padding:0;cursor:pointer}.listik-svg{display:block}.quest{padding:2px 12px 6px}.quest-card{position:relative;display:flex;gap:8px;align-items:flex-start;padding:8px 40px 8px 8px;border-radius:var(--radius);background:var(--cream);border:2px solid var(--cream-3);box-shadow:var(--shadow)}.quest-card.collapsed{align-items:center}.quest-card.collapsed .quest-avatar .listik-svg{width:36px;height:36px}.quest-avatar{flex:none}.quest-avatar .listik-svg{width:42px;height:42px}.quest-body{min-width:0}.quest-title{font-size:13px;font-weight:800;color:var(--green-dark);text-transform:none}.quest-body p{margin:2px 0 4px;font-size:15px;line-height:1.32}.goals{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}.goals li{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:700;color:var(--ink-soft)}.goals li svg{width:20px;height:20px;flex:none;color:var(--cream-3)}.goals li.done{color:var(--green-dark)}.goals li.done svg{color:var(--green)}.collapsed .goals li{font-size:14px}.quest-toggle{position:absolute;top:4px;right:4px;width:44px;height:44px;border:0;background:transparent;font-size:20px;color:var(--ink-soft);cursor:pointer}.stage{position:relative;flex:1 1 auto;min-height:0;background:#8cbf6a;border-radius:26px 26px 0 0;margin:0 6px;overflow:hidden;box-shadow:inset 0 0 0 3px #fff6e399}#scene{display:block;width:100%;height:100%}.plot,.landmark,.slot.editable{cursor:pointer}.mode-chip{position:absolute;left:10px;right:10px;bottom:10px;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 14px;border-radius:18px;background:var(--cream);border:2px solid var(--cream-3);box-shadow:var(--shadow);font-size:15px}.mode-chip[hidden]{display:none}.mode-chip span{flex:1;line-height:1.25}.nav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 10px calc(var(--safe-bottom) + 8px);background:var(--cream);border-top:2px solid var(--cream-3)}.nav button{min-height:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:16px;background:transparent;color:var(--ink-soft);font-size:14px;font-weight:800;cursor:pointer}.nav button svg{width:28px;height:28px}.nav button.active{background:#e3efc9;color:var(--green-dark)}.nav button.dim{opacity:.55}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:52px;padding:10px 18px;border-radius:16px;border:2px solid var(--cream-3);background:#fff;font-size:17px;font-weight:800;cursor:pointer;box-shadow:0 3px 0 var(--cream-3)}.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--cream-3)}.btn.small{min-height:44px;padding:6px 12px;font-size:15px;border-radius:14px}.btn.primary{background:var(--green);border-color:var(--green-dark);color:#fff;box-shadow:0 3px 0 var(--green-dark)}.btn.danger{color:#a3283e;border-color:#efb9c2;box-shadow:0 3px #efb9c2}.btn.ghost{background:transparent}.btn.wide{width:100%;margin-top:10px}.btn:disabled{opacity:.5;cursor:default;transform:none}.sheet-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:#3b2e1e59;animation:fade .2s ease}.sheet-backdrop[hidden]{display:none}.sheet{position:relative;width:min(560px,100%);max-height:calc(100% - var(--safe-top) - 24px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:22px 18px calc(var(--safe-bottom) + 20px);padding-left:calc(18px + var(--safe-left));padding-right:calc(18px + var(--safe-right));border-radius:28px 28px 0 0;background:var(--cream);box-shadow:0 -8px 30px #3b2e1e40;animation:rise .25s ease;user-select:text;-webkit-user-select:text}.sheet h2{margin:0 48px 6px 0;font-size:24px;line-height:1.15;color:var(--green-dark)}.sheet p{font-size:17px;line-height:1.4;margin:8px 0}.sheet-close{position:absolute;top:10px;right:10px;width:48px;height:48px;border-radius:50%;border:2px solid var(--cream-3);background:#fff;display:grid;place-items:center;cursor:pointer}.sheet-close svg{width:22px;height:22px}.sheet-hero{display:grid;place-items:center;margin:0 0 6px}.sheet-hero.big .icon-svg{filter:drop-shadow(0 6px 8px rgba(59,46,30,.2))}.eyebrow{margin:0!important;font-size:14px!important;font-weight:800;color:var(--earth);text-transform:uppercase;letter-spacing:.6px}.muted{color:var(--ink-soft)}.small{font-size:14px!important}.center{text-align:center}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:12px}.card{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:140px;padding:12px 8px;border-radius:18px;border:2px solid var(--cream-3);background:#fff;text-align:center;cursor:pointer;box-shadow:0 3px 0 var(--cream-3)}button.card:active{transform:translateY(2px)}.card b{font-size:17px}.card small{font-size:14px;color:var(--ink-soft)}.card.locked{cursor:default;background:var(--cream-2)}.card.deco .btn{margin-top:4px}.book-grid{grid-template-columns:1fr}.card.book{display:grid;grid-template-columns:72px 1fr;grid-template-rows:auto auto 1fr;column-gap:12px;align-items:start;text-align:left;cursor:default;min-height:0}.card.book .icon-svg{grid-row:1 / span 3}.card.book p{margin:4px 0 0;font-size:15px}.magic{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;background:#e6edff;color:#4b5bb0;font-size:12px;vertical-align:middle}.icon-svg.locked{filter:brightness(0) opacity(.18)}.price{display:flex;align-items:center;gap:8px;margin:14px 0 4px;font-size:22px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px 4px 6px;border-radius:999px;background:#fff;border:2px solid var(--cream-3);font-weight:800;font-size:15px}.menu-list{display:grid}.toggle{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 16px;border-radius:16px;border:2px solid var(--cream-3);background:#fff;font-size:17px;font-weight:800}.toggle input{width:28px;height:28px;accent-color:var(--green);order:2}.status{padding:10px 14px;border-radius:14px;font-size:15px!important}.status.ok{background:#e3efc9}.status.bad{background:#fde0e4;color:#8f2236}.plain{padding-left:20px;font-size:16px;line-height:1.5}.banner{display:flex;align-items:center;gap:10px;padding:calc(var(--safe-top) + 8px) 14px 8px;background:#fde0e4;color:#8f2236;font-size:14px;line-height:1.3}.banner[hidden]{display:none}.banner+.hud{padding-top:6px}.toasts{position:fixed;left:12px;right:12px;bottom:calc(var(--safe-bottom) + 92px);z-index:30;display:grid;gap:8px;justify-items:center;pointer-events:none}.toast{max-width:520px;padding:12px 16px;border-radius:16px;background:#3f5e32;color:#fff;font-size:16px;font-weight:700;line-height:1.3;text-align:center;box-shadow:var(--shadow);animation:rise .25s ease;transition:opacity .4s,transform .4s}.toast.warn{background:#8f4a22}.toast.out{opacity:0;transform:translateY(8px)}.bob,.twinkle,.pulse,.spin,.wings,.slot-hint,.hint-ring{transform-box:fill-box}.bob{animation:bob 1.6s ease-in-out infinite;transform-origin:center}.twinkle{animation:twinkle 2.2s ease-in-out infinite;transform-origin:center}.twinkle.d2{animation-delay:.7s}.twinkle.d3{animation-delay:1.3s}.pulse{animation:pulse 3s ease-in-out infinite;transform-origin:center}.spin{animation:spin 3.5s linear infinite;transform-origin:center}.flow{animation:flow 2.4s linear infinite}.shimmer{animation:shimmer 3s ease-in-out infinite}.plot.bloom>g:nth-of-type(1)~g:not(.badge){transform-origin:bottom center}.plot.st-thirsty .badge,.plot.bloom .badge{filter:drop-shadow(0 2px 2px rgba(59,46,30,.25))}.hint-ring{display:none}.bridge-ready [data-landmark=bridge] .hint-ring,.pond-ready [data-landmark=pond] .hint-ring{display:inline;animation:pulse 1.6s ease-in-out infinite;transform-origin:center}.slot-hint{animation:pulse 1.6s ease-in-out infinite;transform-origin:center}.slot-hint.active{stroke:#fff;fill-opacity:.55}.just-restored{animation:restored 1.2s ease}.butterfly{animation:fly1 18s ease-in-out infinite}.butterfly.b2{animation:fly2 22s ease-in-out infinite}.butterfly .wings{animation:flap .35s ease-in-out infinite alternate;transform-origin:center}.firefly{animation:glow 2.6s ease-in-out infinite}.firefly.f1{animation-delay:.8s}.firefly.f2{animation-delay:1.5s}.firefly.f3{animation-delay:2.1s}.burst .drop{animation:drop .8s ease-in forwards}.burst .drop.d1{animation-delay:.08s}.burst .drop.d2{animation-delay:.16s}.burst .drop.d3{animation-delay:.24s}.burst .spark{animation:spark .9s ease-out forwards}.float{animation:floatUp 1.2s ease-out forwards}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes twinkle{0%,to{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:.65}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes flow{to{stroke-dashoffset:-48}}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:1}}@keyframes restored{0%{opacity:0;filter:brightness(1.8)}to{opacity:1;filter:none}}@keyframes fly1{0%,to{transform:translate(60px,380px)}25%{transform:translate(170px,300px)}50%{transform:translate(330px,360px)}75%{transform:translate(240px,500px)}}@keyframes fly2{0%,to{transform:translate(340px,520px)}30%{transform:translate(220px,420px)}60%{transform:translate(80px,560px)}}@keyframes flap{0%{transform:scaleX(1)}to{transform:scaleX(.35)}}@keyframes glow{0%,to{opacity:.1}50%{opacity:1}}@keyframes drop{0%{transform:translateY(0);opacity:1}to{transform:translateY(46px);opacity:0}}@keyframes spark{0%{transform:translate(0);opacity:1}to{transform:translate(var(--dx),var(--dy));opacity:0}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-36px)}}@keyframes bump{50%{transform:scale(1.12)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{transform:translateY(24px);opacity:0}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}@media (max-height: 700px){.title{font-size:17px}.quest-body p{font-size:15px}.nav button{min-height:54px}}@media (orientation: landscape) and (max-height: 500px){.quest-body p{display:none}}.sway,.pop,.can-tilt,.pluck,.ring,.heart,.puff,.seed-fall,.splash,.pour,.deco-in,.guest-move,.guest-glow,.plank,.pad,.pond-water,.ripple,.eyes,.board .note{transform-box:fill-box}.sway{transform-origin:50% 100%;animation:sway 3.4s ease-in-out infinite}.plot.st-locked .sway{animation:none}[data-wrap=plot-1] .sway{animation-delay:-.7s;animation-duration:3.8s}[data-wrap=plot-2] .sway{animation-delay:-1.5s}[data-wrap=plot-3] .sway{animation-delay:-2.2s;animation-duration:3.1s}[data-wrap=plot-4] .sway{animation-delay:-.3s;animation-duration:4s}[data-wrap=plot-5] .sway{animation-delay:-1.9s}.plot.bloom .sway{animation-name:swayBloom}.pop{transform-origin:50% 100%}.anim-grow .pop{animation:growPop .75s cubic-bezier(.34,1.56,.64,1)}.anim-plant .pop{animation:growPop .6s cubic-bezier(.34,1.56,.64,1) .32s backwards}.anim-drop .deco-in{transform-origin:50% 100%;animation:dropIn .7s cubic-bezier(.34,1.4,.64,1)}.plot.golden .badge circle{stroke:#f6be3b}.can-tilt{transform-origin:30% 80%;animation:canTilt 1.35s ease-in-out forwards}.pour{opacity:0;animation:pour .55s ease-in forwards}.splash{transform-origin:center;opacity:0;animation:splash .7s ease-out .7s forwards}.wet{animation:fade .6s ease}.seed-fall{animation:seedFall .45s cubic-bezier(.5,0,.9,.5) forwards}.puff{transform-origin:center;opacity:0;animation:puff .55s ease-out .38s forwards}.pluck{transform-origin:50% 100%;animation:pluck .9s ease-in forwards}.ring{transform-origin:center;animation:ring .8s ease-out forwards}.heart{transform-origin:center;opacity:0;animation:heart 1.2s ease-out forwards}#l-bridge.just-restored .plank{transform-origin:center;animation:plankIn .45s cubic-bezier(.34,1.56,.64,1) var(--d) backwards}#l-bridge.just-restored .post,#l-bridge.just-restored .rail{animation:fade .5s ease .75s backwards}#l-pond.just-restored .pond-water{transform-origin:center;animation:fillUp 1.3s cubic-bezier(.2,.8,.3,1) .4s backwards}#l-pond.just-restored .pad{transform-origin:center;animation:padPop .5s cubic-bezier(.34,1.56,.64,1) calc(1.3s + var(--d)) backwards}#l-brook.just-restored .brook-new{stroke-dasharray:90;animation:draw .7s ease-out backwards}.ripple{transform-origin:center;opacity:0;animation:ripple 3.6s ease-out infinite}.drift{animation:drift 26s ease-in-out infinite alternate}.drift.slow{animation-duration:38s;animation-direction:alternate-reverse}.eyes{transform-origin:center;animation:blink 5s infinite}.quest-avatar .eyes{animation-delay:2.2s}.listik-btn .listik-svg{transform-origin:50% 90%;animation:listikSway 4s ease-in-out infinite}.listik-btn.hop .listik-svg,.hero-hop .listik-svg{animation:hop .8s cubic-bezier(.34,1.56,.64,1) 2}.board{cursor:pointer}.board .note{transform-origin:50% 0;animation:noteFlutter 4s ease-in-out infinite}.board.done .note rect{fill:#eaf6d9}.guest{cursor:pointer}.guest-glow{transform-origin:center;animation:pulse 1.8s ease-in-out infinite}.guest.enter .guest-move{animation:guestIn .6s cubic-bezier(.34,1.56,.64,1)}.guest.leave{transition:opacity .6s ease;opacity:0}.guest.caught{animation:caught .6s ease-out forwards}.g-ladybug .guest-move,.g-hedgehog .guest-move{animation:walk 3.2s ease-in-out infinite alternate}.g-snail .guest-move{animation:walk 9s ease-in-out infinite alternate}.g-bee .guest-move,.g-butterfly .guest-move{animation:hover 2.4s ease-in-out infinite}.g-bee .wings{transform-origin:50% 100%;transform-box:fill-box;animation:buzz .09s linear infinite alternate}.g-butterfly .wings{transform-origin:center;transform-box:fill-box;animation:flap .3s ease-in-out infinite alternate}.g-frog .guest-move{animation:frogHop 2.6s ease-in-out infinite}.guest.enter.g-bee .guest-move,.guest.enter.g-butterfly .guest-move,.guest.enter.g-ladybug .guest-move,.guest.enter.g-hedgehog .guest-move,.guest.enter.g-snail .guest-move,.guest.enter.g-frog .guest-move{animation:guestIn .6s cubic-bezier(.34,1.56,.64,1)}.fly-layer{position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden}.fly-petal{position:absolute;width:22px;height:22px;filter:drop-shadow(0 2px 2px rgba(59,46,30,.25))}.fly-petal svg{display:block}.confetti{position:absolute;top:-16px;width:9px;height:13px;border-radius:3px;animation:confetti 2s ease-in forwards}.confetti.leafy{border-radius:0 80%;width:12px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:8px 0 4px;padding:4px;border-radius:16px;background:var(--cream-2)}.tab{min-height:44px;border:0;border-radius:12px;background:transparent;font-size:16px;font-weight:800;color:var(--ink-soft);cursor:pointer}.tab span{font-weight:700;opacity:.7}.tab.active{background:#fff;color:var(--green-dark);box-shadow:0 2px 0 var(--cream-3)}.gold-tag{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:0 8px;border-radius:999px;background:#fff1c6;color:#8a5a12;font-weight:800}.card.book.has-gold{border-color:#f2cf73;box-shadow:0 3px #f2cf73}.order-items{list-style:none;margin:10px 0;padding:0;display:grid;gap:8px}.order-items li{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 6px;border-radius:16px;background:#fff;border:2px solid var(--cream-3);font-size:17px}.order-items li span{flex:1}.order-items li svg:last-child:not(.icon-svg){width:26px;height:26px;color:var(--green)}.order-items li.done{border-color:#b9dc98;background:#f1f8e6}@keyframes sway{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.4deg)}}@keyframes swayBloom{0%,to{transform:rotate(-2.4deg) scale(1)}50%{transform:rotate(2.4deg) scale(1.02)}}@keyframes growPop{0%{transform:scale(.55,.35)}55%{transform:scale(1.12,1.16)}80%{transform:scale(.96,.98)}to{transform:scale(1)}}@keyframes dropIn{0%{transform:translateY(-46px) scale(.9);opacity:0}55%{transform:translateY(0) scale(1.1,.88);opacity:1}80%{transform:translateY(-4px) scale(.97,1.04)}to{transform:none}}@keyframes canTilt{0%{transform:translate(-14px,-10px) rotate(0);opacity:0}18%{transform:translate(0) rotate(0);opacity:1}35%,80%{transform:rotate(32deg);opacity:1}to{transform:rotate(0) translateY(-8px);opacity:0}}@keyframes pour{0%{transform:translateY(0);opacity:0}15%{opacity:1}to{transform:translateY(48px);opacity:.2}}@keyframes splash{0%{transform:scale(.3);opacity:.9}to{transform:scale(1.15);opacity:0}}@keyframes seedFall{0%{transform:translateY(0) rotate(0);opacity:0}20%{opacity:1}to{transform:translateY(56px) rotate(160deg);opacity:0}}@keyframes puff{0%{transform:translate(0) scale(.4);opacity:.9}to{transform:translate(var(--dx),-12px) scale(1.6);opacity:0}}@keyframes pluck{0%{transform:translateY(0) scale(1);opacity:1}35%{transform:translateY(-34px) scale(1.12) rotate(-6deg);opacity:1}to{transform:translateY(-60px) scale(.4) rotate(12deg);opacity:0}}@keyframes ring{0%{transform:scale(.3);opacity:.9}to{transform:scale(1.4);opacity:0}}@keyframes heart{0%{transform:translateY(10px) scale(.3);opacity:0}25%{opacity:1;transform:translate(calc(var(--dx) * .5),-6px) scale(1.2)}to{transform:translate(var(--dx),-42px) scale(.9);opacity:0}}@keyframes plankIn{0%{transform:translateY(-22px) scale(.6);opacity:0}to{transform:none;opacity:1}}@keyframes fillUp{0%{transform:scale(.08,.05);opacity:.4}to{transform:none;opacity:1}}@keyframes padPop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes draw{0%{stroke-dashoffset:90}to{stroke-dashoffset:0}}@keyframes ripple{0%{transform:scale(.4);opacity:0}15%{opacity:.9}70%,to{transform:scale(2.6);opacity:0}}@keyframes drift{0%{transform:translate(-18px)}to{transform:translate(22px)}}@keyframes blink{0%,93%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}97%{transform:scaleY(1)}}@keyframes listikSway{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}@keyframes hop{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-10px) scale(1.06,.94)}55%{transform:translateY(0) scale(.94,1.06)}}@keyframes noteFlutter{0%,to{transform:rotate(0)}50%{transform:rotate(2.5deg)}}@keyframes guestIn{0%{transform:scale(.2) translateY(10px);opacity:0}to{transform:none;opacity:1}}@keyframes caught{0%{transform:none;opacity:1}35%{transform:translateY(-18px) scale(1.2);opacity:1}to{transform:translateY(-30px) scale(.3);opacity:0}}@keyframes walk{0%{transform:translate(-14px)}to{transform:translate(14px)}}@keyframes hover{0%,to{transform:translate(0)}25%{transform:translate(10px,-8px)}50%{transform:translateY(-14px)}75%{transform:translate(-10px,-6px)}}@keyframes buzz{0%{transform:scaleY(1)}to{transform:scaleY(.55)}}@keyframes frogHop{0%,60%,to{transform:translateY(0) scale(1)}70%{transform:translateY(2px) scale(1.08,.9)}80%{transform:translateY(-16px) scale(.95,1.06)}90%{transform:translateY(0) scale(1.05,.95)}}@keyframes confetti{0%{transform:translate(0) rotate(0);opacity:1}85%{opacity:1}to{transform:translate(var(--dx),105vh) rotate(var(--r));opacity:0}}@media (max-width: 400px){.mode-chip{flex-wrap:wrap}.mode-chip span{flex:1 1 100%}.mode-chip .btn{flex:1}}.signpost{cursor:pointer}.signpost.ready .hint-ring{display:inline;animation:pulse 1.6s ease-in-out infinite;transform-origin:center}.stage.switching #scene{animation:viewIn .45s ease}.star{opacity:.85}.star.tw{transform-box:fill-box;transform-origin:center;animation:twinkle 2.8s ease-in-out infinite}.night-glow{animation:glowBreath 3.2s ease-in-out infinite}.listik-btn{position:relative}.listik-btn.has-question:after{content:"?";position:absolute;top:-4px;right:-4px;width:24px;height:24px;border-radius:50%;background:#f6be3b;border:2px solid #fff;color:#5a3a0a;font-weight:900;font-size:15px;line-height:20px;text-align:center;box-shadow:var(--shadow);animation:bob 1.2s ease-in-out infinite}.answers{display:grid;gap:2px}.answer{justify-content:flex-start;text-align:left;line-height:1.25}.answer.right{background:#e3f3d1;border-color:#7fb069;box-shadow:0 3px #7fb069;opacity:1}.answer.wrong{background:#fde7e2;border-color:#e9a597;box-shadow:0 3px #e9a597;opacity:1}.explain{margin-top:12px;padding:12px 14px;border-radius:16px;animation:rise .25s ease}.explain.ok{background:#eef8e3}.explain.try{background:#fff3dc}.explain b{font-size:17px}.sheet h3.sub{margin:16px 0 0;font-size:18px;color:var(--earth)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:10px}.badge-card{display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 10px;border-radius:18px;border:2px solid var(--cream-3);background:var(--cream-2);text-align:center}.badge-card.got{background:#fff;border-color:#f2cf73;box-shadow:0 3px #f2cf73}.badge-card b{font-size:16px}.badge-card small{font-size:13px;color:var(--ink-soft);line-height:1.25}.badge-card .meter{width:100%;height:8px;margin-top:4px;border-radius:4px;background:#fff;border:1px solid var(--cream-3);overflow:hidden}.badge-card .meter i{display:block;height:100%;background:#7fb069}.badge-card.got .meter i{background:#f6be3b}.tabs{grid-template-columns:1fr 1fr 1fr}@media (max-width: 380px){.tab{font-size:14px}}@keyframes viewIn{0%{opacity:.2;transform:scale(1.03)}}@keyframes glowBreath{0%,to{opacity:.75}50%{opacity:1}}.nav{grid-template-columns:repeat(5,1fr);gap:2px;padding-left:4px;padding-right:4px}.nav button{font-size:13px}@media (max-width: 360px){.nav button{font-size:12px}}.stage[data-area=tundra]{background:#a8b887}.stage[data-area=taiga]{background:#6e9a55}.stage[data-area=steppe]{background:#d9c27a}.map-wrap{margin:10px 0 6px;border-radius:18px;overflow:hidden;border:2px solid var(--cream-3)}.map{display:block;width:100%;height:auto}.map .band{cursor:pointer}.map .band:active rect{filter:brightness(.92)}.zone-card{margin-top:8px;padding:12px 14px;border-radius:18px;border:3px solid;background:#fff;animation:rise .25s ease}.zone-card h3{margin:0 0 4px;font-size:20px;color:var(--green-dark)}.zone-card p{font-size:16px!important;margin:6px 0!important}.g-reindeer .guest-move,.g-saiga .guest-move,.g-bear .guest-move,.g-arcticfox .guest-move{animation:walk 4.5s ease-in-out infinite alternate}.g-lemming .guest-move,.g-chipmunk .guest-move,.g-squirrel .guest-move,.g-gopher .guest-move{animation:frogHop 2.2s ease-in-out infinite}.g-eagle .guest-move{animation:hover 3.2s ease-in-out infinite}.stall{cursor:pointer}.fair-head{display:flex;align-items:center;gap:12px;margin-right:52px}.fair-head .eyebrow{margin-bottom:2px!important}.bubble{position:relative;margin:12px 0 10px;padding:14px 16px;border-radius:20px;background:#fff;border:2px solid var(--cream-3);font-size:18px;line-height:1.4;font-weight:600}.bubble:before{content:"";position:absolute;top:-10px;left:34px;width:16px;height:16px;background:#fff;border-left:2px solid var(--cream-3);border-top:2px solid var(--cream-3);transform:rotate(45deg)}.answer-row{display:flex;align-items:center;gap:10px;margin:6px 0 10px}.answer-input{flex:1;min-width:0;height:60px;padding:0 16px;border-radius:16px;border:3px solid #b9dc98;background:#fff;font:inherit;font-size:28px;font-weight:800;text-align:center;color:var(--ink)}.answer-input:focus{outline:none;border-color:var(--green)}.answer-input.shake{animation:shake .4s ease}.unit{font-size:18px;font-weight:800;color:var(--ink-soft);white-space:nowrap}.fair-buttons{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}.hint-box{margin:12px 0 0!important;padding:10px 14px;border-radius:14px;background:#fff3dc;font-size:16px!important;animation:rise .25s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}50%{transform:translate(8px)}75%{transform:translate(-4px)}}.sign{cursor:pointer}.sign.todo{transform-box:fill-box;transform-origin:50% 100%;animation:signWiggle 2.6s ease-in-out infinite}.word-sign{margin:14px auto 16px;padding:18px 12px;max-width:420px;border-radius:14px;background:#f4e3c3;border:3px solid #7a5230;box-shadow:0 5px #7a5230;text-align:center;font-size:40px;font-weight:900;letter-spacing:1px;line-height:1.15;color:var(--ink);overflow-wrap:anywhere}.word-sign.ok{background:#e7f4d6}.word-sign.fix{background:#fff1d6}.word-sign .gap-fill,.word-sign .gap-none{font-style:normal;color:#3e8e3a;text-decoration:underline;text-decoration-thickness:3px}.word-sign.fix .gap-fill,.word-sign.fix .gap-none{color:#b5543f}.letters{display:flex;justify-content:center;gap:14px}.btn.letter{min-width:84px;min-height:72px;font-size:34px;font-weight:900}.btn.letter.none{font-size:17px;min-width:120px}.btn.letter.right{background:#e3f3d1;border-color:#7fb069;box-shadow:0 3px #7fb069;opacity:1}.btn.letter.wrong{background:#fde7e2;border-color:#e9a597;box-shadow:0 3px #e9a597;opacity:1}.word-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.word-chip{padding:4px 10px;border-radius:999px;background:#fff;border:2px solid var(--cream-3);font-weight:700;font-size:15px}.tabs{grid-template-columns:repeat(4,1fr)}.tab{font-size:14px;padding:4px 2px;line-height:1.15}.tab span{display:block;font-size:12px}@keyframes signWiggle{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-6deg)}90%{transform:rotate(5deg)}95%{transform:rotate(-3deg)}}.sheet-close+.eyebrow{margin-right:56px!important}.sheet-hero.meet{position:relative;height:108px;margin:-8px 0 6px;place-items:end center}.meet-scene{position:absolute;left:50%;bottom:0;width:240px;height:104px;margin-left:-120px}.sheet-hero.meet .listik-svg{position:relative;margin-bottom:26px;filter:drop-shadow(0 4px 3px rgba(59,46,30,.16))}.meet-spark{transform-box:fill-box;transform-origin:center;animation:twinkle 3.2s ease-in-out infinite}.meet-spark:nth-of-type(odd){animation-delay:-1.6s}.meet-head{text-align:center}.sheet .meet-head h2{margin:4px 0 2px;font-size:25px;text-wrap:wrap}.nb{white-space:nowrap}.profile-form{display:grid;gap:12px;margin-top:12px}.field{display:grid;gap:6px}.field-title{font-size:17px;font-weight:800;color:var(--ink)}.sheet .field-label{margin:2px 0 -4px}.field .answer-input.name-input{width:100%;height:56px;padding:0 18px;border-radius:18px;font-size:20px;font-weight:800;text-align:left}.name-input::placeholder{color:#85745c;font-weight:700;opacity:1}.grade-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:6px}.grade-card{--gc-bg: #f1f8e3;--gc-on: #e0f1c5;--gc-edge: #c2dea2;--gc-deep: #4f9a3c;position:relative;display:grid;justify-items:center;align-content:end;gap:1px;min-height:112px;padding:8px 2px 10px;border-radius:20px;border:2px solid var(--gc-edge);background:var(--gc-bg);box-shadow:0 3px 0 var(--gc-edge);color:var(--ink);font:inherit;cursor:pointer;transition:transform .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease}.grade-card[data-grade="3"]{--gc-bg: #e7f4f7;--gc-on: #cfecf3;--gc-edge: #addbe6;--gc-deep: #3688a3}.grade-card[data-grade="4"]{--gc-bg: #fff4d3;--gc-on: #ffe9ad;--gc-edge: #f0d283;--gc-deep: #b97a16}.grade-card[data-grade="5"]{--gc-bg: #fdecef;--gc-on: #fbd8de;--gc-edge: #f1bac4;--gc-deep: #bf5269}.grade-icon{display:block;overflow:visible}.grade-plant{transform-box:fill-box;transform-origin:50% 100%;transition:transform .25s ease}.grade-card b{font-size:28px;font-weight:900;line-height:1}.grade-card span{font-size:14px;font-weight:700;color:var(--ink-soft)}.grade-card:active{transform:translateY(2px);box-shadow:0 1px 0 var(--gc-edge)}.grade-card.on{background:var(--gc-on);border-color:var(--gc-deep);box-shadow:0 4px 0 var(--gc-deep);transform:translateY(-3px);animation:gradePick .42s ease}.grade-card.on .grade-plant{transform:scale(1.14);animation:growPop .5s ease}.grade-card.on span{color:var(--ink)}.grade-card.on:before,.grade-card.on:after{content:"";position:absolute;animation:tickPop .35s ease .08s both}.grade-card.on:before{top:-9px;right:-5px;width:26px;height:26px;border-radius:50%;background:var(--gc-deep);border:2px solid #fff;box-shadow:0 2px 4px #3b2e1e33}.grade-card.on:after{top:-2px;right:4px;width:6px;height:11px;border:solid #fff;border-width:0 3px 3px 0;border-radius:1px;rotate:45deg}.sheet .profile-note{margin:2px 0 0;font-size:15px!important;line-height:1.35}.profile-cta{position:sticky;bottom:0;z-index:2;margin:-6px -18px 0;padding:14px 18px 4px;background:linear-gradient(rgba(255,246,227,0),var(--cream) 14px)}.profile-cta:after{content:"";position:absolute;left:0;right:0;top:100%;height:calc(var(--safe-bottom) + 16px);background:var(--cream)}.btn.big{min-height:60px;margin-top:0;border-radius:20px;font-size:20px}.sheet .pick-hint{display:none;margin:8px 0 0;text-align:center;font-size:16px;font-weight:700;color:var(--ink-soft)}.btn[disabled]+.pick-hint{display:block}@keyframes gradePick{0%{transform:translateY(0) scale(1)}45%{transform:translateY(-6px) scale(1.06)}75%{transform:translateY(-2px) scale(.98)}to{transform:translateY(-3px) scale(1)}}@keyframes tickPop{0%{scale:0}70%{scale:1.2}to{scale:1}}@media (max-height: 700px){.sheet-hero.meet{height:84px;margin-top:-12px}.meet-scene{width:194px;height:84px;margin-left:-97px}.sheet-hero.meet .listik-svg{width:60px;height:60px;margin-bottom:21px}.sheet .meet-head h2{font-size:23px}.profile-form{gap:10px;margin-top:8px}.field .answer-input.name-input{height:52px}.grade-card{min-height:104px;padding-top:6px}.grade-icon{width:29px;height:42px}.btn.big{min-height:56px}}:root{--green-btn: #437f3c;--green-btn-edge: #2f5f2b;--eyebrow: #7a4c2e;--shadow-soft: 0 4px 14px rgba(59, 46, 30, .12);--focus: #2f6a2c}button:focus-visible,input:focus-visible,.sheet:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.btn{border-radius:18px;line-height:1.2;transition:transform .08s ease,box-shadow .08s ease,background-color .15s ease}.btn.small{font-size:16px}.btn.primary{background:var(--green-btn);border-color:var(--green-btn-edge);box-shadow:0 3px 0 var(--green-btn-edge),inset 0 1px #ffffff38}.btn.primary:active{box-shadow:0 1px 0 var(--green-btn-edge)}.btn.ghost{background:#ffffff8c}.btn:disabled,.btn[disabled]{opacity:.55;pointer-events:none}.btn.primary:disabled{opacity:1;background:#d5e0c6;border-color:#bccaa9;color:#4b5942;box-shadow:0 3px #bccaa9}.sheet-backdrop{background:#342d1c6b}.sheet{padding-top:24px;border-radius:30px 30px 0 0;background:linear-gradient(#fffaf0,var(--cream) 140px);box-shadow:0 -10px 34px #3b2e1e38,inset 0 2px #fff;animation:sheetIn .3s cubic-bezier(.22,.9,.32,1)}.sheet-close{box-shadow:0 2px 0 var(--cream-3);color:var(--ink-soft);transition:transform .08s ease}.sheet-close:active{transform:translateY(2px) scale(.96);box-shadow:none}.eyebrow{color:var(--eyebrow);line-height:1.3}.eyebrow:before{content:"";display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:0 75%;background:var(--green-light);box-shadow:inset 0 0 0 1.5px var(--green)}.small{font-size:15px!important}.card{border-radius:20px;transition:transform .08s ease,box-shadow .08s ease}button.card:active{box-shadow:0 1px 0 var(--cream-3)}.card small,.badge-card small{font-size:15px}.card.book p,.chip,.word-chip,.status{font-size:16px!important}.toggle{border-radius:18px}.menu-list{gap:10px;margin:10px 0}.menu-list .btn.wide{margin-top:0}.toast{padding:12px 18px;border-radius:18px;background:#36552c;border:2px solid rgba(255,255,255,.16);font-size:17px;box-shadow:0 6px 18px #28341e47;animation:toastIn .3s cubic-bezier(.22,.9,.32,1.2)}.toast.warn{background:#8a4520}#app:has(.sheet-backdrop:not([hidden])) .toasts{top:calc(var(--safe-top) + 10px);bottom:auto}.answer-input{border-radius:18px;box-shadow:inset 0 2px #3b2e1e0d;transition:border-color .15s ease,box-shadow .15s ease;user-select:text;-webkit-user-select:text}.answer-input::placeholder{color:#85745c;opacity:1}.answer-input:focus,.answer-input:focus-visible{outline:none;border-color:var(--green);box-shadow:0 0 0 4px #5e9a4b40}.answers{gap:0}.answer{position:relative;min-height:56px;padding-left:18px;padding-right:18px;font-size:18px}.answer.right,.answer.wrong,.btn.letter.right,.btn.letter.wrong{opacity:1;color:var(--ink)}.answer.right,.btn.letter.right{position:relative;background:#dff1c8;border-color:#5e9a4b;box-shadow:0 3px #5e9a4b;animation:rightPop .45s ease}.answer.right{padding-right:54px}.answer.wrong,.btn.letter.wrong{background:#fdeae4;border-color:#e3a092;box-shadow:0 3px #e3a092}.answer.right:before,.answer.right:after,.btn.letter.right:before,.btn.letter.right:after{content:"";position:absolute;animation:tickPop .35s ease .12s both}.answer.right:before,.btn.letter.right:before{width:28px;height:28px;border-radius:50%;background:var(--green-btn);border:2px solid #fff}.answer.right:after,.btn.letter.right:after{width:6px;height:12px;border:solid #fff;border-width:0 3px 3px 0;border-radius:1px;rotate:45deg}.answer.right:before{top:50%;right:12px;margin-top:-14px}.answer.right:after{top:50%;right:23px;margin-top:-8px}.btn.letter.right:before{top:-10px;right:-8px}.btn.letter.right:after{top:-3px;right:3px}.btn.letter{border-radius:20px}.explain{border:2px solid transparent;border-radius:20px}.explain.ok{background:#eef8e3;border-color:#cfe6b5;animation:cheer .4s cubic-bezier(.22,.9,.32,1.25)}.explain.try{background:#fff3dc;border-color:#f3deb0}.explain b{display:block;font-size:18px;line-height:1.25}.explain.ok b{color:#2f6a2c}.explain.try b{color:#7a4310}.explain p{margin-bottom:4px}.hint-box{border:2px solid #f3deb0;border-radius:18px}.word-sign{border-radius:18px}.word-sign.ok{animation:rightPop .45s ease}.word-sign .gap-fill,.word-sign .gap-none{color:#2f7a2c}.word-sign.fix .gap-fill,.word-sign.fix .gap-none{color:#a8432f}.fair-head .icon-svg{flex:none;padding:6px;border-radius:50%;background:linear-gradient(#fffdf5 79%,#cfe6a8 79%);border:2px solid var(--cream-3);box-shadow:var(--shadow-soft)}.bubble{border-radius:22px;box-shadow:var(--shadow-soft)}.fair-buttons .btn{min-height:56px}.zone-card,.map-wrap,.order-items li,.badge-card{border-radius:20px}@keyframes sheetIn{0%{transform:translateY(56px);opacity:0}55%{opacity:1}to{transform:none;opacity:1}}@keyframes toastIn{0%{transform:translateY(14px) scale(.96);opacity:0}}@keyframes rightPop{0%{transform:scale(1)}40%{transform:scale(1.045)}70%{transform:scale(.985)}to{transform:scale(1)}}@keyframes cheer{0%{transform:translateY(16px) scale(.97);opacity:0}}@media (prefers-reduced-motion: reduce){.sheet,.toast,.explain,.explain.ok,.hint-box,.grade-card.on,.grade-card.on .grade-plant,.grade-card.on:before,.grade-card.on:after,.answer.right,.btn.letter.right,.answer.right:before,.answer.right:after,.btn.letter.right:before,.btn.letter.right:after,.word-sign.ok,.meet-spark,.hero-hop .listik-svg{animation:none!important}.grade-card,.grade-plant,.btn,.card,.sheet-close,.answer-input{transition:none!important}}
