nav.navbar{position:sticky;top:0;z-index:100;background-color:inherit;padding:.85rem clamp(1rem,4vw,1.5rem);display:flex;justify-content:space-between;align-items:center;transition:top .3s ease-in-out}.navbar.hidden{top:-80px}.logo{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:inherit;font-weight:700;font-size:1.2rem}.logo-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background-color:var(--light-accent);color:var(--on-light-accent);font-size:.85rem;letter-spacing:.02em}body.dark .logo-mark{background-color:var(--dark-accent);color:var(--on-dark-accent)}.theme-btn{background:none;border:none;font-size:1.5rem;cursor:pointer;color:inherit}.navbar-links{display:flex;align-items:center;gap:.35rem}.navbar-link{text-decoration:none;color:inherit;font-size:1.25rem;border-radius:12px;min-width:46px;min-height:46px;display:inline-flex;align-items:center;justify-content:center}.navbar-link-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.navbar-link:hover,.navbar-link:focus-visible{background-color:#ef626c24}.navbar-link.active{background-color:#ef626c38}body.dark .navbar-link:hover,body.dark .navbar-link:focus-visible{background-color:#84dccf29}body.dark .navbar-link.active{background-color:#84dccf42}.theme-btn{min-width:46px;min-height:46px;border-radius:12px}nav.navbar{flex-wrap:nowrap;gap:.6rem}.logo{white-space:nowrap}@media(max-width:480px){.logo{font-size:1rem}}.navbar-auth-link{display:inline-flex;align-items:center;min-height:44px;padding:.45rem .8rem;border-radius:999px;font-weight:700;font-size:.95rem;white-space:nowrap;color:var(--on-light-accent);background-color:var(--light-accent);transition:filter .2s}body.dark .navbar-auth-link{color:var(--on-dark-accent);background-color:var(--dark-accent)}.navbar-auth-link:hover,.navbar-auth-link:focus-visible{filter:brightness(1.08)}.navbar-avatar-chip{--navbar-chip-colour: var(--map-chip);display:inline-flex;align-items:center;gap:.4rem;min-height:44px;max-width:10rem;padding:.3rem .75rem;border-radius:999px;font-weight:700;font-size:.9rem;white-space:nowrap;background-color:var(--map-chip);color:var(--map-text);transition:filter .2s,transform .2s}.navbar-avatar-chip.has-child{background-color:var(--navbar-chip-colour);color:var(--on-light-accent)}.navbar-avatar-chip:hover,.navbar-avatar-chip:focus-visible{filter:brightness(1.06);transform:scale(1.03)}.navbar-avatar-emoji{font-size:1.25rem;line-height:1}.navbar-avatar-name{overflow:hidden;text-overflow:ellipsis}@media(max-width:560px){.navbar-avatar-name{display:none}.navbar-avatar-chip{padding:.3rem .55rem}.navbar-auth-link{padding:.4rem .6rem;font-size:.85rem}}.navbar-link{position:relative}.navbar-news-dot{position:absolute;top:7px;right:7px;width:11px;height:11px;border:2px solid var(--light-bg);border-radius:50%;background:var(--light-accent)}body.dark .navbar-news-dot{border-color:var(--dark-bg);background:var(--dark-accent)}.navbar-stats{display:inline-flex;gap:.35rem;font-size:.9rem;font-weight:800;white-space:nowrap}.navbar-stats>span{padding:.35rem .6rem;border-radius:999px;background:var(--map-chip);color:var(--map-text)}.navbar-avatar-chip{position:relative}.navbar-streak-badge{display:none;position:absolute;bottom:-6px;right:-4px;padding:0 .3rem;border-radius:999px;background:var(--light-accent);color:var(--on-light-accent);font-size:.7rem;font-weight:800;line-height:1.5}body.dark .navbar-streak-badge{background:var(--dark-accent);color:var(--on-dark-accent)}@media(max-width:480px){.navbar-stats{display:none}.navbar-streak-badge{display:inline-block}}.mascot{--home-mascot-1: #ffb9bd;--home-mascot-2: #ef626c;--home-mascot-dot: #ffe08a;--home-mascot-cheek: rgba(239, 98, 108, .55);position:relative;display:grid;place-items:end center;width:clamp(120px,26vw,190px);aspect-ratio:1 / 1.05;padding:0;border:0;background:none;cursor:pointer;animation:mascot-bob 3.6s ease-in-out infinite;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body.dark .mascot{--home-mascot-1: #a9ece2;--home-mascot-2: #4fb4a5;--home-mascot-dot: #ffd166;--home-mascot-cheek: rgba(255, 145, 155, .5)}.mascot:focus-visible{outline:3px solid var(--home-focus, currentColor);outline-offset:8px;border-radius:40%}.mascot-body{position:relative;display:block;width:100%;aspect-ratio:1 / .92;border-radius:48% 52% 44% 56%/56% 54% 46% 44%;background:radial-gradient(circle at 32% 26%,rgba(255,255,255,.55),transparent 46%),linear-gradient(160deg,var(--home-mascot-1),var(--home-mascot-2));box-shadow:inset 0 -12px 22px #22181c29;transform-origin:50% 100%;transition:transform .18s ease-out}.mascot:hover .mascot-body{transform:scale(1.04) rotate(-2deg)}.mascot.is-reacting .mascot-body{animation:mascot-squash 1s cubic-bezier(.25,1.6,.4,1)}.mascot-antenna{position:absolute;top:-20%;width:5px;height:24%;border-radius:4px;background:var(--home-mascot-2);transform-origin:50% 100%}.mascot-antenna:after{content:"";position:absolute;top:-9px;left:50%;width:15px;height:15px;margin-left:-7.5px;border-radius:50%;background:var(--home-mascot-dot);box-shadow:0 0 0 3px var(--home-mascot-2)}.mascot-antenna-left{left:30%;transform:rotate(-16deg);animation:mascot-sway 2.9s ease-in-out infinite}.mascot-antenna-right{right:30%;transform:rotate(16deg);animation:mascot-sway 2.9s ease-in-out infinite reverse}.mascot-face{position:absolute;top:26%;left:50%;display:flex;gap:13%;width:62%;transform:translate(-50%)}.mascot-eye{position:relative;flex:1;aspect-ratio:1 / 1.12;border-radius:50%;background:#fff;box-shadow:inset 0 3px 5px #22181c33;overflow:hidden;animation:mascot-blink 5.2s infinite}.mascot-pupil{position:absolute;top:50%;left:50%;width:46%;aspect-ratio:1;border-radius:50%;background:#22181c;transform:translate(-50%,-50%) translate(var(--pupil-x, 0%),var(--pupil-y, 0%));transition:transform .12s ease-out}.mascot-pupil:after{content:"";position:absolute;top:16%;left:18%;width:34%;aspect-ratio:1;border-radius:50%;background:#ffffffe6}.mascot-cheek{position:absolute;top:52%;width:16%;aspect-ratio:1 / .7;border-radius:50%;background:var(--home-mascot-cheek);opacity:.75}.mascot-cheek-left{left:11%}.mascot-cheek-right{right:11%}.mascot-mouth{position:absolute;top:58%;left:50%;width:26%;aspect-ratio:2 / 1;border:4px solid #22181C;border-top:0;border-radius:0 0 100px 100px;transform:translate(-50%);transition:width .2s ease-out,aspect-ratio .2s ease-out}.mascot:hover .mascot-mouth,.mascot.is-reacting .mascot-mouth{width:34%;aspect-ratio:1.5 / 1}.mascot-shadow{position:absolute;bottom:-4%;left:50%;width:56%;height:7%;border-radius:50%;background:#22181c2e;filter:blur(4px);transform:translate(-50%);animation:mascot-shadow-pulse 3.6s ease-in-out infinite}.mascot-burst{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.mascot-burst span{position:absolute;font-size:1.5rem;animation:mascot-burst-fly 1s ease-out forwards}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes mascot-shadow-pulse{0%,to{transform:translate(-50%) scale(1);opacity:.55}50%{transform:translate(-50%) scale(.86);opacity:.35}}@keyframes mascot-sway{0%,to{transform:rotate(-16deg)}50%{transform:rotate(-4deg)}}@keyframes mascot-blink{0%,92%,96%,to{transform:scaleY(1)}94%,98%{transform:scaleY(.08)}}@keyframes mascot-squash{0%{transform:scale(1)}22%{transform:scale(1.18,.78) translateY(6%)}45%{transform:scale(.88,1.2) translateY(-14%)}68%{transform:scale(1.08,.94) translateY(2%)}to{transform:scale(1)}}@keyframes mascot-burst-fly{0%{opacity:0;transform:rotate(var(--burst-angle)) translateY(0) rotate(calc(-1 * var(--burst-angle))) scale(.3)}20%{opacity:1}to{opacity:0;transform:rotate(var(--burst-angle)) translateY(calc(-1 * var(--burst-distance))) rotate(calc(-1 * var(--burst-angle))) scale(1.1)}}@media(prefers-reduced-motion:reduce){.mascot,.mascot-shadow,.mascot-antenna,.mascot-eye,.mascot.is-reacting .mascot-body{animation:none}.mascot-body,.mascot-mouth,.mascot-pupil{transition:none}.mascot:hover .mascot-body{transform:none}}.mascot.mascot-small{width:150px;zoom:.38}.mascot.mascot-medium{width:150px;zoom:.62}.mascot .mascot-face{transition:transform .24s cubic-bezier(.22,1.2,.36,1)}.mascot.is-puzzled .mascot-face{transform:translate(-50%) rotate(-12deg) translateY(2%)}@media(prefers-reduced-motion:reduce){.mascot .mascot-face{transition:none}}.level-bar{--lb-ink: var(--light-text);--lb-track: rgba(34, 24, 28, .1);--lb-fill: var(--light-accent);display:flex;align-items:center;gap:.5rem;color:var(--lb-ink);font-weight:700}body.dark .level-bar{--lb-ink: var(--dark-text);--lb-track: rgba(246, 232, 234, .14);--lb-fill: var(--dark-accent)}.level-bar-track{flex:1;height:12px;min-width:80px;border-radius:999px;background:var(--lb-track);overflow:hidden}.level-bar-fill{display:block;height:100%;border-radius:inherit;background:var(--lb-fill);transition:width .9s cubic-bezier(.2,.9,.3,1)}.level-bar-count{font-size:.85rem;opacity:.8;white-space:nowrap}@media(prefers-reduced-motion:reduce){.level-bar-fill{transition:none}}.week-dots{--wd-ink: var(--light-text);--wd-empty: rgba(34, 24, 28, .08);--wd-ring: var(--light-accent);display:flex;justify-content:center;gap:.4rem;margin:.8rem 0 0;padding:0;list-style:none;color:var(--wd-ink)}body.dark .week-dots{--wd-ink: var(--dark-text);--wd-empty: rgba(246, 232, 234, .12);--wd-ring: var(--dark-accent)}.week-dot{display:grid;justify-items:center;gap:.2rem;font-size:.75rem;font-weight:700}.week-dot-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--wd-empty);font-size:1.05rem}.week-dot.is-today .week-dot-mark{box-shadow:inset 0 0 0 3px var(--wd-ring)}.home-achievements{padding:0 16px}.home-ach-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.home-ach-card{display:grid;align-content:start;gap:.35rem;padding:1.1rem 1.2rem;border:2px solid var(--home-card-edge);border-radius:22px;background:var(--home-card);color:var(--home-ink);text-decoration:none;box-shadow:0 6px 18px var(--panel-shadow)}a.home-ach-card:focus-visible{outline:3px solid var(--home-focus);outline-offset:3px}.home-ach-news{grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;margin-bottom:1rem;border-color:var(--home-accent)}.home-ach-news-icon{font-size:2.2rem;animation:home-ach-wiggle 1.6s ease-in-out infinite}.home-ach-go{font-weight:800;white-space:nowrap}.home-ach-eyebrow{margin:0;color:var(--home-muted);font-weight:700;letter-spacing:.04em}.home-ach-big{margin:0;font-size:1.5rem;font-weight:800}.home-ach-note{margin:0;color:var(--home-muted)}.home-ach-level{margin-top:.6rem}.home-ach-latest{display:flex;align-items:center;gap:.5rem;margin:.4rem 0 0;font-weight:700}.home-ach-sticker{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--home-card-edge);font-size:1.5rem}@keyframes home-ach-wiggle{0%,to{transform:rotate(0)}50%{transform:rotate(-10deg) scale(1.08)}}@media(max-width:560px){.home-ach-news{grid-template-columns:auto 1fr}.home-ach-go{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){.home-ach-news-icon{animation:none}}.home-page{--home-ink: var(--light-text);--home-muted: #645057;--home-card: var(--light-panel);--home-card-edge: #f0dde0;--home-sky-top: #ffe3e7;--home-sky-bottom: #f8ecee;--home-glyph: rgba(239, 98, 108, .28);--home-accent: var(--light-accent);--home-on-accent: var(--on-light-accent);--home-focus: #22181C;--home-cta: #c33d47;--home-on-cta: #ffffff;--home-accent-shade: #92262f;--home-hue-math: #ef626c;--home-hue-english: #9f91e8;--home-hue-geography: #2fa898;--home-hue-science: #e39a24;--home-deep-math: #c33d47;--home-deep-english: #5e4eb8;--home-deep-geography: #1f7d70;--home-deep-science: #8f5900;--home-on-deep: #ffffff;padding:0 1rem 4rem;color:var(--home-ink);background-color:var(--light-bg);overflow-x:clip}body.dark .home-page{--home-ink: var(--dark-text);--home-muted: #c8b9bd;--home-card: var(--dark-panel);--home-card-edge: #46403f;--home-sky-top: #33262c;--home-sky-bottom: #241a1e;--home-glyph: rgba(132, 220, 207, .24);--home-accent: var(--dark-accent);--home-on-accent: var(--on-dark-accent);--home-focus: #84DCCF;--home-cta: #1f7d70;--home-on-cta: #ffffff;--home-accent-shade: #13544b;background-color:var(--dark-bg)}.reveal-armed{opacity:0;transform:translateY(26px) scale(.98);transition:opacity .52s ease-out,transform .52s cubic-bezier(.22,1.2,.36,1)}.reveal-armed.is-revealed{opacity:1;transform:none}.home-hero{position:relative;max-width:1150px;margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) clamp(1rem,4vw,3rem) clamp(2rem,5vw,3rem);border-radius:0 0 40px 40px;background:linear-gradient(180deg,var(--home-sky-top),var(--home-sky-bottom));overflow:hidden;isolation:isolate}@media(max-width:720px){.home-page{padding-inline:.75rem}.home-hero{margin-inline:-.75rem;padding-top:3rem;border-radius:0 0 32px 32px}}.home-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}.home-glyph{position:absolute;color:var(--home-glyph);font-weight:700;line-height:1;animation-name:home-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.home-hero-inner{display:flex;align-items:center;justify-content:center;gap:clamp(1rem,4vw,3rem)}.home-hero-copy{flex:1 1 380px;max-width:560px}@media(max-width:760px){.home-hero-inner{flex-direction:column-reverse;text-align:center}.home-hero-copy{flex-basis:auto}.home-hero-inner.is-signed-in{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:.6rem;row-gap:.2rem}.home-hero-inner.is-signed-in .home-hero-copy{display:contents}.home-hero-inner.is-signed-in .home-hello{grid-column:1;grid-row:1;justify-self:start;margin-bottom:0}.home-hero-inner.is-signed-in .home-hero-mascot{grid-column:2;grid-row:1}.home-hero-inner.is-signed-in .mascot{width:clamp(88px,24vw,130px)}.home-hero-inner.is-signed-in .home-progress,.home-hero-inner.is-signed-in .home-hero-actions{grid-column:1 / -1}}.home-hello{display:inline-flex;align-items:center;gap:.6rem;margin:0 0 .6rem;padding:.35rem .9rem .35rem .35rem;border-radius:999px;background:var(--home-card);box-shadow:0 4px 14px var(--panel-shadow);font-size:1.15rem;font-weight:700}.home-hello-avatar{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:50%;font-size:1.3rem}.home-hello-name span{display:inline-block;animation:home-letter-in .52s cubic-bezier(.22,1.4,.36,1) both;animation-delay:calc(var(--letter-index) * 45ms)}.home-title{margin:.2rem 0 .6rem;color:var(--home-ink);font-size:clamp(2rem,6.5vw,3.4rem);line-height:1.1}.home-subtitle{margin:0 0 1.4rem;max-width:34ch;color:var(--home-muted);font-size:clamp(1rem,2.4vw,1.2rem)}@media(max-width:760px){.home-subtitle{margin-inline:auto}}.home-hero-actions{display:flex;flex-wrap:wrap;gap:.8rem}@media(max-width:760px){.home-hero-actions{flex-wrap:wrap;justify-content:center}.home-btn-big{flex:1 0 100%;justify-content:center}.home-btn-quiet{flex:1 1 0;min-width:0;justify-content:center;padding-inline:.9rem}}.home-hero-mascot{display:grid;justify-items:center;gap:.6rem}.home-btn{display:inline-flex;align-items:center;gap:.45rem;min-height:56px;padding:.9rem 1.5rem;border-radius:16px;font-size:1.05rem;font-weight:700;text-decoration:none;transition:transform .14s ease-out,box-shadow .14s ease-out,background-color .2s ease}.home-btn-big{min-height:68px;padding:1.1rem 2rem;font-size:clamp(1.15rem,3vw,1.4rem)}.home-btn-primary{background:var(--home-cta);color:var(--home-on-cta);box-shadow:0 6px 0 var(--home-accent-shade)}.home-btn-primary:hover{transform:translateY(-2px)}.home-btn-primary:active{transform:translateY(5px);box-shadow:0 1px 0 var(--home-accent-shade)}.home-btn-ghost{background:var(--home-card);color:var(--home-ink);box-shadow:0 6px 0 var(--home-card-edge)}.home-btn-ghost:hover{transform:translateY(-2px)}.home-btn-ghost:active{transform:translateY(5px);box-shadow:0 1px 0 var(--home-card-edge)}.home-btn-quiet{background:none;border:2px solid var(--home-card-edge);color:var(--home-ink);font-size:1rem}.home-btn-quiet:hover{background:var(--home-card);border-color:var(--home-cta)}.home-btn-quiet:active{transform:translateY(2px)}.home-btn:focus-visible,.home-chip:focus-visible,.home-mode:focus-visible,.home-subject:focus-visible{outline:3px solid var(--home-focus);outline-offset:3px}.home-progress{display:flex;align-items:center;gap:.9rem;margin-bottom:1.3rem}@media(max-width:760px){.home-progress{justify-content:center;text-align:left}}.home-progress p{margin:0}.home-progress-topic{font-size:1.15rem;font-weight:700}.home-progress-count{color:var(--home-muted);font-size:.95rem}.home-eyebrow{margin:0;color:var(--home-muted);font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.home-ring{flex:none;width:clamp(76px,18vw,94px);height:auto}.home-ring-track{fill:none;stroke:var(--home-card-edge);stroke-width:11}.home-ring-fill{fill:none;stroke:var(--home-accent);stroke-width:11;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.9,.3,1)}.home-ring-text{fill:var(--home-ink);font-size:1.5rem;font-weight:700;text-anchor:middle;dominant-baseline:central}.home-section{max-width:1150px;margin:clamp(2.5rem,7vw,4.5rem) auto 0}.home-section-title{margin:0 0 1.4rem;font-size:clamp(1.6rem,5vw,2.3rem);text-align:center}.home-subjects{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.home-subject{position:relative;display:flex;flex-direction:column;padding:1.5rem 1.3rem 1.3rem;border:3px solid var(--subject-hue);border-radius:26px;background:var(--home-card);box-shadow:0 10px 0 -2px var(--subject-hue),0 16px 30px var(--panel-shadow);transition:transform .22s cubic-bezier(.22,1.2,.36,1),box-shadow .22s ease-out}.home-subject:hover{transform:translateY(-8px) rotate(-1.2deg);box-shadow:0 16px 0 -2px var(--subject-hue),0 24px 40px var(--panel-shadow)}.home-subject:active{transform:translateY(-2px)}.home-subject h3{margin:.6rem 0 .35rem;font-size:1.5rem}.home-subject p{margin:0 0 1rem;color:var(--home-muted)}.home-subject-icon{display:grid;place-items:center;width:68px;height:68px;border-radius:22px;background:var(--subject-hue);font-size:2.2rem;animation:home-icon-idle 4.5s ease-in-out infinite}.home-subject:hover .home-subject-icon{animation:home-icon-wiggle .7s ease-in-out infinite}.home-subject-quick{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.home-chip{padding:.5rem .85rem;border:2px solid var(--subject-hue);border-radius:999px;color:var(--home-ink);font-size:.9rem;font-weight:700;text-decoration:none;transition:background-color .18s ease,color .18s ease,transform .18s ease}.home-chip:hover{background:var(--subject-deep);border-color:var(--subject-deep);color:var(--home-on-deep);transform:translateY(-2px)}.home-subject-go{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:56px;margin-top:auto;padding:.85rem 1.2rem;border-radius:16px;background:var(--subject-deep);color:var(--home-on-deep);font-size:1.05rem;font-weight:700;text-decoration:none;transition:transform .16s ease-out}.home-subject-go:hover{transform:scale(1.03)}.home-subject-go:active{transform:scale(.97)}.home-subject.is-locked{cursor:default;opacity:.92;border-style:dashed;box-shadow:0 10px 30px var(--panel-shadow)}.home-subject.is-locked:hover{transform:none;box-shadow:0 10px 30px var(--panel-shadow)}.home-subject.is-nudged{animation:home-shake .46s ease-in-out}.home-subject-locked{display:flex;align-items:center;justify-content:center;min-height:56px;margin-top:auto;border:2px dashed var(--subject-hue);border-radius:16px;color:var(--home-muted);font-weight:700}.home-subject-badge{position:absolute;top:-14px;right:16px;padding:.3rem .8rem;border-radius:999px;background:var(--subject-deep);color:var(--home-on-deep);font-size:.8rem;font-weight:700;background-image:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.75) 50%,transparent 70%);background-size:250% 100%;animation:home-shimmer 2.8s linear infinite}.home-modes{display:grid;gap:1.3rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.home-mode{display:block;padding:1.6rem;border-radius:28px;background:var(--home-card);box-shadow:0 10px 0 -2px var(--mode-hue),0 16px 30px var(--panel-shadow);color:var(--home-ink);text-decoration:none;transition:transform .22s cubic-bezier(.22,1.2,.36,1)}.home-mode-curriculum{--mode-hue: var(--home-accent)}.home-mode-skills{--mode-hue: var(--home-hue-geography)}.home-mode:hover{transform:translateY(-6px);box-shadow:0 16px 0 -2px var(--mode-hue),0 24px 40px var(--panel-shadow)}.home-mode:active{transform:translateY(0)}.home-mode h3{display:flex;align-items:center;gap:.6rem;margin:.9rem 0 .4rem;font-size:1.6rem}.home-mode-badge{display:grid;place-items:center;flex:none;width:2.6rem;height:2.6rem;border-radius:14px;background:var(--mode-hue);font-size:1.4rem}.home-mode p{margin:0 0 1rem;color:var(--home-muted)}.home-mode-go{font-size:1.05rem;font-weight:700;color:var(--home-ink);text-decoration:underline;text-underline-offset:4px}.home-mode-art{display:flex;align-items:center;gap:.6rem;height:60px}.home-mode-curriculum .home-mode-art i{width:34px;height:34px;border-radius:50%;background:var(--home-card-edge);animation:home-step 3.2s ease-in-out infinite;animation-delay:calc(var(--step-index) * .32s)}.home-mode-skills .home-mode-art i{font-size:1.9rem;font-style:normal;animation:home-pip 2.4s ease-in-out infinite;animation-delay:calc(var(--pip-index) * .16s)}@keyframes home-drift{0%,to{transform:translateZ(0) rotate(0)}33%{transform:translate3d(14px,-22px,0) rotate(8deg)}66%{transform:translate3d(-12px,-10px,0) rotate(-6deg)}}@keyframes home-letter-in{0%{opacity:0;transform:translateY(14px) rotate(-8deg)}to{opacity:1;transform:none}}@keyframes home-rocket{0%,to{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-12px) rotate(4deg)}}@keyframes home-icon-idle{0%,88%,to{transform:translateY(0) rotate(0)}92%{transform:translateY(-6px) rotate(-7deg)}96%{transform:translateY(-3px) rotate(5deg)}}@keyframes home-icon-wiggle{0%,to{transform:rotate(-8deg) scale(1.06)}50%{transform:rotate(8deg) scale(1.06)}}@keyframes home-shake{0%,to{transform:translate(0)}20%{transform:translate(-9px) rotate(-1.5deg)}40%{transform:translate(8px) rotate(1.5deg)}60%{transform:translate(-5px) rotate(-1deg)}80%{transform:translate(4px)}}@keyframes home-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes home-step{0%,60%,to{background:var(--home-card-edge);transform:scale(1)}25%{background:var(--home-accent);transform:scale(1.22)}}@keyframes home-pip{0%,to{transform:translateY(0)}40%{transform:translateY(-12px) rotate(-10deg)}}@media(prefers-reduced-motion:reduce){.home-glyph,.home-subject-icon,.home-subject:hover .home-subject-icon,.home-subject-badge,.home-hello-name span,.home-mode-curriculum .home-mode-art i,.home-mode-skills .home-mode-art i,.home-subject.is-nudged{animation:none}.home-btn,.home-subject,.home-mode,.home-chip,.home-subject-go,.home-ring-fill,.reveal-armed{transition:none}.home-btn:hover,.home-subject:hover,.home-mode:hover,.home-chip:hover,.home-subject-go:hover{transform:none}}.home-footer{max-width:1150px;margin:clamp(3rem,8vw,5rem) auto 0;padding:clamp(1.5rem,4vw,2.5rem);border-radius:28px;background:var(--home-card);box-shadow:0 14px 34px var(--panel-shadow)}.home-footer-inner{display:flex;flex-wrap:wrap;gap:clamp(1.5rem,5vw,4rem);justify-content:space-between}.home-footer-brand{display:flex;gap:.9rem;max-width:34rem}.home-footer-mark{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:14px;background:var(--home-cta);color:var(--home-on-cta);font-weight:700}.home-footer-name{margin:0 0 .25rem;font-size:1.2rem;font-weight:700}.home-footer-tagline{margin:0;color:var(--home-muted)}.home-footer-nav{display:flex;flex-wrap:wrap;gap:clamp(1.5rem,6vw,3.5rem)}.home-footer-group{display:flex;flex-direction:column}.home-footer-group h2{margin:0 0 .3rem;color:var(--home-muted);font-size:.85rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.home-footer-group a{display:inline-flex;align-items:center;min-height:48px;color:var(--home-ink);font-weight:700;text-decoration:none}.home-footer-group a:hover{text-decoration:underline;text-underline-offset:4px}.home-footer-group a:focus-visible{outline:3px solid var(--home-focus);outline-offset:3px;border-radius:8px}.home-footer-note{margin:clamp(1.2rem,4vw,2rem) 0 0;padding-top:1.2rem;border-top:2px solid var(--home-card-edge);color:var(--home-muted);font-size:.9rem}.react-clock{display:block;position:relative}.react-clock,.react-clock *,.react-clock *:before,.react-clock *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.react-clock__face{position:absolute;inset:0;border:1px solid black;border-radius:50%}.react-clock__hand{position:absolute;inset:0 50%}.react-clock__hand__body{position:absolute;background-color:#000;transform:translate(-50%)}.react-clock__mark{position:absolute;inset:0 50%}.react-clock__mark__body{position:absolute;background-color:#000;transform:translate(-50%)}.react-clock__mark__number{position:absolute;left:-40px;width:80px;text-align:center}.react-clock__second-hand__body{background-color:red}.clock-wrapper{position:relative;width:clamp(250px,60vmin,420px);aspect-ratio:1;height:auto;margin:2rem auto}.dual-label{position:absolute;width:12%;text-align:center;font-size:clamp(.72rem,2.2vmin,.95rem);line-height:1.15;font-weight:600;transform:translate(-50%,-50%);pointer-events:none;color:inherit}.counting-panel{display:flex;flex-direction:column;align-items:center;gap:1rem}.input-row{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap}.range-group{display:flex;flex-direction:column;align-items:flex-start;font-size:.95rem}.range-group input{padding:.3rem;font-size:1rem;width:120px;border:2px solid var(--light-accent);border-radius:5px;background-color:#fff;color:#000}body.dark .range-group input{background-color:#222;border-color:var(--dark-accent);color:#fff}.display-mode{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.display-mode label{cursor:pointer;font-size:.95rem;display:flex;align-items:center;gap:.4rem}.output-box{margin-top:1rem;padding:1.2rem 2rem;border-radius:8px;background-color:var(--light-panel);border:2px solid var(--light-accent);color:var(--light-text);text-align:center;font-size:1.25rem}body.dark .output-box{background-color:var(--dark-accent);color:#000}.multiplication-panel{display:flex;flex-direction:column;align-items:center;gap:1.2rem}.config-row{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap}.config-row label{display:flex;flex-direction:column;font-size:.95rem;align-items:center;gap:.3rem;color:inherit}.config-row input{padding:.3rem;font-size:1rem;width:80px;border:2px solid var(--light-accent);border-radius:6px;background-color:#fff;color:#000}body.dark .config-row input{background-color:#222;border-color:var(--dark-accent);color:#fff}.table-wrapper{overflow-x:auto;max-width:100%}.multiplication-table{border-collapse:collapse;font-size:1rem}.multiplication-table th,.multiplication-table td{border:1px solid var(--light-accent);padding:.5rem;text-align:center;min-width:45px;height:45px}body.dark .multiplication-table th,body.dark .multiplication-table td{border-color:var(--dark-accent)}.header-cell{font-weight:700;background-color:var(--light-accent);color:#fff}body.dark .header-cell{background-color:var(--dark-accent);color:#000}.cell.highlight{background-color:#ef626c33}body.dark .cell.highlight{background-color:#84dccf33}.cell.focus{background-color:var(--light-accent);color:#fff}body.dark .cell.focus{background-color:var(--dark-accent);color:#000}.calculation-display{font-size:1.2rem;font-weight:700;color:var(--light-accent)}body.dark .calculation-display{color:var(--dark-accent)}.score,.prompt{font-weight:600;color:var(--light-text)}.score{font-size:1.2rem}.prompt{font-size:1.5rem}body.dark .score,body.dark .prompt{color:var(--dark-text)}.word{font-size:2.5rem;font-weight:700;color:var(--light-text);font-family:monospace;background-color:var(--light-panel);padding:1.5rem 2.5rem;border-radius:12px;box-shadow:0 4px 6px #0000001a}body.dark .optionBtn.correct{background-color:var(--dark-accent);color:var(--dark-bg)}body.dark .optionBtn.wrong{background-color:#555}select{width:80%;max-width:300px;padding:.6rem 1rem;font-size:1rem;border-radius:8px;border:2px solid var(--light-accent);background-color:var(--light-panel);color:var(--light-text);transition:all .2s ease;box-shadow:0 1px 3px #0000001a;cursor:pointer}select:hover,select:focus{border-color:var(--light-accent);box-shadow:0 0 8px #ef626c4d;outline:none}body.dark select{background-color:var(--dark-panel);color:var(--dark-text);border-color:var(--dark-accent)}body.dark select:hover,body.dark select:focus{box-shadow:0 0 8px #84dccf4d}input[type=range]{-webkit-appearance:none;appearance:none;width:80%;max-width:300px;height:6px;border-radius:5px;background:linear-gradient(to right,var(--light-accent),rgba(239,98,108,.3));outline:none;transition:background .2s;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--light-accent);box-shadow:0 0 4px #ef626c66;transition:transform .2s ease}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}body.dark input[type=range]{background:linear-gradient(to right,var(--dark-accent),rgba(132,220,207,.3))}body.dark input[type=range]::-webkit-slider-thumb{background:var(--dark-accent);box-shadow:0 0 4px #84dccf66}input[type=range]::-moz-range-track{height:6px;border-radius:5px;background:linear-gradient(to right,var(--light-accent),rgba(239,98,108,.3))}body.dark input[type=range]::-moz-range-track{background:linear-gradient(to right,var(--dark-accent),rgba(132,220,207,.3))}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--light-accent);border:none;box-shadow:0 0 4px #ef626c66}body.dark input[type=range]::-moz-range-thumb{background:var(--dark-accent);box-shadow:0 0 4px #84dccf66}.opGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem 1rem;width:100%}.opCheck{display:flex;align-items:center;gap:.5rem;font-weight:600;cursor:pointer;color:var(--light-text)}.opCheck input{width:1.15rem;height:1.15rem;accent-color:var(--light-accent);cursor:pointer}.opCheck input:disabled{cursor:default}.opCheck:has(input:disabled){opacity:.55;cursor:default}.settingsHint{font-size:.85rem;opacity:.75;color:var(--light-text)}body.dark .opCheck,body.dark .settingsHint{color:var(--dark-text)}body.dark .opCheck input{accent-color:var(--dark-accent)}.prompt{font-size:1.5rem;font-weight:600;color:var(--light-text)}.word{font-size:2.2rem;font-weight:700;color:var(--light-text);font-family:monospace;background-color:var(--light-panel);padding:1.5rem 2.5rem;border-radius:12px;box-shadow:0 4px 6px #0000001a}.feedback{font-size:1.25rem;font-weight:600}.options{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.optionBtn{font-size:1.5rem;padding:.75rem 1.5rem;border:2px solid var(--light-accent);border-radius:8px;background-color:var(--light-panel);color:var(--light-text);cursor:pointer;transition:all .2s;font-weight:600;min-width:80px}select{width:80%;max-width:300px}.startBtn,.restartBtn{padding:.75rem 2rem;font-size:1.2rem;font-weight:600;border-radius:8px;cursor:pointer;background-color:var(--light-accent);color:#fff;border:none;transition:all .2s}.bonds-wrapper{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:1rem;width:100%;max-width:900px;margin:0 auto;box-sizing:border-box}.bonds-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%;gap:.75rem}.bonds-title{font-size:1.6rem;font-weight:700;color:var(--light-text);margin:0}body.dark .bonds-title{color:var(--dark-text)}.bonds-select{display:flex;align-items:center;gap:.5rem;font-weight:600}.bonds-select label{color:var(--light-text)}body.dark .bonds-select label{color:var(--dark-text)}.bonds-select select{border:2px solid var(--light-accent);background-color:var(--light-panel);border-radius:8px;padding:.3rem .5rem;font-weight:600;cursor:pointer;color:var(--light-text)}body.dark .bonds-select select{border-color:var(--dark-accent);background-color:var(--dark-panel);color:var(--dark-text)}.bonds-score{font-size:1.1rem;font-weight:600;color:var(--light-text)}body.dark .bonds-score{color:var(--dark-text)}.bonds-prompt{font-size:1.25rem;font-weight:500;color:var(--light-text)}body.dark .bonds-prompt{color:var(--dark-text)}.bonds-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.75rem;width:100%;max-width:500px;justify-items:center}.bonds-card{perspective:1000px;cursor:pointer}.bonds-card-inner{position:relative;width:clamp(70px,20vw,100px);height:clamp(70px,20vw,100px);transform-style:preserve-3d;transition:transform .4s}.bonds-card.flipped .bonds-card-inner{transform:rotateY(180deg)}.bonds-card-front,.bonds-card-back{position:absolute;width:100%;height:100%;border-radius:12px;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.3rem}.bonds-card-front{background-color:var(--light-panel);border:2px solid var(--light-accent);color:var(--light-accent)}body.dark .bonds-card-front{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-accent)}.bonds-card-back{background-color:var(--light-accent);color:#fff;transform:rotateY(180deg)}body.dark .bonds-card-back{background-color:var(--dark-accent);color:var(--dark-bg)}.bonds-card.matched .bonds-card-back{opacity:.7}.bonds-feedback{font-size:1.25rem;font-weight:600}.bonds-feedback.correct{color:var(--light-accent)}.bonds-feedback.wrong{color:#888;animation:shake .3s}body.dark .bonds-feedback.correct{color:var(--dark-accent)}body.dark .bonds-feedback.wrong{color:#aaa}.practice-container{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.practice-equation{font-size:2rem;font-weight:700;color:var(--light-text);display:flex;align-items:center;justify-content:center;gap:.5rem}body.dark .practice-equation{color:var(--dark-text)}.practice-input{width:60px;font-size:1.8rem;text-align:center;font-weight:700;border:2px solid var(--light-accent);border-radius:8px;padding:.3rem;background:var(--light-panel);color:var(--light-text)}.practice-input:focus{outline:none;border-color:var(--light-accent)}body.dark .practice-input{background:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text)}.bonds-controls{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:flex-end;width:100%}.practice-input-group{display:flex;align-items:center;gap:.5rem}.practice-btn{background-color:var(--light-accent);color:#fff;border:none;border-radius:8px;padding:.4rem .8rem;font-weight:600;font-size:1rem;cursor:pointer;transition:all .2s}.practice-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 5px #0003}.practice-btn:disabled{opacity:.5;cursor:not-allowed}body.dark .practice-btn{background-color:var(--dark-accent);color:var(--dark-bg)}.bonds-custom-input{width:80px;font-weight:600;font-size:1rem;border:2px solid var(--light-accent);border-radius:8px;padding:.25rem .4rem;background-color:var(--light-panel);color:var(--light-text);text-align:center}body.dark .bonds-custom-input{border-color:var(--dark-accent);background-color:var(--dark-panel);color:var(--dark-text)}@media(max-width:480px){.bonds-grid{gap:.6rem}.bonds-header{flex-direction:column;align-items:flex-start}.bonds-controls{justify-content:center}.bonds-title{text-align:center;width:100%}.bonds-card-inner{width:70px;height:70px}}.bonds-notice{margin:0 auto .5rem;max-width:32rem;font-size:.9rem;opacity:.85;color:var(--light-text)}body.dark .bonds-notice{color:var(--dark-text)}.fraction-wrapper{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;width:100%;max-width:600px;margin:0 auto}.fraction-title{font-size:1.6rem;font-weight:700;color:var(--light-text)}body.dark .fraction-title{color:var(--dark-text)}.fraction-prompt{font-size:1.25rem;font-weight:500;color:var(--light-text)}body.dark .fraction-prompt{color:var(--dark-text)}.fraction-bar{display:flex;justify-content:stretch;align-items:stretch;width:100%;max-width:100%;height:auto;flex-wrap:wrap;overflow:hidden;border-radius:8px;box-sizing:border-box;padding:0;gap:4px;padding:0 1rem}.fraction-segment{flex:1;min-width:0;min-height:60px;margin:0;border:2px solid var(--light-accent);border-radius:4px;background:var(--light-panel);cursor:pointer;transition:all .2s ease;box-sizing:border-box}.fraction-segment:hover{transform:scale(1.05)}.fraction-segment.filled{background:var(--light-accent)}body.dark .fraction-segment{border-color:var(--dark-accent);background:var(--dark-panel)}body.dark .fraction-segment.filled{background:var(--dark-accent)}.fraction-btn{background-color:var(--light-accent);color:#fff;border:none;border-radius:8px;padding:.5rem 1rem;font-weight:600;cursor:pointer;font-size:1rem;transition:all .2s}.fraction-btn:hover{transform:translateY(-1px)}.fraction-btn:disabled{opacity:.6;cursor:not-allowed}body.dark .fraction-btn{background-color:var(--dark-accent);color:var(--dark-bg)}.fraction-feedback{font-size:1.25rem;font-weight:600}.fraction-feedback.correct{color:var(--light-accent)}.fraction-feedback.wrong{color:#888}body.dark .fraction-feedback.correct{color:var(--dark-accent)}body.dark .fraction-feedback.wrong{color:#aaa}@media(max-width:600px){.fraction-bar{gap:2px}.fraction-segment{min-height:45px}}.wrapper{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;max-width:600px;margin:0 auto}.score{font-size:1.2rem;font-weight:600;color:var(--light-text)}.prompt{font-size:1.5rem;font-weight:600;color:var(--light-text);margin:0}.word{font-size:3rem;font-weight:700;letter-spacing:.5rem;color:var(--light-text);font-family:monospace;background-color:var(--light-panel);padding:1.5rem 2.5rem;border-radius:12px;box-shadow:0 4px 6px #0000001a}body.dark .word{color:var(--dark-text);background-color:var(--dark-panel)}.feedback{font-size:1.25rem;font-weight:600;margin-top:-.5rem}.feedback.correct{color:var(--light-accent)}.feedback.wrong{color:#888}body.dark .feedback.correct{color:var(--dark-accent)}body.dark .feedback.wrong{color:#aaa}.options{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.optionBtn{font-size:1.5rem;padding:.75rem 1.5rem;border:2px solid var(--light-accent);border-radius:8px;background-color:var(--light-panel);color:var(--light-text);cursor:pointer;transition:all .2s;font-weight:600;box-shadow:0 1px 3px #0000001a;min-width:60px}.optionBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #ef626c4d}.optionBtn:disabled{cursor:default}body.dark .optionBtn{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text)}body.dark .optionBtn:hover:not(:disabled){box-shadow:0 4px 8px #84dccf4d}.optionBtn.correct{background-color:var(--light-accent);color:#fff;border-color:var(--light-accent);transform:scale(1.05)}body.dark .optionBtn.correct{background-color:var(--dark-accent);color:var(--dark-bg);border-color:var(--dark-accent)}.optionBtn.wrong{background-color:#888;color:#fff;border-color:#888}body.dark .optionBtn.wrong{background-color:#555;color:#fff;border-color:#555}.optionBtn.dimmed{opacity:.4}.sorter-wrapper{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;max-width:800px;margin:0 auto}.sorter-score{font-size:1.2rem;font-weight:600;color:var(--light-text)}body.dark .sorter-score{color:var(--dark-text)}.sorter-prompt{margin:0;font-size:1.5rem;font-weight:600;color:var(--light-text)}body.dark .sorter-prompt{color:var(--dark-text)}.word-bank{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;background-color:var(--light-panel);padding:1rem;border-radius:12px;min-height:80px}body.dark .word-bank{background-color:var(--dark-panel)}.word-tile{background-color:var(--light-panel);border:2px solid var(--light-accent);border-radius:8px;padding:.5rem 1rem;font-weight:600;cursor:grab;color:var(--light-text);transition:all .2s;display:flex;justify-content:center;align-items:center}.word-tile:hover{transform:scale(1.05)}body.dark .word-tile{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text)}.word-tile.small{font-size:.9rem;cursor:default}.bucket-area{width:100%;display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.bucket{flex:1 1 200px;min-height:120px;background-color:var(--light-panel);border:3px dashed var(--light-accent);border-radius:12px;padding:1rem;text-align:center;transition:background .3s;display:flex;flex-flow:column;gap:1rem}body.dark .bucket{background-color:var(--dark-panel);border-color:var(--dark-accent)}.bucket-title{font-weight:700;margin-bottom:.5rem;color:var(--light-text)}body.dark .bucket-title{color:var(--dark-text)}.sorter-feedback{font-size:1.25rem;font-weight:600}.sorter-feedback.correct{color:var(--light-accent)}.sorter-feedback.wrong{color:#888}body.dark .sorter-feedback.correct{color:var(--dark-accent)}body.dark .sorter-feedback.wrong{color:#aaa}.sorter-newBtn{padding:.7rem 1.5rem;font-size:1rem;font-weight:600;border-radius:10px;border:2px solid var(--light-accent);background-color:var(--light-panel);color:var(--light-text);cursor:pointer;transition:all .2s}.sorter-newBtn:hover:not(:disabled){background-color:var(--light-accent);color:#fff;transform:translateY(-2px)}.sorter-newBtn:disabled{opacity:.5;cursor:default}body.dark .sorter-newBtn{border-color:var(--dark-accent);background-color:var(--dark-panel);color:var(--dark-text)}body.dark .sorter-newBtn:hover:not(:disabled){background-color:var(--dark-accent);color:var(--dark-bg)}.sentence-wrapper{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;max-width:700px;margin:0 auto;text-align:center}.sentence-score{font-size:1.2rem;font-weight:600;color:var(--light-text)}body.dark .sentence-score{color:var(--dark-text)}.sentence-prompt{font-size:1.5rem;font-weight:600;color:var(--light-text)}body.dark .sentence-prompt{color:var(--dark-text)}.sentence-area{background-color:var(--light-panel);padding:1rem 1.5rem;border-radius:12px;box-shadow:0 4px 6px #0000001a;min-height:100px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap}body.dark .sentence-area{background-color:var(--dark-panel)}.word-container{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.word-chip{background-color:var(--light-panel);border:2px solid var(--light-accent);border-radius:8px;padding:.5rem 1rem;cursor:grab;-webkit-user-select:none;user-select:none;font-size:1.1rem;font-weight:600;transition:all .2s ease;color:var(--light-text)}body.dark .word-chip{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text)}.word-chip.correct{background-color:var(--light-accent);color:#fff;border-color:var(--light-accent)}body.dark .word-chip.correct{background-color:var(--dark-accent);color:var(--dark-bg)}.word-chip.wrong{background-color:#888;color:#fff;border-color:#888}body.dark .word-chip.wrong{background-color:#555;color:#fff;border-color:#555}.sentence-feedback{font-size:1.25rem;font-weight:600}.sentence-feedback.correct{color:var(--light-accent)}.sentence-feedback.wrong{color:#888}body.dark .sentence-feedback.correct{color:var(--dark-accent)}body.dark .sentence-feedback.wrong{color:#aaa}.check-btn{font-size:1.2rem;padding:.5rem 1.25rem;border-radius:8px;border:2px solid var(--light-accent);background-color:var(--light-panel);color:var(--light-text);cursor:pointer;font-weight:600;transition:all .2s ease}.check-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #ef626c4d}.check-btn:disabled{opacity:.6;cursor:default}body.dark .check-btn{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text)}body.dark .check-btn:hover:not(:disabled){box-shadow:0 4px 8px #84dccf4d}.sentence-settings{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:380px}.sentence-settingsGroup{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.sentence-settingsGroup label{font-weight:600;color:var(--light-text)}.sentence-settingsGroup input[type=range]{width:100%;accent-color:var(--light-accent);cursor:pointer}.sentence-poolCount{margin:0;font-size:.95rem;opacity:.8;color:var(--light-text)}.sentence-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}body.dark .sentence-settingsGroup label,body.dark .sentence-poolCount{color:var(--dark-text)}body.dark .sentence-settingsGroup input[type=range]{accent-color:var(--dark-accent)}.match-wrapper{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;max-width:800px;margin:0 auto}.match-score{font-size:1.2rem;font-weight:600;color:var(--light-text)}body.dark .match-score{color:var(--dark-text)}.match-prompt{font-size:1.5rem;font-weight:600;color:var(--light-text)}body.dark .match-prompt{color:var(--dark-text)}.match-area{display:flex;gap:3rem;justify-content:center;flex-wrap:wrap}.left-column,.right-column{display:flex;flex-direction:column;justify-content:space-around;gap:1rem}.word-chip,.drop-zone{background-color:var(--light-panel);border:2px solid var(--light-accent);border-radius:8px;padding:.6rem 1.2rem;font-weight:600;cursor:grab;text-align:center;transition:all .2s ease;min-width:100px}.word-chip:hover{transform:scale(1.05)}.drop-zone{cursor:default}body.dark .word-chip,body.dark .drop-zone{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text)}.word-chip.matched,.drop-zone.matched{background-color:var(--light-accent);border-color:var(--light-accent);color:#fff;cursor:default}body.dark .word-chip.matched,body.dark .drop-zone.matched{background-color:var(--dark-accent);border-color:var(--dark-accent);color:var(--dark-bg)}.drop-zone.hover{background-color:#ef626c33;border-color:var(--light-accent)}body.dark .drop-zone.hover{background-color:#84dccf33}.locked{font-weight:700}.match-feedback{font-size:1.25rem;font-weight:600}.match-feedback.correct{color:var(--light-accent)}.match-feedback.wrong{color:#888;animation:shake .3s}body.dark .match-feedback.correct{color:var(--dark-accent)}body.dark .match-feedback.wrong{color:#aaa}.safari-header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:500px;flex-wrap:wrap;gap:1rem}.safari-title{font-size:1.6rem;font-weight:700;color:var(--light-text);margin:0}body.dark .safari-title{color:var(--dark-text)}.difficulty-select{display:flex;align-items:center;gap:.5rem;font-weight:600}.difficulty-select label{color:var(--light-text)}body.dark .difficulty-select label{color:var(--dark-text)}.difficulty-select select{border:2px solid var(--light-accent);background-color:var(--light-panel);border-radius:8px;padding:.3rem .5rem;font-weight:600;cursor:pointer}body.dark .difficulty-select select{border-color:var(--dark-accent);background-color:var(--dark-panel);color:var(--dark-text)}.safari-wrapper{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;max-width:800px;margin:0 auto}.safari-score{font-size:1.1rem;font-weight:600;color:var(--light-text)}body.dark .safari-score{color:var(--dark-text)}.safari-prompt{font-size:1.5rem;font-weight:600;color:var(--light-text)}body.dark .safari-prompt{color:var(--dark-text)}.safari-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem;max-width:500px}.safari-card{perspective:1000px;cursor:pointer}.safari-card-inner{position:relative;width:100px;height:100px;text-align:center;transform-style:preserve-3d;transition:transform .5s}.safari-card.flipped .safari-card-inner{transform:rotateY(180deg)}.safari-card-front,.safari-card-back{position:absolute;width:100%;height:100%;border-radius:12px;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem}.safari-card-front{background-color:var(--light-panel);border:2px solid var(--light-accent);color:var(--light-accent)}body.dark .safari-card-front{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-accent)}.safari-card-back{background-color:var(--light-accent);color:#fff;transform:rotateY(180deg)}body.dark .safari-card-back{background-color:var(--dark-accent);color:var(--dark-bg)}.safari-card.matched .safari-card-back{opacity:.7}.safari-feedback{font-size:1.25rem;font-weight:600}.safari-feedback.correct{color:var(--light-accent)}.safari-feedback.wrong{color:#888;animation:shake .3s}body.dark .safari-feedback.correct{color:var(--dark-accent)}body.dark .safari-feedback.wrong{color:#aaa}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.wrapper{display:flex;flex-direction:column;align-items:center;gap:1.6rem;padding:2rem;max-width:600px;margin:0 auto;overflow:hidden}.score{font-size:1.1rem;font-weight:600;color:var(--light-text);text-align:center}body.dark .score{color:var(--dark-text)}.prompt{font-size:1.4rem;font-weight:600;color:var(--light-text);text-align:center}body.dark .prompt{color:var(--dark-text)}.instructions{font-size:1rem;color:var(--light-text);text-align:center;opacity:.85}body.dark .instructions{color:var(--dark-text)}.targetWord{color:var(--light-accent);font-weight:700}body.dark .targetWord{color:var(--dark-accent)}.settingsGroup{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.settingsGroup label{font-weight:600;color:var(--light-text)}body.dark .settingsGroup label{color:var(--dark-text)}.settingsGroup input[type=range]{width:80%;max-width:300px}.bubbleField{position:relative;width:100%;--field-h: clamp(260px, 52vh, 440px);height:var(--field-h);overflow:hidden}.bubbleBtn{position:absolute;bottom:calc(-.25 * var(--field-h, 440px));padding:1rem 1.2rem;border-radius:50%;border:3px solid var(--light-accent);background-color:var(--light-panel);color:var(--light-text);font-size:1.15rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;box-shadow:0 2px 6px #0000001a;transition:transform .25s ease,box-shadow .25s ease,opacity .25s ease;animation:floatUp 3s linear forwards;aspect-ratio:1 / 1}.bubbleBtn:hover{transform:scale(1.07)}body.dark .bubbleBtn{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text);box-shadow:0 2px 6px #84dccf26}@keyframes floatUp{0%{transform:translateY(0);opacity:1}85%{transform:translateY(calc(-.98 * var(--field-h, 440px)));opacity:1}to{transform:translateY(calc(-1.05 * var(--field-h, 440px)));opacity:0}}.startBtn,.restartBtn{padding:.75rem 2rem;font-size:1.1rem;font-weight:600;border-radius:8px;cursor:pointer;background-color:var(--light-accent);color:#fff;border:none;transition:all .2s}.startBtn:hover,.restartBtn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #ef626c4d}body.dark .startBtn,body.dark .restartBtn{background-color:var(--dark-accent);color:var(--dark-bg)}:root{--reader-backdrop: rgba(34, 24, 28, .72);--reader-surface: var(--light-panel)}body.dark{--reader-backdrop: rgba(10, 6, 8, .82);--reader-surface: var(--dark-panel)}.ro-backdrop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem;overflow-y:auto;background-color:var(--reader-backdrop);box-sizing:border-box}.ro-panel{position:relative;width:min(56rem,100%);min-height:min(32rem,calc(100dvh - 2rem));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:3.5rem 1.5rem 1.5rem;border-radius:18px;background-color:var(--reader-surface);color:var(--light-text);box-sizing:border-box;box-shadow:0 1rem 3rem #22181c47}body.dark .ro-panel{color:var(--dark-text);box-shadow:0 1rem 3rem #00000073}.ro-close{position:absolute;top:.65rem;right:.65rem;min-width:2.75rem;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:50%;background:transparent;color:inherit;font:inherit;font-size:1.25rem;line-height:1;cursor:pointer}.ro-close:hover{background-color:var(--map-chip)}.ro-panel:focus-visible,.ro-panel :focus-visible{outline:3px solid var(--light-accent);outline-offset:3px}body.dark .ro-panel:focus-visible,body.dark .ro-panel :focus-visible{outline-color:var(--dark-accent)}@media(max-width:40rem){.ro-backdrop{align-items:stretch;padding:0}.ro-panel{width:100%;min-height:100dvh;padding:3.75rem 1rem 1.25rem;border-radius:0}}@media(max-height:36rem)and (min-width:40.001rem){.ro-backdrop{align-items:flex-start}.ro-panel{min-height:calc(100dvh - 2rem)}}:root{--reader-pivot: #b83243;--reader-success: #237a47;--reader-error: #b83243}body.dark{--reader-pivot: var(--dark-accent);--reader-success: #72d9a1;--reader-error: #ff8997}.sr-page{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:2rem;text-align:center}.sr-title{font-size:clamp(1.75rem,5vw,2.3rem)}.sr-intro{max-width:34rem;font-size:1.05rem}.sr-group{width:100%;max-width:44rem;border:0}.sr-legend{width:100%;margin-bottom:.65rem;font-size:1.15rem;font-weight:700}.sr-stories{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.75rem}.sr-story{display:flex;min-height:6.5rem;padding:.75rem;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;border:2px solid var(--map-border);border-radius:12px;background-color:var(--light-panel);color:inherit;cursor:pointer}body.dark .sr-story,body.dark .sr-speed,body.dark .sr-chunk,body.dark .sr-textarea,body.dark .sr-option,body.dark .sr-secondary{background-color:var(--dark-panel)}.sr-story:hover,.sr-speed:hover,.sr-chunk:hover,.sr-option:hover,.sr-secondary:hover{border-color:var(--map-accent)}.sr-story.is-active,.sr-speed.is-active,.sr-chunk.is-active{border-color:var(--map-accent);box-shadow:0 0 0 2px var(--map-accent)}.sr-story:has(input:focus-visible),.sr-page button:focus-visible,.sr-summary:focus-visible,.sr-textarea:focus-visible,.sr-slider input:focus-visible,.sr-toggle input:focus-visible{outline:3px solid var(--map-accent);outline-offset:3px}.sr-visually-hidden,.sr-textarea-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-story-emoji{font-size:1.75rem}.sr-story-title{font-weight:700}.sr-story-meta,.sr-speed small,.sr-note,.sr-count,.sr-nudge-value,.sr-status{color:var(--map-muted)}.sr-story-meta,.sr-speed small,.sr-note{font-size:.9rem}.sr-speeds,.sr-chunks,.sr-controls,.sr-nudge{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.65rem}.sr-speed,.sr-chunk{display:flex;min-width:5rem;min-height:3.25rem;padding:.5rem .75rem;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--map-border);border-radius:10px;background-color:var(--light-panel);color:inherit;cursor:pointer}.sr-chunk{min-width:3.25rem;font-size:1.25rem}.sr-slider{display:flex;margin-top:.85rem;flex-direction:column;align-items:center;gap:.35rem}.sr-slider input{width:min(100%,24rem);min-height:2rem}.sr-toggle{display:flex;margin-top:.85rem;align-items:center;justify-content:center;gap:.55rem}.sr-toggle input{width:1.35rem;height:1.35rem}.sr-custom{width:100%;max-width:44rem;text-align:left}.sr-summary{min-height:2.75rem;padding:.5rem 0;font-weight:700;cursor:pointer}.sr-textarea{width:100%;padding:.65rem;border:2px solid var(--map-border);border-radius:8px;background-color:var(--light-panel);color:inherit;resize:vertical}.sr-note{margin-top:.4rem}.sr-start,.sr-secondary{min-height:3.25rem;padding:.75rem 1.5rem;border-radius:12px;font-size:1.1rem;font-weight:700;cursor:pointer}.sr-start{border:0;background-color:var(--light-accent);color:var(--on-light-accent)}body.dark .sr-start{background-color:var(--dark-accent);color:var(--on-dark-accent)}.sr-start:disabled,.sr-ctrl:disabled{opacity:.45;cursor:not-allowed}.sr-countdown{font-size:clamp(4rem,20vw,8rem);font-weight:700;color:var(--reader-pivot)}.sr-status{min-height:1.5rem;font-weight:700}.sr-stage{position:relative;display:flex;width:100%;min-height:9rem;align-items:center;justify-content:center}.sr-word{display:flex;width:100%;align-items:baseline;font-size:clamp(2.5rem,12vw,5rem);font-weight:700;line-height:1.2;white-space:pre}.sr-word-left,.sr-word-right{min-width:0;flex:1;overflow:hidden}.sr-word-left{text-align:right}.sr-word-right{text-align:left}.sr-word-pivot{flex:0 0 auto;color:var(--reader-pivot)}.sr-word-plain{min-width:0;flex:1;overflow:hidden;text-align:center}.sr-crosshair{position:absolute;inset:0;pointer-events:none}.sr-crosshair:before,.sr-crosshair:after{position:absolute;left:50%;width:0;height:1.4rem;border-left:2px solid var(--map-border);content:""}.sr-crosshair:before{top:.25rem}.sr-crosshair:after{bottom:.25rem}.sr-progress{width:min(28rem,100%);height:.65rem;overflow:hidden;border-radius:999px;background-color:var(--map-chip)}.sr-progress-bar{height:100%;background-color:var(--light-accent);transition:width .15s linear}body.dark .sr-progress-bar{background-color:var(--dark-accent)}.sr-ctrl{min-width:3.25rem;min-height:3.25rem;padding:.5rem 1rem;border:2px solid var(--map-border);border-radius:12px;background-color:var(--reader-surface);color:inherit;font-size:1.1rem;cursor:pointer}.sr-ctrl.is-primary{min-width:8rem;border-color:transparent;background-color:var(--light-accent);color:var(--on-light-accent);font-weight:700}body.dark .sr-ctrl.is-primary{background-color:var(--dark-accent);color:var(--on-dark-accent)}.sr-nudge-value{min-width:6rem}.sr-quiz,.sr-finish{display:flex;width:100%;max-width:34rem;flex-direction:column;align-items:center;gap:1rem}.sr-question{font-size:1.4rem}.sr-options{display:flex;width:100%;flex-direction:column;gap:.75rem}.sr-option,.sr-secondary{border:2px solid var(--map-border);background-color:var(--light-panel);color:inherit}.sr-option{min-height:3.25rem;padding:.75rem 1rem;border-radius:12px;font-size:1.1rem;cursor:pointer}.sr-option.is-right{border-color:var(--reader-success);box-shadow:0 0 0 1px var(--reader-success)}.sr-option.is-wrong{border-color:var(--reader-error);box-shadow:0 0 0 1px var(--reader-error)}.sr-option:disabled{opacity:.72;cursor:default}.sr-feedback{min-height:1.7rem;font-size:1.1rem;font-weight:700}.sr-finish-title{font-size:1.65rem}.sr-finish-stats{font-size:1.05rem}.sr-secondary{font-weight:600}@media(max-width:400px){.sr-stories{grid-template-columns:repeat(2,minmax(0,1fr))}.sr-story{min-height:6rem;padding-inline:.4rem}.sr-controls,.sr-nudge{gap:.4rem}.sr-ctrl{padding-inline:.65rem}}@media(prefers-reduced-motion:reduce){.sr-progress-bar{transition:none}}.worldmap-shell{height:calc(100dvh - var(--navbar-height, 56px));min-height:24rem;overflow:hidden}@media(max-width:600px){.mapgame-hud{font-size:.85rem;gap:6px!important;padding:8px 10px!important}}.flag-wrapper{display:flex;flex-direction:column;align-items:center;gap:2rem;padding:2rem;max-width:600px;margin:0 auto}.flag-score{font-size:1.2rem;font-weight:600;color:var(--light-text)}body.dark .flag-score{color:var(--dark-text)}.flag-prompt{font-size:1.5rem;font-weight:600;color:var(--light-text);margin:0}body.dark .flag-prompt{color:var(--dark-text)}.flag-card{background-color:var(--light-panel);padding:1rem;border-radius:12px;box-shadow:0 4px 6px #0000001a}body.dark .flag-card{background-color:var(--dark-panel)}.flag-image{width:240px;height:160px;object-fit:contain;border-radius:8px}.flag-feedback{font-size:1.25rem;font-weight:600}.flag-feedback.correct{color:var(--light-accent)}.flag-feedback.wrong{color:#888}body.dark .flag-feedback.correct{color:var(--dark-accent)}body.dark .flag-feedback.wrong{color:#aaa}.flag-options{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}.flag-optionBtn{font-size:1.1rem;padding:.75rem 1.5rem;border:2px solid var(--light-accent);border-radius:8px;background-color:var(--light-panel);color:var(--light-text);cursor:pointer;transition:all .2s;font-weight:600;min-width:120px}.flag-optionBtn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 8px #ef626c4d}.flag-optionBtn:disabled{cursor:default}body.dark .flag-optionBtn{background-color:var(--dark-panel);border-color:var(--dark-accent);color:var(--dark-text)}body.dark .flag-optionBtn:hover:not(:disabled){box-shadow:0 4px 8px #84dccf4d}.flag-optionBtn.correct{background-color:var(--light-accent);color:#fff;border-color:var(--light-accent);transform:scale(1.05)}body.dark .flag-optionBtn.correct{background-color:var(--dark-accent);color:var(--dark-bg);border-color:var(--dark-accent)}.flag-optionBtn.wrong{background-color:#888;color:#fff;border-color:#888}body.dark .flag-optionBtn.wrong{background-color:#555;color:#fff;border-color:#555}.flag-optionBtn.dimmed{opacity:.4}.flag-loading{color:var(--light-text);padding:2rem}body.dark .flag-loading{color:var(--dark-text)}.flag-continentPicker{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.flag-continentPicker label{font-weight:600;color:var(--light-text)}.flag-continentPicker select{width:100%;max-width:280px;padding:.6rem 1rem;font-size:1rem;font-weight:600;border-radius:8px;border:2px solid var(--light-accent);background-color:var(--light-panel);color:var(--light-text);cursor:pointer}.flag-continentPicker select:focus{outline:3px solid var(--light-accent);outline-offset:2px}body.dark .flag-continentPicker label{color:var(--dark-text)}body.dark .flag-continentPicker select{background-color:var(--dark-panel);color:var(--dark-text);border-color:var(--dark-accent)}body.dark .flag-continentPicker select:focus{outline-color:var(--dark-accent)}.city-spotlight{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;max-width:700px;margin:0 auto;text-align:center;width:100%}.city-spotlight .score{font-size:1.25rem;font-weight:600;color:var(--light-text)}.city-spotlight .prompt{font-size:1.5rem;font-weight:700;color:var(--light-text)}body.dark .city-spotlight .score,body.dark .city-spotlight .prompt{color:var(--dark-text)}.city-spotlight .cityImage{width:100%;max-width:500px;aspect-ratio:4 / 3;height:auto;border-radius:12px;box-shadow:0 6px 16px #00000026;object-fit:cover;object-position:center;background-color:var(--light-panel);transition:transform .2s ease,box-shadow .2s ease}body.dark .city-spotlight .cityImage{background-color:var(--dark-panel)}.city-spotlight .cityImage:hover{transform:scale(1.03);box-shadow:0 8px 20px #00000040}.city-spotlight .options{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;width:100%}.city-spotlight .optionBtn{font-size:1.2rem;padding:.8rem 1.5rem;border-radius:10px;border:2px solid var(--light-accent);background-color:var(--light-panel);color:var(--light-text);font-weight:600;cursor:pointer;transition:all .25s ease;min-width:130px}.city-spotlight .optionBtn:hover:not(:disabled){background-color:var(--light-accent);color:#fff;transform:translateY(-2px)}.city-spotlight .optionBtn.correct{background-color:var(--light-accent);color:#fff;border-color:var(--light-accent);transform:scale(1.05)}.city-spotlight .optionBtn.wrong{background-color:#888;color:#fff;border-color:#888}.city-spotlight .optionBtn.dimmed{opacity:.4;cursor:default}body.dark .city-spotlight .optionBtn{border-color:var(--dark-accent);background-color:var(--dark-panel);color:var(--dark-text)}body.dark .city-spotlight .optionBtn:hover:not(:disabled){background-color:var(--dark-accent);color:var(--dark-bg)}body.dark .city-spotlight .optionBtn.correct{background-color:var(--dark-accent);color:var(--dark-bg)}body.dark .city-spotlight .optionBtn.wrong{background-color:#555}.city-spotlight .mapContainer{width:100%;max-width:700px;height:400px;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #00000026;margin-top:.5rem}.city-spotlight .leaflet-container{width:100%;height:100%;cursor:pointer;border-radius:12px}.city-spotlight .info{font-size:1.2rem;font-weight:600;color:var(--light-accent);margin-top:.5rem}body.dark .city-spotlight .info{color:var(--dark-accent)}.city-spotlight .settingsGroup{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.city-spotlight .settingsGroup label{font-weight:600;color:var(--light-text)}body.dark .city-spotlight .settingsGroup label{color:var(--dark-text)}.city-spotlight .startBtn,.city-spotlight .restartBtn{padding:.9rem 2rem;font-size:1.2rem;font-weight:600;border-radius:10px;cursor:pointer;background-color:var(--light-accent);color:#fff;border:none;transition:all .25s ease}.city-spotlight .startBtn:hover,.city-spotlight .restartBtn:hover{transform:translateY(-2px);box-shadow:0 4px 8px #ef626c4d}body.dark .city-spotlight .startBtn,body.dark .city-spotlight .restartBtn{background-color:var(--dark-accent);color:var(--dark-bg)}.city-spotlight select{width:80%;max-width:250px;padding:.6rem 1rem;font-size:1rem;border-radius:8px;border:2px solid var(--light-accent);background-color:var(--light-panel);color:var(--light-text);transition:all .2s ease;cursor:pointer}.city-spotlight select:hover,.city-spotlight select:focus{border-color:var(--light-accent);box-shadow:0 0 8px #ef626c4d;outline:none}body.dark .city-spotlight select{background-color:var(--dark-panel);color:var(--dark-text);border-color:var(--dark-accent)}body.dark .city-spotlight select:hover,body.dark .city-spotlight select:focus{box-shadow:0 0 8px #84dccf4d}@media(max-width:600px){.city-spotlight .cityImage{max-width:100%}.city-spotlight .optionBtn{font-size:1.1rem;padding:.6rem 1.2rem}.city-spotlight .mapContainer{height:300px}}.solar-constellation{position:absolute;z-index:60;top:3.25rem;left:50%;display:flex;flex-direction:column;gap:1rem;box-sizing:border-box;width:min(58rem,calc(100% - 2rem));max-height:calc(100% - 4rem);padding:1rem;overflow:hidden;transform:translate(-50%);border:1px solid rgba(159,208,255,.32);border-radius:1.25rem;background:radial-gradient(circle at 100% 0,rgba(96,165,250,.18),transparent 48%),#050a18f0;box-shadow:0 1.25rem 3.5rem #00000080;color:#f8fafc;font-family:system-ui,sans-serif;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:solar-card-enter .22s ease-out}.solar-constellation__chart-pane{flex:0 0 auto;height:clamp(9rem,28vh,18rem);min-height:0;padding:.5rem;overflow:hidden;border:1px solid rgba(159,208,255,.16);border-radius:1rem;background:radial-gradient(circle at 50% 40%,#172554a6,#02040ae6)}.solar-constellation__chart{display:block;width:100%;height:100%}.solar-constellation__lines line{stroke:#9fd0ffb8;stroke-width:.45;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:solar-constellation-draw .62s ease-out forwards}.solar-constellation__stars{opacity:0;animation:solar-constellation-appear .42s ease-out forwards}.solar-constellation__star{fill:#fff}.solar-constellation__star-name{fill:#e2f0ffd1;font-size:3.6px;font-weight:600;letter-spacing:.04em}@keyframes solar-constellation-draw{to{stroke-dashoffset:0}}@keyframes solar-constellation-appear{to{opacity:1}}.solar-constellation__body{display:flex;flex:1 1 auto;flex-direction:column;gap:.75rem;min-height:0}.solar-constellation__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.solar-constellation__eyebrow{display:block;color:#9fd0ff;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.solar-constellation__header h2{margin:.15rem 0 0;font-size:1.4rem}.solar-constellation__aka{margin:.2rem 0 0;color:#e2f0ffa8;font-size:.78rem}.solar-constellation__close{flex:0 0 auto;width:2.75rem;height:2.75rem;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff0f;color:#f8fafc;font-size:1.1rem;line-height:1;cursor:pointer}.solar-constellation__close:hover{background:#ffffff24}.solar-constellation__close:focus-visible{outline:2px solid #9fd0ff;outline-offset:3px}.solar-constellation__scroll{flex:1 1 auto;min-height:0;overflow-y:auto}.solar-constellation__description{margin:0 0 .75rem;font-size:.92rem;line-height:1.5}.solar-constellation__scroll h3{margin:0 0 .4rem;color:#9fd0ff;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}.solar-constellation__scroll ul{margin:0;padding-left:1.1rem;font-size:.85rem;line-height:1.55}.solar-constellation__scroll li+li{margin-top:.35rem}@media(min-width:720px){.solar-constellation{left:calc((100% - 17.5rem)/2);flex-direction:row;gap:1.25rem;width:min(58rem,calc(100% - 19.5rem));padding:1.25rem}.solar-constellation__chart-pane{flex:1 1 58%;align-self:stretch;height:auto}.solar-constellation__body{flex:1 1 42%}.solar-constellation__header h2{font-size:1.6rem}}@media(prefers-reduced-motion:reduce){.solar-constellation{animation:none}.solar-constellation__lines line{stroke-dashoffset:0;animation:none}.solar-constellation__stars{opacity:1;animation:none}}.solar-system__canvas{transition:filter .32s ease}.solar-system__canvas--dimmed{filter:brightness(.32) saturate(.55)}.solar-info-card{position:absolute;display:flex;flex-direction:column;z-index:50;left:1rem;bottom:4.75rem;width:calc(100% - 2rem);max-height:min(48%,26rem);overflow:hidden;padding:1rem;border:1px solid rgba(255,210,132,.3);border-radius:1.25rem;background:radial-gradient(circle at 0 0,rgba(255,174,72,.16),transparent 45%),#050a18eb;box-shadow:0 1.25rem 3.5rem #0000006b;color:#f8fafc;font-family:system-ui,sans-serif;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:solar-card-enter .22s ease-out}.solar-info-card--tour{top:4.25rem;bottom:auto;max-height:min(46%,24rem)}.solar-launch-buttons{position:absolute;z-index:45;top:1rem;left:1rem;display:grid;grid-template-columns:repeat(2,2.65rem);align-items:flex-start;gap:.5rem}.solar-tour-launch{display:inline-flex;min-width:2.65rem;min-height:2.65rem;align-items:center;justify-content:center;gap:.45rem;padding:.72rem .8rem;border:1px solid rgba(255,205,117,.42);border-radius:999px;background:#0d1222e6;box-shadow:0 .75rem 2rem #0000004d;color:#fff;font:700 .8rem/1 system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .16s ease,border-color .16s ease,transform .16s ease}.solar-tour-launch__icon{color:#f6bd68;font-size:1rem}.solar-action-label{display:none}.solar-tour-launch:disabled{opacity:.5;cursor:not-allowed}.solar-launch-buttons--meteor{display:flex}.solar-tour-launch--meteor-reset{padding-inline:1rem}.solar-meteor-status{position:absolute;z-index:45;top:4.4rem;left:1rem;max-width:min(24rem,calc(100% - 2rem));margin:0;padding:.55rem .75rem;border:1px solid rgba(255,205,117,.3);border-radius:999px;background:#0d1222e6;color:#fff;font:600 .78rem/1.3 system-ui,sans-serif}.solar-tour-launch:hover{border-color:#f6bd68;background:#1f2537f0;transform:translateY(-1px)}.solar-tour-launch:focus-visible{outline:2px solid #f6bd68;outline-offset:3px}.solar-toolbar{position:absolute;z-index:46;top:7.5rem;left:1rem;right:1rem;display:flex;align-items:flex-start;gap:.5rem;font-family:system-ui,sans-serif}.solar-search-toggle{display:grid;flex:0 0 auto;width:2.65rem;height:2.65rem;padding:0;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#050a18e6;box-shadow:0 .75rem 2rem #0000004d;color:#f6bd68;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .16s ease,background .16s ease}.solar-search-toggle:hover{border-color:#f6bd6899;background:#1f2537f0}.solar-search-toggle:focus-visible{outline:2px solid #f6bd68;outline-offset:3px}.solar-search__glyph{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.solar-search{position:relative;display:none;flex:1 1 auto;min-width:0;align-items:center;gap:.4rem;padding:0 .85rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#050a18e6;box-shadow:0 .75rem 2rem #0000004d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:border-color .16s ease}.solar-search:focus-within{border-color:#f6bd6899}.solar-toolbar--searching .solar-search-toggle{display:none}.solar-toolbar--searching .solar-search{display:flex}.solar-search__icon{display:grid;flex:0 0 auto;place-items:center;color:#f6bd68}.solar-search__input{flex:1 1 auto;width:100%;min-width:0;min-height:2.5rem;padding:0;border:0;background:transparent;color:#f8fafc;font:600 .82rem/1 system-ui,sans-serif}.solar-search__input::placeholder{color:#aeb7c5e6;font-weight:500}.solar-search__input:focus{outline:none}.solar-search__input::-webkit-search-cancel-button{filter:invert(1) opacity(.5)}.solar-search__results{position:absolute;top:calc(100% + .4rem);left:0;right:0;max-height:17rem;overflow-y:auto;padding:.35rem;border:1px solid rgba(255,210,132,.28);border-radius:.9rem;background:#050a18f5;box-shadow:0 1.25rem 3rem #00000073;scrollbar-color:rgba(246,189,104,.45) transparent;scrollbar-width:thin;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.solar-search__result{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.5rem .65rem;border-radius:.6rem;cursor:pointer}.solar-search__result--active{background:#f6bd6829}.solar-search__result-name{color:#fff;font:700 .85rem/1.2 system-ui,sans-serif}.solar-search__result-kind{flex:0 0 auto;color:#aeb7c5;font:600 .68rem/1.2 system-ui,sans-serif}.solar-search__result--active .solar-search__result-kind{color:#f6bd68}.solar-search__empty{margin:0;padding:.55rem .65rem;color:#aeb7c5;font:600 .78rem/1.35 system-ui,sans-serif}.solar-overview-button{display:inline-flex;flex:0 0 auto;align-items:center;gap:.4rem;min-height:2.65rem;padding:0 .9rem;border:1px solid rgba(246,189,104,.42);border-radius:999px;background:#0d1222e6;box-shadow:0 .75rem 2rem #0000004d;color:#fff;font:700 .78rem/1 system-ui,sans-serif;white-space:nowrap;cursor:pointer;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:background .16s ease,border-color .16s ease,transform .16s ease}.solar-overview-button span{color:#f6bd68;font-size:.95rem}.solar-overview-button:hover{border-color:#f6bd68;background:#1f2537f0;transform:translateY(-1px)}.solar-overview-button:focus-visible{outline:2px solid #f6bd68;outline-offset:3px}.solar-info-card__header{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:space-between;gap:1rem}.solar-info-card__body{min-height:0;margin-right:-.45rem;padding-right:.45rem;overflow-y:auto;scrollbar-color:rgba(246,189,104,.45) transparent;scrollbar-width:thin}.solar-info-card__eyebrow{display:block;margin-bottom:.2rem;color:#f6bd68;font-size:.7rem;font-weight:750;letter-spacing:.13em;text-transform:uppercase}.solar-info-card h2,.solar-info-card h3{margin:0;color:#fff}.solar-info-card h2{font-size:clamp(1.65rem,5vw,2.25rem);line-height:1.05}.solar-info-card h3{margin-top:1rem;font-size:.85rem;letter-spacing:.04em}.solar-info-card__close{display:grid;flex:0 0 auto;width:2.25rem;height:2.25rem;padding:0;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:#ffffff14;color:#fff;font:400 1.4rem/1 system-ui,sans-serif;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.solar-info-card__close:hover{border-color:#ffd2848c;background:#ffffff26;transform:scale(1.05)}.solar-info-card__close:focus-visible{outline:2px solid #f6bd68;outline-offset:3px}.solar-info-card__meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.85rem}.solar-info-card__meta span{padding:.35rem .55rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#ffffff0f;color:#dce4ef;font-size:.7rem;font-weight:600}.solar-info-card ul{display:grid;gap:.65rem;margin:.65rem 0 0;padding:0 0 0 1.15rem;color:#dce4ef;font-size:.82rem;line-height:1.45}.solar-info-card li::marker{color:#f6bd68}.solar-info-card__summary{margin:.85rem 0 0;color:#f5f7fb;font-size:.86rem;font-weight:500;line-height:1.5}.solar-tour-narration{display:grid;grid-template-columns:auto 1fr;gap:.65rem;margin-top:.85rem;padding:.8rem;border:1px solid rgba(246,189,104,.2);border-radius:.85rem;background:#f6bd6814}.solar-tour-narration span{color:#f6bd68;font-weight:800}.solar-tour-narration p{margin:0;color:#f5f7fb;font-size:.84rem;line-height:1.5}.solar-info-card__tour-button,.solar-tour-controls button{border:1px solid rgba(255,255,255,.16);border-radius:.65rem;background:#ffffff14;color:#fff;font:700 .75rem/1 system-ui,sans-serif;cursor:pointer;transition:background .16s ease,border-color .16s ease,opacity .16s ease}.solar-control-icon{font-size:1.15rem;line-height:1}.solar-control-label{display:none}.solar-info-card__tour-button{flex:0 0 auto;margin-top:1rem;padding:.75rem 1rem;border-color:#f6bd6861;background:#f6bd6824}.solar-info-card__tour-button:hover,.solar-tour-controls button:hover:not(:disabled){border-color:#f6bd688c;background:#f6bd682e}.solar-info-card__tour-button:focus-visible,.solar-tour-controls button:focus-visible{outline:2px solid #f6bd68;outline-offset:2px}.solar-tour-controls{display:grid;flex:0 0 auto;gap:.6rem;margin:.9rem -1rem -1rem;padding:.8rem 1rem 1rem;border-top:1px solid rgba(255,255,255,.1);background:#040813e0}.solar-tour-controls__audio,.solar-tour-controls__nav{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.solar-tour-controls button{min-height:2.25rem;padding:.55rem .7rem}.solar-tour-controls button:disabled{opacity:.36;cursor:not-allowed}.solar-tour-controls .solar-tour-controls__next{border-color:#e9ab53;background:#e9ab53;color:#121621}.solar-tour-controls .solar-tour-controls__next:hover:not(:disabled){border-color:#f6c77e;background:#f6c77e}@media(max-width:719px){.solar-tour-controls{display:flex;align-items:center;justify-content:center}.solar-tour-controls__audio,.solar-tour-controls__nav{display:flex}.solar-tour-controls button{width:2.75rem;min-height:2.75rem;padding:0}}@media(min-width:720px){.solar-launch-buttons{display:flex}.solar-toolbar{top:1rem;left:14rem;right:17.5rem;justify-content:flex-start}.solar-search-toggle{display:none}.solar-search{display:flex;flex:0 1 20rem}.solar-tour-launch{gap:.55rem;padding:.7rem .95rem}.solar-control-icon{display:none}.solar-control-label{display:inline}.solar-info-card{top:4.75rem;bottom:auto;width:min(22rem,calc(100% - 19rem));max-height:calc(100% - 9.25rem);padding:1.25rem}.solar-info-card--tour{top:4.75rem;max-height:calc(100% - 9.25rem)}.solar-info-card ul{font-size:.88rem}.solar-tour-controls{margin-right:-1.25rem;margin-bottom:-1.25rem;margin-left:-1.25rem;padding-right:1.25rem;padding-bottom:1.25rem;padding-left:1.25rem}}@media(min-width:1100px){.solar-toolbar{left:43rem}.solar-action-label{display:inline}}@keyframes solar-card-enter{0%{opacity:0;transform:translateY(.5rem) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.solar-system__canvas{transition:none}.solar-info-card{animation:none}.solar-overview-button:hover,.solar-tour-launch:hover{transform:none}}.solar-system .solar-system__hint{bottom:1rem}.solar-system .solar-info-card{bottom:1rem;max-height:min(62%,32rem)}.solar-system .solar-info-card--tour{top:4.25rem;bottom:auto;max-height:calc(100% - 5.25rem)}@media(min-width:720px){.solar-system .solar-info-card{top:4.75rem;bottom:auto}.solar-system .solar-info-card--tour{max-height:calc(100% - 6rem)}}@media(max-height:520px){.solar-system .solar-info-card{max-height:70%}}@media(prefers-reduced-motion:reduce){.solar-tour-launch{transition:none}}.challenge{margin-top:1.5rem;background-color:var(--light-panel);border-radius:12px;padding:1.5rem;box-shadow:0 4px 10px #0000001a;transition:all .3s ease}body.dark .challenge{background-color:var(--dark-panel);color:var(--light-text)}.challenge input{padding:.6rem;border-radius:6px;border:1px solid var(--light-accent);width:200px;margin-right:.5rem}body.dark .challenge input{border-color:var(--dark-accent);background-color:#222;color:var(--light-text)}.feedback{margin-top:.75rem;font-weight:700}.challenge-error-hint{opacity:.85;font-size:.95rem}.challenge-error-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-top:1rem}.challenge-retry-btn{background-color:var(--light-accent);color:var(--on-light-accent);padding:.7rem 1.75rem;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,background-color .3s}body.dark .challenge-retry-btn{background-color:var(--dark-accent);color:var(--on-dark-accent)}.challenge-retry-btn:hover,.challenge-retry-btn:focus-visible{transform:scale(1.04);background-color:#f2757e}body.dark .challenge-retry-btn:hover,body.dark .challenge-retry-btn:focus-visible{background-color:#9be7dc}.challenge-error-link{color:var(--light-text);text-decoration:underline;font-size:.95rem}body.dark .challenge-error-link{color:var(--dark-text)}@media(prefers-reduced-motion:reduce){.challenge-retry-btn:hover,.challenge-retry-btn:focus-visible{transform:none}}.science-plant-figure{margin:1rem auto;max-width:440px}.science-plant-figure svg{display:block;width:100%;height:auto}.science-plant-figure figcaption{font-size:.95rem;line-height:1.5}.science-soil{fill:var(--ck-muted)}.science-line,.science-stem{stroke:var(--ck-text);stroke-width:3;fill:none;stroke-linecap:round}.science-stem{stroke-width:7}.science-stem.is-woody{stroke-width:15}.science-leaf{fill:var(--ck-muted);stroke:var(--ck-text);stroke-width:2}.science-bloom{fill:var(--ck-accent);stroke:var(--ck-text);stroke-width:2}.science-flower-centre{fill:var(--ck-panel)}.science-svg-text,.science-callout text{fill:var(--ck-text);font-size:15px;font-weight:700}.science-callout path{fill:none;stroke:var(--ck-text);stroke-width:2;stroke-dasharray:3 3}.science-callout circle{fill:var(--ck-text)}.science-callout.is-highlighted path{stroke-width:4;stroke-dasharray:none}.science-rule,.science-observation{padding:1rem;border:2px solid var(--ck-border);border-radius:16px;margin:1rem 0;text-align:left;line-height:1.6}.science-rule dl{margin:0}.science-rule-row{display:grid;grid-template-columns:110px 1fr;gap:1rem;margin-bottom:.6rem}.science-rule dt{font-weight:700}.science-rule dd{margin:0}.science-gloss summary{min-height:44px;padding:.65rem;cursor:pointer}.science-gloss{font-size:.95rem;line-height:1.6}.science-label-tray,.science-label-targets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin:1rem 0}.science-label-board button{min-height:48px;padding:.75rem;margin:0;border:2px solid var(--ck-border);border-radius:12px;background:var(--ck-panel);color:var(--ck-text);font:inherit;cursor:pointer;overflow-wrap:anywhere}.science-label-board button.is-selected{border-color:var(--ck-text);outline:3px solid var(--ck-accent)}.science-label-board button:focus-visible{outline:3px solid var(--ck-text);outline-offset:3px}.science-label-board button:disabled{opacity:.65;cursor:default}.science-practical{margin:1rem 0;border:2px solid currentColor;border-radius:16px;padding:.8rem;text-align:left;line-height:1.6}.science-practical summary{cursor:pointer;min-height:44px;display:list-item;padding:.5rem;font-weight:700}.science-practical summary:focus-visible{outline:3px solid currentColor;outline-offset:2px}.science-practical li{margin:.5rem 0}@media(max-width:420px){.science-rule-row{grid-template-columns:1fr;gap:.3rem}.science-rule dd{margin-bottom:.5rem}}.science-needs-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;text-align:left;margin:1rem 0}.science-needs-guide>div{border:2px solid var(--ck-border);border-radius:12px;padding:.8rem}.science-needs-guide span{display:block;font-size:1.8rem}.science-needs-guide img{display:block;width:48px;height:48px;margin-bottom:.3rem}.science-needs-guide p{line-height:1.5}.science-sequence-pictures{display:flex;justify-content:center;align-items:end;gap:1rem}.science-sequence-pictures>div{width:min(35%,140px)}.science-sequence-pictures svg{width:100%;height:auto}.science-sequence-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:1rem 0}.science-sequence-controls button,.science-reset{min-height:48px;margin:0;padding:.75rem;border:2px solid var(--ck-border);border-radius:12px;background:var(--ck-panel);color:var(--ck-text);font:inherit;cursor:pointer}.science-sequence-controls button[aria-pressed=true]{border-color:var(--ck-text);font-weight:700}.science-sequence-controls button:focus-visible,.science-reset:focus-visible,.science-record-fields input:focus-visible{outline:3px solid var(--ck-text);outline-offset:3px}.science-sequence-controls button:disabled,.science-reset:disabled{opacity:.65;cursor:default}.science-record-fields{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem}.science-record-fields label{display:grid;gap:.5rem;text-align:left}.science-record-fields input{min-height:48px;max-width:160px;box-sizing:border-box;padding:.6rem;font:inherit;border:2px solid var(--ck-border);border-radius:12px;color:var(--ck-text);background:var(--ck-panel)}.science-water-figure{max-width:420px;margin:1rem auto}.science-water-figure svg{display:block;width:100%;height:auto}.science-water-figure figcaption{line-height:1.5;font-size:.95rem}.science-water-container{fill:none;stroke:var(--ck-text);stroke-width:3}.science-water-bloom{fill:var(--ck-panel);stroke:var(--ck-text);stroke-width:2}.science-dye-marks{fill:var(--ck-accent);stroke:var(--ck-text);stroke-width:2}.science-water-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media(max-width:500px){.science-water-comparison{grid-template-columns:1fr}}.science-life-figure{max-width:440px;margin:1rem auto}.science-life-figure svg{display:block;width:100%;height:auto}.science-life-figure figcaption{font-size:.95rem;line-height:1.5}.science-seed-case{fill:var(--ck-muted);stroke:var(--ck-text);stroke-width:3}.science-seed-shape{fill:var(--ck-accent);stroke:var(--ck-text);stroke-width:2}.science-pollen-source{fill:var(--ck-panel);stroke:var(--ck-text);stroke-width:2}.science-transferred-pollen{fill:var(--ck-accent);stroke:var(--ck-text);stroke-width:1.5}.science-transfer-path{stroke:var(--ck-text);stroke-width:2;stroke-dasharray:4 4;fill:none}.science-life-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem}.science-movement-bone{stroke:var(--ck-text);stroke-width:9;fill:none;stroke-linecap:round}.science-movement-muscle{fill:var(--ck-accent);stroke:var(--ck-text);stroke-width:2}.science-rock-grains{fill:var(--ck-panel);stroke:var(--ck-text);stroke-width:2}.science-rock-crystals{fill:var(--ck-accent);stroke:var(--ck-text);stroke-width:2}.science-classification-scroll{max-width:100%;overflow-x:auto;margin:1rem 0}.science-classification-options{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem}.science-classification-options button{min-width:48px;min-height:48px;margin:0;padding:.6rem;border:2px solid var(--ck-border);border-radius:12px;background:var(--ck-panel);color:var(--ck-text);font:inherit;cursor:pointer}.science-classification-options button[aria-pressed=true]{border-color:var(--ck-text);outline:2px solid var(--ck-accent);font-weight:700}.science-classification-options button:focus-visible,.science-classification-scroll:focus-visible{outline:3px solid var(--ck-text);outline-offset:3px}.science-classification-options button:disabled{opacity:.65;cursor:default}.science-light-box{stroke:var(--ck-text);stroke-width:3}.science-light-box.is-lit{fill:var(--light-panel)}.science-light-box.is-dark{fill:var(--dark-bg)}.science-light-object .science-line,.science-light-object .science-rock-crystals{stroke:var(--light-text)}.science-reflection-ray{fill:none;stroke:var(--ck-text);stroke-width:3}.science-reflection-arrow{fill:var(--ck-text)}.science-shadow-paths{fill:none;stroke:var(--light-text);stroke-width:1.5}.science-shadow-paths .science-shadow-region{fill:var(--dark-bg);fill-opacity:.2;stroke:none}.science-shadow-screen{fill:none;stroke:var(--ck-text);stroke-width:5}.science-shadow-mark{fill:none;stroke:var(--dark-bg);stroke-width:10}.science-shadow-lit-setup{stroke:var(--light-text)}.science-surface-travel,.science-force-giver{fill:var(--ck-accent);stroke:var(--ck-text);stroke-width:2}.science-force-receiver{fill:var(--ck-panel);stroke:var(--ck-text);stroke-width:2}.science-material-start{fill:none;stroke:var(--ck-text);stroke-width:2;stroke-dasharray:4 4}.science-magnet-body{fill:var(--ck-panel);stroke:var(--ck-text);stroke-width:3}.science-illustration{max-width:540px}.science-illustration svg,.science-animal-picture img{border-radius:18px;background:var(--ck-muted)}.science-illustration-callout path{stroke-dasharray:none}.science-illustration-callout .science-callout-halo{stroke:var(--ck-panel);stroke-width:6;opacity:.85}.science-illustration-callout circle{stroke:var(--ck-panel);stroke-width:2}.science-animal-picture{text-align:center}.science-animal-picture img{display:block;width:min(160px,50vw);height:auto;margin:0 auto;padding:1rem;box-sizing:content-box}.science-credit{display:block;margin-top:.35rem;font-size:.78rem;opacity:.7}:root,body.light{--sci-muscle: #e8737a;--sci-muscle-lit: #d94d57;--sci-muscle-quiet: #d9cfc7}body.dark{--sci-muscle: #f08a90;--sci-muscle-lit: #ff6f7a;--sci-muscle-quiet: #4a4340}.science-muscle-belly{fill:var(--sci-muscle);fill-opacity:.9;stroke:var(--ck-text);stroke-width:2}.science-tendon{fill:none;stroke:var(--ck-text);stroke-width:2.5;stroke-linecap:round}.science-joint{fill:none;stroke:var(--ck-text);stroke-width:2.5;stroke-dasharray:4 3}.science-muscle-map{max-width:360px}.science-muscle-map-views{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding:.75rem;border-radius:18px;background:var(--ck-muted)}.science-muscle-map-views svg{background:none;border-radius:0}.science-muscle-map path{fill:var(--sci-muscle-quiet);stroke:var(--ck-panel);stroke-width:.15}.science-muscle-map path.is-lit{fill:var(--sci-muscle-lit);stroke:var(--ck-text);stroke-width:.25}.science-rock-shadow{fill:#000;opacity:.14}.science-rock-outline{fill:none;stroke:#3b2f28;stroke-width:3}.science-rock-band{fill:#2d2622}.science-rock-grain ellipse{fill:#f3e6c6;stroke:#5a4632;stroke-width:2}.science-rock-grain .science-rock-grain-shine{fill:#fff;stroke:none;opacity:.75}.science-rock-crystal path{stroke:#33262a;stroke-width:1.8;stroke-linejoin:round}.science-rock-crystal .is-light{fill:#f6f1ff}.science-rock-crystal .is-dark{fill:#b9a3c9}.science-rock-glint{fill:#fff;stroke:none!important}.science-rock-fossil path{fill:none;stroke:#3b2f28;stroke-width:4;stroke-linecap:round}.science-rock-fossil .is-emboss{stroke:#fff;stroke-opacity:.55}.science-layer{stroke:#3b2f28;stroke-width:2}.science-layer-surface{fill:none;stroke:var(--ck-text);stroke-width:3}.science-water-top{stop-color:#bfe3f5}.science-water-bottom{stop-color:#6fb3d6}body.dark .science-water-top{stop-color:#2f5e78}body.dark .science-water-bottom{stop-color:#1f4357}.science-fossil-remains path{fill:#f3e7cc;stroke:#3b2f28;stroke-width:3}.science-layer-label rect{fill:var(--ck-panel);stroke:var(--ck-border);stroke-width:1.5}.science-soil-card{fill:var(--ck-panel);stroke:var(--ck-border);stroke-width:2}:root,body.light{--sci-soil-top: #c99a6b;--sci-soil-bottom: #8d6544;--sci-leaf-light: #8fd16a;--sci-leaf-dark: #4f9a36;--sci-stem: #5fa840;--sci-plant-ink: #2f4a22;--sci-seed: #b07a45;--sci-seed-young: #b9d98a;--sci-glass: #dff1fb;--sci-dye-water: #9ec9ef}body.dark{--sci-soil-top: #74543a;--sci-soil-bottom: #4a3422;--sci-leaf-light: #7cc257;--sci-leaf-dark: #3f8429;--sci-stem: #57a03a;--sci-plant-ink: #1d3015;--sci-seed: #c08a52;--sci-seed-young: #a6cc74;--sci-glass: #2b4552;--sci-dye-water: #3f6f9c}.science-soil-top{stop-color:var(--sci-soil-top)}.science-soil-bottom{stop-color:var(--sci-soil-bottom)}.science-leaf-light{stop-color:var(--sci-leaf-light)}.science-leaf-dark{stop-color:var(--sci-leaf-dark)}.science-soil-pebble{fill:#000;opacity:.13}.science-soil-surface{fill:none;stroke:#5a3f28;stroke-width:3;stroke-linecap:round}.science-plant-leaf path:first-child{stroke:var(--sci-plant-ink);stroke-width:2;stroke-linejoin:round}.science-plant-vein{fill:none;stroke:var(--sci-plant-ink);stroke-width:1.2;opacity:.5;stroke-linecap:round}.science-plant-stem path{fill:none;stroke-linecap:round}.science-plant-stem .is-outline{stroke:var(--sci-plant-ink)}.science-plant-stem .is-fill{stroke:var(--sci-stem)}.science-plant-stem .is-shine{stroke:#fff;opacity:.35}[data-plant-part=roots]{filter:drop-shadow(0 0 1.2px rgba(255,244,222,.85))}.science-glass-edge{stop-color:var(--sci-glass);stop-opacity:.75}.science-glass-middle{stop-color:var(--sci-glass);stop-opacity:.2}.science-jar{stroke:var(--ck-text);stroke-width:3;stroke-linejoin:round}.science-jar-shine{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;opacity:.6}.science-jar-water{fill:var(--sci-dye-water)}.science-cut-end{fill:none;stroke:var(--sci-plant-ink);stroke-width:3;stroke-linecap:round}.science-seed-body{fill:var(--sci-seed);stroke:#3b2a20;stroke-width:2}.science-seed.is-young .science-seed-body{fill:var(--sci-seed-young);stroke:var(--sci-plant-ink)}.science-seed-scar{fill:none;stroke:#3b2a20;stroke-width:1.5;stroke-linecap:round;opacity:.55}.science-case-skin{stroke:#3b2a20;stroke-width:3;stroke-linejoin:round}.science-case-skin.is-capsule{fill:#9cc366}.science-case-skin.is-pod{fill:#b5cf74}.science-case-skin.is-fruit{fill:#e2605a}.science-case-flesh{fill:#f7efd6;stroke:#3b2a20;stroke-width:1.5;opacity:.95}.science-tuft-hairs path{fill:none;stroke:var(--ck-text);stroke-width:1.3;stroke-linecap:round;opacity:.75}.science-tuft-stalk{fill:none;stroke:#8a6a3e;stroke-width:2.5;stroke-linecap:round}.science-seed-ribs{fill:none;stroke:#3b2a20;stroke-width:1;opacity:.5}.science-wing-base{stop-color:#c9a46a}.science-wing-tip{stop-color:#ead8a8}.science-wing{stroke:#5a4024;stroke-width:2.5;stroke-linejoin:round}.science-wing-veins{fill:none;stroke:#8a6a3e;stroke-width:1.4;opacity:.7}.science-samara-seed{fill:#9c8a4a;stroke:#3b2a20;stroke-width:2.5}.science-burr-spines path{fill:none;stroke:#6b4f2a;stroke-width:2.6;stroke-linecap:round}.science-burr-body{fill:#a07a46;stroke:#3b2a20;stroke-width:2.5}.science-water-line{fill:none;stroke:#2f6f94;stroke-width:2.5}.science-pod{fill:#d2b071;stroke:#3b2a20;stroke-width:3;stroke-linejoin:round}.science-pod-window{fill:#f3e4c0;stroke:#6b4f2a;stroke-width:1.5}.science-pod-seam{fill:none;stroke:#6b4f2a;stroke-width:2;stroke-dasharray:6 4}.science-pod-stalk,.science-branch{fill:none;stroke:#6b4f2a;stroke-width:5;stroke-linecap:round}.science-branch{stroke-width:9}.science-ground{fill:none;stroke:#6b4f2a;stroke-width:4}.science-grass{fill:none;stroke:var(--sci-stem);stroke-width:2.5;stroke-linecap:round}.science-plant-leaf-flat{fill:var(--sci-leaf-light);stroke:var(--sci-plant-ink);stroke-width:2}.science-fruit-core{fill:#efe2bd;stroke:#b8a274;stroke-width:1.5}.science-husk{fill:#8a5a33;stroke:#3b2a20;stroke-width:2.5}.science-husk-fibres path{fill:none;stroke:#c49a6c;stroke-width:1.6;stroke-linecap:round;opacity:.8}body.dark .science-burr-spines path,body.dark .science-branch,body.dark .science-pod-stalk,body.dark .science-ground{stroke:#b48c5c}.completion-celebration{--celebration-ink: var(--light-text);--celebration-surface: var(--light-panel);--celebration-accent: var(--light-accent);--celebration-on-accent: var(--on-light-accent);--celebration-wash: #fff2d7;--celebration-border: #e9c77e;--celebration-muted: #645057;position:relative;display:grid;place-items:center;min-height:min(720px,calc(100dvh - var(--navbar-height)));padding:2rem 1rem;overflow:hidden;isolation:isolate;color:var(--celebration-ink);background:radial-gradient(circle at 50% 25%,var(--celebration-wash),transparent 60%)}body.dark .completion-celebration{--celebration-ink: var(--dark-text);--celebration-surface: var(--dark-panel);--celebration-accent: var(--dark-accent);--celebration-on-accent: var(--on-dark-accent);--celebration-wash: #423820;--celebration-border: #aa925f;--celebration-muted: #d5c6c8}.completion-celebration-year{min-height:calc(100dvh - var(--navbar-height));--celebration-wash: #ffe4a3}body.dark .completion-celebration-year{--celebration-wash: #584525}.completion-celebration-card{position:relative;z-index:1;width:min(100%,690px);padding:clamp(1.5rem,5vw,3.5rem);border:3px solid var(--celebration-border);border-radius:32px;background:var(--celebration-surface);box-shadow:0 18px 50px var(--panel-shadow);text-align:center;animation:completion-card-in .42s ease-out both}.completion-celebration-challenge .completion-celebration-card,.completion-celebration-practice .completion-celebration-card{max-width:520px;padding:1.5rem;border-color:var(--celebration-accent)}.completion-celebration-challenge .completion-celebration-medal,.completion-celebration-practice .completion-celebration-medal{width:105px;margin:.8rem auto;border-width:6px;font-size:3rem}.completion-celebration-challenge h1,.completion-celebration-practice h1,.completion-celebration h2{font-size:clamp(2rem,5vw,2.5rem)}.completion-celebration-year .completion-celebration-card{width:min(100%,760px);padding:clamp(1.5rem,3vw,2rem);border-width:5px}.completion-celebration-year .completion-celebration-medal{width:132px;margin:.7rem auto}.completion-celebration-year .completion-celebration-stats{margin-top:1rem;padding:.7rem}.completion-celebration-year .completion-celebration-actions{margin-top:1rem}.completion-celebration-eyebrow{color:var(--celebration-muted);font-size:.95rem;font-weight:700;letter-spacing:.04em}.completion-celebration-medal{display:grid;place-items:center;width:clamp(100px,20vw,150px);aspect-ratio:1;margin:1.2rem auto;border:8px solid var(--celebration-border);border-radius:50%;background:var(--celebration-wash);box-shadow:0 8px 0 var(--celebration-border);font-size:clamp(3rem,9vw,5rem);line-height:1;animation:completion-medal-in .58s .12s cubic-bezier(.2,1.5,.5,1) both}.completion-celebration h1,.completion-celebration h2{margin:.5rem 0 0;color:var(--celebration-ink);font-size:clamp(2rem,6vw,3.5rem);line-height:1.15}.completion-celebration-message{max-width:34rem;margin:.8rem auto 0;font-size:clamp(1.05rem,2.5vw,1.3rem);line-height:1.5}.completion-celebration-earned{display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;margin-top:1.2rem}.completion-celebration-earned span{padding:.4rem .7rem;border-radius:999px;background:var(--celebration-wash);color:var(--celebration-ink);font-size:.9rem;font-weight:700}.completion-celebration-stats{display:flex;justify-content:center;gap:clamp(.8rem,4vw,2.5rem);margin:1.6rem auto 0;padding:1rem;border-top:2px solid var(--celebration-border);border-bottom:2px solid var(--celebration-border)}.completion-celebration-stat{display:grid;gap:.1rem;min-width:4rem}.completion-celebration-stat strong{font-size:clamp(1.4rem,4vw,2rem);line-height:1.1}.completion-celebration-stat span{color:var(--celebration-muted);font-size:.85rem}.completion-celebration-actions{display:grid;justify-items:center;gap:.7rem;margin-top:1.8rem}.completion-celebration-primary,.completion-celebration-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:54px;min-width:min(100%,230px);padding:.8rem 1.4rem;border-radius:14px;font-size:1.1rem;font-weight:700;text-decoration:none;transition:transform .16s ease,filter .16s ease}.completion-celebration-primary{gap:.7rem;background:var(--celebration-accent);color:var(--celebration-on-accent)}.completion-celebration-secondary{color:var(--celebration-ink);text-decoration:underline}.completion-celebration-primary:hover,.completion-celebration-secondary:hover{transform:translateY(-2px)}.completion-celebration-primary:focus-visible,.completion-celebration-secondary:focus-visible,.completion-celebration-skip:focus-visible{outline:3px solid var(--celebration-ink);outline-offset:3px}.completion-celebration-skip{min-height:44px;margin-top:.7rem;padding:.4rem .9rem;border:0;background:transparent;color:var(--celebration-muted);text-decoration:underline;cursor:pointer}@media(max-width:500px){.completion-celebration{padding:1rem .75rem}.completion-celebration-card{border-radius:22px}.completion-celebration-primary,.completion-celebration-secondary{width:100%}}@media(prefers-reduced-motion:reduce){.completion-celebration-card,.completion-celebration-medal{animation:none}.completion-celebration-primary,.completion-celebration-secondary{transition:none}}button.completion-celebration-primary,button.completion-celebration-secondary{border:0;font:inherit;font-size:1.1rem;font-weight:700;cursor:pointer}button.completion-celebration-primary{min-height:58px;min-width:min(100%,260px)}button.completion-celebration-secondary{background:transparent}.completion-celebration-skip{display:inline-flex;align-items:center;font-size:.95rem}.completion-celebration h2:focus,.completion-celebration h1:focus{outline:none}.completion-celebration-dots{display:flex;justify-content:center;gap:8px;margin:1.2rem 0 0;padding:0;list-style:none}.completion-celebration-dots li{width:10px;height:10px;border-radius:50%;background:var(--celebration-border);opacity:.4;transition:opacity .2s ease,transform .2s ease}.completion-celebration-dots li.is-done{opacity:1;background:var(--celebration-accent)}.celebration-reward-name{margin:.6rem 0 0;font-size:clamp(1.4rem,4vw,1.9rem);font-weight:800}.celebration-chip{display:inline-block;margin:.8rem 0 0;padding:.35rem .9rem;border-radius:999px;background:var(--celebration-wash);font-weight:800}.celebration-progress{display:grid;place-items:center;margin:1.2rem auto .4rem}.cs-ring{width:clamp(140px,36vw,190px);height:auto}.cs-ring-track{fill:none;stroke:var(--celebration-wash);stroke-width:12}.cs-ring-fill{fill:none;stroke:var(--celebration-accent);stroke-width:12;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1.2s cubic-bezier(.2,.9,.3,1)}.cs-ring-text{fill:var(--celebration-ink);font-size:1.7rem;font-weight:800;text-anchor:middle;dominant-baseline:central}.celebration-sticker{display:grid;place-items:center;width:clamp(130px,34vw,170px);aspect-ratio:1;margin:1.2rem auto .4rem;border:8px solid var(--celebration-surface);border-radius:50%;background:var(--celebration-wash);box-shadow:0 0 0 3px var(--celebration-border),0 12px 24px var(--panel-shadow);animation:celebration-sticker-drop .7s cubic-bezier(.2,1.4,.5,1) both}.celebration-sticker-icon{font-size:clamp(4rem,12vw,5.5rem);line-height:1}@keyframes celebration-sticker-drop{0%{opacity:0;transform:translateY(-60px) scale(1.4) rotate(-20deg)}60%{opacity:1;transform:translateY(0) scale(.94) rotate(6deg)}to{transform:none}}.celebration-badge{width:clamp(140px,36vw,180px);aspect-ratio:1;margin:1.2rem auto .4rem;perspective:800px}.celebration-badge-card{position:relative;width:100%;height:100%;transform-style:preserve-3d;animation:celebration-badge-flip .9s .45s cubic-bezier(.3,1.3,.5,1) both}.celebration-badge-face{position:absolute;inset:0;display:grid;place-items:center;border:8px solid var(--celebration-border);border-radius:50%;backface-visibility:hidden;box-shadow:0 8px 0 var(--celebration-border);line-height:1}.celebration-badge-front{background:var(--celebration-surface);color:var(--celebration-muted);font-size:4rem;font-weight:800}.celebration-badge-back{background:var(--celebration-wash);font-size:clamp(4rem,12vw,5.5rem);transform:rotateY(180deg)}@keyframes celebration-badge-flip{0%{transform:rotateY(0) scale(.9)}to{transform:rotateY(180deg) scale(1)}}.celebration-avatar{display:grid;place-items:center;width:clamp(120px,30vw,150px);aspect-ratio:1;margin:1.2rem auto .4rem;border-radius:50%;background:var(--celebration-wash);box-shadow:0 0 0 6px var(--celebration-accent);font-size:clamp(4rem,11vw,5rem);animation:completion-medal-in .58s .12s cubic-bezier(.2,1.5,.5,1) both}.celebration-certificate{margin:1.2rem auto .4rem;padding:clamp(1.2rem,4vw,2rem);border:6px double var(--celebration-border);border-radius:18px;background:var(--celebration-wash);color:var(--celebration-ink)}.celebration-certificate p{margin:.3rem 0}.celebration-certificate-title{font-size:clamp(1.3rem,4vw,1.8rem);font-weight:800;letter-spacing:.03em}.celebration-certificate-small{color:var(--celebration-muted)}.celebration-certificate-name{font-size:clamp(1.8rem,6vw,2.6rem);font-weight:800}.celebration-certificate-seal{font-size:3rem;line-height:1.2}.celebration-certificate-date{font-size:.9rem;color:var(--celebration-muted)}.celebration-print{margin-top:.8rem}@media(max-width:500px){.completion-celebration-card{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}button.completion-celebration-primary{width:100%}}@media(prefers-reduced-motion:reduce){.celebration-sticker,.celebration-avatar{animation:celebration-fade .3s ease both}.celebration-badge-card{animation:none;transform:rotateY(180deg)}.completion-celebration-dots li{transition:none}}@keyframes celebration-fade{0%{opacity:0}to{opacity:1}}@media print{body{background:#fff!important}body *{visibility:hidden}.celebration-certificate,.celebration-certificate *{visibility:visible}.celebration-certificate{position:fixed;inset:1.5cm 1.5cm auto;background:#fff;color:#000}.celebration-certificate-small,.celebration-certificate-date{color:#333}}.completion-celebration-card{padding:clamp(1.1rem,3.5vw,2rem)}.completion-celebration-medal{width:clamp(88px,15vw,118px);margin:.8rem auto;font-size:clamp(2.8rem,7vw,3.8rem)}.completion-celebration h1{font-size:clamp(2rem,5.5vw,2.8rem)}.completion-celebration-stats{margin-top:1rem;padding:.6rem}.completion-celebration-actions{margin-top:1.2rem}button.celebration-claim{display:inline-flex;align-items:center;gap:.5rem;min-height:52px;margin-top:.6rem;padding:.6rem 1.3rem;border:3px solid var(--celebration-accent);border-radius:14px;color:var(--celebration-ink);text-decoration:none}button.celebration-claim:disabled{opacity:.6;cursor:progress}.celebration-avatar.is-claimed{box-shadow:0 0 0 6px var(--celebration-accent),0 0 0 12px var(--celebration-wash)}.celebration-xp{display:grid;gap:.5rem;max-width:340px;margin:.8rem auto 0}.celebration-xp-gain{margin:0 auto;font-size:1.1rem;animation:completion-medal-in .52s .2s cubic-bezier(.2,1.5,.5,1) both}.celebration-levelup{position:relative;display:grid;place-items:center;margin:1rem auto .4rem}.celebration-level-badge{position:absolute;right:calc(50% - 90px);top:0;display:grid;place-items:center;width:52px;height:52px;border:4px solid var(--celebration-surface);border-radius:50%;background:var(--celebration-accent);color:var(--celebration-on-accent);font-size:1.5rem;font-weight:800;animation:completion-medal-in .58s .3s cubic-bezier(.2,1.5,.5,1) both}.celebration-streak{display:flex;align-items:center;justify-content:center;gap:.3rem;margin:1rem auto .4rem}.celebration-streak-flame{font-size:clamp(4rem,12vw,5.5rem);line-height:1;animation:completion-medal-in .58s cubic-bezier(.2,1.5,.5,1) both}.celebration-streak-count{font-size:clamp(3rem,9vw,4.2rem);font-weight:800;color:var(--celebration-ink)}@media(prefers-reduced-motion:reduce){.celebration-xp-gain,.celebration-level-badge,.celebration-streak-flame{animation:celebration-fade .3s ease both}}.progress-error{padding:1.5rem;text-align:center;color:var(--light-text)}.progress-error p{margin-bottom:1rem}.progress-error button{min-height:56px;padding:.7rem 2rem;font:inherit;font-weight:700;color:var(--light-text);background:var(--light-bg);border:2px solid var(--light-accent);border-radius:12px;cursor:pointer}body.dark .progress-error,body.dark .progress-error button{color:var(--dark-text)}body.dark .progress-error button{background:var(--dark-bg);border-color:var(--dark-accent)}.progress-error button:focus-visible{outline:3px solid currentColor;outline-offset:4px}.problem-page{padding:1.75rem 2rem 3rem;text-align:center;animation:fadeIn .6s ease-in-out}.problem-header{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:1.75rem}.problem-page h2{font-size:clamp(1.5rem,4.5vw,1.9rem);line-height:1.2;color:var(--light-text)}body.dark .problem-page h2{color:var(--dark-text)}.replay-info{max-width:34rem;padding:.55rem 1.1rem;border-radius:14px;font-size:.98rem;line-height:1.4;color:var(--light-text);background:color-mix(in srgb,var(--light-accent) 14%,transparent)}body.dark .replay-info{color:var(--dark-text);background:color-mix(in srgb,var(--dark-accent) 16%,transparent)}@media(max-width:600px){.problem-page{padding:1.25rem 1rem 2rem}.problem-header{gap:.6rem;margin-bottom:1.25rem}}@media(prefers-reduced-motion:reduce){.problem-page{animation:none}}.trophy-room{--tr-ink: var(--light-text);--tr-panel: var(--light-panel);--tr-accent: var(--light-accent);--tr-on-accent: var(--on-light-accent);--tr-wash: #fff2d7;--tr-edge: #e9c77e;--tr-muted: #645057;--tr-locked: rgba(34, 24, 28, .06);--tr-locked-edge: rgba(34, 24, 28, .22);max-width:980px;margin:0 auto;padding:1.5rem 16px 3rem;color:var(--tr-ink)}body.dark .trophy-room{--tr-ink: var(--dark-text);--tr-panel: var(--dark-panel);--tr-accent: var(--dark-accent);--tr-on-accent: var(--on-dark-accent);--tr-wash: #423820;--tr-edge: #aa925f;--tr-muted: #d5c6c8;--tr-locked: rgba(246, 232, 234, .06);--tr-locked-edge: rgba(246, 232, 234, .25)}.trophy-header{text-align:center}.trophy-eyebrow{margin:0;color:var(--tr-muted);font-weight:700;letter-spacing:.04em}.trophy-header h1{margin:.2rem 0 0;font-size:clamp(1.9rem,6vw,2.8rem)}.trophy-back{display:inline-flex;align-items:center;min-height:44px;margin-bottom:.4rem;color:var(--tr-ink);font-weight:700}.trophy-next-row.has-bix{display:flex;align-items:center;gap:.6rem;margin-top:1.5rem}.trophy-next-row.has-bix .trophy-next{flex:1;margin-top:0}.trophy-bix{flex:none}@media(max-width:560px){.trophy-next-row.has-bix{flex-direction:column}.trophy-next-row.has-bix .trophy-next{width:100%}}.trophy-loading{text-align:center;margin-top:2rem}.trophy-summary{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem;margin:1.2rem 0 0;padding:0;list-style:none}.trophy-summary li{padding:.45rem 1rem;border-radius:999px;background:var(--tr-wash);font-weight:600}.trophy-summary strong{font-size:1.2rem}.trophy-next{display:flex;align-items:center;gap:1rem;margin:1.5rem 0 0;padding:1rem 1.2rem;border:3px solid var(--tr-accent);border-radius:22px;background:var(--tr-panel);box-shadow:0 8px 24px var(--panel-shadow)}.trophy-next-disc{display:grid;place-items:center;flex:none;width:64px;height:64px;border-radius:50%;background:var(--tr-wash);font-size:2.2rem}.trophy-next-text{flex:1}.trophy-next-text h2{margin:0;font-size:1.2rem}.trophy-next-text p{margin:.2rem 0 0}.trophy-next-play{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:52px;padding:.6rem 1.3rem;border-radius:14px;background:var(--tr-accent);color:var(--tr-on-accent);font-weight:800;text-align:center;text-decoration:none}.trophy-next-play:focus-visible{outline:3px solid var(--tr-ink);outline-offset:3px}.trophy-section{margin-top:2rem}.trophy-section h2{margin:0 0 .6rem;font-size:1.5rem}.trophy-section-note{margin:-.3rem 0 .8rem;color:var(--tr-muted)}.trophy-badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:.8rem;margin:0;padding:0;list-style:none}.trophy-badge{display:grid;justify-items:center;align-content:start;gap:.35rem;padding:1rem .8rem;border-radius:20px;text-align:center}.trophy-badge.is-held{border:3px solid var(--tr-edge);background:var(--tr-wash);box-shadow:0 5px 0 var(--tr-edge)}.trophy-badge.is-locked{border:3px dashed var(--tr-locked-edge);background:var(--tr-locked)}.trophy-badge-icon{font-size:3rem;line-height:1.1}.trophy-badge.is-locked .trophy-badge-icon{filter:grayscale(1) brightness(0);opacity:.25}body.dark .trophy-badge.is-locked .trophy-badge-icon{filter:grayscale(1) brightness(0) invert(1)}.trophy-badge-note{display:grid;gap:.2rem;color:var(--tr-muted);font-size:.9rem}.trophy-badge-date{font-size:.8rem;font-weight:700}.trophy-meter{position:relative;display:block;width:100%;height:20px;border-radius:999px;background:var(--tr-locked);box-shadow:inset 0 0 0 1px var(--tr-locked-edge);overflow:hidden}.trophy-meter>span{display:block;height:100%;background:var(--tr-accent)}.trophy-meter em{position:absolute;inset:0;display:grid;place-items:center;font-size:.75rem;font-style:normal;font-weight:800}.trophy-year{margin-top:.8rem;border:2px solid var(--tr-locked-edge);border-radius:20px;background:var(--tr-panel)}.trophy-year summary{display:flex;align-items:center;gap:1rem;min-height:56px;padding:.8rem 1rem;cursor:pointer;list-style:none}.trophy-year summary::-webkit-details-marker{display:none}.trophy-year summary:after{content:"▾";margin-left:auto;font-size:1.3rem;transition:transform .2s ease}.trophy-year[open] summary:after{transform:rotate(180deg)}.trophy-year summary:focus-visible{outline:3px solid var(--tr-ink);outline-offset:-3px;border-radius:18px}.trophy-year-title{display:grid;gap:.1rem}.trophy-year-title strong{font-size:1.2rem}.trophy-year-title span{color:var(--tr-muted)}.tr-ring{flex:none;width:60px;height:auto}.tr-ring-track{fill:none;stroke:var(--tr-locked);stroke-width:12}.tr-ring-fill{fill:none;stroke:var(--tr-accent);stroke-width:12;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.9,.3,1)}.tr-ring-text{fill:var(--tr-ink);font-size:2rem;font-weight:800;text-anchor:middle;dominant-baseline:central}.trophy-quest{padding:0 1rem 1rem}.trophy-quest h3{margin:.6rem 0;font-size:1.05rem}.trophy-stickers{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.7rem;margin:0;padding:0;list-style:none}.trophy-sticker{display:grid;justify-items:center;align-content:start;gap:.25rem;text-align:center;font-size:.85rem}.trophy-sticker-disc{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;font-size:2.3rem}.trophy-sticker.is-earned .trophy-sticker-disc{border:5px solid var(--tr-panel);background:var(--tr-wash);box-shadow:0 0 0 2px var(--tr-edge),0 6px 12px var(--panel-shadow)}.trophy-sticker.is-locked .trophy-sticker-disc{border:3px dashed var(--tr-locked-edge);background:var(--tr-locked)}.trophy-sticker.is-locked .trophy-sticker-disc{color:transparent;text-shadow:0 0 0 var(--tr-locked-edge)}.trophy-sticker-name{font-weight:700;line-height:1.25}.trophy-sticker-note{color:var(--tr-muted);font-size:.8rem}.trophy-sticker.is-earned .trophy-sticker-note{color:var(--tr-ink);font-weight:700}@media(max-width:560px){.trophy-next{flex-wrap:wrap}.trophy-next-play{width:100%}.trophy-badges{grid-template-columns:repeat(2,1fr)}.trophy-stickers{grid-template-columns:repeat(3,1fr)}.trophy-sticker-disc{width:64px;height:64px;font-size:2rem}}@media(prefers-reduced-motion:reduce){.tr-ring-fill,.trophy-year summary:after{transition:none}}.trophy-badge,.trophy-sticker{position:relative}.trophy-new{position:absolute;top:-8px;right:-6px;padding:.1rem .45rem;border-radius:999px;background:var(--tr-accent);color:var(--tr-on-accent);font-size:.7rem;font-weight:800;letter-spacing:.04em;animation:trophy-new-pop .7s cubic-bezier(.2,1.6,.5,1) both}@keyframes trophy-new-pop{0%{transform:scale(.3);opacity:0}to{transform:none;opacity:1}}.trophy-stats{display:grid;gap:.4rem;max-width:420px;margin:1rem auto 0;text-align:center}.trophy-stats p{margin:0;font-weight:700}@media(prefers-reduced-motion:reduce){.trophy-new{animation:none}}.trophy-retry{min-height:48px;min-width:140px;margin-top:.8rem;padding:0 1.4rem;border:0;border-radius:999px;background:var(--light-accent);color:var(--on-light-accent);font:inherit;font-weight:800;cursor:pointer}body.dark .trophy-retry{background:var(--dark-accent);color:var(--on-dark-accent)}.auth-page{--au-bg: var(--light-bg);--au-text: var(--light-text);--au-panel: var(--light-panel);--au-accent: var(--light-accent);--au-on-accent: var(--on-light-accent);--au-border: var(--map-border);--au-muted: var(--map-muted);--au-danger: var(--danger-text);--au-shadow: var(--panel-shadow);--au-sky-top: #ffe3e7;--au-sky-bottom: #f8ecee;--au-glyph: rgba(239, 98, 108, .26);--au-cta: #c33d47;--au-on-cta: #ffffff;--au-cta-shade: #92262f;--au-soft: rgba(239, 98, 108, .1);--au-good: #1a6b46;--au-step-distance: 34px;position:relative;isolation:isolate;overflow:hidden;min-height:calc(100dvh - var(--navbar-height));display:flex;align-items:flex-start;justify-content:center;padding:clamp(1.25rem,5vw,3rem) 1rem 3rem;color:var(--au-text);background:linear-gradient(180deg,var(--au-sky-top),var(--au-sky-bottom))}body.dark .auth-page{--au-bg: var(--dark-bg);--au-text: var(--dark-text);--au-panel: var(--dark-panel);--au-accent: var(--dark-accent);--au-on-accent: var(--on-dark-accent);--au-sky-top: #33262c;--au-sky-bottom: #241a1e;--au-glyph: rgba(132, 220, 207, .22);--au-cta: #1f7d70;--au-on-cta: #ffffff;--au-cta-shade: #13544b;--au-soft: rgba(132, 220, 207, .12);--au-good: #7fdba8}.auth-page .auth-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}.auth-page .auth-glyph{position:absolute;color:var(--au-glyph);font-weight:700;line-height:1;animation-name:auth-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.auth-page .reveal-armed{opacity:0;transform:translateY(20px) scale(.98);transition:opacity .46s ease-out,transform .46s cubic-bezier(.22,1.2,.36,1)}.auth-page .reveal-armed.is-revealed{opacity:1;transform:none}.auth-page .auth-card{position:relative;width:100%;background-color:var(--au-panel);border-radius:22px;padding:clamp(1.5rem,4vw,2.25rem) clamp(1.1rem,4vw,1.9rem);box-shadow:0 10px 30px var(--au-shadow);animation:auth-card-in .52s cubic-bezier(.22,1.2,.36,1) both}.auth-page .auth-card.is-narrow{max-width:27rem}.auth-page .auth-card.is-wide{max-width:40rem}.auth-page .auth-title{font-size:clamp(1.45rem,4.5vw,1.8rem);line-height:1.2;margin-bottom:.45rem;color:var(--au-text)}.auth-page .auth-intro{font-size:.95rem;color:var(--au-muted);margin-bottom:1.4rem}.auth-page .auth-form{display:grid;gap:1.1rem}.auth-page .auth-field{display:grid;gap:.35rem}.auth-page .auth-label{font-weight:600;font-size:.95rem}.auth-page .auth-input{width:100%;min-height:48px;padding:.6rem .75rem;border-radius:12px;border:2px solid var(--au-border);background-color:var(--au-panel);color:var(--au-text);font:inherit;transition:border-color .2s,box-shadow .2s}.auth-page .auth-input:focus{outline:none;border-color:var(--au-accent);box-shadow:0 0 0 4px var(--au-soft)}.auth-page .auth-input.invalid{border-color:var(--au-danger)}.auth-page .auth-input-wrap{position:relative;display:flex}.auth-page .auth-input-wrap .auth-input{padding-inline-end:3.6rem}.auth-page .auth-peek{position:absolute;inset-block:0;inset-inline-end:.3rem;min-width:44px;border:none;border-radius:10px;background:none;color:var(--au-muted);font-size:1.15rem;cursor:pointer}.auth-page .auth-peek:hover,.auth-page .auth-peek:focus-visible{color:var(--au-text)}.auth-page .auth-hint{font-size:.85rem;color:var(--au-muted)}.auth-page .auth-error{font-size:.85rem;font-weight:600;color:var(--au-danger)}.auth-page .auth-btn{min-height:52px;padding-inline:1.2rem;border:none;border-radius:14px;font:inherit;font-size:1.05rem;font-weight:700;cursor:pointer;background-color:var(--au-cta);color:var(--au-on-cta);box-shadow:0 4px 0 var(--au-cta-shade);transition:filter .2s,transform .15s,box-shadow .15s}.auth-page .auth-btn:hover:not(:disabled),.auth-page .auth-btn:focus-visible:not(:disabled){filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 6px 0 var(--au-cta-shade)}.auth-page .auth-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 var(--au-cta-shade)}.auth-page .auth-btn:disabled{cursor:not-allowed;opacity:.65;box-shadow:0 4px 0 var(--au-cta-shade);transform:none}.auth-page .auth-btn-quiet{background:none;color:var(--au-text);border:2px solid var(--au-border);box-shadow:none;font-size:.95rem;min-height:46px}.auth-page .auth-btn-quiet:hover:not(:disabled),.auth-page .auth-btn-quiet:focus-visible:not(:disabled){border-color:var(--au-accent);box-shadow:none;filter:none}.auth-page .auth-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.3rem}.auth-page .auth-actions .auth-btn{flex:1 1 10rem}.auth-page .auth-switch{margin-top:1.4rem;font-size:.95rem;text-align:center;color:var(--au-muted)}.auth-page .auth-switch a{color:var(--au-text);font-weight:700;text-decoration:underline}@keyframes auth-drift{0%,to{transform:translateZ(0) rotate(0)}33%{transform:translate3d(12px,-20px,0) rotate(7deg)}66%{transform:translate3d(-10px,-9px,0) rotate(-5deg)}}@keyframes auth-card-in{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}@keyframes auth-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px) rotate(-1.2deg)}40%{transform:translate(7px) rotate(1.2deg)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@media(prefers-reduced-motion:reduce){.auth-page .auth-glyph,.auth-page .auth-card{animation:none}.auth-page .reveal-armed,.auth-page .auth-btn,.auth-page .auth-input{transition:none}.auth-page .auth-btn:hover,.auth-page .auth-btn:active{transform:none}}.auth-page .lg-greeting span{display:inline-block;animation:lg-letter-in .48s cubic-bezier(.22,1.2,.36,1) both;animation-delay:calc(var(--letter-index, 0) * 42ms)}.auth-page .lg-faces{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.2rem;padding:0;list-style:none}.auth-page .lg-face{--face-colour: var(--profile-colour-sky);display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem .45rem .5rem;border-radius:999px;font-weight:700;background-color:var(--face-colour);color:var(--on-light-accent);animation:lg-face-in .46s cubic-bezier(.22,1.2,.36,1) both;animation-delay:calc(var(--face-index, 0) * 90ms + .18s)}.auth-page .lg-face-avatar{font-size:1.6rem;line-height:1}.auth-page .lg-face-name{font-size:.98rem}.auth-page .lg-as{margin-bottom:1.2rem;font-size:.9rem;color:var(--au-muted);word-break:break-word}.auth-page .lg-as strong{color:var(--au-text)}.auth-page .lg-hidden-field{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.auth-page .lg-not-you{display:block;width:100%;margin-top:1rem;padding:.6rem;min-height:44px;border:none;background:none;font:inherit;font-size:.92rem;font-weight:600;color:var(--au-muted);text-decoration:underline;cursor:pointer;border-radius:10px}.auth-page .lg-not-you:hover,.auth-page .lg-not-you:focus-visible{color:var(--au-text);background-color:var(--au-soft)}@keyframes lg-letter-in{0%{opacity:0;transform:translateY(12px) rotate(-7deg)}to{opacity:1;transform:none}}@keyframes lg-face-in{0%{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.auth-page .lg-greeting span,.auth-page .lg-face{animation:none}}:is(.profile-builder,.pb-pickers){--pb-text: var(--light-text);--pb-panel: var(--light-panel);--pb-accent: var(--light-accent);--pb-on-accent: var(--on-light-accent);--pb-border: var(--map-border);--pb-danger: var(--danger-text);--pb-shadow: var(--panel-shadow);--pb-on-colour: var(--on-light-accent);--pb-tap: 64px}.profile-builder{display:block;text-align:left;color:var(--pb-text)}body.dark :is(.profile-builder,.pb-pickers){--pb-text: var(--dark-text);--pb-panel: var(--dark-panel);--pb-accent: var(--dark-accent);--pb-on-accent: var(--on-dark-accent)}.profile-builder:not(.is-bare){max-width:34rem;margin:2rem auto 0;padding:1.5rem 1.25rem;border-radius:24px;background-color:var(--pb-panel);box-shadow:0 6px 16px var(--pb-shadow)}.profile-builder .pb-title{font-size:1.4rem;margin-bottom:1rem;text-align:center}.profile-builder .pb-label{display:block;font-weight:700;font-size:1.05rem;margin:1rem 0 .5rem}.profile-builder .pb-name-input{width:100%;min-height:56px;padding:.6rem .9rem;font:inherit;font-size:1.15rem;border-radius:14px;border:3px solid var(--pb-border);background-color:var(--pb-panel);color:var(--pb-text);transition:border-color .15s ease}.profile-builder .pb-name-input:focus{outline:none;border-color:var(--pb-accent)}.profile-builder .pb-name-input.invalid{border-color:var(--pb-danger)}:is(.profile-builder,.pb-pickers) .pb-avatar-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--pb-tap),1fr));gap:.6rem}:is(.profile-builder,.pb-pickers) .pb-avatar-option{min-width:var(--pb-tap);min-height:var(--pb-tap);display:flex;align-items:center;justify-content:center;font-size:2rem;cursor:pointer;border-radius:18px;border:3px solid var(--pb-border);background-color:var(--pb-panel);color:var(--pb-text);transition:transform .15s ease,border-color .15s ease}:is(.profile-builder,.pb-pickers) .pb-avatar-option:hover,:is(.profile-builder,.pb-pickers) .pb-avatar-option:focus-visible{outline:none;transform:scale(1.08);border-color:var(--pb-accent)}:is(.profile-builder,.pb-pickers) .pb-avatar-option.is-locked{cursor:default;opacity:.55;font-size:1.5rem;border-style:dashed}:is(.profile-builder,.pb-pickers) .pb-avatar-option.selected{border-color:var(--pb-accent);background-color:var(--pb-accent);color:var(--pb-on-accent)}:is(.profile-builder,.pb-pickers) .pb-colour-row{display:flex;flex-wrap:wrap;gap:.6rem}:is(.profile-builder,.pb-pickers) .pb-colour-option{--pb-swatch: var(--profile-colour-sky);width:var(--pb-tap);height:var(--pb-tap);border-radius:50%;cursor:pointer;border:4px solid transparent;background-color:var(--pb-swatch);transition:transform .15s ease,border-color .15s ease}:is(.profile-builder,.pb-pickers) .pb-colour-option:hover,:is(.profile-builder,.pb-pickers) .pb-colour-option:focus-visible{outline:none;transform:scale(1.08)}:is(.profile-builder,.pb-pickers) .pb-colour-option.selected{border-color:var(--pb-accent);transform:scale(1.08)}.profile-builder .pb-year-row{display:flex;flex-wrap:wrap;gap:.5rem}.profile-builder .pb-year{display:grid;gap:.1rem;justify-items:center;min-height:52px;padding:.5rem .9rem;border-radius:14px;border:3px solid var(--pb-border);background-color:var(--pb-panel);color:var(--pb-text);font:inherit;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.profile-builder .pb-year:hover,.profile-builder .pb-year:focus-visible{outline:none;transform:scale(1.04);border-color:var(--pb-accent)}.profile-builder .pb-year.selected{border-color:var(--pb-accent);background-color:var(--pb-accent);color:var(--pb-on-accent)}.profile-builder .pb-year-name{font-weight:700;font-size:.98rem}.profile-builder .pb-year-note{font-size:.68rem;opacity:.8}.profile-builder .pb-preview{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}.profile-builder .pb-preview-label{font-weight:700}.profile-builder .pb-preview-chip{--pb-chip-colour: var(--profile-colour-sky);display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:999px;font-weight:700;font-size:1.1rem;background-color:var(--pb-chip-colour);color:var(--pb-on-colour);transition:background-color .2s ease}.profile-builder .pb-error{margin-top:.9rem;font-weight:700;color:var(--pb-danger)}.profile-builder .pb-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.profile-builder .pb-save-btn{flex:1 1 12rem;min-height:var(--pb-tap);border:none;border-radius:16px;font:inherit;font-size:1.15rem;font-weight:700;cursor:pointer;background-color:var(--pb-accent);color:var(--pb-on-accent);transition:filter .2s ease}.profile-builder .pb-save-btn:hover:not(:disabled),.profile-builder .pb-save-btn:focus-visible:not(:disabled){filter:brightness(1.08)}.profile-builder .pb-save-btn:disabled{cursor:not-allowed;opacity:.65}.profile-builder .pb-cancel-btn{flex:0 1 8rem;min-height:var(--pb-tap);border-radius:16px;font:inherit;font-size:1rem;font-weight:700;cursor:pointer;border:3px solid var(--pb-border);background-color:var(--pb-panel);color:var(--pb-text)}.profile-builder .pb-cancel-btn:hover,.profile-builder .pb-cancel-btn:focus-visible{outline:none;border-color:var(--pb-accent)}@media(prefers-reduced-motion:reduce){:is(.profile-builder,.pb-pickers) .pb-avatar-option,:is(.profile-builder,.pb-pickers) .pb-colour-option,.profile-builder .pb-year,.profile-builder .pb-name-input,.profile-builder .pb-preview-chip,.profile-builder .pb-save-btn{transition:none}:is(.profile-builder,.pb-pickers) .pb-avatar-option:hover,:is(.profile-builder,.pb-pickers) .pb-colour-option:hover,.profile-builder .pb-year:hover,:is(.profile-builder,.pb-pickers) .pb-colour-option.selected{transform:none}}.auth-page .sf{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem}.auth-page .sf-stars{display:flex;justify-content:center;gap:.6rem;margin:0;padding:0;list-style:none}.auth-page .sf-star{width:1.4rem;height:1.4rem;border-radius:50%;display:grid;place-items:center;border:2px solid var(--au-border);font-size:.9rem;color:var(--au-on-accent);transition:background-color .3s ease,transform .3s cubic-bezier(.22,1.2,.36,1)}.auth-page .sf-star.is-current{border-color:var(--au-accent);transform:scale(1.15)}.auth-page .sf-star.is-done{background:var(--au-accent);border-color:var(--au-accent)}.auth-page .sf-bix{display:flex;align-items:center;gap:.75rem}.auth-page .sf-bix-mascot{width:150px;zoom:.5;flex:none}.auth-page .sf-bubble{margin:0;padding:.7rem 1rem;border-radius:1rem 1rem 1rem .25rem;background:var(--au-bg);color:var(--au-text);font-size:1.05rem;font-weight:600}.auth-page .sf-family{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem .75rem;margin:0;padding:0;list-style:none}.auth-page .sf-family-face{display:flex;flex-direction:column;align-items:center;gap:.2rem;max-width:4.5rem;animation:sf-face-in .52s cubic-bezier(.22,1.2,.36,1) both}.auth-page .sf-family-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:1.5rem;background:var(--sf-face, var(--au-bg))}.auth-page .sf-family-name{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:600;color:var(--au-text)}@keyframes sf-face-in{0%{transform:translateY(60px) scale(1.6);opacity:0}to{transform:none;opacity:1}}.auth-page .sf-panel{animation:sf-step-in .38s cubic-bezier(.22,1.1,.36,1) both}.auth-page .sf-panel[data-direction=back]{animation-name:sf-step-in-back}@keyframes sf-step-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes sf-step-in-back{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}.auth-page .sf-panel .auth-title:focus{outline:none}.auth-page .sf .auth-btn{min-height:64px}.auth-page .sf .auth-input{min-height:56px}.auth-page .sf .auth-input-wrap .auth-input{padding-inline-end:4.2rem}.auth-page .sf .auth-peek{min-width:56px;min-height:48px}.auth-page .sf-cards{display:grid;grid-template-columns:1fr;gap:.75rem}.auth-page .sf-card{position:relative;min-height:64px;padding:.9rem 2.75rem .9rem 1rem;border-radius:1rem;text-align:left;display:grid;grid-template-columns:auto 1fr;column-gap:.75rem;align-items:center;border:2px solid var(--au-border);background:var(--au-panel);color:var(--au-text);font:inherit;cursor:pointer;transition:transform .16s cubic-bezier(.22,1.2,.36,1),border-color .16s ease}.auth-page .sf-card:active{transform:scale(.96)}.auth-page .sf-card:focus-visible{outline:3px solid var(--au-accent);outline-offset:2px}.auth-page .sf-card.is-chosen{border-color:var(--au-accent)}.auth-page .sf-card-icon{grid-row:span 2;font-size:2rem}.auth-page .sf-card-title{font-size:1.15rem;font-weight:700}.auth-page .sf-card-blurb{color:var(--au-muted);font-size:.95rem}.auth-page .sf-card-check{position:absolute;top:.5rem;right:.6rem;width:1.6rem;height:1.6rem;border-radius:50%;display:grid;place-items:center;background:var(--au-accent);color:var(--au-on-accent);transform:scale(0);transition:transform .22s cubic-bezier(.22,1.6,.36,1)}.auth-page .sf-card.is-chosen .sf-card-check{transform:scale(1)}@media(min-width:640px){.auth-page .sf-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-page .sf-cards:has(>:nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr))}}.auth-page .sf-wheel{position:relative;height:16rem;overflow-y:auto;scroll-snap-type:y mandatory;margin:0;padding:6rem 0;list-style:none;border:2px solid var(--au-border);border-radius:1rem;background:var(--au-panel);-webkit-mask-image:linear-gradient(transparent,black 30%,black 70%,transparent);mask-image:linear-gradient(transparent,black 30%,black 70%,transparent)}.auth-page .sf-wheel:focus-visible{border-color:var(--au-accent);box-shadow:inset 0 0 0 2px var(--au-accent);outline:none}.auth-page .sf-wheel-item{scroll-snap-align:center;min-height:4rem;display:grid;place-items:center;font-size:1.4rem;color:var(--au-muted);cursor:pointer}.auth-page .sf-wheel-item.is-chosen{color:var(--au-text);font-size:1.9rem;font-weight:800}.auth-page .sf-code{display:flex;justify-content:center;gap:.3rem}.auth-page .sf-code.is-invalid{animation:auth-shake .4s ease both}.auth-page .sf-code-box{flex:1 1 0;min-width:0;max-width:4rem;height:4rem;padding:0;border-radius:.75rem;text-align:center;font-size:1.8rem;font-weight:700;border:2px solid var(--au-border);background:var(--au-panel);color:var(--au-text)}.auth-page .sf-code-box:focus{border-color:var(--au-accent)}.auth-page .sf-code-box:focus-visible{outline:3px solid var(--au-accent);outline-offset:2px}.auth-page .sf-code-msg{margin:0;font-size:1rem;font-weight:600;color:var(--au-text)}.auth-page .sf-code.is-invalid .sf-code-box{border-style:dashed;border-color:var(--au-accent)}.auth-page .sf-continue{position:sticky;bottom:calc(env(safe-area-inset-bottom,0px) + .75rem)}.auth-page .sf-continue .auth-btn{width:100%;min-height:64px;font-size:1.15rem}.auth-page .sf-handover{text-align:center;display:grid;gap:1.25rem;justify-items:center}.auth-page .sf-handover-face{width:9rem;height:9rem;border-radius:50%;display:grid;place-items:center;font-size:5rem;background:var(--sf-face, var(--au-bg))}.auth-page .sf-handover .auth-btn{min-height:80px;font-size:1.4rem;padding-inline:2rem;animation:sf-pulse 1.6s ease-in-out infinite}@keyframes sf-pulse{50%{transform:scale(1.05)}}.auth-page .su-strength{font-weight:600;transition:color .2s ease}.auth-page .su-strength.is-short{color:var(--au-danger)}.auth-page .su-strength.is-strong,.auth-page .su-strength.is-good{color:var(--au-good)}.auth-page .sf-summary{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.auth-page .sf-add{margin-top:1.5rem}.auth-page .sf-summary-card{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center;padding:.75rem;border-radius:1rem;border:2px solid var(--au-border)}@media(min-width:900px){.auth-page .sf{grid-template-columns:9rem minmax(0,1fr);column-gap:1.5rem}.auth-page .sf>:not(.sf-bix){grid-column:2}.auth-page .sf-bix{grid-column:1;grid-row:1 / span 4;flex-direction:column;align-self:start}.auth-page .sf-bix-mascot{zoom:.8}.auth-page .sf-cards:has(>:nth-child(5)){grid-template-columns:repeat(2,minmax(0,1fr))}.auth-page .sf-bubble{border-radius:1rem}}@media(prefers-reduced-motion:reduce){.auth-page .sf-panel,.auth-page .sf-panel[data-direction=back]{animation:sf-fade .2s ease both}.auth-page .sf-family-face,.auth-page .sf-handover .auth-btn,.auth-page .sf-code.is-invalid{animation:none}.auth-page .su-strength,.auth-page .sf-card,.auth-page .sf-card-check,.auth-page .sf-star{transition:none}}@keyframes sf-fade{0%{opacity:0}to{opacity:1}}.floating-glyph-page{--fg-top: #ffe3e7;--fg-bottom: #f8ecee;--fg-ink: rgba(239, 98, 108, .26);position:relative;isolation:isolate;background:linear-gradient(180deg,var(--fg-top),var(--fg-bottom));overflow-x:clip}body.dark .floating-glyph-page{--fg-top: #33262c;--fg-bottom: #241a1e;--fg-ink: rgba(132, 220, 207, .22)}.floating-glyph-page .floating-glyph-background{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.floating-glyph-page .floating-glyph{position:absolute;left:var(--fg-mobile-left, var(--fg-base-left));top:var(--fg-mobile-top, var(--fg-base-top));color:var(--fg-ink);font-weight:700;line-height:1;animation:floating-glyph-drift ease-in-out infinite}@keyframes floating-glyph-drift{0%,to{transform:translateZ(0) rotate(0)}33%{transform:translate3d(13px,-20px,0) rotate(8deg)}66%{transform:translate3d(-11px,-9px,0) rotate(-6deg)}}@media(max-width:480px){.floating-glyph-page .floating-glyph:nth-child(1){--fg-mobile-top: 1rem;--fg-mobile-left: 10%}.floating-glyph-page .floating-glyph:nth-child(2){--fg-mobile-top: 2rem;--fg-mobile-left: 35%}.floating-glyph-page .floating-glyph:nth-child(3){--fg-mobile-top: .9rem;--fg-mobile-left: 64%}.floating-glyph-page .floating-glyph:nth-child(4){--fg-mobile-top: 1.8rem;--fg-mobile-left: 86%}}@media(prefers-reduced-motion:reduce){.floating-glyph-page .floating-glyph{animation:none}}.profiles-page{--pf-text: var(--light-text);--pf-panel: var(--light-panel);--pf-accent: var(--light-accent);--pf-on-accent: var(--on-light-accent);--pf-border: var(--map-border);--pf-muted: var(--map-muted);--pf-danger: var(--danger-text);--pf-shadow: var(--panel-shadow);--pf-on-colour: var(--on-light-accent);--pf-card-size: 11.5rem;min-height:calc(100dvh - var(--navbar-height));padding:2rem 1rem 3rem;color:var(--pf-text);text-align:center}body.dark .profiles-page{--pf-text: var(--dark-text);--pf-panel: var(--dark-panel);--pf-accent: var(--dark-accent);--pf-on-accent: var(--on-dark-accent)}.profiles-page .profiles-header{margin-bottom:2rem}.profiles-page .profiles-title{font-size:2.2rem;color:var(--pf-text);margin-bottom:.4rem}.profiles-page .profiles-subtitle{font-size:1.15rem;opacity:.9}.profiles-page .profiles-loading{font-size:1.2rem;padding:3rem 1rem}.profiles-page .profiles-signedout{max-width:28rem;margin:0 auto;background-color:var(--pf-panel);border-radius:20px;padding:2rem 1.5rem;box-shadow:0 4px 14px var(--pf-shadow)}.profiles-page .profiles-signin-link{display:inline-flex;align-items:center;justify-content:center;margin-top:1.25rem;min-height:48px;padding:0 1.4rem;border-radius:12px;font-weight:700;background-color:var(--pf-accent);color:var(--pf-on-accent)}.profiles-page .profiles-signin-link:hover,.profiles-page .profiles-signin-link:focus-visible{filter:brightness(1.08)}.profiles-page .profiles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--pf-card-size),max-content));justify-content:center;gap:1.25rem;max-width:60rem;margin:0 auto;list-style:none}.profiles-page .profiles-grid-item{display:flex}.profiles-page .profiles-card{--profile-card-colour: var(--profile-colour-sky);width:var(--pf-card-size);min-height:var(--pf-card-size);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;padding:1rem .75rem;border:4px solid transparent;border-radius:28px;cursor:pointer;font:inherit;background-color:var(--profile-card-colour);color:var(--pf-on-colour);box-shadow:0 6px 16px var(--pf-shadow);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.profiles-page .profiles-card:hover:not(:disabled),.profiles-page .profiles-card:focus-visible:not(:disabled){transform:translateY(-4px) scale(1.03);filter:brightness(1.06)}.profiles-page .profiles-card:focus-visible{outline:none;border-color:var(--pf-accent)}.profiles-page .profiles-card:disabled{cursor:default}.profiles-page .profiles-card.chosen{transform:scale(1.06);border-color:var(--pf-accent)}.profiles-page .profiles-avatar{font-size:3.4rem;line-height:1.1}.profiles-page .profiles-name{font-size:1.2rem;font-weight:700;overflow-wrap:anywhere}.profiles-page .profiles-go{font-size:.9rem;font-weight:600;opacity:.85}.profiles-page .profiles-progress{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:.1rem}.profiles-page .pf-ring{flex:none;width:clamp(42px,11vw,50px);height:auto}.profiles-page .pf-ring-track{fill:none;stroke:var(--pf-on-colour);opacity:.22;stroke-width:13}.profiles-page .pf-ring-fill{fill:none;stroke:var(--pf-on-colour);stroke-width:13;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.9,.3,1)}.profiles-page .pf-ring-text{fill:var(--pf-on-colour);font-size:2.6rem;font-weight:700;text-anchor:middle;dominant-baseline:central}.profiles-page .profiles-progress-text{display:flex;flex-direction:column;text-align:left;line-height:1.25}.profiles-page .profiles-progress-where{font-size:.72rem;font-weight:700}.profiles-page .profiles-progress-count{font-size:.7rem;opacity:.85}.profiles-page .profiles-progress-new{font-size:.78rem;font-weight:600;opacity:.9;margin-top:.1rem}.profiles-page .profiles-add-card{background-color:var(--pf-panel);color:var(--pf-text);border:4px dashed var(--pf-border)}.profiles-page .profiles-footer{margin-top:2.5rem;font-size:.95rem;color:var(--pf-muted)}.profiles-page .profiles-footer a{text-decoration:underline;font-weight:600}@media(max-width:480px){.profiles-page{--pf-card-size: 9.75rem;padding:5.25rem .75rem 2.5rem}.profiles-page .profiles-title{font-size:1.7rem}.profiles-page .profiles-avatar{font-size:2.8rem}.profiles-page .profiles-grid{gap:.9rem}}@media(prefers-reduced-motion:reduce){.profiles-page .profiles-card,.profiles-page .pf-ring-fill{transition:none}}.parent-area-page{--pa-text: var(--light-text);--pa-panel: var(--light-panel);--pa-accent: var(--light-accent);--pa-on-accent: var(--on-light-accent);--pa-border: var(--map-border);--pa-muted: var(--map-muted);--pa-danger: var(--danger-text);--pa-shadow: var(--panel-shadow);--pa-on-colour: var(--on-light-accent);min-height:calc(100dvh - var(--navbar-height));display:flex;justify-content:center;padding:2rem 1rem 3rem;color:var(--pa-text)}body.dark .parent-area-page{--pa-text: var(--dark-text);--pa-panel: var(--dark-panel);--pa-accent: var(--dark-accent);--pa-on-accent: var(--on-dark-accent)}.parent-area-page .parent-area-loading{position:relative;padding:3rem 1rem}.parent-area-page .parent-area-card{position:relative;width:100%;max-width:38rem;min-width:0;background-color:var(--pa-panel);border-radius:16px;padding:2rem 1.5rem;box-shadow:0 4px 14px var(--pa-shadow);overflow-wrap:anywhere}.parent-area-page .parent-area-title{font-size:1.6rem;margin-bottom:.5rem}.parent-area-page .parent-area-account{font-size:.95rem;color:var(--pa-muted);overflow-wrap:anywhere}.parent-area-page .parent-area-section{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--pa-border)}.parent-area-page .parent-area-section-title{font-size:1.15rem;margin-bottom:1rem}.parent-area-page .parent-area-note{font-size:.95rem;line-height:1.5;color:var(--pa-muted);margin-bottom:.7rem}.parent-area-page .parent-area-note strong{color:var(--pa-text)}.parent-area-page .parent-area-empty{font-size:.95rem;color:var(--pa-muted);margin-bottom:1rem}.parent-area-page .parent-area-empty a{color:var(--pa-text);font-weight:700;text-decoration:underline}.parent-area-page .parent-area-list{list-style:none;display:grid;min-width:0;gap:.75rem;margin-bottom:1.25rem}.parent-area-page .parent-area-row{display:flex;min-width:0;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.75rem;border:1px solid var(--pa-border);border-radius:12px}.parent-area-page .parent-area-row-actions{display:flex;flex-wrap:wrap;min-width:0;gap:.5rem}.parent-area-page .parent-area-name{flex-basis:100%;display:grid;min-width:0;gap:.4rem}.parent-area-page .parent-area-name label{font-size:.85rem;color:var(--pa-muted)}.parent-area-page .parent-area-name-row{display:flex;flex-wrap:wrap;min-width:0;gap:.5rem}.parent-area-page .parent-area-name input{flex:1 1 12rem;min-width:0;min-height:44px;padding:0 .75rem;border:1px solid var(--pa-border);border-radius:10px;background-color:var(--pa-panel);color:var(--pa-text);font:inherit}.parent-area-page .parent-area-name input:focus-visible{outline:2px solid var(--pa-accent);outline-offset:2px}.parent-area-page .parent-area-name-error{color:var(--pa-danger);font-size:.85rem;font-weight:600}.parent-area-page .parent-area-year{flex-basis:100%;display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:.5rem}.parent-area-page .parent-area-year-label{font-size:.85rem;color:var(--pa-muted)}.parent-area-page .parent-area-year-row{display:flex;flex-wrap:wrap;min-width:0;gap:.3rem}.parent-area-page .parent-area-year-btn{min-width:44px;min-height:36px;padding-inline:.55rem;border-radius:9px;border:1px solid var(--pa-border);background-color:var(--pa-panel);color:var(--pa-text);font:inherit;font-size:.85rem;font-weight:600;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.parent-area-page .parent-area-year-btn:hover:not(:disabled),.parent-area-page .parent-area-year-btn:focus-visible:not(:disabled){outline:none;border-color:var(--pa-accent)}.parent-area-page .parent-area-year-btn.selected{border-color:var(--pa-accent);background-color:var(--pa-accent);color:var(--pa-on-accent)}.parent-area-page .parent-area-year-btn:disabled{cursor:not-allowed;opacity:.6}.parent-area-page .parent-area-year-error{font-size:.82rem;font-weight:600;color:var(--pa-danger)}.parent-area-page .parent-area-rewards{flex-basis:100%;min-width:0;margin-top:.25rem;padding-top:.75rem;border-top:1px solid var(--pa-border)}.parent-area-page .parent-area-rewards-title{display:flex;align-items:baseline;gap:.5rem;font-size:.85rem;font-weight:700;margin-bottom:.5rem}.parent-area-page .parent-area-rewards-count{font-weight:400;font-variant-numeric:tabular-nums;color:var(--pa-muted)}.parent-area-page .parent-area-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 .9rem;padding:0;list-style:none}.parent-area-page .parent-area-badge{display:flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;border:1px solid var(--pa-border);font-size:.78rem;opacity:.5}.parent-area-page .parent-area-badge.is-held{opacity:1;border-color:var(--pa-accent);font-weight:700}.parent-area-page .parent-area-badge-icon{font-size:1.05rem;line-height:1}.parent-area-page .parent-area-avatars{display:flex;flex-wrap:wrap;gap:.35rem}.parent-area-page .parent-area-avatar{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;border-radius:12px;border:1px solid var(--pa-border);background-color:var(--pa-panel);cursor:pointer;transition:border-color .15s ease,transform .15s ease}.parent-area-page .parent-area-avatar:hover:not(:disabled),.parent-area-page .parent-area-avatar:focus-visible:not(:disabled){outline:none;border-color:var(--pa-accent);transform:scale(1.06)}.parent-area-page .parent-area-avatar.selected{border:3px solid var(--pa-accent)}.parent-area-page .parent-area-avatar:disabled{cursor:not-allowed;opacity:.6}.parent-area-page .parent-area-progress{flex-basis:100%;min-width:0;margin-top:.25rem;padding-top:.75rem;border-top:1px solid var(--pa-border)}.parent-area-page .parent-area-progress-head{font-size:.9rem;font-weight:600;margin-bottom:.75rem}.parent-area-page .parent-area-progress-note{font-size:.85rem;font-weight:400;color:var(--pa-muted)}.parent-area-page .parent-area-cats{display:grid;gap:.9rem;margin:0;padding:0;list-style:none}.parent-area-page .parent-area-cat-head{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin-bottom:.3rem}.parent-area-page .parent-area-cat-name{font-size:.88rem;font-weight:700}.parent-area-page .parent-area-cat-count{flex:none;font-size:.82rem;font-variant-numeric:tabular-nums;color:var(--pa-muted)}.parent-area-page .parent-area-bar{height:8px;border-radius:999px;overflow:hidden;background-color:var(--pa-border)}.parent-area-page .parent-area-bar-fill{height:100%;border-radius:999px;background-color:var(--pa-accent);transition:width .6s cubic-bezier(.2,.9,.3,1)}.parent-area-page .parent-area-topics{display:grid;gap:.15rem;margin:.5rem 0 0;padding:0;list-style:none}.parent-area-page .parent-area-topic{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.82rem;color:var(--pa-muted)}.parent-area-page .parent-area-topic>span:first-child,.parent-area-page .parent-area-cat-name{min-width:0;overflow-wrap:anywhere}.parent-area-page .parent-area-topic.is-done{color:var(--pa-text);font-weight:600}.parent-area-page .parent-area-topic-count{flex:none;font-variant-numeric:tabular-nums}.parent-area-page .parent-area-chip{--parent-chip-colour: var(--profile-colour-sky);display:inline-flex;max-width:100%;min-width:0;align-items:center;gap:.5rem;padding:.4rem .9rem;border-radius:999px;font-weight:700;background-color:var(--parent-chip-colour);color:var(--pa-on-colour)}.parent-area-page .parent-area-chip-name{min-width:0;overflow-wrap:anywhere}.parent-area-page .parent-area-confirm{display:flex;flex-direction:column;min-width:0;gap:.6rem;flex:1 1 16rem}.parent-area-page .parent-area-confirm-text{font-size:.9rem;font-weight:600;color:var(--pa-danger);overflow-wrap:anywhere}.parent-area-page .parent-area-confirm-actions{display:flex;flex-wrap:wrap;gap:.5rem}.parent-area-page .parent-area-primary-btn{display:inline-flex;max-width:100%;align-items:center;justify-content:center;min-height:48px;padding:0 1.2rem;border:none;border-radius:10px;font-weight:700;cursor:pointer;background-color:var(--pa-accent);color:var(--pa-on-accent);transition:filter .2s}.parent-area-page .parent-area-primary-btn:hover,.parent-area-page .parent-area-primary-btn:focus-visible{filter:brightness(1.08)}.parent-area-page .parent-area-secondary-btn{min-height:44px;padding:0 1rem;border-radius:10px;font-weight:600;cursor:pointer;border:1px solid var(--pa-border);background-color:var(--pa-panel);color:var(--pa-text);transition:border-color .2s}.parent-area-page .parent-area-secondary-btn:hover,.parent-area-page .parent-area-secondary-btn:focus-visible{border-color:var(--pa-accent)}.parent-area-page .parent-area-secondary-btn:disabled{cursor:default;opacity:.55}.parent-area-page .parent-area-danger-btn{min-height:44px;padding:0 1rem;border-radius:10px;font-weight:700;cursor:pointer;background-color:var(--pa-panel);color:var(--pa-danger);border:2px solid var(--pa-danger);transition:opacity .2s}.parent-area-page .parent-area-danger-btn:hover,.parent-area-page .parent-area-danger-btn:focus-visible{opacity:.85}.parent-area-page .parent-area-signout-btn{min-height:48px;padding:0 1.2rem;border-radius:10px;font-weight:700;cursor:pointer;border:2px solid var(--pa-border);background-color:var(--pa-panel);color:var(--pa-text);transition:border-color .2s}.parent-area-page .parent-area-signout-btn:hover,.parent-area-page .parent-area-signout-btn:focus-visible{border-color:var(--pa-accent)}@media(max-width:480px){.parent-area-page{padding:5.25rem .75rem 2rem}.parent-area-page .parent-area-card{padding:1.5rem 1.1rem}.parent-area-page .parent-area-row{flex-direction:column;flex-wrap:nowrap;align-items:stretch}.parent-area-page .parent-area-name,.parent-area-page .parent-area-year,.parent-area-page .parent-area-rewards,.parent-area-page .parent-area-progress{flex-basis:auto;width:100%}.parent-area-page .parent-area-name-row>*{width:100%}.parent-area-page .parent-area-name input{flex-basis:auto}.parent-area-page .parent-area-primary-btn{width:100%;text-align:center}}@media(prefers-reduced-motion:reduce){.parent-area-page .parent-area-bar-fill,.parent-area-page .parent-area-year-btn,.parent-area-page .parent-area-avatar{transition:none}.parent-area-page .parent-area-avatar:hover{transform:none}}.parent-area-page .parent-area-trophies-link{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;margin:.2rem 0 .6rem;color:var(--pa-text);font-weight:700;text-decoration:underline}.parent-area-page .parent-area-stats{font-size:.95rem;color:var(--pa-muted);margin:.2rem 0 .6rem}.skills-page{--sk-ink: var(--light-text);--sk-muted: #645057;--sk-card: var(--light-panel);--sk-edge: #f0dde0;--sk-inset: #faf2f3;--sk-sky-top: #ffe3e7;--sk-sky-bottom: #f8ecee;--sk-glyph: rgba(239, 98, 108, .26);--sk-accent: var(--light-accent);--sk-on-accent: var(--on-light-accent);--sk-on-deep: #ffffff;--sk-focus: #22181c;--sk-hue-math: #ef626c;--sk-hue-english: #9f91e8;--sk-hue-shapes: #56a9e0;--sk-hue-geography: #2fa898;--sk-deep-math: #c33d47;--sk-deep-english: #5e4eb8;--sk-deep-shapes: #1f6fa8;--sk-deep-geography: #1f7d70;max-width:1200px;margin:0 auto;padding:0 1rem 3rem;color:var(--sk-ink);overflow-x:clip}body.dark .skills-page{--sk-ink: var(--dark-text);--sk-muted: #c8b9bd;--sk-card: var(--dark-panel);--sk-edge: #46403f;--sk-inset: #3a3437;--sk-sky-top: #33262c;--sk-sky-bottom: #241a1e;--sk-glyph: rgba(132, 220, 207, .22);--sk-accent: var(--dark-accent);--sk-on-accent: var(--on-dark-accent);--sk-focus: #84dccf}.skills-page .reveal-armed{opacity:0;transform:translateY(24px) scale(.985);transition:opacity .48s ease-out,transform .48s cubic-bezier(.22,1.2,.36,1)}.skills-page .reveal-armed.is-revealed{opacity:1;transform:none}.sk-hero{position:relative;margin:0 auto clamp(.9rem,3vw,1.4rem);padding:clamp(.7rem,2vw,1rem) clamp(.8rem,3vw,1.6rem);border-radius:0 0 26px 26px;background:linear-gradient(180deg,var(--sk-sky-top),var(--sk-sky-bottom));overflow:hidden;isolation:isolate}@media(max-width:720px){.skills-page{padding-inline:.75rem}.sk-hero{margin-inline:-.75rem}}.sk-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}.sk-glyph{position:absolute;color:var(--sk-glyph);font-weight:700;line-height:1;animation-name:sk-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.sk-bar{display:flex;align-items:center;gap:clamp(.6rem,2vw,.9rem)}.sk-bar-icon{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:18px;background:var(--sk-accent);font-size:1.7rem;animation:sk-icon-idle 5s ease-in-out infinite}.sk-bar-id{min-width:0}.sk-title{margin:0;font-size:clamp(1.3rem,4vw,1.9rem);line-height:1.15}.sk-bar-meta{margin:.1rem 0 0;color:var(--sk-muted);font-size:clamp(.85rem,2.4vw,.95rem);font-weight:700}.sk-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:clamp(1rem,3vw,1.4rem)}.sk-filter{display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:.4rem .95rem;border:3px solid var(--group-hue, var(--sk-accent));border-radius:999px;background:var(--sk-card);color:var(--sk-ink);font-family:inherit;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform .18s cubic-bezier(.22,1.2,.36,1),background-color .18s ease,color .18s ease}.sk-filter:hover{transform:translateY(-3px)}.sk-filter.is-active{background:var(--group-deep, var(--sk-accent));border-color:var(--group-deep, var(--sk-accent));color:var(--sk-on-deep)}.sk-filter:first-child.is-active{color:var(--sk-on-accent)}.sk-grid{display:grid;gap:clamp(1rem,2.5vw,1.5rem);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}.sk-card{padding:clamp(1rem,3vw,1.4rem);border:3px solid var(--group-hue);border-radius:26px;background:var(--sk-card);box-shadow:0 10px 0 -2px var(--group-hue),0 16px 30px var(--panel-shadow);animation:sk-pop .38s cubic-bezier(.22,1.3,.36,1);transition:transform .22s cubic-bezier(.22,1.2,.36,1),box-shadow .22s ease-out}.sk-card:hover{transform:translateY(-5px);box-shadow:0 15px 0 -2px var(--group-hue),0 24px 40px var(--panel-shadow)}.sk-card-head{display:flex;align-items:center;gap:.8rem}.sk-card-icon{display:grid;place-items:center;flex:none;width:58px;height:58px;border-radius:18px;background:var(--group-hue);font-size:1.9rem;animation:sk-icon-idle 4.5s ease-in-out infinite}.sk-card:hover .sk-card-icon{animation:sk-icon-wiggle .7s ease-in-out infinite}.sk-card-title{flex:1 1 auto;min-width:0;margin:0;font-size:clamp(1.3rem,3vw,1.6rem);overflow-wrap:anywhere}.sk-card-count{flex:none;padding:.2rem .65rem;border-radius:999px;background:var(--sk-inset);color:var(--sk-muted);font-size:.8rem;font-weight:700;white-space:nowrap}.sk-games{display:grid;gap:.5rem;margin-top:1rem}.sk-game{position:relative;display:flex;align-items:center;gap:.6rem;min-height:54px;padding:.6rem .9rem;border-radius:16px;background:var(--group-deep);box-shadow:0 4px #00000038;color:var(--sk-on-deep);font-size:1rem;font-weight:700;text-decoration:none;overflow:hidden;animation:sk-rise .42s cubic-bezier(.22,1.2,.36,1) both;animation-delay:calc(var(--game-index) * 45ms);transition:transform .16s cubic-bezier(.22,1.2,.36,1),box-shadow .16s ease-out}.sk-game:hover{transform:translateY(-2px);box-shadow:0 6px #00000038}.sk-game:active{transform:translateY(3px);box-shadow:0 1px #00000038}.sk-game-icon{display:grid;place-items:center;flex:none;width:2.1rem;height:2.1rem;border-radius:10px;background:#ffffff38;font-size:1.15rem}.sk-game-label{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.sk-game-go{flex:none;opacity:.85;transition:transform .16s ease-out}.sk-game:hover .sk-game-go{transform:translate(3px)}.sk-game:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.3) 50%,transparent 65%);background-size:250% 100%;animation:sk-shimmer 4.5s linear infinite;animation-delay:calc(var(--game-index) * .22s);pointer-events:none}.sk-filter:focus-visible,.sk-game:focus-visible{outline:3px solid var(--sk-focus);outline-offset:3px}@keyframes sk-drift{0%,to{transform:translateZ(0) rotate(0)}33%{transform:translate3d(13px,-20px,0) rotate(8deg)}66%{transform:translate3d(-11px,-9px,0) rotate(-6deg)}}@keyframes sk-icon-idle{0%,88%,to{transform:translateY(0) rotate(0)}92%{transform:translateY(-6px) rotate(-7deg)}96%{transform:translateY(-3px) rotate(5deg)}}@keyframes sk-icon-wiggle{0%,to{transform:rotate(-8deg) scale(1.06)}50%{transform:rotate(8deg) scale(1.06)}}@keyframes sk-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes sk-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes sk-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.sk-glyph,.sk-bar-icon,.sk-card-icon,.sk-card:hover .sk-card-icon,.sk-card,.sk-game,.sk-game:after{animation:none}.sk-filter,.sk-game,.sk-game-go,.sk-card,.skills-page .reveal-armed{transition:none}.sk-filter:hover,.sk-card:hover,.sk-game:hover,.sk-game:hover .sk-game-go{transform:none}}.curriculum-page{--cp-ink: var(--light-text);--cp-muted: #645057;--cp-card: var(--light-panel);--cp-edge: #f0dde0;--cp-inset: #faf2f3;--cp-sky-top: #ffe3e7;--cp-sky-bottom: #f8ecee;--cp-glyph: rgba(239, 98, 108, .26);--cp-accent: var(--light-accent);--cp-cta: #c33d47;--cp-cta-shade: #92262f;--cp-on-deep: #ffffff;--cp-focus: #22181c;--cp-dead: #5f5f5f;--cp-on-dead: #ffffff;--cp-hue-0: #ef626c;--cp-hue-1: #9f91e8;--cp-hue-2: #2fa898;--cp-hue-3: #e39a24;--cp-hue-4: #56a9e0;--cp-hue-5: #e07bb8;--cp-hue-6: #7cb342;--cp-hue-7: #f08a5d;--cp-deep-0: #c33d47;--cp-deep-1: #5e4eb8;--cp-deep-2: #1f7d70;--cp-deep-3: #8f5900;--cp-deep-4: #1f6fa8;--cp-deep-5: #a33b7a;--cp-deep-6: #4a7c17;--cp-deep-7: #b1442c;max-width:1200px;margin:0 auto;padding:0 1rem 1.5rem;color:var(--cp-ink);overflow-x:clip}body.dark .curriculum-page{--cp-ink: var(--dark-text);--cp-muted: #c8b9bd;--cp-card: var(--dark-panel);--cp-edge: #46403f;--cp-inset: #3a3437;--cp-sky-top: #33262c;--cp-sky-bottom: #241a1e;--cp-glyph: rgba(132, 220, 207, .22);--cp-accent: var(--dark-accent);--cp-cta: #1f7d70;--cp-cta-shade: #13544b;--cp-focus: #84dccf;--cp-dead: #6b6b6b}.curriculum-page .reveal-armed{opacity:0;transform:translateY(26px) scale(.985);transition:opacity .52s ease-out,transform .52s cubic-bezier(.22,1.2,.36,1)}.curriculum-page .reveal-armed.is-revealed{opacity:1;transform:none}.cp-hero{position:relative;margin:0 auto clamp(.9rem,2.5vw,1.4rem);padding:clamp(.7rem,2vw,1rem) clamp(.8rem,3vw,1.6rem);border-radius:0 0 26px 26px;background:linear-gradient(180deg,var(--cp-sky-top),var(--cp-sky-bottom));overflow:hidden;isolation:isolate}@media(max-width:720px){.curriculum-page{padding-inline:.75rem}.cp-hero{margin-inline:-.75rem;border-radius:0 0 30px 30px}}.cp-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}.cp-glyph{position:absolute;color:var(--cp-glyph);font-weight:700;line-height:1;animation-name:cp-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.cp-bar{display:flex;align-items:center;gap:clamp(.6rem,2vw,1rem)}.cp-back{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--cp-card);box-shadow:0 4px 12px var(--panel-shadow);color:var(--cp-ink);font-size:1.2rem;font-weight:700;text-decoration:none;transition:transform .16s ease-out,background-color .2s ease}.cp-back:hover{transform:translate(-3px)}.cp-bar-id{flex:1 1 auto;min-width:0}.cp-title{margin:0;font-size:clamp(1.15rem,3.6vw,1.7rem);line-height:1.15}.cp-bar-meta{margin:.1rem 0 0;color:var(--cp-muted);font-size:clamp(.85rem,2.4vw,.95rem);font-weight:700;font-variant-numeric:tabular-nums}.cp-bar-soon{font-weight:400;opacity:.85}.cp-cta{display:inline-flex;flex:none;flex-direction:column;justify-content:center;gap:.1rem;max-width:15rem;min-height:56px;padding:.55rem 1.1rem;border-radius:16px;background:var(--cp-cta);box-shadow:0 5px 0 var(--cp-cta-shade);color:var(--cp-on-deep);text-decoration:none;transition:transform .14s ease-out,box-shadow .14s ease-out}.cp-cta:hover{transform:translateY(-2px)}.cp-cta:active{transform:translateY(4px);box-shadow:0 1px 0 var(--cp-cta-shade)}.cp-cta-main{font-size:1.05rem;font-weight:700;white-space:nowrap}.cp-cta-sub{overflow:hidden;font-size:.82rem;text-overflow:ellipsis;white-space:nowrap;opacity:.92}@media(max-width:600px){.cp-bar{flex-wrap:wrap}.cp-cta{flex:1 0 100%;max-width:none;align-items:center;text-align:center}}.cp-ring{flex:none;width:clamp(54px,12vw,68px);height:auto}.cp-ring-track{fill:none;stroke:var(--cp-edge);stroke-width:12}.cp-ring-fill{fill:none;stroke:var(--cp-accent);stroke-width:12;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset 1.1s cubic-bezier(.2,.9,.3,1)}.cp-ring-text{fill:var(--cp-ink);font-size:2.1rem;font-weight:700;text-anchor:middle;dominant-baseline:central}.dev-unlock-banner{display:inline-block;margin:.6rem 0 0;padding:.4rem .9rem;border:2px dashed var(--cp-accent);border-radius:10px;font-size:.95rem;font-weight:600}.cp-rail-head{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .8rem;margin-bottom:.6rem}.cp-dots{display:flex;flex:1;flex-wrap:wrap;gap:.4rem}.cp-dot{display:grid;place-items:center;width:2.6rem;height:2.6rem;padding:0;border:3px solid transparent;border-radius:50%;background:var(--cp-inset);font-size:1.15rem;cursor:pointer;transition:transform .18s cubic-bezier(.22,1.2,.36,1),border-color .18s ease,background-color .18s ease}.cp-dot:hover{transform:translateY(-3px) scale(1.06)}.cp-dot.is-active{border-color:var(--cat-hue);background:var(--cat-hue);transform:scale(1.08)}.cp-dot.is-locked{filter:grayscale(1);opacity:.75}.cp-rail-arrows{display:flex;gap:.4rem}.cp-arrow{display:grid;place-items:center;width:2.8rem;height:2.8rem;border:none;border-radius:50%;background:var(--cp-card);box-shadow:0 4px 12px var(--panel-shadow);color:var(--cp-ink);font-size:1.2rem;font-weight:700;cursor:pointer;transition:transform .16s ease-out,opacity .16s ease}.cp-arrow:hover:not(:disabled){transform:scale(1.08)}.cp-arrow:disabled{opacity:.35;cursor:not-allowed}@media(hover:none){.cp-rail-arrows{display:none}}.cp-rail{display:flex;gap:clamp(1rem,2.5vw,1.6rem);padding:.4rem .25rem 1.1rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-left:.25rem;scrollbar-width:thin;scrollbar-color:var(--cp-accent) var(--cp-inset)}.cp-rail::-webkit-scrollbar{height:12px}.cp-rail::-webkit-scrollbar-track{border-radius:999px;background:var(--cp-inset)}.cp-rail::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:var(--cp-accent);background-clip:content-box}.cp-cat{flex:0 0 clamp(290px,86vw,400px);display:flex;flex-direction:column;max-height:max(340px,min(78vh,calc(100dvh - var(--navbar-height) - 215px)));scroll-snap-align:start;padding:clamp(1.1rem,3vw,1.5rem);border:3px solid var(--cat-hue);border-radius:26px;background:var(--cp-card);box-shadow:0 10px 0 -2px var(--cat-hue),0 16px 30px var(--panel-shadow);transition:transform .22s cubic-bezier(.22,1.2,.36,1),box-shadow .22s ease-out}.cp-cat:hover{transform:translateY(-5px);box-shadow:0 15px 0 -2px var(--cat-hue),0 24px 40px var(--panel-shadow)}.cp-cat.is-locked{border-style:dashed;border-color:var(--cp-edge);box-shadow:0 10px 26px var(--panel-shadow)}.cp-cat.is-locked:hover{transform:none;box-shadow:0 10px 26px var(--panel-shadow)}.cp-cat-head{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}.cp-cat-icon{display:grid;place-items:center;flex:none;width:62px;height:62px;border-radius:20px;background:var(--cat-hue);font-size:2rem;animation:cp-icon-idle 5s ease-in-out infinite}.cp-cat.is-locked .cp-cat-icon{background:var(--cp-inset);filter:grayscale(1);animation:none}.cp-cat:hover .cp-cat-icon{animation:cp-icon-wiggle .7s ease-in-out infinite}.cp-cat-heading{flex:1 1 10rem;min-width:0}.cp-cat-eyebrow{margin:0;color:var(--cp-muted);font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.cp-cat-title{margin:.1rem 0 0;font-size:clamp(1.35rem,3vw,1.7rem);line-height:1.12;overflow-wrap:anywhere}.cp-cat-badge{padding:.3rem .75rem;border-radius:999px;background:var(--cat-deep);color:var(--cp-on-deep);font-size:.8rem;font-weight:700;white-space:nowrap}.cp-cat-badge.is-locked{background:var(--cp-dead);color:var(--cp-on-dead)}.cp-cat-progress{display:flex;align-items:center;gap:.7rem;margin-top:1rem}.cp-cat-bar{flex:1;height:12px;border-radius:999px;background:var(--cp-inset);overflow:hidden}.cp-cat-bar-fill{height:100%;border-radius:999px;background:var(--cat-deep);transition:width .9s cubic-bezier(.2,.9,.3,1)}.cp-cat-count{margin:0;color:var(--cp-muted);font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.cp-topics{display:flex;flex:1;flex-direction:column;gap:.9rem;min-height:0;margin-top:1.1rem;padding-right:.35rem;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--cat-hue) transparent}.cp-topics::-webkit-scrollbar{width:8px}.cp-topics::-webkit-scrollbar-thumb{border-radius:999px;background:var(--cat-hue)}.cp-topic{padding:.9rem 1rem 1rem;border-radius:18px;background:var(--cp-inset);border-left:5px solid var(--cat-hue)}.cp-topic.is-complete{border-left-color:var(--cat-deep)}.cp-topic.is-locked{border-left-color:var(--cp-dead)}.cp-topic-head{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.cp-topic-pin{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:50%;background:var(--cat-deep);color:var(--cp-on-deep);font-size:.95rem;font-weight:700}.cp-topic-sticker{position:relative;display:grid;place-items:center;flex:none;width:2.6rem;height:2.6rem;border:3px solid var(--cp-inset);border-radius:50%;background:var(--cat-hue);box-shadow:0 0 0 2px var(--cat-deep),0 3px 6px var(--panel-shadow);font-size:1.35rem;line-height:1}.cp-topic.is-locked .cp-topic-pin{background:var(--cp-dead);color:var(--cp-on-dead)}.cp-topic-title{flex:1 1 8rem;min-width:0;margin:0;font-size:1.1rem;overflow-wrap:anywhere}.cp-chip{padding:.2rem .6rem;border-radius:999px;font-size:.8rem;font-weight:700;white-space:nowrap}.cp-chip.is-count{background:var(--cp-card);color:var(--cp-ink);font-variant-numeric:tabular-nums}.cp-chip.is-soon{border:1px dashed var(--cp-muted);color:var(--cp-muted)}.cp-challenges{display:grid;gap:.5rem;margin-top:.8rem}.cp-challenge{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.6rem;width:100%;min-height:52px;padding:.7rem .9rem;border:none;border-radius:14px;font-family:inherit;font-size:1rem;font-weight:700;text-align:left;text-decoration:none;overflow:hidden;transition:transform .16s cubic-bezier(.22,1.2,.36,1),box-shadow .16s ease-out}.cp-challenge-label{min-width:0;overflow-wrap:anywhere}.cp-challenge-state{flex:none;font-size:1.05rem}.cp-challenge.is-open{background:var(--cat-deep);color:var(--cp-on-deep);box-shadow:0 4px #00000038;cursor:pointer}.cp-challenge.is-open:hover{transform:translateY(-2px);box-shadow:0 6px #00000038}.cp-challenge.is-open:active{transform:translateY(3px);box-shadow:0 1px #00000038}.cp-challenge.is-open:after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);background-size:250% 100%;animation:cp-shimmer 3.6s linear infinite;pointer-events:none}.cp-challenge.is-complete{background:var(--cp-card);border:2px solid var(--cat-deep);color:var(--cp-ink);cursor:pointer}.cp-challenge.is-complete:hover{transform:translateY(-2px)}.cp-challenge.is-complete .cp-challenge-state{animation:cp-star 3s ease-in-out infinite}.cp-challenge.is-locked,.cp-challenge.is-soon{background:var(--cp-dead);color:var(--cp-on-dead);cursor:not-allowed}.cp-challenge.is-soon{background:none;border:2px dashed var(--cp-dead);color:var(--cp-muted)}.cp-challenge.is-nudged{animation:cp-shake .42s ease-in-out}.cp-back:focus-visible,.cp-cta:focus-visible,.cp-dot:focus-visible,.cp-arrow:focus-visible,.cp-challenge:focus-visible{outline:3px solid var(--cp-focus);outline-offset:3px}@keyframes cp-drift{0%,to{transform:translateZ(0) rotate(0)}33%{transform:translate3d(13px,-20px,0) rotate(8deg)}66%{transform:translate3d(-11px,-9px,0) rotate(-6deg)}}@keyframes cp-icon-idle{0%,88%,to{transform:translateY(0) rotate(0)}92%{transform:translateY(-6px) rotate(-7deg)}96%{transform:translateY(-3px) rotate(5deg)}}@keyframes cp-icon-wiggle{0%,to{transform:rotate(-8deg) scale(1.06)}50%{transform:rotate(8deg) scale(1.06)}}@keyframes cp-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes cp-star{0%,80%,to{transform:scale(1) rotate(0)}88%{transform:scale(1.3) rotate(14deg)}}@keyframes cp-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px) rotate(-1.5deg)}40%{transform:translate(7px) rotate(1.5deg)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@media(prefers-reduced-motion:reduce){.cp-glyph,.cp-cat-icon,.cp-cat:hover .cp-cat-icon,.cp-challenge.is-open:after,.cp-challenge.is-complete .cp-challenge-state,.cp-challenge.is-nudged{animation:none}.cp-back,.cp-cta,.cp-cat,.cp-dot,.cp-arrow,.cp-challenge,.cp-cat-bar-fill,.cp-ring-fill,.curriculum-page .reveal-armed{transition:none}.cp-back:hover,.cp-cta:hover,.cp-cat:hover,.cp-dot:hover,.cp-arrow:hover:not(:disabled),.cp-challenge:hover{transform:none}.cp-dot.is-active{transform:none}}.cs-page{--cs-ink: var(--light-text);--cs-muted: #645057;--cs-card: var(--light-panel);--cs-edge: #f0dde0;--cs-inset: #faf2f3;--cs-sky-top: #ffe3e7;--cs-sky-bottom: #f8ecee;--cs-glyph: rgba(239, 98, 108, .26);--cs-accent: var(--light-accent);--cs-on-deep: #ffffff;--cs-focus: #22181c;--cs-dead: #5f5f5f;--cs-hue-math: #ef626c;--cs-hue-english: #9f91e8;--cs-hue-geography: #2fa898;--cs-hue-science: #e39a24;--cs-deep-math: #c33d47;--cs-deep-english: #5e4eb8;--cs-deep-geography: #1f7d70;--cs-deep-science: #8f5900;max-width:1100px;margin:0 auto;padding:0 1rem 3rem;color:var(--cs-ink);overflow-x:clip}body.dark .cs-page{--cs-ink: var(--dark-text);--cs-muted: #c8b9bd;--cs-card: var(--dark-panel);--cs-edge: #46403f;--cs-inset: #3a3437;--cs-sky-top: #33262c;--cs-sky-bottom: #241a1e;--cs-glyph: rgba(132, 220, 207, .22);--cs-accent: var(--dark-accent);--cs-dead: #6b6b6b}.cs-page .reveal-armed{opacity:0;transform:translateY(24px) scale(.985);transition:opacity .48s ease-out,transform .48s cubic-bezier(.22,1.2,.36,1)}.cs-page .reveal-armed.is-revealed{opacity:1;transform:none}.cs-hero{position:relative;margin:0 auto clamp(1.2rem,4vw,2rem);padding:clamp(.7rem,2vw,1rem) clamp(.8rem,3vw,1.6rem);border-radius:0 0 26px 26px;background:linear-gradient(180deg,var(--cs-sky-top),var(--cs-sky-bottom));overflow:hidden;isolation:isolate}@media(max-width:720px){.cs-page{padding-inline:.75rem}.cs-hero{margin-inline:-.75rem}}.cs-sky{position:absolute;inset:0;z-index:-1;pointer-events:none}.cs-glyph{position:absolute;color:var(--cs-glyph);font-weight:700;line-height:1;animation-name:cs-drift;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.cs-bar{display:flex;align-items:center;gap:clamp(.6rem,2vw,1rem)}.cs-back{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:var(--cs-card);box-shadow:0 4px 12px var(--panel-shadow);color:var(--cs-ink);font-size:1.2rem;font-weight:700;text-decoration:none;transition:transform .16s ease-out,background-color .2s ease}.cs-back:hover{transform:translate(-3px)}.cs-title{flex:1 1 auto;min-width:0;margin:0;font-size:clamp(1.25rem,4vw,1.9rem);line-height:1.15}.cs-track{display:flex;align-items:center;gap:.35rem;flex:none;margin:0;padding:0;list-style:none}.cs-track-step{display:grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--cs-card);color:var(--cs-muted);font-size:.9rem;font-weight:700;transition:background-color .26s ease,color .26s ease,transform .26s cubic-bezier(.22,1.2,.36,1)}.cs-track-step.is-done{background:var(--cs-accent);color:var(--on-light-accent);transform:scale(1.06)}.cs-track-line{width:1.4rem;height:4px;border-radius:999px;background:var(--cs-card)}.cs-step{margin-bottom:clamp(1.4rem,4vw,2.2rem)}.cs-step-title{display:flex;align-items:center;gap:.6rem;margin:0 0 .9rem;font-size:clamp(1.1rem,3vw,1.4rem)}.cs-step-num{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border-radius:50%;background:var(--cs-accent);color:var(--on-light-accent);font-size:1rem}.cs-step-num.is-waiting{background:var(--cs-inset);color:var(--cs-muted)}.cs-step-year{padding:.2rem .7rem;border-radius:999px;background:var(--cs-inset);color:var(--cs-muted);font-size:.85rem;font-weight:700;animation:cs-pop .42s cubic-bezier(.22,1.4,.36,1)}.cs-years{display:flex;flex-wrap:wrap;gap:clamp(.6rem,2vw,1rem)}.cs-years.is-nudged{animation:cs-shake .46s ease-in-out}.cs-year{display:flex;flex:1 1 8.5rem;flex-direction:column;align-items:center;gap:.15rem;max-width:14rem;min-height:108px;padding:.9rem 1rem;border:3px solid var(--cs-edge);border-radius:22px;background:var(--cs-card);box-shadow:0 6px 0 -1px var(--cs-edge);color:var(--cs-ink);font-family:inherit;cursor:pointer;transition:transform .2s cubic-bezier(.22,1.2,.36,1),border-color .2s ease,box-shadow .2s ease}.cs-year:hover{transform:translateY(-4px)}.cs-year:active{transform:translateY(2px);box-shadow:0 2px 0 -1px var(--cs-edge)}.cs-year-icon{font-size:2rem;animation:cs-icon-idle 5s ease-in-out infinite}.cs-year-label{font-size:1.2rem;font-weight:700}.cs-year-state{color:var(--cs-muted);font-size:.8rem;font-weight:700}.cs-year.is-selected{border-color:var(--cs-accent);background:var(--cs-accent);box-shadow:0 6px 0 -1px var(--cs-accent);color:var(--on-light-accent)}.cs-year.is-selected .cs-year-state{color:var(--on-light-accent)}.cs-year.is-selected .cs-year-icon{animation:cs-icon-wiggle .7s ease-in-out infinite}.cs-year.is-locked{border-style:dashed;border-color:var(--cs-dead);background:var(--cs-inset);box-shadow:none;color:var(--cs-muted);cursor:not-allowed}.cs-year.is-locked:hover{transform:none}.cs-year.is-locked .cs-year-icon{animation:none}.cs-year.is-nudged,.cs-subject.is-nudged{animation:cs-shake .44s ease-in-out}.cs-subjects{display:grid;gap:clamp(.8rem,2.5vw,1.2rem);grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.cs-subject{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.3rem 1rem 1.1rem;border:3px solid var(--subject-hue);border-radius:26px;background:var(--cs-card);box-shadow:0 10px 0 -2px var(--subject-hue),0 16px 30px var(--panel-shadow);color:var(--cs-ink);font-family:inherit;cursor:pointer;transition:transform .22s cubic-bezier(.22,1.2,.36,1),box-shadow .22s ease-out,border-color .22s ease}.cs-subject:hover{transform:translateY(-7px) rotate(-1.2deg);box-shadow:0 16px 0 -2px var(--subject-hue),0 24px 40px var(--panel-shadow)}.cs-subject:active{transform:translateY(-1px)}.cs-subject-icon{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:var(--subject-hue);font-size:2.1rem;animation:cs-icon-idle 4.5s ease-in-out infinite}.cs-subject:hover .cs-subject-icon{animation:cs-icon-wiggle .7s ease-in-out infinite}.cs-subject-name{font-size:1.3rem;font-weight:700}.cs-subject-state{display:grid;place-items:center;width:100%;min-height:44px;margin-top:auto;padding:.5rem .8rem;border-radius:14px;background:var(--subject-deep);color:var(--cs-on-deep);font-size:.95rem;font-weight:700}.cs-subject-flag{position:absolute;top:-13px;right:16px;padding:.25rem .75rem;border-radius:999px;background:var(--subject-deep);color:var(--cs-on-deep);font-size:.75rem;font-weight:700;background-image:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.75) 50%,transparent 70%);background-size:250% 100%;animation:cs-shimmer 2.8s linear infinite}.cs-subject-pick{position:absolute;top:-13px;left:16px;padding:.25rem .75rem;border-radius:999px;background:var(--subject-deep);color:var(--cs-on-deep);font-size:.75rem;font-weight:700}.cs-subject.is-waiting,.cs-subject.is-locked{border-style:dashed;box-shadow:0 10px 26px var(--panel-shadow);cursor:not-allowed}.cs-subject.is-waiting:hover,.cs-subject.is-locked:hover{transform:none;box-shadow:0 10px 26px var(--panel-shadow)}.cs-subject.is-waiting .cs-subject-state,.cs-subject.is-locked .cs-subject-state{background:none;border:2px dashed var(--cs-dead);color:var(--cs-muted)}.cs-subject.is-locked .cs-subject-icon,.cs-subject.is-waiting .cs-subject-icon{filter:grayscale(.7);animation:none}.cs-subject.is-locked:hover .cs-subject-icon,.cs-subject.is-waiting:hover .cs-subject-icon{animation:none}.cs-back:focus-visible,.cs-year:focus-visible,.cs-subject:focus-visible{outline:3px solid var(--cs-focus);outline-offset:3px}body.dark .cs-back:focus-visible,body.dark .cs-year:focus-visible,body.dark .cs-subject:focus-visible{outline-color:var(--dark-accent)}@keyframes cs-drift{0%,to{transform:translateZ(0) rotate(0)}33%{transform:translate3d(13px,-20px,0) rotate(8deg)}66%{transform:translate3d(-11px,-9px,0) rotate(-6deg)}}@keyframes cs-icon-idle{0%,88%,to{transform:translateY(0) rotate(0)}92%{transform:translateY(-6px) rotate(-7deg)}96%{transform:translateY(-3px) rotate(5deg)}}@keyframes cs-icon-wiggle{0%,to{transform:rotate(-8deg) scale(1.06)}50%{transform:rotate(8deg) scale(1.06)}}@keyframes cs-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}@keyframes cs-pop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes cs-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px) rotate(-1.2deg)}40%{transform:translate(7px) rotate(1.2deg)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}@media(prefers-reduced-motion:reduce){.cs-glyph,.cs-year-icon,.cs-year.is-selected .cs-year-icon,.cs-subject-icon,.cs-subject:hover .cs-subject-icon,.cs-subject-flag,.cs-step-year,.cs-years.is-nudged,.cs-year.is-nudged,.cs-subject.is-nudged{animation:none}.cs-back,.cs-year,.cs-subject,.cs-track-step,.cs-page .reveal-armed{transition:none}.cs-back:hover,.cs-year:hover,.cs-subject:hover{transform:none}}.notfound-page{padding:3rem 2rem;text-align:center;animation:fadeIn .6s ease-in-out}.notfound-emoji{font-size:4rem;line-height:1;margin-bottom:1rem}.notfound-title{color:var(--light-accent);margin-bottom:.5rem}body.dark .notfound-title{color:var(--dark-accent)}.notfound-message{max-width:34rem;margin:0 auto 2rem;line-height:1.5}.notfound-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.notfound-btn{display:inline-block;padding:.6rem 1.2rem;border-radius:999px;border:2px solid var(--light-accent);color:var(--light-text);text-decoration:none;font-weight:600;transition:background-color .2s ease,color .2s ease}.notfound-btn:hover{background-color:var(--light-accent);color:var(--light-bg)}.notfound-btn-primary{background-color:var(--light-accent);color:var(--on-light-accent)}body.dark .notfound-btn{border-color:var(--dark-accent);color:var(--dark-text)}body.dark .notfound-btn:hover,body.dark .notfound-btn-primary{background-color:var(--dark-accent);color:var(--dark-bg)}@keyframes fadeIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}:root{--light-bg: #F6E8EA;--light-text: #22181C;--light-accent: #EF626C;--light-panel: #ffffff;--dark-bg: #22181C;--dark-text: #F6E8EA;--dark-accent: #84DCCF;--dark-panel: #312F2F;--on-light-accent: #22181C;--on-dark-accent: #22181C;--sq-text: var(--light-text);--sq-panel: var(--light-panel);--map-border: #e6dcde;--map-muted: #5c5157;--map-text: var(--light-text);--map-chip: #f0e6e8;--map-accent: var(--light-accent);--map-on-accent: var(--on-light-accent);--map-hud: rgba(255, 255, 255, .95);--danger-text: #b3261e;--panel-shadow: rgba(34, 24, 28, .12);--navbar-height: 56px;--solar-panel: rgba(255, 248, 244, .96);--solar-text: #22181c;--solar-muted: #51464a;--solar-border: #bd998c;--solar-accent: var(--light-accent);--solar-on-accent: var(--on-light-accent)}body.dark{--danger-text: #ffb4ab;--panel-shadow: rgba(0, 0, 0, .4);--sq-text: var(--dark-text);--sq-panel: var(--dark-panel);--map-border: #443b3f;--map-muted: #bdb0b4;--map-text: var(--dark-text);--map-chip: #3a3437;--map-accent: var(--dark-accent);--map-on-accent: var(--on-dark-accent);--map-hud: rgba(34, 24, 28, .95);--solar-panel: rgba(20, 24, 39, .96);--solar-text: #f6e8ea;--solar-muted: #d4c9cf;--solar-border: #c4a47d;--solar-accent: var(--dark-accent);--solar-on-accent: var(--on-dark-accent)}body{margin:0;font-family:ABeeZee,sans-serif;font-weight:400;transition:background-color .3s,color .3s;min-height:100dvh}body.light{background-color:#f6e8ea;color:#22181c}body.dark{background-color:#22181c;color:#f6e8ea}body.dark{background-color:var(--dark-bg);color:var(--dark-text)}.clock-panel{display:flex;flex-direction:column;align-items:center}.clock-btn{padding:.5rem 1rem;font-size:1rem;background-color:var(--light-accent);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:background-color .3s}body.dark .clock-btn{background-color:var(--dark-accent)}.clock-btn:hover{filter:brightness(.9)}.clock-btn:disabled{background-color:gray;cursor:not-allowed;opacity:.6}.option-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem 2rem;max-width:500px;margin:1rem auto;width:100%}@media(max-width:400px){.option-list{grid-template-columns:1fr}}.option-list label{position:relative;font-size:.95rem;cursor:pointer;-webkit-user-select:none;user-select:none;color:inherit;line-height:1.6rem;display:flex;align-items:center;gap:.5rem}.option-list input[type=checkbox]{appearance:none;width:1.1rem;height:1.1rem;border:2px solid var(--light-accent);border-radius:3px;background-color:#fff;cursor:pointer;transition:all .2s;position:relative}body.dark .option-list input[type=checkbox]{border-color:var(--dark-accent);background-color:#222}.option-list input[type=checkbox]:checked{background-color:var(--light-accent);border-color:var(--light-accent)}body.dark .option-list input[type=checkbox]:checked{background-color:var(--dark-accent);border-color:var(--dark-accent)}.option-list input[type=checkbox]:checked:after{content:"✔";color:#fff;position:absolute;top:-.2rem;left:.15rem;font-size:.9rem}body.dark .option-list input[type=checkbox]:checked:after{color:#000}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{background-color:#f6e8ea}@media(prefers-color-scheme:dark){html{background-color:#22181c}}html:has(body.light){background-color:#f6e8ea}html:has(body.dark){background-color:#22181c}.abeezee-regular{font-family:ABeeZee,sans-serif;font-weight:400;font-style:normal}.abeezee-regular-italic{font-family:ABeeZee,sans-serif;font-weight:400;font-style:italic}.page{max-width:1200px;margin:0 auto;padding:1rem}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{line-height:1.5}ul,ol{list-style:none}a{text-decoration:none;color:inherit}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}:root{--profile-colour-coral: #f7b3b7;--profile-colour-sky: #a9cdf0;--profile-colour-mint: #a8e0cf;--profile-colour-sun: #f6d98a;--profile-colour-lilac: #cdbdec;--profile-colour-peach: #f8c49b}body.dark{--profile-colour-coral: #d98d92;--profile-colour-sky: #8ab2d8;--profile-colour-mint: #8ac6b5;--profile-colour-sun: #d9bd72;--profile-colour-lilac: #b0a0d0;--profile-colour-peach: #dca87f}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
