@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-latin-ext-400-normal-DRk46D-x.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-400-normal-Bbz-b3yf.woff)format("woff")}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-latin-ext-700-normal-BoVPHkS0.woff2)format("woff2"),url(/assets/atkinson-hyperlegible-latin-ext-700-normal-CKkU2Dpt.woff)format("woff")}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/bricolage-grotesque-latin-ext-600-normal-CN5JKkBm.woff2)format("woff2"),url(/assets/bricolage-grotesque-latin-ext-600-normal-DF26P3Q7.woff)format("woff")}@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/literata-latin-ext-400-normal-D5BsCrMl.woff2)format("woff2"),url(/assets/literata-latin-ext-400-normal-Cs2-p-8d.woff)format("woff")}@font-face{font-family:Literata;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/literata-latin-ext-700-normal-Cd5BSFN5.woff2)format("woff2"),url(/assets/literata-latin-ext-700-normal-DBR5CORb.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f0e6;--bg-raise:#fffdf8;--ink:#1c1914;--muted:#5f584e;--line:#e3d9c8;--accent:#0f6e56;--accent-ink:#f7fffb;--gold:#b58112;--gold-soft:#f3e2b8;--danger:#9d342c;--danger-soft:#f8e4e1;--good-soft:#e5f4ee;--shadow:0 12px 32px #28201214;--text:var(--ink);--card:var(--bg-raise);--font-ui:"Atkinson Hyperlegible", sans-serif;--font-display:"Bricolage Grotesque", sans-serif;--font-text:Literata, serif;--a1:#c4552a;--a2:#0f6e56;--b1:#2457a6;--b2:#6d3d86}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#141714;--bg-raise:#1d231e;--ink:#f4f0e6;--muted:#b7c0b4;--line:#31382f;--accent:#7dcea0;--accent-ink:#102117;--gold:#e6b450;--gold-soft:#3a311c;--danger:#f0a8a2;--danger-soft:#3a2422;--good-soft:#1a3329;--shadow:0 16px 36px #00000047;--text:var(--ink);--card:var(--bg-raise);--a1:#e08a62;--a2:#7dcea0;--b1:#8eb0e8;--b2:#d2a6e2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(1200px 400px at 10% -10%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%), var(--bg);color:var(--text);font-family:var(--font-ui);margin:0;font-size:1.02rem;line-height:1.5}h1,h2,h3,.chapter-title,.sign-title{font-family:var(--font-display);margin:0;font-weight:600;line-height:1.15}h1{font-size:clamp(1.8rem,3vw,2.5rem)}h2{font-size:1.35rem}p{margin:0}a{color:var(--accent)}button,.button,select,input,textarea{font:inherit;accent-color:var(--accent)}button,.button{background:var(--accent);min-height:44px;color:var(--accent-ink);cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:.35rem;padding:.55rem .95rem;font-weight:700;text-decoration:none;display:inline-flex}button.secondary,.button.secondary{color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line);background:0 0}button.slim,.icon-button{border-radius:999px;min-height:40px;padding:.35rem .8rem}.icon-button{background:var(--card);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line)}button:hover:not(:disabled),.button:hover{transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed;transform:none}button[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent);background:var(--good-soft);color:var(--text)}:where(a,button,input,select,textarea):focus-visible{outline:3px solid var(--accent);outline-offset:2px}input,select,textarea{border:1px solid var(--line);background:var(--bg);width:100%;min-height:44px;color:var(--text);border-radius:12px;padding:.55rem .7rem}textarea.code{resize:vertical;font-family:ui-monospace,Cascadia Code,monospace;font-size:.82rem;line-height:1.45}label{gap:.35rem;display:grid}.app{min-height:100dvh}.topbar{z-index:5;background:color-mix(in srgb, var(--bg) 92%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.brand{color:var(--text);font-family:var(--font-display);align-items:center;gap:.55rem;font-size:1.2rem;font-weight:600;text-decoration:none;display:inline-flex}.mark{background:var(--accent);width:2rem;height:2rem;color:var(--accent-ink);font-family:var(--font-text);border-radius:10px;place-items:center;display:grid}.top-stats,.top-actions{align-items:center;gap:.4rem;display:flex}.top-stats{margin-left:auto}.pill{background:var(--card);min-height:32px;box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap;border-radius:999px;align-items:center;gap:.3rem;padding:.15rem .65rem;font-size:.92rem;display:inline-flex}.frame{display:block}.rail{display:none}.tabbar{inset-inline:0;z-index:6;background:color-mix(in srgb, var(--bg) 94%, transparent);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0}.tabbar a{font-size:.78rem}.tabbar a,.rail a{min-height:52px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.1rem;text-decoration:none;display:flex;position:relative}.rail a small,.tabbar .dot{font-size:.75rem}.tabbar .dot{background:var(--a1);color:#fff;border-radius:999px;min-width:1.1rem;margin-left:3.2rem;padding:0 .25rem;line-height:1.2;position:absolute;top:.35rem}.tabbar a[aria-current=page],.tabbar a.section-current,.rail a[aria-current=page],.rail a.section-current{color:var(--text);font-weight:700}main{width:min(1080px,100%);margin:0 auto;padding:1.25rem 1rem 6.5rem}.page{animation:.28s rise}.stack{align-content:start;gap:.85rem;display:grid}.page-head{gap:.45rem;max-width:40rem;display:grid}.lede{color:var(--muted);font-size:1.05rem}.eyebrow,.meta,.speaker,.english{color:var(--muted)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.spanish,.spanish-title{font-family:var(--font-text)}.spanish{font-size:1.55rem;line-height:1.35}.spanish-title{color:var(--muted)}.hero,.module-card,.chapter-row,.line,.panel,.game-card,.review-card,.code-panel,.module-banner{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px}.hero{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;padding:1.1rem 1.15rem;display:flex}.hero-actions,.options{flex-wrap:wrap;gap:.5rem;display:flex}.options>button,.options>.button{flex:8rem}.module-grid,.game-grid{gap:.85rem;display:grid}.module-card,.game-card{color:var(--text);gap:.35rem;padding:1rem 1.05rem 1.05rem;text-decoration:none;display:grid;position:relative;overflow:hidden}.module-card:before,.module-banner:before{content:"";height:7px;position:absolute;inset:0 0 auto}.tone-a1:before{background:var(--a1)}.tone-a2:before{background:var(--a2)}.tone-b1:before{background:var(--b1)}.tone-b2:before{background:var(--b2)}.module-card:hover,.chapter-row:hover,.game-card:hover{transform:translateY(-2px)}.module-top{justify-content:space-between;align-items:center;display:flex}.level-pill,.status{background:var(--bg);border-radius:999px;align-items:center;gap:.35rem;min-height:28px;padding:.1rem .55rem;font-size:.82rem;font-weight:700;display:inline-flex}.ring{width:44px;height:44px}.ring-track,.ring-value{fill:none;stroke-width:4px}.ring-track{stroke:var(--line)}.ring-value{stroke:var(--accent);stroke-linecap:round;transform-origin:50%;transition:stroke-dashoffset .4s;transform:rotate(-90deg)}.module-banner{flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.15rem 1.15rem 1rem;display:flex;position:relative;overflow:hidden}.banner-stat{align-content:center;min-width:7rem;display:grid}.banner-stat strong{font-family:var(--font-display);font-size:1.8rem}.bar{background:var(--line);border-radius:999px;height:8px;overflow:hidden}.bar>span{background:var(--accent);border-radius:inherit;height:100%;transition:width .4s;display:block}.bar.slim{height:6px;margin-top:.35rem}.chapter-list{gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.chapter-row{color:var(--text);grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;padding:.9rem 1rem;text-decoration:none;display:grid}.chapter-index{font-family:var(--font-display);color:var(--muted);min-width:2rem;font-size:1.15rem}.chapter-copy{gap:.2rem;min-width:0;display:grid}.chapter-title{font-size:1.2rem}.chapter-copy .meta{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chapter-row.is-locked{opacity:.72;box-shadow:none;cursor:default}.code-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.listed-code{letter-spacing:.04em;font-family:ui-monospace,Cascadia Code,monospace;font-size:.95rem;font-weight:700}.status{justify-self:end}.checkpoint-code{letter-spacing:.04em;overflow-wrap:anywhere;margin:0;font-family:ui-monospace,Cascadia Code,monospace;font-size:clamp(1.45rem,6vw,2rem);font-weight:700}.checkpoint-input{letter-spacing:.08em;text-align:center;min-height:56px;font-family:ui-monospace,Cascadia Code,monospace;font-size:1.25rem}details summary{cursor:pointer;align-items:center;min-height:44px;display:flex}details .stack{margin-top:.7rem}@media (width<=720px){.desktop-only{display:none}main{padding-top:.75rem}.page{gap:.6rem}.page-head h1{font-size:1.55rem}.lede{font-size:.98rem}.topbar{gap:.35rem;padding-inline:.65rem}.brand{min-width:0;font-size:1.05rem}.pill{padding-inline:.45rem;font-size:.78rem}.chapter-row{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"idx copy""idx status";align-items:start}.chapter-index{grid-area:idx;padding-top:.15rem}.chapter-copy{grid-area:copy}.status{grid-area:status;justify-self:start}.options>button,.options>.button{flex:100%}.lesson-kicker{flex-direction:column;align-items:flex-start}main{padding-bottom:calc(6.75rem + env(safe-area-inset-bottom))}.bubble:nth-child(2n),.bubble:nth-child(odd){margin-inline:0}}.chapter-row.is-active{box-shadow:inset 3px 0 0 var(--gold), var(--shadow)}.chapter-row.is-passed{box-shadow:inset 3px 0 0 var(--accent), var(--shadow)}.status-passed{background:var(--good-soft)}.status-active{background:var(--gold-soft)}.status-locked{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);background:0 0}.now{text-transform:uppercase;letter-spacing:.06em;margin-left:.25rem;font-size:.68rem}.star-on{color:var(--gold)}.star-off{color:var(--muted)}.lesson-top{gap:.45rem;display:grid}.lesson-kicker{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.lesson-nav{flex-wrap:wrap;gap:.5rem;display:flex}.lesson-nav button{flex:8rem}.line,.panel,.code-panel,.review-card{gap:.45rem;padding:.9rem 1rem;display:grid}.bubble:nth-child(2n){margin-inline-start:1.25rem}.bubble:nth-child(odd){margin-inline-end:1.25rem}.word-grid{gap:.7rem;display:grid}.dict-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.dict-row{background:var(--card);box-shadow:inset 0 0 0 1px var(--line);border-radius:14px;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex}.dict-row .spanish,.prompt{font-size:1.15rem}.feedback{background:var(--bg);border-radius:12px;min-height:1.2rem;padding:.7rem .8rem}.feedback.good{background:var(--good-soft);animation:.22s pop}.feedback.bad{background:var(--danger-soft);animation:.22s pop}.match{gap:.7rem;display:grid}.check{grid-template-columns:auto 1fr;align-items:center}.result{text-align:start}.result.pass{box-shadow:inset 0 0 0 2px var(--accent)}.burst{gap:.4rem;font-size:1.4rem;display:flex}dialog{background:var(--bg);width:min(36rem,100vw - 2rem);color:var(--text);box-shadow:var(--shadow);border:0;border-radius:18px;padding:1rem}dialog::backdrop{background:#1416127a}.overlay{z-index:30;background:#1416127a;place-items:end center;padding:.75rem;display:grid;position:fixed;inset:0}.sheet{background:var(--bg);border:1px solid var(--line);border-radius:18px 18px 12px 12px;width:min(40rem,100%);max-height:min(92dvh,46rem);padding:1rem;overflow:auto}.banner{background:var(--gold-soft);border-radius:12px;margin-bottom:.8rem;padding:.7rem .85rem}.review-card{align-content:center;justify-items:start;min-height:14rem}.review-card .spanish{font-size:clamp(1.8rem,4vw,2.6rem)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;display:grid}.stat{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:.85rem .9rem}.stat strong{font-family:var(--font-display);font-size:1.5rem;display:block}.skip{background:var(--accent);color:var(--accent-ink);z-index:40;padding:.5rem .8rem;position:absolute;inset-block-start:.5rem;inset-inline-start:.5rem;transform:translateY(-150%)}.skip:focus{transform:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.settings{gap:.75rem;display:grid}.mic-check{grid-column:1/-1}.mic-meter{background:var(--bg);height:.8rem;box-shadow:inset 0 0 0 1.5px var(--line);border-radius:999px;overflow:hidden}.mic-meter>span{background:var(--accent);height:100%;display:block}@media (width>=720px){.settings,.word-grid,.match,.module-grid,.game-grid{grid-template-columns:1fr 1fr}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.overlay{place-items:center}.sheet{border-radius:18px}}@media (width>=900px){.rail{flex-direction:column;align-self:start;gap:.25rem;padding:1rem .75rem 1rem 1rem;display:flex;position:sticky;top:4.4rem}.rail a{border-radius:12px;align-items:flex-start;min-height:52px;padding:.55rem .75rem}.rail a[aria-current=page],.rail a.section-current{background:var(--card);box-shadow:inset 0 0 0 1px var(--line)}.frame{grid-template-columns:15.5rem minmax(0,1fr);display:grid}.tabbar{display:none}main{padding-bottom:2.5rem}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.98)}to{transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}button:hover,.module-card:hover,.chapter-row:hover,.game-card:hover{transform:none}}.instruction{font-weight:700}.goal{border:1px solid var(--line);background:var(--card);border-radius:12px}.goal summary{cursor:pointer;align-items:center;min-height:44px;padding:0 .8rem;font-weight:700;display:flex}.goal p{padding:0 .8rem .8rem}.feedback.almost{background:var(--gold-soft);color:var(--text)}.char-bar,.key-row,.options{flex-wrap:wrap;gap:.4rem;display:flex}.char-bar .char,.key-row .char{min-width:44px;min-height:44px;padding:0 .45rem;font-family:Literata,Georgia,Times New Roman,serif}.key-grid{gap:.4rem;display:grid}.key-row{display:flex}.key-row .char{flex:1 1 0;min-width:0;padding-inline:.1rem}.key-row .space{flex:2 1 0}.hud{background:var(--card);box-shadow:inset 0 0 0 1px var(--line);border-radius:12px;flex-wrap:wrap;gap:.5rem 1rem;padding:.55rem .75rem;font-weight:700;display:flex}.game-canvas{background:var(--card);width:100%;height:420px;box-shadow:inset 0 0 0 1px var(--line);touch-action:none;border-radius:16px}.pad{grid-template-columns:repeat(3,minmax(0,6rem));grid-template-areas:".up.""left.right"".down.";justify-content:center;gap:.4rem;display:grid}.pad-up{grid-area:up}.pad-left{grid-area:left}.pad-right{grid-area:right}.pad-down{grid-area:down}.game-actions{gap:.4rem;display:flex}.game-actions>button{flex:1}.how{gap:.35rem;margin:0;padding-left:1.2rem;display:grid}.alphabet-grid{grid-template-columns:repeat(auto-fill,minmax(4.6rem,1fr));gap:.45rem;display:grid}.letter-key{background:var(--card);color:var(--text);box-shadow:inset 0 0 0 1.5px var(--line);gap:.1rem;display:grid}.letter-key.is-special{box-shadow:inset 0 0 0 2px var(--accent)}.letter-key .spanish{font-size:1.35rem}.voice-panel{grid-column:1/-1}.voice-set{border:1px solid var(--line);border-radius:12px;padding:.8rem}.voice-set legend{padding:0 .3rem;font-weight:700}.voice-options button{justify-content:space-between}.game-title{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.badge-2d{background:var(--gold-soft);min-height:1.5rem;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--gold);font-family:var(--font-ui);letter-spacing:.06em;border-radius:999px;align-items:center;padding:0 .45rem;font-size:.75rem;font-weight:700;display:inline-flex}.voice-choice{align-items:stretch;gap:.4rem;display:flex}.voice-choice>button:first-child{flex:1}.gap{letter-spacing:.08em}.game-canvas.roomy{height:480px}@media (width<=720px){.game-canvas{height:240px}.game-canvas.roomy{height:360px}.code-row{grid-template-columns:auto minmax(0,1fr)}.code-actions{grid-column:1/-1;justify-content:flex-start}.sheet{max-height:88dvh;overflow:auto}}
