/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--font-weight-normal:400;--font-weight-bold:700;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-border:var(--line)}}@layer base{*,:before,:after{border-style:solid;border-width:0;border-color:var(--color-border)}}@layer lexyan{@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-400-normal.woff2)format("woff2")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/atkinson-hyperlegible-latin-700-normal.woff2)format("woff2")}:root{--ink:#f9f6ed;--muted:#a9b8c9;--navy:#08152a;--navy-2:#0d2039;--navy-3:#122a46;--line:#aac6e329;--lime:#b7eb62;--yellow:#f8c94b;--coral:#fa765f;--sky:#71c4ff;--purple:#b3a6ff;--radius:20px;--font-body:"Atkinson Hyperlegible", "Verdana", system-ui, sans-serif;--font-head:var(--font-body);--game-font:22px;--word-font:44px;--s-bg:#f3ead3;--s-card:#fbf6e9;--s-ink:#1e2a3a;--s-muted:#4a5869;--s-line:#e0d3b2;--s-choice:#fff;--s-choice-line:#d6c8a5;--s-accent:#2f6fd1;--s-good:#2e7d32;--s-good-bg:#e3f4d6;--s-bad:#b3412c;--s-bad-bg:#fbe3dc;--s-mark:#ffe08a}:root[data-reading-theme=dark]{--s-bg:#08152a;--s-card:#10243f;--s-ink:#f9f6ed;--s-muted:#b4c3d3;--s-line:#aac6e333;--s-choice:#15304f;--s-choice-line:#aac6e347;--s-accent:#71c4ff;--s-good:#b7eb62;--s-good-bg:#b7eb6224;--s-bad:#ff9c87;--s-bad-bg:#fa765f29;--s-mark:#6d5a14}:root[data-text-size=large]{--game-font:27px;--word-font:54px}*{box-sizing:border-box}html,body{background:var(--navy);min-height:100%;margin:0}body{color:var(--ink);font:400 17px/1.55 var(--font-body);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}button:disabled{cursor:default}:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}h1,h2,h3{font-family:var(--font-head);letter-spacing:0;font-weight:700}.icon{vertical-align:middle;flex:none}.muted{color:var(--muted)}.pad{padding:0 24px 22px}.pad-top{padding:20px 22px 4px}.app-shell{background:radial-gradient(circle at 79% 0%, #26588b47, transparent 32rem), var(--navy);min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:236px;height:100vh;padding:27px 16px;display:flex;position:sticky;top:0}.brand{font:700 24px/1 var(--font-head);align-items:center;gap:11px;margin:0 12px 44px;display:flex}.brand-mark,.login-mark{background:var(--lime);width:32px;height:32px;color:var(--navy);font:700 18px/1 var(--font-head);border-radius:10px;place-items:center;display:grid;transform:rotate(-8deg)}.nav{gap:6px;display:grid}.nav-button{min-height:50px;color:var(--muted);text-align:left;border-radius:14px;align-items:center;gap:13px;padding:0 14px;font-weight:700;transition:background .2s,color .2s;display:flex}.nav-button:hover,.nav-button.active{color:var(--ink);background:#b7eb621f}.nav-button.active{box-shadow:inset 3px 0 var(--lime)}.side-footer{border-top:1px solid var(--line);color:var(--muted);margin-top:auto;padding:18px 12px 0;font-size:14px}.side-footer strong{color:var(--ink);display:block}.main{flex:1;min-width:0;padding:25px clamp(18px,4vw,54px) 40px}.topbar{justify-content:space-between;align-items:center;gap:16px;max-width:1240px;margin:0 auto 26px;display:flex}.topbar-kicker{color:var(--muted);margin:0 0 4px;font-size:15px}.topbar h1{margin:0;font-size:clamp(24px,3vw,32px);line-height:1.15}.top-actions{align-items:center;gap:12px;display:flex}.streak-pill{white-space:nowrap;color:var(--yellow);background:var(--navy-2);border:1px solid var(--line);border-radius:14px;align-items:center;gap:7px;padding:10px 14px;font-weight:700;display:flex}.avatar-button{width:44px;height:44px;color:var(--navy);background:var(--lime);font:700 18px var(--font-head);border:3px solid #fff3;border-radius:50%;place-items:center;display:grid}.update-banner{background:#71c4ff1f;border:1px solid #71c4ff4d;border-radius:14px;max-width:1240px;margin:0 auto 18px;padding:12px 16px}.bottom-nav{display:none}#app[data-page=session]{background:var(--s-bg);padding-bottom:0;display:block}body:has(#app[data-page=session]){background:var(--s-bg)}.content-grid{grid-template-columns:minmax(0,1fr) 340px;gap:22px;max-width:1240px;margin:0 auto;display:grid}.stack{align-content:start;gap:22px;display:grid}.card{border:1px solid var(--line);border-radius:var(--radius);background:#0d2039e6;box-shadow:0 15px 35px #00000024}.card-head{justify-content:space-between;align-items:center;gap:14px;padding:22px 24px 0;display:flex}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}.card h2{margin:4px 0 0;font-size:21px;line-height:1.25}.quiet-button{color:var(--sky);align-items:center;gap:6px;padding:8px 0;font-weight:700;display:inline-flex}.primary-button,.secondary-button{border-radius:14px;justify-content:center;align-items:center;gap:9px;min-height:50px;padding:0 22px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex}.primary-button{background:var(--lime);color:#0a1c2d;box-shadow:0 8px 18px #b7eb6229}.primary-button:hover:not(:disabled){transform:translateY(-2px)}.primary-button:disabled{opacity:.45;box-shadow:none}.primary-button.big{min-height:58px;padding:0 28px;font-size:19px}.secondary-button{color:var(--ink);border:1px solid var(--line);background:#ffffff14}.hero-card{background:linear-gradient(112deg,#173554 0%,#102a47 60%,#21486c 100%);min-height:270px;padding:28px;position:relative;overflow:hidden}.hero-card.done{background:linear-gradient(112deg,#1d4a3a,#12304a)}.hero-card.complete{background:linear-gradient(112deg,#4b3a7a,#12304a)}.hero-bg{opacity:.32;position:absolute;inset:0}.hero-bg .world-art{width:100%;height:100%}.hero-card-content{z-index:1;max-width:min(68%,470px);position:relative}.hero-card .eyebrow{color:var(--lime)}.hero-card h2{margin:10px 0;font-size:clamp(25px,3vw,34px);line-height:1.15}.hero-card p{color:#dbe5ee;margin:0 0 22px;font-size:18px}.hero-art{z-index:1;width:190px;position:absolute;bottom:-8px;right:20px}.niko{width:100%;height:auto;display:block}.niko .hero-body{transform-box:view-box;transform-origin:80px 224px;animation:3.4s ease-in-out infinite breathe}.niko .hero-head-group{transform-box:view-box;transform-origin:80px 128px;animation:5s ease-in-out infinite sway}.niko .eyes{transform-box:fill-box;transform-origin:50%;animation:5.2s infinite blink}.niko .companion{transform-box:view-box;transform-origin:179px 224px;animation:2.6s ease-in-out infinite bob}.niko .tail{transform-box:fill-box;transform-origin:0 100%;animation:1.2s ease-in-out infinite alternate wag}.niko .companion.dog .tail{animation-duration:.35s}.niko .wing{transform-box:fill-box;transform-origin:80% 90%}.niko .wing.right{transform-origin:20% 90%}.niko.cheer .hero-all{transform-box:view-box;transform-origin:80px 224px;animation:1s cubic-bezier(.3,.7,.4,1) infinite hop}.niko.cheer .companion{animation:1s cubic-bezier(.3,.7,.4,1) .15s infinite hop}.niko.cheer .wing{animation:.3s ease-in-out infinite alternate flap}.niko.oops .hero-head-group{animation:2.4s ease-in-out infinite shake}.niko.sleep .zz,.niko.think .thought,.niko .smoke,.niko .sparks{animation:2.6s ease-in-out infinite float-z}.niko .flame{transform-box:fill-box;transform-origin:50%;animation:.25s ease-in-out infinite alternate flicker}@keyframes sway{0%,to{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}@keyframes bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-2px)rotate(-3deg)}}@keyframes wag{0%{transform:rotate(-8deg)}to{transform:rotate(10deg)}}@keyframes hop{0%,to{transform:translateY(0)scale(1)}12%{transform:translateY(0)scale(1.06,.92)}45%{transform:translateY(-12px)scale(.96,1.05)}75%{transform:translateY(0)scale(1.04,.96)}}@keyframes shake{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(-4px)rotate(-2deg)}75%{transform:translate(4px)rotate(2deg)}}@keyframes flicker{0%{opacity:.8;transform:scaleX(.85)}to{opacity:1;transform:scaleX(1.1)}}@keyframes blink{0%,95%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.012,.988)}}@keyframes flap{0%{transform:rotate(-12deg)}to{transform:rotate(10deg)}}@keyframes float-z{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.6;transform:translateY(-5px)}}.feedback.try,.feedback.good,.feedback.show{grid-template-columns:88px 1fr;align-items:center}.feedback-body{gap:10px;display:grid}.game-buddy{align-self:end;width:88px;position:relative}.feedback.good .game-buddy,.feedback.try .game-buddy{animation:.35s ease-out pop-in}@keyframes pop-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@media (width<=480px){.feedback.try,.feedback.good,.feedback.show{grid-template-columns:68px 1fr}.game-buddy{width:68px}}.mission-card{padding-bottom:22px}.mission-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0;padding:18px 24px 0;list-style:none;display:grid}.mission-step{border:1px solid var(--line);background:#0511204d;border-radius:15px;padding:14px 12px}.step-icon{width:36px;height:36px;color:var(--sky);background:#71c4ff24;border-radius:11px;place-items:center;margin-bottom:10px;display:grid}.mission-step strong{font-size:15px;line-height:1.3;display:block}.mission-step span:last-child{color:var(--muted);margin-top:3px;font-size:14px;display:block}.yellow .step-icon,.yellow.block-icon{color:var(--yellow);background:#f8c94b29}.coral .step-icon{color:var(--coral);background:#fa765f29}.purple .step-icon{color:var(--purple);background:#b3a6ff29}.lime .step-icon{color:var(--lime);background:#b7eb6229}.streak-card{background:linear-gradient(105deg,#f8c94b2e,#0d2039e6 70%);align-items:center;gap:16px;padding:20px 22px;display:flex}.streak-icon{color:var(--yellow)}.streak-card strong{font:600 19px var(--font-head);display:block}.streak-card span{color:var(--muted)}.side-card{padding:22px}.side-card .muted{margin:12px 0 0}.progress-track{background:#0612208c;border-radius:99px;flex:1;height:10px;margin-top:14px;overflow:hidden}.progress-track.big{height:14px}.progress-fill{border-radius:inherit;background:var(--lime);height:100%;transition:width .4s}.xp-row{align-items:center;gap:12px;display:flex}.xp-row .progress-track{margin-top:0}.xp-row strong{white-space:nowrap}.page{max-width:1240px;margin:0 auto}.page-header{margin-bottom:22px}.page-header h2{margin:0 0 6px;font-size:30px}.page-header p{color:var(--muted);margin:0;font-size:18px}.world-list{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;display:grid}.world-card{padding-bottom:20px;overflow:hidden}.world-card.locked{opacity:.7}.world-banner{height:130px;position:relative}.world-art{width:100%;height:100%;display:block}.world-card.locked .world-art{filter:grayscale(.8)brightness(.7)}.lock-badge{background:#08152ad9;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;font-weight:700;display:inline-flex;position:absolute;bottom:12px;left:14px}.world-count{font:700 18px var(--font-head);color:var(--lime)}.day-path{grid-template-columns:repeat(6,1fr);gap:10px;margin:0;padding:18px 24px 0;list-style:none;display:grid}.day-node{aspect-ratio:1;background:var(--navy-3);color:var(--muted);border:2px solid #3d5672;border-radius:50%;place-items:center;font-size:15px;font-weight:700;display:grid}.day-node.done{background:var(--lime);color:var(--navy);border-color:#d9ff9a}.day-node.current{background:var(--yellow);color:var(--navy);border-color:#ffe7a3;box-shadow:0 0 0 5px #f8c94b40}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.stat{padding:20px}.stat strong{font:700 32px var(--font-head);color:var(--lime);display:block}.stat span{color:var(--muted)}.section-title{margin:30px 0 14px;font-size:22px}.progress-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.bar-chart{align-items:flex-end;gap:6px;height:170px;margin-top:18px;padding-bottom:22px;display:flex;position:relative}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bar-col i{background:var(--sky);border-radius:6px 6px 2px 2px;width:100%;min-height:3px}.bar-col i.goal{background:var(--lime)}.bar-chart.small{height:130px}.bar-col span{color:var(--muted);font-size:12px;position:absolute;bottom:0;transform:translateY(0)}.bar-col{position:relative}.goal-line{border-top:2px dashed #f8c94b99;margin-bottom:22px;position:absolute;left:0;right:0}.goal-line span{color:var(--yellow);font-size:12px;position:absolute;top:-22px;right:0}.skill-bars{gap:16px;margin-top:18px;display:grid}.skill-row{grid-template-columns:1fr auto;align-items:center;gap:7px 12px;font-size:15px;display:grid}.skill-row em{color:var(--muted);font-size:14px;font-style:normal}.skill-row .bar{background:#0612208c;border-radius:99px;grid-column:1/-1;height:9px;overflow:hidden}.skill-row .bar i{background:var(--sky);border-radius:inherit;height:100%;display:block}.word-chips{flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.chip{border:1px solid var(--line);background:#ffffff14;border-radius:12px;padding:8px 12px;font-size:18px}.chip small{color:var(--coral);font-weight:700}.reading-summary{gap:8px;margin:16px 0 0;padding:0;list-style:none;display:grid}.reading-summary strong{color:var(--lime);margin-right:6px;font-size:20px}.profile-card{align-items:center;gap:20px;margin-bottom:20px;padding:24px;display:flex}.profile-card p{color:var(--muted);margin:4px 0 0}.profile-orb{background:var(--lime);width:72px;height:72px;color:var(--navy);font:700 30px var(--font-head);border-radius:50%;flex:0 0 72px;place-items:center;display:grid}.settings-list{margin-bottom:20px}.settings-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 22px;display:flex}.settings-row strong{display:block}.settings-row span{color:var(--muted);font-size:15px}.app-shell[data-page=login]{display:block}.landing{background:radial-gradient(60rem 40rem at 85% -10%, #71c4ff2e, transparent 60%), radial-gradient(40rem 30rem at -10% 30%, #b7eb621a, transparent 60%), var(--navy);width:100%;min-height:100vh;overflow-x:hidden}.landing-top{justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto;padding:22px 24px;display:flex}.login-brand{font:700 24px var(--font-head);align-items:center;gap:10px;display:flex}.landing-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,470px);align-items:start;gap:56px;max-width:1180px;margin:0 auto;padding:24px 24px 72px;display:grid}.hero-copy{padding-top:36px}.landing.intro .hero-copy{animation:.6s ease-out both rise}.hero-kicker{color:var(--yellow);background:#f8c94b1f;border-radius:99px;align-items:center;gap:8px;padding:7px 14px;font-size:15px;font-weight:700;display:inline-flex}.hero-copy h1{margin:22px 0 18px;font-size:clamp(38px,5.4vw,64px);line-height:1.08}.hero-copy h1 em{color:var(--navy);background:var(--lime);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.2em;padding:0 .18em;font-style:normal}.hero-copy>p{max-width:34em;color:var(--muted);margin:0;font-size:19px;line-height:1.6}.syllable-tiles{gap:10px;margin:34px 0;display:flex}.tile{min-width:78px;height:78px;color:var(--navy);font:700 36px/1 var(--font-head);transform:rotate(calc((var(--i) - 1) * 4deg));border-radius:18px;place-items:center;padding:0 16px;display:grid;box-shadow:0 6px #00000047}.landing.intro .tile{animation:.55s cubic-bezier(.3,1.5,.5,1) both drop;animation-delay:calc(.25s + var(--i) * .14s)}.tile.coral{background:var(--coral)}.tile.yellow{background:var(--yellow)}.tile.sky{background:var(--sky)}.hero-cta{flex-wrap:wrap;align-items:center;gap:14px 22px;display:flex}.hero-note{color:var(--muted);align-items:center;gap:7px;font-size:15px;display:inline-flex}.hero-side{position:relative}.landing.intro .hero-side{animation:.6s ease-out .12s both rise}.hero-niko{z-index:1;pointer-events:none;width:124px;position:absolute;top:-78px;right:22px}.auth-card{z-index:2;background:var(--navy-2);border:1px solid var(--line);border-radius:26px;padding:26px 26px 22px;scroll-margin-top:20px;position:relative;box-shadow:0 30px 60px #00000059}.auth-tabs{background:var(--navy);border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.auth-tab{min-height:44px;color:var(--muted);border-radius:10px;font-weight:700;transition:background .15s,color .15s}.auth-tab.active{background:var(--navy-3);color:var(--ink);box-shadow:inset 0 -3px var(--lime)}.auth-card h2{margin:22px 0 4px;font-size:25px;line-height:1.25}.auth-lead{color:var(--muted);margin:0 0 18px;font-size:16px}.login-form{gap:14px;display:grid}.login-form label{gap:6px;font-size:15px;font-weight:700;display:grid}.login-form input:not([type=checkbox]){background:var(--navy);width:100%;height:52px;color:var(--ink);border:1px solid #aac6e347;border-radius:12px;padding:0 14px;font-size:17px;transition:border-color .15s,box-shadow .15s}.login-form input:not([type=checkbox]):focus{border-color:var(--lime);outline:none;box-shadow:0 0 0 3px #b7eb6238}.login-form input::placeholder{color:#a9b8c999}.login-form .primary-button{width:100%;margin-top:4px}.field-row{grid-template-columns:1fr 96px;gap:12px;display:grid}.landing-section{border-top:1px solid var(--line);max-width:1180px;margin:0 auto;padding:56px 24px}.landing-section h2{margin:0 0 26px;font-size:clamp(26px,3vw,34px)}.steps{grid-template-columns:repeat(3,1fr);gap:18px;margin:0;padding:0;list-style:none;display:grid}.steps li{background:var(--navy-2);border:1px solid var(--line);border-radius:20px;gap:8px;padding:24px;display:grid}.steps li>span:last-child,.skill>span:last-child{color:var(--muted)}.step-num{background:var(--lime);width:40px;height:40px;color:var(--navy);border-radius:12px;place-items:center;margin-bottom:6px;font-size:20px;font-weight:700;display:grid}.steps li:nth-child(2) .step-num{background:var(--yellow)}.steps li:nth-child(3) .step-num{background:var(--sky)}.skill-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.skill{border:1px solid var(--line);background:#ffffff08;border-radius:18px;grid-template-columns:auto 1fr;gap:2px 14px;padding:20px;display:grid}.skill-icon{width:46px;height:46px;color:var(--purple);background:#b3a6ff24;border-radius:14px;grid-row:span 2;place-items:center;display:grid}.skill:nth-child(3n+2) .skill-icon{color:var(--coral);background:#fa765f24}.skill:nth-child(3n) .skill-icon{color:var(--sky);background:#71c4ff24}.trust{grid-template-columns:1fr 1fr;gap:40px;display:grid}.trust h2{margin-bottom:10px;font-size:24px}.trust p{color:var(--muted);margin:0}.trust a{color:var(--sky)}.landing-footer{border-top:1px solid var(--line);max-width:1180px;color:var(--muted);margin:0 auto;padding:28px 24px 40px;font-size:14px}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@keyframes drop{0%{opacity:0;transform:translateY(-40px)rotate(0)}}@media (width<=900px){.landing-hero{grid-template-columns:1fr;gap:40px;padding-bottom:48px}.hero-copy{padding-top:8px}.hero-side{width:100%;max-width:520px;margin:40px auto 0}.steps,.skill-grid{grid-template-columns:1fr}.trust{grid-template-columns:1fr;gap:28px}}@media (width<=650px){.app-shell[data-page=login]{padding-bottom:0}.landing-top{padding:16px}.landing-hero{padding:8px 16px 40px}.landing-section{padding:40px 16px}.landing-footer{padding:24px 16px 32px}.hero-copy>p{font-size:17px}.tile{min-width:64px;height:64px;font-size:30px}.auth-card{padding:20px 16px 18px}.hero-niko{width:100px;top:-50px;right:14px}}.signup-fields{border-top:1px solid var(--line);gap:12px;padding-top:12px;display:grid}label.consent-check{align-items:flex-start;gap:10px;font-weight:400;display:flex}.consent-check a{color:var(--sky)}.secondary-button.danger{color:#ffab99;border-color:#fa765f73}a.secondary-button{color:var(--ink)}.auth-status{min-height:22px;color:var(--muted);margin:0;font-size:15px}.auth-status.bad{color:#ffab99}.auth-status.good{color:var(--lime)}.session-main{background:var(--s-bg);width:100%;min-height:100vh;color:var(--s-ink);padding:18px 16px 48px}.session-main .card{background:var(--s-card);border-color:var(--s-line);box-shadow:0 10px 30px #3c280a14}.session-main .eyebrow,.session-main .muted{color:var(--s-muted)}.session-shell{max-width:780px;margin:0 auto}.session-top{align-items:center;gap:14px;margin-bottom:22px;display:flex}.close-button{background:var(--s-card);border:1px solid var(--s-line);width:46px;height:46px;color:var(--s-ink);border-radius:14px;flex:0 0 46px;place-items:center;display:grid}.session-progress{background:var(--s-line);border-radius:99px;flex:1;height:14px;overflow:hidden}.session-progress i{border-radius:inherit;background:linear-gradient(90deg,#7fcf3a,#b7eb62);height:100%;transition:width .4s;display:block}.session-count{text-align:right;min-width:64px;color:var(--s-muted);font-weight:700}.intro-card,.block-card,.complete-card{text-align:center;padding:26px}.intro-art{border-radius:var(--radius) var(--radius) 0 0;height:170px;margin:-26px -26px 20px;position:relative;overflow:hidden}.intro-niko{width:136px;position:absolute;bottom:-14px;right:18px}.intro-card h1,.block-card h1,.complete-card h1{margin:8px 0 10px;font-size:clamp(28px,4vw,36px);line-height:1.2}.game-intro{max-width:560px;font-size:var(--game-font);color:var(--s-ink);margin:0 auto 18px;line-height:1.6}.intro-steps{flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 18px;padding:0;list-style:none;display:flex}.intro-steps li{background:var(--s-choice);border:1px solid var(--s-line);border-radius:12px;align-items:center;gap:6px;padding:8px 12px;font-size:15px;font-weight:700;display:inline-flex}.block-icon{width:92px;height:92px;color:var(--s-accent);background:#2f6fd11f;border-radius:28px;place-items:center;margin:6px auto 12px;display:grid}.block-card.coral .block-icon{color:#c94a32;background:#fa765f29}.block-card.purple .block-icon{color:#6a55d8;background:#7d6ce629}.block-card.lime .block-icon{color:#4c8a17;background:#6eaa2829}.block-card.yellow .block-icon{color:#a36f00;background:#e6aa1e2e}.game-card{padding:24px 22px 26px}.game-eyebrow{align-items:center;gap:6px;margin-bottom:14px;display:inline-flex}.game-prompt{font-size:var(--game-font);word-spacing:.12em;margin:0 0 16px;font-weight:700;line-height:1.55}.prompt-row{align-items:flex-start;gap:12px;display:flex}.prompt-row.center{justify-content:center;align-items:center}.prompt-row .game-prompt,.prompt-row .game-intro{flex:1;margin-bottom:16px}.prompt-row.center .game-intro{flex:0 auto;margin-bottom:0}.listen-row{justify-content:center;gap:14px;margin:6px 0 22px;display:flex}.speak-button{width:48px;height:48px;color:var(--s-accent);background:#2f6fd11f;border-radius:14px;flex:0 0 48px;justify-content:center;align-items:center;gap:8px;display:inline-flex}.speak-button.big{background:var(--s-accent);color:#fff;border-radius:22px;flex:none;width:auto;height:76px;padding:0 26px;font-size:19px;font-weight:700;box-shadow:0 8px 18px #2f6fd140}.speak-button.big.slow{background:var(--s-choice);color:var(--s-accent);border:2px solid var(--s-accent);box-shadow:none}.main .speak-button{color:var(--sky);background:#71c4ff24}.big-word{text-align:center;font-size:var(--word-font);letter-spacing:.06em;margin:0 0 20px;font-weight:700}.choice-grid{grid-template-columns:1fr;gap:12px;display:grid}.choice-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-wrap{align-items:stretch;gap:8px;display:flex}.choice{background:var(--s-choice);border:2px solid var(--s-choice-line);min-height:64px;color:var(--s-ink);font-size:var(--game-font);letter-spacing:.04em;word-spacing:.12em;text-align:center;border-radius:16px;flex:1;padding:12px 16px;font-weight:700;line-height:1.35;transition:transform .1s,border-color .15s}.choice:hover:not(:disabled){border-color:var(--s-accent)}.choice:active:not(:disabled){transform:scale(.98)}.choice.tried{opacity:.45;text-decoration:line-through}.choice.correct{border-color:var(--s-good);background:var(--s-good-bg);color:var(--s-good);opacity:1}.choice.wrong{border-color:var(--s-bad);background:var(--s-bad-bg);color:var(--s-bad)}.choice:disabled:not(.correct):not(.wrong):not(.tried){opacity:.6}.choice-wrap .speak-button{height:auto;min-height:64px}.passage-peek{border:1px solid var(--s-line);background:var(--s-choice);border-radius:14px;margin:0 0 16px;padding:10px 14px}.passage-peek summary{cursor:pointer;color:var(--s-accent);font-weight:700}.feedback{font-size:var(--game-font);border-radius:16px;margin-top:18px;padding:16px 18px;display:none}.feedback.try,.feedback.good,.feedback.show{gap:10px 14px;display:grid}.feedback.try{background:#e6aa1e24;border:1px solid #e6aa1e66}.feedback.good{background:var(--s-good-bg);border:1px solid var(--s-good)}.feedback.show{background:var(--s-bad-bg);border:1px solid var(--s-bad)}.feedback strong{font-family:var(--font-head)}.feedback span{font-size:calc(var(--game-font) - 3px)}.feedback .primary-button{justify-self:start;margin-top:4px}.reveal-word{font-size:var(--word-font);letter-spacing:.06em;font-weight:700}.reveal-word mark{background:var(--s-mark);color:inherit;border-radius:6px;padding:0 2px}.reveal-word.syllables span{color:var(--s-accent);margin:0 .2em}.evidence{font-size:calc(var(--game-font) - 3px);margin:0}.diff-label{color:var(--s-muted);margin:0;font-size:16px}.letter-diff{flex-wrap:wrap;gap:4px;font-size:28px;font-weight:700;display:flex}.letter-diff span{text-align:center;border-bottom:3px solid var(--s-good);border-radius:8px;min-width:30px;padding:2px 4px}.letter-diff span.miss{border-color:var(--s-bad);background:var(--s-bad-bg)}.flash-stage{background:var(--s-choice);border:2px dashed var(--s-line);border-radius:18px;place-items:center;min-height:140px;margin-bottom:18px;display:grid}.flash-word{font-size:var(--word-font);letter-spacing:.06em;font-weight:700}.flash-word.hidden-word{color:var(--s-muted);letter-spacing:.3em}.slots{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:20px;display:flex}.slot{border:3px dashed var(--s-choice-line);min-width:88px;height:72px;font-size:calc(var(--game-font) + 6px);letter-spacing:.05em;color:var(--s-ink);background:0 0;border-radius:16px;padding:0 14px;font-weight:700}.slot.filled{border-style:solid;border-color:var(--s-accent);background:var(--s-choice)}.slot.correct{border-color:var(--s-good);background:var(--s-good-bg)}.slot.shown{border-color:var(--s-bad);background:var(--s-bad-bg)}.pieces{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:22px;display:flex}.piece{color:#3b2a00;min-width:84px;min-height:64px;font-size:calc(var(--game-font) + 4px);letter-spacing:.05em;background:#ffd970;border-radius:16px;padding:0 16px;font-weight:700;transition:transform .1s,opacity .15s;box-shadow:0 5px #d6a93a}.piece:active:not(:disabled){transform:translateY(3px);box-shadow:0 2px #d6a93a}.piece:disabled{opacity:.25;box-shadow:none}.game-card.builder>.game-area>.primary-button,.game-card.dictation .primary-button[data-check]{width:100%;display:flex}.answer-input{border:3px solid var(--s-choice-line);background:var(--s-choice);width:100%;height:72px;color:var(--s-ink);font-size:calc(var(--game-font) + 8px);letter-spacing:.08em;text-align:center;border-radius:16px;margin-bottom:14px;padding:0 18px;font-weight:700;display:block}.answer-input:focus{border-color:var(--s-accent);outline:none}.accent-keys{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:18px;display:flex}.accent-key{background:var(--s-choice);border:1px solid var(--s-choice-line);min-width:46px;height:46px;color:var(--s-ink);border-radius:12px;font-size:21px;font-weight:700}.reading-title{font-size:calc(var(--game-font) + 4px);margin:0 0 12px}.reading-text{background:var(--s-choice);border:1px solid var(--s-line);font-size:var(--game-font);letter-spacing:.03em;word-spacing:.16em;text-align:left;border-radius:18px;max-width:68ch;padding:20px 22px;line-height:1.85}.reading-text.small{margin-top:10px;padding:12px 14px;font-size:18px}.reading-text p{margin:0 0 1em}.reading-text p:last-child{margin-bottom:0}.word{font-size:inherit;letter-spacing:inherit;color:inherit;text-align:left;border-radius:6px;padding:0 1px}.word:hover{background:#2f6fd11a}.word.reading-now{background:var(--s-mark)}.word.heard{background:var(--s-good-bg);color:var(--s-good)}.primary-button.listening{background:var(--coral);color:#fff;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #fa765f73}50%{box-shadow:0 0 0 10px #fa765f00}}.mic-review{background:var(--s-good-bg);border-radius:16px;margin-top:16px;padding:14px 16px}.mic-review p{margin:0 0 8px}.session-main .chip{background:var(--s-choice);border-color:var(--s-choice-line);color:var(--s-ink)}.reading-actions{flex-wrap:wrap;gap:12px;margin-top:18px;display:flex}.session-main .secondary-button{background:var(--s-choice);color:var(--s-ink);border-color:var(--s-choice-line)}.self-rating{margin-top:18px}.celebrate{width:190px;margin:0 auto}.reward-row{flex-wrap:wrap;justify-content:center;gap:10px;margin:6px 0 22px;display:flex}.reward{background:var(--s-choice);border:1px solid var(--s-line);border-radius:14px;align-items:center;gap:6px;padding:10px 14px;font-weight:700;display:inline-flex}.time-input{border:1px solid var(--line);background:var(--navy);height:46px;color:var(--ink);border-radius:12px;padding:0 12px;font-size:17px}.pick-page{background:radial-gradient(circle at 50% 0%, #26588b5c, transparent 28rem), var(--navy);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.pick-card{text-align:center;justify-items:center;gap:18px;width:min(100%,640px);display:grid}.pick-card h1{margin:0;font-size:30px}.pick-grid{flex-wrap:wrap;justify-content:center;gap:16px;display:flex}.pick-child{border:2px solid var(--line);width:150px;color:var(--ink);background:#0d2039e6;border-radius:22px;justify-items:center;gap:6px;padding:18px 12px;display:grid}.pick-child:hover,.pick-child:focus-visible{border-color:var(--lime)}.pick-child strong{font-size:20px}.pick-child span:last-child{color:var(--muted)}.pick-avatar{width:84px;height:84px;color:var(--navy);font:700 36px var(--font-head);border-radius:50%;place-items:center;display:grid}.settings-row .pick-avatar,.pick-avatar.small{color:var(--navy)}.pick-avatar.small{flex:0 0 44px;width:44px;height:44px;font-size:20px}.family-child{align-items:center;gap:12px;display:flex}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.add-child{flex-wrap:wrap;justify-content:flex-start}.add-child input{border:1px solid var(--line);background:var(--navy);height:46px;color:var(--ink);border-radius:12px;padding:0 12px;font-size:16px}.add-child input[type=text]{flex:180px}.add-child input[type=number]{width:90px}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.report-actions{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.report-paper{color:#1e2a3a;background:#fff;border-radius:18px;max-width:860px;margin:0 auto 20px;padding:32px 36px;font-size:15px;line-height:1.5}.report-paper h1{margin:0;font-size:26px}.report-paper h2{margin:22px 0 8px;font-size:18px}.report-head{border-bottom:2px solid #e6e1d3;align-items:center;gap:20px;padding-bottom:14px;display:flex}.report-head p{color:#4a5869;margin:2px 0 0}.report-head .login-brand{color:#1e2a3a}.report-tiles{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px;display:grid}.report-tiles div{background:#f6f2e7;border-radius:12px;padding:12px}.report-tiles strong{font-size:26px;display:block}.report-tiles small{color:#4a5869;font-size:15px}.report-tiles span{color:#4a5869;font-size:13px}.report-table{border-collapse:collapse;width:100%;font-size:14px}.report-table th,.report-table td{text-align:left;border-bottom:1px solid #ece6d6;padding:6px 8px}.report-table th{color:#4a5869;font-weight:700}.bar-cell{width:30%}.bar-cell i{background:#2f6fd1;border-radius:6px;height:10px;display:block}.report-columns{grid-template-columns:1fr 1fr;gap:24px;display:grid}.report-words{columns:2;margin:0;padding-left:18px}.report-words small{color:#4a5869}.report-note,.report-foot{color:#4a5869;font-size:13px}.report-foot{border-top:1px solid #ece6d6;margin-top:24px;padding-top:12px}.report-paper textarea{width:100%;font:inherit;color:inherit;border:1px solid #d6c8a5;border-radius:10px;margin-bottom:8px;padding:10px 12px}.report-paper .secondary-button{color:#1e2a3a;background:#f6f2e7;border-color:#d6c8a5}.print-only{display:none}.share-card{justify-items:start;gap:12px;max-width:860px;margin:0 auto;padding:20px 22px;display:grid}.link-list{gap:8px;width:100%;margin:0;padding:0;list-style:none;display:grid}.link-list li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.link-list code{overflow-wrap:anywhere;flex:260px;font-size:13px}.public-report{background:#f3ead3;min-height:100vh;padding:24px 16px}.public-report .report-actions{max-width:860px;margin:0 auto 12px}@media (width<=650px){.report-paper{padding:20px 16px}.report-tiles{grid-template-columns:repeat(2,1fr)}.report-columns{grid-template-columns:1fr}.report-head{flex-direction:column;align-items:flex-start;gap:8px}}@media print{@page{size:A4;margin:14mm}html,body,.app-shell,.public-report{background:#fff!important}.sidebar,.bottom-nav,.topbar,.no-print,.toaster,.update-banner{display:none!important}.main,.page{max-width:none!important;padding:0!important}.report-paper{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-radius:0;max-width:none;padding:0;font-size:12px}.report-paper section{break-inside:avoid}.report-paper textarea{display:none}.print-only{display:block}}.shop-hero{align-items:center;gap:24px;padding:20px 24px;display:flex}.shop-niko{flex:0 0 170px;width:170px}.coins{color:var(--yellow);align-items:center;gap:10px;margin:6px 0;font-size:36px;display:flex}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;display:grid}.shop-item{text-align:center;justify-items:center;gap:8px;padding:14px;display:grid}.shop-item.equipped{border-color:var(--lime);box-shadow:0 0 0 2px #b7eb6259}.shop-item.locked .shop-preview{filter:grayscale(.9)brightness(.7)}.shop-item .primary-button,.shop-item .secondary-button{width:100%;min-height:44px}.shop-preview{background:#ffffff0d;border-radius:16px;place-items:center;width:110px;height:120px;display:grid}.shop-preview .niko{width:106px}.theme-swatch{border:2px solid var(--line);border-radius:18px;width:90px;height:90px}.theme-forest{background:radial-gradient(circle at 70% 10%,#26588b,#08152a 70%)}.theme-ocean{background:radial-gradient(circle at 70% 10%,#1f8a8a,#05333f 70%)}.theme-sunset{background:radial-gradient(circle at 70% 10%,#e0805a,#3a1d2e 70%)}.theme-space{background:radial-gradient(circle at 70% 10%,#6b4fd8,#120d2b 70%)}.shop-tabs{scrollbar-width:thin;gap:8px;margin:8px 0 6px;padding:4px 2px 12px;display:flex;overflow-x:auto}.shop-tab{border:2px solid var(--line);min-height:44px;color:var(--ink);font:700 15px var(--font-head);background:#ffffff0a;border-radius:999px;flex:none;padding:8px 16px}.shop-tab.active{background:var(--lime);border-color:var(--lime);color:var(--navy)}.shop-item{--rarity:#9fb3c8;border-color:var(--rarity);position:relative}@supports (color:color-mix(in lab, red, red)){.shop-item{border-color:color-mix(in srgb, var(--rarity) 55%, transparent)}}.shop-item.rarity-rare{--rarity:#4fa3ff}.shop-item.rarity-epic{--rarity:#b48cff}.shop-item.rarity-legendary{--rarity:#f8c94b;background-image:linear-gradient(120deg,#0000 30%,#f8c94b24 50%,#0000 70%);background-size:250% 100%;animation:4s linear infinite shimmer}.rarity-tag{font:700 12px var(--font-head);letter-spacing:.02em;color:var(--navy);background:var(--rarity);border-radius:999px;justify-self:start;padding:2px 10px}.shop-item.equipped{border-color:var(--lime)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-150% 0}}.hero-head{width:100%;height:100%;display:block}.avatar-button,.pick-avatar,.profile-orb{padding:0;overflow:hidden}.avatar-button .hero-head,.pick-avatar .hero-head,.profile-orb .hero-head{width:100%;height:100%;margin-top:6%}.chest-card{border-color:#f8c94b73;align-items:center;gap:14px;padding:16px 18px;display:flex}.chest-card.epic{border-color:#b48cff99;box-shadow:0 0 24px #b48cff2e}.chest-card>div:last-child{justify-items:start;gap:8px;display:grid}.chest-mini{flex:0 0 76px;width:76px;animation:2.6s ease-in-out infinite wiggle}.chest-art{width:100%;height:auto;display:block;overflow:visible}.chest-art .chest-lid{transform-box:fill-box;transform-origin:0 100%;transition:transform .5s ease-out}.chest-stage{text-align:center;justify-items:center;gap:12px;padding:28px 20px;display:grid}.chest-button{cursor:pointer;background:0 0;border:0;width:min(260px,70vw);padding:0}.chest-button:not(:disabled):hover .chest-lid{transform:rotate(-6deg)}.chest-button.opening{animation:.18s linear infinite shake}.chest-button.opening .chest-glow{animation:1.3s ease-in forwards glow}.chest-reveal{width:min(220px,60vw);animation:.6s cubic-bezier(.2,1.4,.4,1) reveal}.chest-reveal .theme-swatch{width:160px;height:160px}.coins-reveal{color:var(--yellow);place-items:center;display:grid}.chest-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.rarity-tag.rarity-common{--rarity:#9fb3c8}.rarity-tag.rarity-rare{--rarity:#4fa3ff}.rarity-tag.rarity-epic{--rarity:#b48cff}.rarity-tag.rarity-legendary{--rarity:#f8c94b}.chest-stage .rarity-tag{justify-self:center}@keyframes wiggle{0%,80%,to{transform:rotate(0)}85%{transform:rotate(-6deg)}90%{transform:rotate(6deg)}95%{transform:rotate(-3deg)}}@keyframes glow{to{opacity:.7;transform:scale(1.25)}}@keyframes reveal{0%{opacity:0;transform:scale(.2)translateY(40px)}to{opacity:1;transform:scale(1)translateY(0)}}.achievement-pop{text-align:left;background:#f8c94b1f;border:1px solid #f8c94b80;border-radius:18px;align-items:center;gap:14px;max-width:520px;margin:0 auto 14px;padding:14px 16px;animation:.5s ease-out reveal;display:flex}.achievement-pop>div{gap:2px;display:grid}.achievement-icon{width:48px;height:48px;color:var(--yellow);background:#f8c94b33;border-radius:50%;flex:0 0 48px;place-items:center;display:grid}.collection-summary{align-items:center;gap:24px;padding:20px 24px;display:flex}.collection-summary>div:last-child{justify-items:start;gap:4px;display:grid}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.achievement{align-items:flex-start;gap:12px;padding:14px;display:flex}.achievement>div{flex:1;gap:6px;display:grid}.achievement:not(.earned) .achievement-icon{color:var(--muted);background:#ffffff0f}.achievement.earned{border-color:#f8c94b80}.album-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;display:grid}.album-item{--rarity:#9fb3c8;border:2px solid var(--rarity);border-radius:14px;justify-items:center;gap:4px;padding:8px 6px;display:grid}@supports (color:color-mix(in lab, red, red)){.album-item{border:2px solid color-mix(in srgb, var(--rarity) 55%, transparent)}}.album-item{text-align:center;background:#ffffff08;font-size:13px}.album-item.rarity-rare{--rarity:#4fa3ff}.album-item.rarity-epic{--rarity:#b48cff}.album-item.rarity-legendary{--rarity:#f8c94b}.album-art{width:72px}.album-art .theme-swatch{width:64px;height:64px}.album-item.missing .album-art{filter:grayscale()brightness(.55);opacity:.6}.album-item.mystery .album-art{filter:brightness(0)invert(.3);opacity:.5}.album-item.missing span{color:var(--muted)}@media (width<=560px){.collection-summary,.shop-hero{text-align:center;flex-direction:column}.collection-summary>div:last-child{justify-items:center}}.reward-hint{justify-content:center;align-items:center;gap:8px;margin:0 0 20px;font-size:18px;display:flex}:root[data-app-theme=ocean]{--navy:#05333f;--navy-2:#0a4250;--navy-3:#0f4f5e}:root[data-app-theme=ocean] .app-shell{background:radial-gradient(circle at 79% 0%, #1f8a8a59, transparent 32rem), var(--navy)}:root[data-app-theme=sunset]{--navy:#2a1522;--navy-2:#3a1d2e;--navy-3:#4a2638}:root[data-app-theme=sunset] .app-shell{background:radial-gradient(circle at 79% 0%, #e0805a52, transparent 32rem), var(--navy)}:root[data-app-theme=space]{--navy:#0d0920;--navy-2:#171035;--navy-3:#211848}:root[data-app-theme=space] .app-shell{background:radial-gradient(circle at 79% 0%, #6b4fd859, transparent 32rem), var(--navy)}.fx-layer{z-index:40;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fx-particle{background:var(--c);width:12px;height:12px;margin:-6px 0 0 -6px;animation:.7s cubic-bezier(.2,.8,.3,1) forwards fx-burst;position:fixed}.fx-particle.star{clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}.fx-particle.dot{border-radius:50%}.fx-confetti{background:var(--c);height:12px;animation:fx-fall var(--d) linear var(--delay) both;border-radius:2px;position:fixed;top:-20px}.fx-pop{animation:.42s cubic-bezier(.34,1.56,.64,1) fx-pop}.fx-nudge{animation:.4s ease-out fx-nudge}@keyframes fx-burst{0%{opacity:1;transform:translate(0)scale(.4)rotate(0)}70%{opacity:1}to{transform:translate(var(--dx), var(--dy)) scale(1) rotate(var(--rot));opacity:0}}@keyframes fx-fall{0%{transform:translate(0)rotate(0)}to{transform:translate(var(--dx), 110vh) rotate(var(--rot))}}@keyframes fx-pop{0%{transform:scale(1)}30%{transform:scale(1.12,.9)}55%{transform:scale(.95,1.06)}to{transform:scale(1)}}@keyframes fx-nudge{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}@keyframes fx-slide-in{0%{opacity:0;transform:translateY(14px)scale(.98)}}@keyframes fx-grow{0%{width:var(--from)}}.game-card,.block-card{animation:.32s cubic-bezier(.22,1,.36,1) fx-slide-in}.session-progress i{animation:.5s cubic-bezier(.22,1,.36,1) fx-grow}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled){transition-timing-function:cubic-bezier(.34,1.56,.64,1);transform:scale(.95)}.combo-badge{color:#7a4d00;font-family:var(--font-head);background:#fff1c2;border-radius:99px;justify-self:start;align-items:center;gap:6px;padding:4px 12px;font-weight:700;animation:.45s cubic-bezier(.34,1.56,.64,1) fx-pop;display:inline-flex;font-size:17px!important}.reward b{font-variant-numeric:tabular-nums}.level-up{border:1px solid var(--lime);width:fit-content;font-family:var(--font-head);background:#b7eb6229;border-radius:99px;justify-content:center;align-items:center;gap:8px;margin:-8px auto 18px;padding:10px 18px;font-size:18px;font-weight:700;animation:.5s cubic-bezier(.2,1.4,.4,1) 1s both reveal;display:flex}.achievement-pop{animation-fill-mode:both}:root[data-reduced-motion=true] *,:root[data-reduced-motion=true] :before,:root[data-reduced-motion=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (width<=1000px){.content-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.progress-grid{grid-template-columns:1fr}}@media (width<=900px){.sidebar{width:80px;padding-inline:12px}.brand{margin-inline:auto}.brand span:last-child,.nav-button span,.side-footer{display:none}.nav-button{justify-content:center;padding:0}}@media (width<=650px){.app-shell{padding-bottom:84px;display:block}.sidebar{display:none}.main{padding:16px 16px 26px}.topbar{margin-bottom:18px}.topbar h1{font-size:24px}.streak-pill{padding:8px 11px}.hero-card{min-height:0;padding:22px 18px 150px}.hero-card-content{max-width:none}.hero-art{width:140px;right:12px}.bottom-nav{z-index:10;padding:8px 6px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#08152af7;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav .nav-button{flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:0;font-size:13px}.bottom-nav .nav-button span{display:block}.bottom-nav .nav-button.active{box-shadow:inset 0 3px var(--lime)}.world-list{grid-template-columns:1fr}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.shop-hero{gap:14px;padding:16px}.shop-niko{flex-basis:118px;width:118px}.bottom-nav .nav-button{font-size:12px}.mission-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px 16px 0}.mission-step{text-align:center;padding:10px 8px}.step-icon{margin:0 auto 6px}.mission-step strong{font-size:13px}.mission-step span:last-child,.topbar-kicker{display:none}.day-path{gap:8px;padding-inline:18px}.choice-grid.four{grid-template-columns:1fr}.session-main{padding:12px 12px 40px}.game-card{padding:20px 16px 22px}.speak-button.big{height:66px;padding:0 18px}.settings-row{padding:14px 16px}.stat strong{font-size:26px}}.companion-line{color:var(--s-muted);font-size:17px}.companion-line b{color:var(--s-ink)}.hero-persona{color:#dbe5ee;margin:0 0 8px;font-size:16px}.hero-traits{color:var(--muted);font-size:14px;line-height:1.45}}@layer components{a.nav-button,a.quiet-button{text-decoration:none}}@layer utilities{.pointer-events-none{pointer-events:none}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.inset-0{inset:0}.top-1\/2{top:50%}.left-1\/2{left:50%}.z-50{z-index:50}.m-0{margin:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.size-\[22px\]{width:22px;height:22px}.size-\[26px\]{width:26px;height:26px}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-\[42px\]{height:42px}.w-14{width:calc(var(--spacing) * 14)}.w-\[calc\(100\%-32px\)\]{width:calc(100% - 32px)}.w-full{width:100%}.max-w-md{max-width:var(--container-md)}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-col-reverse{flex-direction:column-reverse}.place-items-center{place-items:center}.items-center{align-items:center}.items-start{align-items:flex-start}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.rounded-\[6px\]{border-radius:6px}.rounded-full{border-radius:2147483647px}.rounded-sm{border-radius:10px}.rounded-xl{border-radius:24px}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-border{border-color:var(--line)}.border-input{border-color:#aac6e347}.bg-\[\#c8d3df\]{background-color:#c8d3df}.bg-background{background-color:var(--navy)}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-card{background-color:var(--navy-2)}.bg-coral\!{background-color:var(--coral)!important}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\/5{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.px-3{padding-inline:calc(var(--spacing) * 3)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.text-card-foreground,.text-foreground{color:var(--ink)}.text-muted-foreground{color:#a9b8c9}.text-white\!{color:var(--color-white)!important}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.outline-none{--tw-outline-style:none;outline-style:none}.running{animation-play-state:running}.disabled\:opacity-50:disabled{opacity:.5}.data-\[state\=active\]\:border-primary[data-state=active]{border-color:var(--lime)}.data-\[state\=active\]\:bg-primary[data-state=active]{background-color:var(--lime)}.data-\[state\=active\]\:text-background[data-state=active]{color:var(--navy)}.data-\[state\=checked\]\:translate-x-6[data-state=checked]{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--lime)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--lime)}.data-\[state\=checked\]\:bg-white[data-state=checked]{background-color:var(--color-white)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:#0a1c2d}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}@media (width>=40rem){.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}
