:root{--plingo-green: #6fd20c;--plingo-green-bright: #8ff02c;--plingo-green-dark: #54b125;--plingo-cyan: #a3eef5;--plingo-slate: #455a64;--plingo-teal: #004b52;--plingo-navy: #061b30;--plingo-red: #ff3a44;--plingo-slate-text: #738f9e;--plingo-line: #d3d3d3;--node-size: 70px;--node-hit-size: 78px;--node-step-y: 124px;--path-width: 11px;--map-max-width: 430px;--game-bg-1: #0b0f1e;--game-bg-2: #1d2b53;--game-ink: #eef4ff;--game-muted: #a9b9d8;--game-green: #3ddc84;--game-gold: #ffd166;--game-coral: #ff5d73;--game-trail: #8cdcff;--lav-1: #e6c8f8;--lav-2: #c093ee;--lav-3: #a86fe6;--lav-4: #9760df;--lav-ink: #2a1146;--welcome-bg: radial-gradient(120% 80% at 50% -8%, var(--lav-1) 0%, var(--lav-2) 42%, var(--lav-3) 100%);--game-shell-bg: radial-gradient(120% 90% at 50% -12%, #143f50 0%, #0b2036 46%, #061524 100%);--surface-card: rgba(255, 255, 255, .06);--surface-card-border: rgba(255, 255, 255, .12);--cta-fill: linear-gradient(180deg, var(--plingo-green-bright) 0%, var(--plingo-green) 60%, var(--plingo-green-dark) 100%);--cta-ink: #08300f;--cta-shadow: 0 6px 18px rgba(111, 210, 12, .4);--font-display: "Cherry Bomb One", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--font-body: "Noto Sans Display", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-game: ui-rounded, "SF Pro Rounded", system-ui, sans-serif;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--radius-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .16s;--dur-med: .3s;--dur-slow: .5s;color-scheme:light dark}[data-theme=meadow]{--bio-band: linear-gradient(180deg, #bfe9f7 0%, #d8f4e3 40%, #a8d972 100%);--bio-spine-base: rgb(255 251 240 / 92%);--bio-locked: #efe9d7;--bio-locked-edge: #cfc6ab;--bio-label-ink: #2c4a1c;--bio-decor-glow: rgb(255 209 102 / 45%)}[data-theme=ocean]{--bio-band: linear-gradient(180deg, #35c2d8 0%, #0e7d95 45%, #093048 100%);--bio-spine-base: rgb(150 235 255 / 40%);--bio-locked: rgb(190 240 255 / 22%);--bio-locked-edge: rgb(190 240 255 / 14%);--bio-label-ink: #e3f9ff;--bio-decor-glow: rgb(87 230 255 / 80%)}[data-theme=space]{--bio-band: linear-gradient(180deg, #12151f 0%, #0b0f1e 55%, #2a2f3d 100%);--bio-spine-base: rgb(201 204 214 / 50%);--bio-locked: rgb(220 225 240 / 16%);--bio-locked-edge: rgb(220 225 240 / 10%);--bio-label-ink: #e6ecff;--bio-decor-glow: rgb(163 238 245 / 60%)}*,*:before,*:after{box-sizing:border-box}@media(prefers-reduced-motion:reduce){:root{--dur-fast: 1ms;--dur-med: 1ms;--dur-slow: 1ms}}.plingo-display{font-family:var(--font-display)}.plingo-cta{font-family:var(--font-display);color:var(--cta-ink);background:var(--cta-fill);box-shadow:var(--cta-shadow);border:0;border-radius:var(--radius-pill);cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.plingo-cta:active{transform:translateY(1px) scale(.99)}.plingo-cta:focus-visible{outline:3px solid var(--plingo-cyan);outline-offset:2px}.welcome{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:1fr auto 1fr;justify-items:center;gap:var(--space-4);padding:max(var(--space-6),env(safe-area-inset-top)) var(--space-5) max(var(--space-6),env(safe-area-inset-bottom));background:var(--welcome-bg);color:var(--lav-ink);font-family:var(--font-body);text-align:center;overflow:hidden}.welcome__stage{grid-row:2;display:grid;justify-items:center;gap:var(--space-3);max-width:420px;animation:welcome-rise var(--dur-slow) var(--ease-out) both}@keyframes welcome-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.welcome__hero{width:216px;max-width:72vw;height:auto;filter:drop-shadow(0 4px 10px rgba(42,17,70,.18))}.welcome__headline{font-family:var(--font-display);font-size:clamp(24px,6.5vw,32px);line-height:1.08;margin:var(--space-2) 0 0;color:var(--lav-ink)}.welcome__sub{margin:0;font-size:15px;line-height:1.5;color:#5a3a86;max-width:30ch}.welcome__actions{grid-row:3;align-self:end;display:grid;justify-items:center;gap:var(--space-4);width:100%;max-width:360px}.welcome__play{display:inline-flex;align-items:center;gap:var(--space-3);min-height:60px;padding:0 var(--space-6);font-size:22px;letter-spacing:.02em}.welcome__play-tri{width:0;height:0;border-left:16px solid var(--cta-ink);border-top:10px solid transparent;border-bottom:10px solid transparent;border-radius:2px}.welcome__grownups{font-size:13px;font-weight:700;color:#5a3a86;background:none;border:0;cursor:pointer;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);text-decoration:underline;text-underline-offset:3px}.welcome__grownups:focus-visible{outline:3px solid var(--lav-4);outline-offset:2px}.consent-screen{width:min(100%,560px);min-height:100%;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-7);display:grid;align-content:start;gap:var(--space-5);color:var(--plingo-navy);background:color-mix(in srgb,var(--plingo-cyan) 12%,white);font-family:var(--font-body);line-height:1.6}.consent-screen h1,.consent-screen h2,.consent-screen p{margin:0}.consent-screen h1,.consent-screen h2{color:var(--plingo-teal);font-family:var(--font-display);line-height:1.2}.consent-screen h1{font-size:clamp(2rem,8vw,2.75rem);letter-spacing:.01em}.consent-screen h2{font-size:1.25rem}.consent-intro{font-size:1.05rem}.consent-card{padding:var(--space-5);display:grid;gap:var(--space-3);border:1px solid var(--plingo-line);border-radius:var(--radius-md);background:#fff;box-shadow:0 var(--space-1) var(--space-4) color-mix(in srgb,var(--plingo-teal) 10%,transparent)}.consent-gate-form{display:grid;gap:var(--space-3)}.consent-challenge{padding-block-end:var(--space-2);font-size:clamp(1.75rem,9vw,2.5rem)!important;text-align:center}.consent-field-label{font-weight:700}.consent-number-input{width:100%;min-height:52px;padding:var(--space-3) var(--space-4);border:2px solid var(--plingo-line);border-radius:var(--radius-sm);color:var(--plingo-navy);background:#fff;font:inherit;font-size:1.125rem}.consent-number-input:focus-visible,.consent-link-button:focus-visible{outline:3px solid var(--plingo-teal);outline-offset:3px}.consent-number-input:focus-visible{border-color:var(--plingo-teal)}.consent-primary-action{min-height:52px;padding:var(--space-3) var(--space-5);font-size:1.05rem}.consent-error{min-height:1.6em;color:var(--plingo-navy);font-weight:700}.consent-actions{display:grid;gap:var(--space-3)}.consent-link-button{min-height:48px;padding:var(--space-3) var(--space-4);display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--plingo-teal);border-radius:var(--radius-md);color:var(--plingo-teal);background:#fff;font-weight:700;text-align:center;text-decoration:none}.consent-link-button:hover{background:color-mix(in srgb,var(--plingo-cyan) 18%,white)}.consent-support{padding:var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb,var(--plingo-cyan) 18%,white);color:var(--plingo-teal);font-weight:700;text-align:center;overflow-wrap:anywhere}.consent-info-card{min-height:160px;align-content:center}@media(min-width:480px){.consent-screen{padding-inline:var(--space-6)}}.plingo-collection{border-radius:24px;padding:20px 18px 22px;background:linear-gradient(180deg,#0b1830,#0e2340 60%,#123a52);color:#eaf6ff;font-family:var(--font-body, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);box-shadow:0 10px 30px #061b3047}.plingo-collection__head{display:flex;align-items:center;justify-content:space-between}.plingo-collection__head h2{margin:0;font-size:1.35rem;font-family:var(--font-display, "Cherry Bomb One", ui-rounded, system-ui, sans-serif)}.plingo-collection__count{background:#ffffff1f;padding:6px 12px;border-radius:999px;font-weight:800;font-size:.8rem}.plingo-collection__count b{color:var(--plingo-gold, #ffd166)}.plingo-collection__hero{text-align:center;margin:14px 0 4px}.plingo-collection__ring{width:128px;height:128px;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 50% 40%,#ffffff29,#fff0 70%);display:grid;place-items:center}.plingo-collection__glyph{width:104px;height:104px;display:block;filter:drop-shadow(0 8px 18px rgba(0,0,0,.6))}.plingo-collection__hero-name{font-weight:900;font-size:1.1rem;margin-top:2px}.plingo-collection__hero-stage{font-size:.78rem;opacity:.7;font-weight:700}.plingo-collection__bar{height:10px;width:180px;margin:8px auto 0;border-radius:999px;background:#ffffff1f;overflow:hidden}.plingo-collection__bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--plingo-cyan, #a3eef5),var(--plingo-green, #6fd20c))}.plingo-collection__grid-title{font-size:.72rem;opacity:.65;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin:16px 4px 8px}.plingo-collection__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.plingo-slot{aspect-ratio:1;border-radius:18px;background:#ffffff12;display:grid;place-items:center;position:relative}.plingo-slot.is-collected{background:#ffffff1f}.plingo-slot__glyph{width:76%;height:76%;display:block}.plingo-slot.is-egg:after{content:"🥚";font-size:1.8rem}.plingo-slot.is-locked{background:#ffffff0a}.plingo-slot.is-locked:after{content:"?";font-size:1.6rem;font-weight:900;opacity:.25}.result-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top,0px)) 24px max(24px,env(safe-area-inset-bottom,0px));background:var(--welcome-bg, radial-gradient(120% 120% at 50% 0%, #f3ecff 0%, #e6dbff 55%, #d9c9ff 100%));color:var(--lav-ink, #2a1146);font-family:var(--font-body, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);animation:result-fade-in .26s ease-out both;overflow-y:auto}.result-card{width:min(420px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.result-medallion{position:relative;width:128px;height:128px;animation:result-pop .42s cubic-bezier(.34,1.56,.64,1) both}.result-medallion__glow,.result-medallion__ring,.result-medallion__face,.result-medallion__check{position:absolute;border-radius:50%}.result-medallion__glow{top:-30%;right:-30%;bottom:-30%;left:-30%;background:radial-gradient(closest-side,rgba(255,224,138,.9),rgba(255,209,102,.3) 60%,transparent 78%);filter:blur(10px)}.result-medallion__ring{top:-9px;right:-9px;bottom:-9px;left:-9px;background:conic-gradient(from 0deg,#ffe9a8,#ffd166,#f0b429,#ffd166,#ffe9a8);box-shadow:0 10px 24px #f0b42973,inset 0 0 0 3px #ffffffa6}.result-medallion__face{top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff8dc;background:radial-gradient(circle at 50% 32%,#8ee52a,var(--plingo-green, #6fd20c) 62%,var(--plingo-green-dark, #54b125));box-shadow:0 7px 0 var(--plingo-green-dark, #54b125),0 14px 28px #54b12566;font-size:3.4rem;text-shadow:0 3px 0 rgba(47,125,14,.45)}.result-medallion__check{z-index:3;right:0;bottom:0;display:grid;width:36px;height:36px;place-items:center;color:var(--plingo-green-dark, #54b125);background:#fff;box-shadow:0 5px 12px #0003;font-size:1.2rem;font-weight:900}.result-medallion__burst{position:absolute;z-index:2;top:-1.3rem;right:-1.3rem;bottom:-1.3rem;left:-1.3rem;color:#f0b429;font-size:1.2rem;pointer-events:none;transform:rotate(-24deg)}.result-medallion__burst i,.result-medallion__burst b,.result-medallion__burst em{position:absolute;color:inherit;font-style:normal}.result-medallion__burst i{top:15%;right:0}.result-medallion__burst b{bottom:8%;left:0}.result-medallion__burst em{right:10%;bottom:0}.result-headline{margin:0;font-size:clamp(2rem,9vw,2.75rem);line-height:1.05;color:var(--lav-ink, #2a1146)}.result-sub{margin:0;font-size:1.05rem;font-weight:600;opacity:.78}.result-chip{display:inline-flex;align-items:baseline;gap:8px;margin-top:2px;padding:8px 18px;border-radius:999px;background:#ffffffb3;box-shadow:0 4px 14px #2a11461f}.result-chip__label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700;opacity:.6}.result-chip__value{font-size:1.4rem;font-weight:800;color:var(--plingo-green-dark, #54b125)}.result-growth{width:100%;margin-top:4px;padding:14px 16px;border-radius:20px;background:#ffffffb8;box-shadow:0 6px 18px #2a11461f;text-align:left}.result-growth.is-graduated{background:linear-gradient(180deg,#fff9e6,#fffc);box-shadow:0 6px 20px #ffc10747}.result-growth__row{display:flex;align-items:center;gap:12px}.result-growth__avatar{width:52px;height:52px;border-radius:50%;background:#fff9;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.result-growth__glyph{width:48px;height:48px;display:block}.result-growth__meta{flex:1;min-width:0}.result-growth__name{font-weight:800;font-size:.95rem}.result-growth__stage{font-size:.75rem;font-weight:700;opacity:.6}.result-growth__plus{font-weight:900;font-size:.95rem;color:var(--plingo-green-dark, #54b125);white-space:nowrap}.result-growth__bar{height:12px;margin-top:12px;border-radius:999px;background:#0000001a;overflow:hidden}.result-growth__bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--plingo-green-bright, #8ff02c),var(--plingo-green-dark, #54b125));transition:width .6s cubic-bezier(.22,1,.36,1)}.result-growth__hint{margin-top:8px;font-size:.8rem;font-weight:700;color:var(--plingo-green-dark, #54b125)}.result-continue{margin-top:12px;width:100%;max-width:320px}.result-replay{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;padding:8px 12px;font:inherit;font-weight:700;color:var(--lav-ink, #2a1146);opacity:.72;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.result-replay:hover{opacity:1}@keyframes result-fade-in{0%{opacity:0}to{opacity:1}}@keyframes result-pop{0%{opacity:0;transform:scale(.6) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@media(prefers-reduced-motion:reduce){.result-screen,.result-medallion{animation:none}}.closure-screen{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;min-height:100dvh;overflow:hidden;color:#2a3a22;background:radial-gradient(70% 36% at 50% 4%,rgb(192 147 238 / 50%),transparent 70%),radial-gradient(80% 45% at 50% 108%,rgb(143 240 44 / 30%),transparent 70%),linear-gradient(180deg,#efd9fb,#fdf6e6 34%,#fbf9ea 55%,#e9f9dc);font-family:var(--font-body);text-align:center;isolation:isolate}.closure-rays{position:absolute;z-index:-1;top:-18rem;left:50%;width:38rem;height:38rem;border-radius:50%;background:repeating-conic-gradient(from 8deg,rgb(255 209 102 / 18%) 0deg 9deg,transparent 9deg 24deg);opacity:0;transform:translate(-50%);-webkit-mask-image:radial-gradient(closest-side,#000 20%,transparent 72%);mask-image:radial-gradient(closest-side,#000 20%,transparent 72%);animation:closure-rays-spin 60s linear infinite}.closure-body{display:flex;flex-direction:column;align-items:center;width:min(100%,430px);min-height:100dvh;margin:0 auto;padding:calc(2.75rem + max(0px,env(safe-area-inset-top))) 1.5rem calc(1rem + max(0px,env(safe-area-inset-bottom)))}.closure-wordmark{color:var(--plingo-green);font-family:var(--font-display);font-size:1.3rem;line-height:1;filter:drop-shadow(0 3px 10px rgb(111 210 12 / 30%))}.closure-kicker{margin:.65rem 0 0;color:#c98a12;font-family:var(--font-game);font-size:.75rem;font-weight:900;letter-spacing:.3em}.closure-title{margin:.45rem 0 0;color:#2f7d0e;font-family:var(--font-display);font-size:clamp(2rem,9vw,2.45rem);font-weight:900;line-height:1.04;text-shadow:0 2px 0 rgb(255 255 255 / 65%),0 8px 26px rgb(143 240 44 / 35%)}.closure-medallion{position:relative;width:126px;height:126px;margin:1.15rem 0 .1rem}.closure-medallion__glow,.closure-medallion__ring,.closure-medallion__face,.closure-medallion__check{position:absolute;border-radius:50%}.closure-medallion__glow{top:-32%;right:-32%;bottom:-32%;left:-32%;background:radial-gradient(closest-side,rgb(255 224 138 / 85%),rgb(255 209 102 / 30%) 60%,transparent 78%);filter:blur(10px)}.closure-medallion__ring{top:-9px;right:-9px;bottom:-9px;left:-9px;background:conic-gradient(from 0deg,#ffe9a8,#ffd166,#f0b429,#ffd166,#ffe9a8);box-shadow:0 10px 24px #f0b42973,inset 0 0 0 3px #ffffffa6}.closure-medallion__face{top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 32%,#8ee52a,var(--plingo-green) 62%,var(--plingo-green-dark));box-shadow:0 7px 0 var(--plingo-green-dark),0 14px 28px #54b12566;font-size:3.4rem;animation:closure-hero-bob 4.2s ease-in-out infinite}.closure-medallion__check{z-index:3;right:0;bottom:0;display:grid;width:36px;height:36px;place-items:center;color:var(--plingo-green-dark);background:#fff;box-shadow:0 5px 12px #0003;font-size:1.2rem;font-weight:900}.closure-starburst{position:absolute;z-index:2;top:-1.3rem;right:-1.3rem;bottom:-1.3rem;left:-1.3rem;color:#f0b429;font-size:1.2rem;pointer-events:none}.closure-starburst i,.closure-starburst b,.closure-starburst em{position:absolute;color:inherit;font-style:normal}.closure-starburst{transform:rotate(-24deg)}.closure-starburst i{top:15%;right:0}.closure-starburst b{bottom:8%;left:0}.closure-starburst em{right:10%;bottom:0}.closure-added{margin:.9rem 0 0;color:#4a5f3a;font-size:.86rem;font-weight:800}.closure-added strong{color:#2f7d0e}.closure-score{margin-top:.75rem}.closure-score strong,.closure-score span{display:block}.closure-score strong{color:#173a52;font-family:var(--font-display);font-size:clamp(2.8rem,13vw,3.25rem);font-variant-numeric:tabular-nums;line-height:1;text-shadow:0 2px 0 rgb(255 255 255 / 70%)}.closure-score span{margin-top:.2rem;color:#8a9a86;font-size:.7rem;font-weight:900;letter-spacing:.34em}.closure-stat{display:inline-flex;align-items:center;gap:.45rem;margin-top:.75rem;padding:.55rem 1.1rem;border:1.5px solid rgb(111 210 12 / 40%);border-radius:999px;color:#2f7d0e;background:#fff;box-shadow:0 10px 22px -8px #2e542e59;font-family:var(--font-game);font-weight:900}.closure-stat strong{color:#173a52;font-family:var(--font-display);font-size:1.2rem}.closure-spacer{flex:1 1 auto;min-height:.5rem}.closure-cta{display:inline-flex;width:100%;min-height:78px;max-width:320px;align-items:center;justify-content:center;gap:.75rem;margin:.75rem 0 .45rem;padding:1rem 1.5rem;border:0;border-radius:26px;color:#08300f;background:var(--cta-fill);box-shadow:0 14px 34px #6fd20c73,inset 0 3px #0000001a,inset 0 -4px #0000001f;font-family:var(--font-display);font-size:1.45rem;font-weight:900;cursor:pointer}.closure-cta:active{transform:translateY(2px) scale(.985)}.closure-cta:focus-visible{outline:4px solid var(--plingo-cyan);outline-offset:3px}.closure-note{margin:0;color:#7d8a6e;font-size:.75rem;font-weight:600}.closure-reveal{opacity:0;transform:translateY(10px) scale(.94);transition:opacity .3s var(--ease-out),transform .45s cubic-bezier(.34,1.56,.64,1)}.closure-reveal.is-in{opacity:1;transform:none}.closure-medallion.is-in{animation:closure-stamp .55s cubic-bezier(.34,1.56,.64,1)}.closure-cta.is-in{animation:closure-cta-pulse 2.6s ease-in-out 1s infinite}.closure-confetti{position:absolute;z-index:4;top:0;right:0;bottom:30%;left:0;overflow:hidden;pointer-events:none}.closure-confetti i{--i: var(--confetti-index);position:absolute;top:-18px;width:9px;height:14px;border-radius:2px;background:hsl(calc(var(--i) * 47deg) 78% 60%);opacity:0}.closure-confetti.is-active i,.closure-screen[data-closure-state=settled] .closure-confetti i{animation:closure-confetti-fall 1.25s ease-out calc(var(--i) * 14ms) forwards}@keyframes closure-stamp{0%{opacity:0;transform:scale(2.05) rotate(-13deg)}60%{opacity:1;transform:scale(.94) rotate(2deg)}to{opacity:1;transform:none}}@keyframes closure-hero-bob{50%{transform:translateY(-6px)}}@keyframes closure-rays-spin{to{transform:translate(-50%) rotate(360deg)}}@keyframes closure-confetti-fall{0%{opacity:1;transform:translateY(-6px) rotate(0)}82%{opacity:1}to{opacity:0;transform:translate(var(--confetti-dx),470px) rotate(480deg)}}@keyframes closure-cta-pulse{50%{box-shadow:0 14px 34px #6fd20c7f,0 0 0 14px #6fd20c00}}@media(max-height:700px){.closure-body{padding-top:calc(1.25rem + max(0px,env(safe-area-inset-top)))}.closure-medallion{width:104px;height:104px;margin-top:.65rem}.closure-title{font-size:1.9rem}}@media(prefers-reduced-motion:reduce){.closure-screen *,.closure-screen *:before,.closure-screen *:after{animation:none!important;transition:none!important}}.path-screen,.plingos-screen{--path-green: var(--plingo-green);--path-green-bright: var(--plingo-green-bright);--path-green-dark: var(--plingo-green-dark);--path-cyan: var(--plingo-cyan);--path-navy: var(--plingo-navy);--path-gold: #ffd166;--path-muted: #738f9e;position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;min-height:100dvh;overflow:hidden;color:#173a52;background:#bfe9f7;font-family:var(--font-body)}.path-screen button,.plingos-screen button{font:inherit}.path-screen button:focus-visible,.plingos-screen button:focus-visible{outline:4px solid var(--path-cyan);outline-offset:3px}.direction-header{z-index:30;display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:88px;align-items:center;gap:.65rem;padding:calc(.55rem + max(0px,env(safe-area-inset-top))) .85rem .55rem;border-bottom:1px solid rgb(69 90 100 / 14%);background:#ffffffeb;box-shadow:0 6px 20px #061b3012;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.direction-wordmark{color:var(--path-green);font-family:var(--font-display);font-size:1.45rem;font-weight:900;letter-spacing:-.04em;line-height:1;filter:drop-shadow(0 3px 8px rgb(111 210 12 / 24%))}.direction-unit-pill{justify-self:end;max-width:100%;overflow:hidden;padding:.45rem .7rem;border:1.5px solid rgb(84 177 37 / 40%);border-radius:999px;color:#2f7d0e;background:#e4f7d4;font-family:var(--font-display);font-size:clamp(.7rem,3vw,.85rem);line-height:1;text-overflow:ellipsis;white-space:nowrap}.direction-grownups{display:flex;min-width:50px;min-height:52px;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:.15rem;border:0;border-radius:.8rem;color:#748792;background:transparent;cursor:pointer}.direction-grownups svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.direction-grownups span{font-size:.46rem;font-weight:900;letter-spacing:.06em}.path-scroll,.plingos-scroll{min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:none}.path-scroll::-webkit-scrollbar,.plingos-scroll::-webkit-scrollbar{display:none}.path-world{position:relative;width:min(100%,var(--map-max-width));min-width:320px;margin:0 auto;isolation:isolate}.path-biome-band{position:absolute;z-index:-3;right:0;left:0;background:var(--bio-band)}.path-biome-band[data-theme=meadow]:after{position:absolute;right:0;bottom:-1px;left:0;height:52px;background:radial-gradient(44px 15px at 10% 100%,rgb(255 255 255 / 42%),transparent 72%),radial-gradient(62px 18px at 42% 100%,rgb(255 255 255 / 34%),transparent 72%),radial-gradient(50px 16px at 78% 100%,rgb(255 255 255 / 38%),transparent 72%);content:""}.path-sun{position:absolute;z-index:-1;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 42% 38%,#fff8d9,#ffd166 62%,#ffb84d);box-shadow:0 0 44px 18px #ffd1668c;pointer-events:none;transform:translate(-50%)}.path-decor{position:absolute;z-index:-1;color:var(--bio-label-ink);font-size:1.5rem;opacity:.88;filter:drop-shadow(0 3px 6px rgb(0 0 0 / 12%));pointer-events:none;transform:translate(-50%)}.path-decor--cloud{width:80px;height:28px;overflow:hidden;color:transparent;border-radius:999px;background:#ffffffd1;box-shadow:20px -9px 0 -4px #ffffffc7,-18px -7px 0 -6px #ffffffbd}.path-decor--glow{filter:drop-shadow(0 0 10px var(--bio-decor-glow))}.path-decor--star{color:#dfe9ff;text-shadow:0 0 8px rgb(223 233 255 / 72%)}.path-decor--earth{filter:drop-shadow(0 0 13px rgb(120 190 255 / 58%))}.path-spine{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.path-spine path{fill:none;stroke-linecap:round}.path-spine-shadow{stroke:#061b3029;stroke-width:17}.path-spine-base{stroke:var(--bio-spine-base);stroke-width:var(--path-width)}.path-spine-fill{stroke:var(--path-green);stroke-width:var(--path-width);filter:drop-shadow(0 2px 3px rgb(47 125 14 / 35%))}.path-spine-fill--arrival{stroke-dasharray:420;stroke-dashoffset:420;animation:path-fill-arrival .45s var(--ease-out) .7s forwards}.path-unit{position:absolute;right:0;left:0}.path-unit-banner{position:absolute;z-index:4;left:50%;display:flex;width:min(82%,302px);gap:.75rem;align-items:flex-start;padding:.75rem 1rem .8rem;border:1.5px solid rgb(255 255 255 / 70%);border-radius:20px;background:#ffffffed;box-shadow:0 12px 28px -10px #061b3059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transform:translate(-50%)}.path-unit-emblem{display:grid;width:44px;height:44px;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--bio-band);box-shadow:inset 0 0 0 2px #ffffffb3,0 4px 10px #061b3033;font-size:1.35rem}.path-unit-banner__body{min-width:0;flex:1}.path-unit-banner h2,.path-unit-banner p{margin:0}.path-unit-kicker{color:#7f8e98;font-size:.58rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.path-unit-banner h2{margin-top:.06rem;color:#173a52;font-family:var(--font-display);font-size:1.15rem;line-height:1.05}.path-unit-description{margin-top:.18rem!important;color:#5a6b78;font-size:.7rem;line-height:1.32}.path-unit-pips{display:flex;gap:.3rem;margin-top:.5rem}.path-unit-pips i{height:6px;flex:1;border-radius:999px;background:#455a6429}.path-unit-pips i.is-on{background:var(--path-green)}.path-nodes{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;padding:0;list-style:none}.path-node{position:absolute;z-index:5;display:flex;width:150px;flex-direction:column;align-items:center;transform:translate(-50%)}.path-node--active{z-index:7}.path-node-button{position:relative;display:grid;width:var(--node-hit-size);height:var(--node-hit-size);place-items:center;padding:4px;border:0;border-radius:50%;color:inherit;background:transparent;cursor:pointer;transition:transform .15s var(--ease-out)}.path-node-button:active{transform:translateY(2px) scale(.97)}.path-node-disc{position:relative;display:grid;width:var(--node-size);height:var(--node-size);place-items:center;border-radius:50%}.path-node-icon{font-size:1.85rem;line-height:1}.path-node--complete .path-node-disc{background:radial-gradient(circle at 50% 32%,#8ee52a,var(--path-green));box-shadow:0 7px 0 var(--path-green-dark),0 13px 24px #54b1256b}.path-node--active .path-node-disc{background:radial-gradient(circle at 50% 32%,#c8f57e,#9fe93e 45%,var(--path-green));box-shadow:0 7px 0 var(--path-green-dark),0 0 0 5px #fff,0 0 0 10px #6fd20c66,0 16px 30px #6fd20c7f;animation:path-halo-breathe 2.2s ease-in-out .95s infinite}.path-node--locked .path-node-disc,.path-node--unavailable .path-node-disc{background:var(--bio-locked);box-shadow:0 6px 0 var(--bio-locked-edge),0 10px 18px #061b3047;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.path-node--locked .path-node-icon,.path-node--unavailable .path-node-icon{filter:grayscale(1) opacity(.5)}.path-node--dim{opacity:.52}.path-node-badge{position:absolute;right:-4px;bottom:-4px;display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 4px 9px #0003}.path-node-badge--check{width:27px;height:27px;color:var(--path-green-dark);font-size:.9rem;font-weight:900}.path-node-badge--lock{width:25px;height:25px;font-size:.7rem}.path-play-tag{position:absolute;z-index:8;top:-37px;left:50%;display:inline-flex;min-height:38px;align-items:center;padding:.45rem 1.1rem;border-radius:999px;color:var(--path-green-dark);background:#fff;box-shadow:0 8px 20px -4px #173a5259;font-family:var(--font-display);font-size:.9rem;font-weight:900;letter-spacing:.06em;white-space:nowrap;transform:translate(-50%)}.path-play-tag:after{position:absolute;bottom:-5px;left:50%;width:12px;height:12px;border-radius:2px;background:#fff;content:"";transform:translate(-50%) rotate(45deg)}.path-node-label{max-width:145px;margin-top:.38rem;color:var(--bio-label-ink);font-size:.75rem;font-weight:900;line-height:1.15;text-align:center;text-shadow:0 1.5px 4px rgb(4 36 54 / 28%)}.path-node--locked .path-node-label,.path-node--unavailable .path-node-label{opacity:.68}.path-node--arrival-echo .path-node-disc:after{position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border-radius:50%;box-shadow:0 0 0 4px #ffd166d9;content:"";opacity:0;animation:path-echo-ring .7s ease-out .35s forwards}.path-screen--ftue-arrival .path-node--active .path-node-disc{opacity:.55;transform:scale(.82);animation:path-node-wake .45s var(--ease-out) 1.15s 2,path-halo-breathe 2.2s ease-in-out 2.1s infinite}.path-screen--ftue-arrival .path-node--active .path-play-tag{opacity:0;animation:path-tag-pop .4s cubic-bezier(.34,1.56,.64,1) 1.65s forwards}.path-node--offscreen .path-node-disc,html:not(:focus-within) .path-node--active .path-node-disc{animation-play-state:paused}.path-node--shake .path-node-disc{animation:path-locked-shake .36s ease-in-out}.path-boundary{position:absolute;z-index:4;display:grid;place-items:center;pointer-events:none;transform:translate(-50%,-50%)}.path-boundary i{position:absolute;border-radius:50%}.path-boundary--splash{width:64px;height:34px}.path-boundary--splash i{top:0;right:0;bottom:0;left:0;border:3px solid rgb(255 255 255 / 75%);animation:path-splash-ring 3s ease-out infinite}.path-boundary--splash i:nth-child(2){animation-delay:1.5s}.path-boundary--airlock{width:54px;height:54px}.path-boundary--airlock i:first-child{top:0;right:0;bottom:0;left:0;border:3px solid rgb(201 204 214 / 90%);box-shadow:0 0 16px #a3eef599,inset 0 0 10px #a3eef559}.path-boundary--airlock i:nth-child(2){top:8px;right:8px;bottom:8px;left:8px;border:3px solid rgb(163 238 245 / 65%);animation:path-airlock-pulse 2.6s ease-in-out infinite}.path-goal{position:absolute;left:50%;display:flex;flex-direction:column;align-items:center;gap:.3rem;color:#cfd9ff;pointer-events:none;transform:translate(-50%)}.path-goal>span{font-size:2.4rem;filter:drop-shadow(0 4px 10px rgb(255 209 102 / 50%))}.path-goal small{font-size:.65rem;font-weight:900;letter-spacing:.08em}.path-toast{position:absolute;z-index:35;top:calc(94px + max(0px,env(safe-area-inset-top)));left:50%;display:grid;width:min(86%,360px);grid-template-columns:auto 1fr auto;align-items:center;gap:.55rem;padding:.55rem .65rem;border:1.5px solid rgb(111 210 12 / 25%);border-radius:16px;color:#3f5545;background:#fffffff5;box-shadow:0 14px 30px -10px #061b3059;font-size:.75rem;font-weight:800;line-height:1.3;opacity:0;transform:translate(-50%) translateY(-8px);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}.path-toast.is-showing{opacity:1;transform:translate(-50%)}.path-toast-medal{display:grid;width:28px;height:28px;place-items:center;border:2px solid var(--path-gold);border-radius:50%;color:#fff;background:var(--path-green)}.path-toast button{width:38px;height:38px;border:0;border-radius:50%;color:#64766a;background:transparent;font-size:1.25rem;cursor:pointer}.back-to-active{position:absolute;z-index:35;right:1rem;bottom:calc(78px + max(0px,env(safe-area-inset-bottom)));min-height:48px;padding:.55rem 1rem;border:0;border-radius:999px;color:#08300f;background:linear-gradient(180deg,var(--path-green-bright),var(--path-green));box-shadow:0 10px 22px #6fd20c73;font-family:var(--font-display);font-weight:900;cursor:pointer}.back-to-active[hidden],.path-toast[hidden]{display:none}.direction-tabs{z-index:30;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:.45rem .65rem calc(.45rem + max(0px,env(safe-area-inset-bottom)));border-top:1px solid rgb(69 90 100 / 13%);background:#fffffff7;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.direction-tabs button{display:flex;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;border:0;border-radius:.9rem;color:#8697a3;background:transparent;font-size:.7rem;font-weight:900;cursor:pointer}.direction-tabs button[aria-current=page]{color:var(--path-green-dark)}.direction-tab-icon{position:relative;display:grid;width:46px;height:30px;place-items:center;border-radius:12px;line-height:1}.direction-tab-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.direction-tab-icon circle{fill:currentColor;stroke:none}.direction-tabs button[aria-current=page] .direction-tab-icon{background:#e4f7d4;box-shadow:0 4px 10px #54b12533}.direction-tab-badge{position:absolute;top:-4px;right:-2px;display:grid;min-width:18px;height:18px;place-items:center;padding:0 4px;border-radius:999px;color:#fff;background:#ff5d73;box-shadow:0 3px 8px #ff5d737f;font-size:.62rem}.path-live-region{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.plingos-screen{background:radial-gradient(80% 45% at 50% 0%,rgb(163 238 245 / 24%),transparent 70%),linear-gradient(180deg,#d8f4e3,#a8d972)}.plingos-scroll{width:min(100%,var(--map-max-width));margin:0 auto;padding:1rem}.plingos-scroll .plingo-collection{min-height:calc(100% - 1rem)}.page-sentinel{position:absolute;bottom:0;width:1px;height:1px}@keyframes path-fill-arrival{to{stroke-dashoffset:0}}@keyframes path-node-wake{0%{opacity:.55;transform:scale(.82)}55%{opacity:1;transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes path-halo-breathe{50%{box-shadow:0 7px 0 var(--path-green-dark),0 0 0 5px #fff,0 0 0 18px #6fd20c00,0 16px 30px #6fd20c7f}}@keyframes path-tag-pop{0%{opacity:0;transform:translate(-50%) scale(.3)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes path-echo-ring{0%{opacity:1;transform:scale(.85)}to{opacity:0;transform:scale(1.35)}}@keyframes path-locked-shake{25%{transform:translate(-6px) rotate(-3deg)}50%{transform:translate(5px) rotate(2deg)}75%{transform:translate(-3px) rotate(-1deg)}}@keyframes path-splash-ring{0%{opacity:1;transform:scale(.5)}to{opacity:0;transform:scale(1.25)}}@keyframes path-airlock-pulse{50%{opacity:.45;transform:scale(.82)}}::view-transition-group(active-game){animation-duration:.3s;animation-timing-function:var(--ease-out)}@media(max-width:350px){.direction-header{gap:.35rem;padding-inline:.55rem}.direction-wordmark{font-size:1.2rem}.direction-unit-pill{font-size:.64rem}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}.path-screen *,.path-screen *:before,.path-screen *:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.path-node--active .path-node-disc{opacity:1;box-shadow:0 7px 0 var(--path-green-dark),0 0 0 5px #fff,0 0 0 10px #6fd20c73}}html.runner--bare-page,body.runner--bare-page{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body.runner--bare-page #app{width:100%;height:100%}body.runner--bare-page #plingo-dev-branch-badge{display:none}.runner--bare{box-sizing:border-box;width:100%;height:100vh;height:100dvh;padding:0!important;display:block!important;overflow:hidden;touch-action:none}.runner--bare-frame{box-sizing:border-box;width:100%;height:100vh!important;height:100dvh!important;border:0!important;border-radius:0!important;overflow:hidden}.runner--bare-frame>iframe{display:block}.hold-exit{position:fixed;top:max(12px,env(safe-area-inset-top,0px));left:max(12px,env(safe-area-inset-left,0px));z-index:30;width:52px;height:52px;display:grid;place-items:center;margin:0;padding:0;border:none;border-radius:50%;background:#061b308c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent;transition:background .16s ease,transform .16s ease;animation:hold-exit-in .26s ease-out both}.hold-exit:active,.hold-exit.is-holding{background:#061b30d1;transform:scale(.96)}.hold-exit__ring{position:absolute;top:2px;right:2px;bottom:2px;left:2px;width:calc(100% - 4px);height:calc(100% - 4px);transform:rotate(-90deg)}.hold-exit__track{fill:none;stroke:#ffffff2e;stroke-width:3}.hold-exit__progress{fill:none;stroke:var(--plingo-green, #6fd20c);stroke-width:3;stroke-linecap:round;stroke-dasharray:126;stroke-dashoffset:126;transition:stroke-dashoffset .18s ease-out}.hold-exit.is-holding .hold-exit__progress{stroke-dashoffset:0;transition:stroke-dashoffset var(--hold-ms, .7s) linear}.hold-exit__glyph{position:relative;font-size:20px;font-weight:700;line-height:1}.hold-exit__hint{position:absolute;bottom:-15px;left:50%;transform:translate(-50%);font-family:var(--font-body, system-ui, -apple-system, sans-serif);font-size:10px;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;color:#ffffffb8;text-shadow:0 1px 2px rgba(0,0,0,.35);pointer-events:none;opacity:.9;transition:opacity .2s ease}.hold-exit.is-holding .hold-exit__hint{opacity:1}@keyframes hold-exit-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.hold-exit{animation:none;transition:background .16s ease}.hold-exit:active,.hold-exit.is-holding{transform:none}}
