/*! 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-leading:initial;--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-outline-style:solid;--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{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--font-weight-normal:400;--font-weight-bold:700;--leading-tight:1.25;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-primary:var(--lime);--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}:root[data-spacing=wide] .game-card,:root[data-spacing=wide] .forge-stage{letter-spacing:.12em;word-spacing:.3em}*{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}.icon-action{width:44px;height:44px;color:var(--muted);background:var(--navy-2);border:1px solid var(--line);border-radius:14px;place-items:center;transition:color .2s;display:grid}.icon-action:hover,.icon-action:focus-visible{color:var(--ink)}.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],#app[data-page=practicePlay]{background:var(--s-bg);padding-bottom:0;display:block}body:has(#app[data-page=practicePlay]){background:var(--s-bg)}.practice-page{gap:18px;max-width:1240px;margin:0 auto;display:grid}.practice-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.practice-card{text-align:left;width:100%;min-height:150px;color:var(--ink);align-content:start;gap:8px;padding:18px;transition:transform .15s,border-color .15s;display:grid}.practice-card:hover,.practice-card:focus-visible{border-color:var(--lime);transform:translateY(-2px)}.practice-card strong{font-size:18px}.practice-badge{background:var(--s-mark);color:#3b2f00;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:700}.practice-main .session-progress{margin-bottom:12px}.practice-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.practice-section-title{margin:6px 0 0;font-size:18px}.practice-quick{border:2px solid var(--lime);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:20px;display:flex}.practice-quick h2{margin:4px 0}.practice-quick p{margin:0}.quick-icon{font-size:26px}.practice-options summary{cursor:pointer;align-items:center;min-height:44px;font-weight:700;display:flex}.practice-options-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,180px),1fr));gap:12px;margin-top:10px;display:grid}.practice-option{gap:6px;font-weight:600;display:grid}.practice-option select{min-height:44px;font:inherit;border-radius:10px;padding:0 10px}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}.say-tap{font:inherit;color:inherit;letter-spacing:inherit;cursor:pointer;transition:background .15s,transform .1s}.say-tap:not(.slot){text-underline-offset:.2em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--s-accent);-webkit-text-decoration-color:var(--s-accent);-webkit-text-decoration-color:var(--s-accent);text-decoration-color:var(--s-accent);background:0 0;border:0;border-radius:8px;padding:0 .06em}.say-tap:not(.slot):hover,.say-tap:not(.slot):focus-visible{background:var(--s-choice)}.say-tap:active{transform:scale(.94)}.reveal-word.sentence{font-size:var(--game-font);letter-spacing:normal;line-height:1.7}.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}.top-actions{gap:8px}.icon-action{width:40px;height:40px}.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}.accent-keys{grid-template-columns:repeat(6,minmax(44px,1fr));gap:6px;max-width:360px;margin:0 auto 14px;display:grid}.accent-key{min-width:44px;height:44px;padding:0;font-size:20px}.accent-key:active{transform:scale(.95)}.dictation-context{background:var(--s-choice);border:2px dashed var(--s-choice-line);font-size:var(--game-font);text-align:center;border-radius:14px;margin:0 0 12px;padding:12px 14px;line-height:1.4}.dictation-hint{background:var(--s-mark,#fff3c4);color:#3b2f00;text-align:center;border-radius:12px;margin:0 0 12px;padding:10px 14px;font-weight:700}.dictation-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.dictation-actions .primary-button:disabled{opacity:.5}.dictation-listen .speak-button.playing{outline:3px solid var(--s-accent)}.dictation-listen .speak-button:disabled{opacity:.6;cursor:progress}.dictation-muted{justify-items:center;gap:12px;display:grid}@media (prefers-reduced-motion:reduce){.accent-key:active{transform:none}}#app[data-page=forgeSession],#app[data-page=quickPlay]{background:var(--s-bg);padding-bottom:0;display:block}:is(body:has(#app[data-page=forgeSession]),body:has(#app[data-page=quickPlay])){background:var(--s-bg)}.forge-main{max-width:760px;color:var(--s-ink);--forge-radius:18px;--block-a:#ffd166;--block-b:#8ecae6;--block-c:#b8e986;--block-d:#f4a6c6;margin:0 auto;padding:14px 16px 40px}.forge-main[data-band=challenge]{--forge-radius:10px;--block-a:#e6ecf3;--block-b:#e6ecf3;--block-c:#e6ecf3;--block-d:#e6ecf3}.forge-loading{text-align:center;padding:60px 0}.forge-top{align-items:center;gap:12px;margin-bottom:14px;display:flex}.forge-top .session-progress{flex:1}.forge-card{background:var(--s-card);border:1px solid var(--s-line);border-radius:var(--forge-radius);gap:18px;padding:20px 18px;display:grid;box-shadow:0 10px 24px #0000000f}.forge-head{gap:6px;display:grid}.forge-head .eyebrow{color:var(--s-muted)}.forge-instruction{align-items:center;gap:10px;display:flex}.forge-instruction p{font-size:var(--game-font);flex:1;margin:0;font-weight:700;line-height:1.3}.forge-prompt-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;display:flex}.forge-picture.big{font-size:84px;line-height:1}.forge-picture.small{font-size:40px;line-height:1}img.forge-picture.big{object-fit:contain;width:120px;height:120px}img.forge-picture.small{object-fit:contain;width:56px;height:56px}.forge-listen-row{gap:10px;display:flex}.forge-listen{border-radius:var(--forge-radius);border:2px solid var(--s-choice-line);background:var(--s-choice);min-width:56px;min-height:56px;color:var(--s-ink);align-items:center;gap:8px;padding:0 16px;font-size:18px;font-weight:700;display:inline-flex}.forge-listen.slow{border-style:dashed}.forge-mini-listen{border:2px solid var(--s-choice-line);background:var(--s-choice);border-radius:50%;min-width:48px;min-height:48px;font-size:20px}.forge-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.forge-choices.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.forge-choice{border-radius:var(--forge-radius);border:3px solid var(--s-choice-line);background:var(--s-choice);min-height:64px;color:var(--s-ink);font-size:var(--game-font);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-weight:700;transition:transform .12s,border-color .12s;display:flex}.forge-choice:active{transform:scale(.97)}.forge-choice.selected{border-color:var(--s-accent);box-shadow:inset 0 0 0 2px var(--s-accent)}.forge-choice.selected:after{content:"✓";color:var(--s-accent);font-size:16px}.forge-choice.correct{border-color:var(--s-good);background:var(--s-good-bg)}.forge-choice.correct:after{content:"✓";color:var(--s-good);font-size:18px}.forge-choice.tried{opacity:.45;border-style:dashed}.forge-word{letter-spacing:.04em}.forge-sound{font-size:calc(var(--game-font) + 10px)}.forge-sound.big{border-radius:var(--forge-radius);border:3px solid var(--s-accent);background:var(--s-choice);min-width:120px;min-height:96px;color:var(--s-ink);font-weight:800}.forge-sound-option{align-items:center;gap:6px;display:flex}.forge-sound-option .forge-choice{flex:1}.forge-big-word{text-align:center;font-size:var(--word-font);letter-spacing:.06em;padding:12px 0;font-weight:800}.forge-big-word.secret{letter-spacing:.12em;font-family:ui-monospace,Atkinson Hyperlegible,monospace}.forge-help{text-align:center;color:var(--s-muted);margin:0}.forge-readings{gap:10px;display:grid}.forge-reading{grid-template-columns:auto 1fr;align-items:stretch;gap:10px;display:grid}.forge-reading.correct .forge-choice{border-color:var(--s-good);background:var(--s-good-bg)}.forge-reading.tried .forge-choice{opacity:.45}.forge-split{font-size:var(--word-font);flex-wrap:wrap;justify-content:center;align-items:stretch;font-weight:800;display:flex}.forge-split-cell{align-items:stretch;display:inline-flex}.forge-letter{padding:0 2px}.forge-cut{cursor:pointer;background:0 0;border:0;width:28px;min-height:64px;position:relative}.forge-cut:before{content:"";background:var(--s-choice-line);opacity:.45;border-radius:2px;width:4px;position:absolute;top:8px;bottom:8px;left:12px}.forge-cut.on:before{background:var(--s-accent);opacity:1;width:6px;left:11px}.forge-parts,.forge-pieces,.forge-workbench{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.forge-workbench{border:3px dashed var(--s-choice-line);border-radius:var(--forge-radius);align-items:center;min-height:72px;padding:8px}.forge-block{border-radius:calc(var(--forge-radius) - 4px);background:var(--block-a);color:#1e2a3a;min-width:72px;min-height:64px;font-size:calc(var(--game-font) + 4px);border:2px solid #0000001f;justify-content:center;align-items:center;padding:0 14px;font-weight:800;display:inline-flex;box-shadow:0 4px #0000002e}.forge-block:nth-child(4n+2){background:var(--block-b)}.forge-block:nth-child(4n+3){background:var(--block-c)}.forge-block:nth-child(4n+4){background:var(--block-d)}.forge-block.piece:active{transform:translateY(3px);box-shadow:0 1px #0000002e}.forge-block:disabled{opacity:.35;box-shadow:none}.forge-slots{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.forge-slot{border-radius:calc(var(--forge-radius) - 4px);border:3px dashed var(--s-choice-line);min-width:84px;min-height:68px;color:var(--s-ink);font-size:calc(var(--game-font) + 4px);background:0 0;font-weight:800}.forge-slot.filled{border-style:solid;border-color:var(--s-accent);background:var(--s-choice)}.forge-slot.correct{border-color:var(--s-good);background:var(--s-good-bg)}.forge-pattern{background:var(--s-mark);font-size:calc(var(--game-font) + 8px);letter-spacing:.08em;border-radius:999px;justify-self:center;padding:8px 22px;font-weight:800}.forge-built{flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.forge-built li{border:2px solid var(--s-good);background:var(--s-good-bg);border-radius:999px;padding:6px 12px;font-weight:700}.forge-built li:not(.mine){background:0 0;border-style:dashed}.forge-fluency{gap:10px;margin:0;padding:0;list-style:none;display:grid}.forge-fluency li{border-radius:var(--forge-radius);border:2px solid var(--s-choice-line);background:var(--s-choice);font-size:var(--game-font);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-weight:700;display:flex}.forge-fluency li.current{border-color:var(--s-accent);box-shadow:0 0 0 3px #2f6fd126}.forge-fluency li.read{opacity:.6}.forge-fluency li.read:after{content:"✓";color:var(--s-good)}.forge-fluency-actions{flex-wrap:wrap;gap:8px;display:flex}.primary-button.small,.secondary-button.small{min-height:48px;padding:0 14px}.forge-feedback{border-radius:var(--forge-radius);gap:4px;padding:14px 16px;display:grid}.forge-feedback.try{background:var(--s-mark);color:#3b2f00}.forge-feedback.good{background:var(--s-good-bg);color:var(--s-good)}.forge-feedback.show{background:var(--s-card);border:2px dashed var(--s-accent)}.forge-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.forge-boss{border-radius:var(--forge-radius);color:#fff;background:linear-gradient(135deg,#1e2a3a,#2f4a6d);grid-template-columns:auto 1fr;align-items:center;gap:6px 12px;margin-bottom:12px;padding:12px 16px;display:grid}.forge-boss strong{font-size:18px;display:block}.forge-boss span{color:#c9d6e6;font-size:14px}.forge-boss-icon{grid-row:span 2;font-size:40px}.forge-boss-locks{grid-column:2;gap:6px;display:flex}.forge-boss-locks i{border:2px solid #c9d6e6;border-radius:6px;width:22px;height:22px}.forge-boss-locks i.open{background:#ffd166;border-color:#ffd166;animation:.25s ease-out forge-pop}.role-boss{border-color:#2f4a6d}@keyframes forge-pop{0%{transform:scale(.6)}to{transform:scale(1)}}.forge-complete{text-align:center;justify-items:center}.forge-complete h1{margin:0}.forge-complete-icon{font-size:72px}.forge-rewards{flex-wrap:wrap;justify-content:center;gap:12px;font-weight:800;display:flex}.forge-rewards span{background:var(--s-mark);color:#3b2f00;border-radius:999px;align-items:center;gap:6px;padding:8px 14px;display:inline-flex}.forge-unlock{border-radius:var(--forge-radius);background:var(--s-good-bg);color:var(--s-good);padding:10px 14px}.forge-map{gap:18px;max-width:1240px;margin:0 auto;display:grid}.forge-hero{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;display:flex}.forge-hero h2{margin:4px 0}.forge-world{padding:18px 20px}.forge-world h3{margin:0 0 12px;font-size:20px}.forge-world.locked{opacity:.65}.forge-missions{gap:10px;margin:0;padding:0;list-style:none;display:grid}.forge-mission{border:1px solid var(--line);background:#ffffff08;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.forge-mission.available,.forge-mission.in_progress{border-color:var(--lime)}.forge-mission.done .forge-mission-body strong:after{content:" ✓";color:var(--lime)}.forge-mission-words{gap:8px;display:flex}.forge-mission-word{align-items:center;gap:4px;font-weight:700;display:inline-flex}.forge-mission-word .forge-picture.small{font-size:26px}.forge-mission-body{gap:4px;display:grid}.forge-stages{gap:3px;display:flex}.forge-stages i{background:var(--line);border-radius:3px;width:14px;height:6px}.forge-stages i.done{background:var(--lime)}.forge-stages i.now{background:var(--yellow)}.forge-map[data-band=challenge] .forge-mission{border-radius:8px}.forge-report{gap:14px;display:grid}.forge-report .notes{margin:0;padding-left:18px}@media (width<=560px){.forge-choices.count-3{grid-template-columns:1fr}.forge-mission{grid-template-columns:1fr auto}.forge-mission-words{grid-column:1/-1}.forge-picture.big{font-size:64px}}@media (prefers-reduced-motion:reduce){.forge-choice,.forge-block,.forge-boss-locks i.open,.forge-swap-letter,.forge-odd-item,.quick-timer i{transition:none;animation:none}}.forge-main .secondary-button{color:var(--s-ink);background:var(--s-choice);border:2px solid var(--s-choice-line);min-height:52px}.forge-main .secondary-button:disabled{opacity:.45}.forge-listen-row.centered{justify-content:center}.forge-criterion{text-align:center;color:var(--s-muted);margin:0;font-weight:700}.forge-explain{border-radius:var(--forge-radius);background:var(--s-good-bg);border:2px solid var(--s-good);text-align:center;margin:0;padding:12px 14px;font-weight:600;line-height:1.4}.forge-odd{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.forge-odd.count-6{grid-template-columns:repeat(3,minmax(0,1fr))}.forge-odd-item{transition:opacity .2s;position:relative}.forge-odd-item .forge-choice{width:100%;min-height:96px;padding-top:18px}.forge-odd-item .forge-mini-listen{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:18px;position:absolute;top:4px;right:4px}.forge-odd-item.tried .forge-choice{opacity:.45;border-style:dashed}.forge-odd-item.correct .forge-choice{border-color:var(--s-good);background:var(--s-good-bg)}.forge-odd-item.correct .forge-choice:after{content:"✓ intruso";color:var(--s-good);font-size:14px}.forge-odd-item.member{opacity:.8}.forge-swap-word{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.forge-swap-letter{border-radius:calc(var(--forge-radius) - 6px);background:var(--s-choice);min-width:52px;min-height:64px;font-size:var(--word-font);color:var(--s-ink);border:2px solid #0000;justify-content:center;align-items:center;padding:0 8px;font-weight:800;transition:box-shadow .2s,border-color .2s;display:inline-flex}.forge-swap-letter.changing{border:3px dashed var(--s-accent)}.forge-swap-letter.empty{color:#0000}.forge-swap-letter.highlight{box-shadow:0 0 0 4px var(--s-accent);border-style:solid}@supports (color:color-mix(in lab, red, red)){.forge-swap-letter.highlight{box-shadow:0 0 0 4px color-mix(in srgb, var(--s-accent) 35%, transparent)}}.forge-swap-letter.highlight{animation:1s ease-in-out 2 forge-pulse}@keyframes forge-pulse{50%{transform:scale(1.08)}}.forge-sound-change{justify-content:center;align-items:center;gap:12px;font-size:28px;font-weight:800;display:flex}.forge-sound-change .forge-sound{border-radius:var(--forge-radius);border:3px solid var(--s-choice-line);background:var(--s-choice);min-width:72px;min-height:56px;color:var(--s-ink);font-weight:800}.forge-sound-change .forge-sound.to{border-color:var(--s-accent)}.forge-swap-result{font-size:var(--game-font);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex}.forge-drag{touch-action:none;cursor:grab}.game-sound_swap .forge-slot,[data-alien-mode=build_graphemes] .forge-slot{min-width:52px;padding:0 6px}.game-sound_swap .forge-block.piece,[data-alien-mode=build_graphemes] .forge-block.piece{min-width:56px}.forge-drag.dragging{cursor:grabbing;z-index:2;position:relative;box-shadow:0 10px 18px #00000040}.forge-alien{gap:16px;display:grid;position:relative}.forge-alien-badge{font-size:32px;position:absolute;top:-8px;right:0}.forge-alien-word{color:#5b3fa8}.forge-main[data-band=challenge] .forge-alien-word{color:var(--s-ink)}.forge-word.secret{letter-spacing:.08em;font-family:ui-monospace,Atkinson Hyperlegible,monospace}.forge-flash{place-items:center;gap:10px;min-height:120px;display:grid}.forge-flash .hidden-word{color:var(--s-muted)}.quick-main .forge-top{justify-content:space-between}.quick-run{gap:12px;display:grid}.quick-timer{background:var(--s-line);border-radius:999px;height:8px;overflow:hidden}.quick-timer i{background:var(--s-accent);height:100%;transition:width .5s linear;display:block}.quick-focus{text-align:center;color:var(--s-muted);margin:0;font-weight:700}.quick-skills{text-align:left;gap:8px;margin:0;padding:0;list-style:none;display:grid}.quick-skills li{grid-template-columns:1fr 120px;align-items:center;gap:10px;display:grid}.quick-skill-bar{background:var(--s-line);border-radius:999px;height:10px;overflow:hidden}.quick-skill-bar i{background:var(--s-good);height:100%;display:block}@media (width<=560px){.forge-odd.count-6{grid-template-columns:repeat(2,minmax(0,1fr))}.forge-swap-letter{min-width:44px;padding:0 4px}}}@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}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.top-0{top:0}.top-1\/2{top:50%}.left-1\/2{left:50%}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.m-0{margin:0}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-\[22px\]{width:22px;height:22px}.size-\[26px\]{width:26px;height:26px}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-40{height:calc(var(--spacing) * 40)}.h-\[42px\]{height:42px}.h-\[52px\]{height:52px}.h-full{height:100%}.h-screen{height:100vh}.min-h-0\.5{min-height:calc(var(--spacing) * .5)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-24{min-height:calc(var(--spacing) * 24)}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-2\/3{width:66.6667%}.w-3\/4{width:75%}.w-14{width:calc(var(--spacing) * 14)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-\[calc\(100\%-32px\)\]{width:calc(100% - 32px)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-40{max-width:calc(var(--spacing) * 40)}.max-w-\[420px\]{max-width:420px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:0}.min-w-0\.5{min-width:calc(var(--spacing) * .5)}.flex-1{flex:1}.flex-\[1_1_220px\]{flex:220px}.flex-\[1_1_260px\]{flex:260px}.shrink-0{flex-shrink:0}.caption-bottom{caption-side:bottom}.-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,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.\[grid-template-columns\:repeat\(auto-fill\,minmax\(min\(100\%\,220px\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.\[grid-template-columns\:repeat\(auto-fit\,minmax\(min\(100\%\,360px\)\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}.grid-cols-\[minmax\(110px\,1fr\)_2fr_48px\]{grid-template-columns:minmax(110px,1fr) 2fr 48px}.grid-cols-\[repeat\(auto-fill\,minmax\(130px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(160px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.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)}.gap-5{gap:calc(var(--spacing) * 5)}.self-center{align-self:center}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded{border-radius:.25rem}.rounded-\[4px\]{border-radius:4px}.rounded-\[6px\]{border-radius:6px}.rounded-full{border-radius:2147483647px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:14px}.rounded-sm{border-radius:10px}.rounded-xl{border-radius:24px}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--line)}.border-input{border-color:#aac6e347}.border-transparent{border-color:#0000}.bg-\[\#c8d3df\]{background-color:#c8d3df}.bg-accent{background-color:#b7eb621f}.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-border{background-color:var(--line)}.bg-card{background-color:var(--navy-2)}.bg-coral\!{background-color:var(--coral)!important}.bg-destructive\/20{background-color:var(--coral)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/20{background-color:color-mix(in oklab, var(--coral) 20%, transparent)}}.bg-primary,.bg-primary\/20{background-color:var(--lime)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--lime) 20%, transparent)}}.bg-secondary{background-color:#ffffff14}.bg-sky{background-color:var(--sky)}.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\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, 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)}}.bg-yellow\/20{background-color:var(--yellow)}@supports (color:color-mix(in lab, red, red)){.bg-yellow\/20{background-color:color-mix(in oklab, var(--yellow) 20%, transparent)}}.object-contain{object-fit:contain}.p-0{padding:0}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-\[3px\]{padding:3px}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-\[clamp\(16px\,3vw\,40px\)\]{padding-inline:clamp(16px,3vw,40px)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-5{padding-block:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.text-left{text-align:left}.text-right{text-align:right}.align-\[-2px\]{vertical-align:-2px}.align-middle{vertical-align:middle}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.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)}.break-all{word-break:break-all}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.text-card-foreground{color:var(--ink)}.text-destructive{color:var(--coral)}.text-foreground{color:var(--ink)}.text-muted-foreground{color:#a9b8c9}.text-primary{color:var(--lime)}.text-secondary-foreground{color:var(--ink)}.text-white\!{color:var(--color-white)!important}.text-yellow{color:var(--yellow)}.no-underline{text-decoration-line:none}.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)}.shadow-\[inset_3px_0_var\(--color-primary\)\]{--tw-shadow:inset 3px 0 var(--tw-shadow-color,var(--color-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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}.placeholder\:text-muted-foreground::placeholder{color:#a9b8c9}@media (hover:hover){.hover\:bg-accent:hover{background-color:#b7eb621f}.hover\:bg-white\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/5:hover{background-color:color-mix(in oklab, var(--color-white) 5%, transparent)}}.hover\:text-foreground:hover{color:var(--ink)}}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--yellow)}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.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\=disabled\]\:opacity-55[data-state=disabled]{opacity:.55}.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 not all and (width>=800px){.max-\[800px\]\:static{position:static}.max-\[800px\]\:hidden{display:none}.max-\[800px\]\:h-auto{height:auto}.max-\[800px\]\:w-full{width:100%}.max-\[800px\]\:grid-cols-\[repeat\(auto-fill\,minmax\(120px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.max-\[800px\]\:flex-col{flex-direction:column}.max-\[800px\]\:border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.max-\[800px\]\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}}@media (width>=40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}}@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-leading{syntax:"*";inherits:false}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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))}}
