@font-face{font-family:"Print Clearly";src:url("./fonts/print-clearly-regular.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Print Clearly";src:url("./fonts/print-clearly-bold.ttf") format("truetype");font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Andika";src:url("./fonts/andika-regular.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Andika";src:url("./fonts/andika-semibold.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}

:root{--green:#00a690;--blue:#0052a4;--coral:#ff6b4a;--sun:#ffd52b;--mint:#8ee5d1;--lavender:#b6a1e0;--ink:#18334c;--slate:#5c6670;--paper:#f9fafb;--font:"Omnes","Trebuchet MS","Avenir Next",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font)}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.home-screen{min-height:100vh;overflow:hidden}
.home-header{height:92px;max-width:1420px;margin:auto;padding:14px 44px;display:flex;align-items:center;justify-content:space-between}.brand-logo{width:112px;height:66px;object-fit:contain;object-position:left center}.header-actions{display:flex;align-items:center;gap:14px}.teacher-note{background:#fff;border:1px solid #e1e7e9;border-radius:99px;color:var(--slate);display:flex;align-items:center;gap:8px;font-size:14px;padding:10px 16px}.teacher-note i{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px #00a69021}.fullscreen-home,.icon-button{border:1px solid #dfe6e8;background:#fff;color:var(--blue);border-radius:14px;height:44px;min-width:44px;cursor:pointer}
.hero{max-width:1420px;min-height:560px;margin:0 auto;padding:48px 60px 56px;border-radius:42px;background:linear-gradient(120deg,#e8f8f5,#fff 52%,#eff5ff);display:grid;grid-template-columns:1fr .95fr;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;opacity:.24;background-image:radial-gradient(circle at 1px 1px,#00a690 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to right,#000,transparent 58%)}.hero-copy{position:relative;z-index:2;align-self:center;padding-left:16px}.camp-label{display:inline-flex;padding:8px 13px;color:var(--blue);background:#fff;border-radius:99px;font-size:13px;font-weight:800;letter-spacing:.12em;box-shadow:0 5px 24px #0052a414}.hero h1{margin:22px 0 18px;font-size:clamp(56px,6.5vw,96px);line-height:.93;letter-spacing:-.06em;color:var(--blue);font-weight:800}.hero h1 strong{color:var(--green)}.hero-copy p{max-width:570px;color:var(--slate);font-size:19px;line-height:1.55;margin:0 0 30px}.primary-button{border:0;border-radius:17px;padding:16px 24px;color:#fff;background:var(--blue);font-weight:800;cursor:pointer;box-shadow:0 8px 0 #003d7c;transition:.2s}.primary-button:hover{transform:translateY(-2px);box-shadow:0 10px 0 #003d7c}.primary-button:active{transform:translateY(5px);box-shadow:0 3px 0 #003d7c}.hero-button{min-width:220px;text-align:left;display:inline-flex;justify-content:space-between;font-size:16px}
.hero-art{position:relative;min-height:440px}.sun-shape{position:absolute;width:330px;height:330px;border-radius:48% 52% 45% 55%;background:var(--sun);right:70px;top:47px;transform:rotate(-12deg);box-shadow:inset 20px -20px 0 #ffffff33}.hero-star{position:absolute;z-index:3;font-size:88px;color:var(--coral);top:10px;right:70px;transform:rotate(12deg);filter:drop-shadow(0 8px 0 #ff6b4a26)}.hero-letter{position:absolute;z-index:3;right:182px;top:120px;color:#fff;font-size:210px;line-height:1;font-weight:800;transform:rotate(-8deg);text-shadow:7px 9px 0 #0052a42e}.pencil{position:absolute;width:285px;height:48px;background:var(--coral);border:7px solid #fff;border-radius:20px 4px 4px 20px;right:5px;bottom:40px;transform:rotate(-28deg);z-index:4;box-shadow:0 14px 30px #18334c2e}.pencil:after{content:"";position:absolute;right:-72px;top:-7px;border-top:24px solid transparent;border-bottom:24px solid transparent;border-left:72px solid #f6d19a}.pencil:before{content:"";position:absolute;right:-72px;top:13px;z-index:2;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:18px solid var(--ink)}.pencil i{position:absolute;width:35px;height:34px;left:-1px;top:0;background:var(--lavender);border-radius:12px 0 0 12px}.pencil b{position:absolute;width:7px;height:34px;left:34px;top:0;background:#fff}.hero-scribble{position:absolute;right:25px;bottom:0;width:460px;z-index:1;overflow:visible}.hero-scribble path{fill:none;stroke:var(--blue);stroke-width:7;stroke-linecap:round;stroke-dasharray:8 14;opacity:.55}
.word-library{max-width:1420px;margin:0 auto;padding:100px 44px 120px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:34px}.section-heading span{font-size:13px;color:var(--green);letter-spacing:.12em;font-weight:800}.section-heading h2{margin:7px 0 0;font-size:42px;letter-spacing:-.035em;color:var(--blue)}.search-box{width:240px;height:48px;border:1px solid #dce5e8;border-radius:16px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 14px;color:var(--slate)}.search-box input{border:0;outline:0;width:100%;color:var(--ink);background:transparent}.word-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.word-card{position:relative;min-height:280px;border:1px solid #e0e7e9;border-radius:26px;background:#fff;padding:22px;cursor:pointer;text-align:left;overflow:hidden;transition:.22s}.word-card:after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;right:-48px;top:-60px;background:var(--card-color);opacity:.27}.word-card:hover{transform:translateY(-7px);border-color:transparent;box-shadow:0 18px 45px #18334c1f}.theme-mint{--card-color:var(--mint);--theme:#18b99d;--theme-soft:#e9faf6}.theme-sun{--card-color:var(--sun);--theme:#e6ad00;--theme-soft:#fff9dc}.theme-coral{--card-color:var(--coral);--theme:var(--coral);--theme-soft:#fff0ec}.theme-lavender{--card-color:var(--lavender);--theme:#886bc5;--theme-soft:#f5f0ff}.theme-blue{--card-color:#7fc4ff;--theme:var(--blue);--theme-soft:#edf6ff}.card-number{position:absolute;z-index:2;top:20px;left:21px;font-weight:800;font-size:13px;color:#8a969e}.card-emoji{height:133px;display:flex;align-items:center;justify-content:center;font-size:82px;line-height:1;filter:drop-shadow(0 10px 7px #18334c1f);transition:.24s}.word-card:hover .card-emoji{transform:scale(1.07) rotate(-3deg)}.card-word{display:block;font-size:31px;line-height:1;color:var(--blue);font-weight:800}.card-ipa{display:block;margin-top:7px;font-size:15px;color:var(--green);font-weight:700}.card-letter{position:absolute;right:22px;bottom:20px;min-width:36px;height:36px;padding:0 10px;border-radius:12px;display:grid;place-items:center;color:var(--theme);background:var(--theme-soft);font-size:18px;font-weight:800}.card-arrow{position:absolute;right:22px;top:18px;z-index:2;color:var(--blue);font-size:20px}
footer{max-width:1420px;min-height:150px;margin:0 auto 24px;padding:28px 42px;border-radius:32px;background:var(--green);color:#fff;display:flex;align-items:center;gap:30px}footer .brand-logo{filter:brightness(0) invert(1)}footer p{flex:1;font-size:22px;font-weight:700}footer span{font-size:14px;opacity:.85}
.lesson-screen{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(155deg,var(--theme-soft),#fff 55%,#f7fbfc);overflow:hidden}.lesson-header{height:82px;padding:10px 36px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #18334c14;background:#ffffffbd;backdrop-filter:blur(12px)}.mini-brand{display:flex;align-items:center;gap:9px}.mini-brand .brand-logo{width:82px;height:52px}.mini-brand b{background:var(--blue);color:#fff;border-radius:8px;font-size:10px;letter-spacing:.16em;padding:5px 7px}.icon-button{display:inline-flex;align-items:center;gap:8px;padding:0 14px;width:max-content;color:var(--ink);font-weight:700}.lesson-header .icon-button:last-child{justify-self:end}.lesson-progress{height:44px;display:flex;align-items:center;justify-content:center;gap:6px}.lesson-progress i{width:42px;height:5px;border-radius:99px;background:#dce5e8}.lesson-progress i.active{background:var(--theme)}.lesson-progress b{margin-left:14px;color:var(--blue);font-size:13px}.lesson-progress em{color:#89949b;font-style:normal;font-size:13px}.lesson-stage{flex:1;min-height:0;width:100%;max-width:1200px;margin:auto;padding:12px 36px 18px;display:grid;grid-template-columns:.8fr 1.2fr;gap:46px;align-items:center;animation:stageIn .42s ease both}@keyframes stageIn{from{opacity:0;transform:translateY(15px)}}.stage-copy p{margin:0 0 12px;color:var(--theme);font-size:13px;font-weight:900;letter-spacing:.16em}.stage-copy h1{margin:0 0 14px;max-width:430px;color:var(--blue);font-size:clamp(42px,5vw,72px);line-height:.98;letter-spacing:-.05em}.stage-copy span{color:var(--slate);font-size:18px;line-height:1.5}.teaching-card{min-height:590px;border:1px solid #18334c17;background:#fffffff0;border-radius:36px;box-shadow:0 24px 65px #18334c1c;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:36px}.object-visual{height:245px;width:100%;display:grid;place-items:center;font-size:185px;line-height:1;filter:drop-shadow(0 17px 14px #18334c21);animation:objectPop .55s cubic-bezier(.2,.8,.2,1.2) both}@keyframes objectPop{from{transform:scale(.75);opacity:0}}.object-visual.silhouette{filter:grayscale(1) brightness(0);opacity:.88}.ipa{margin:4px 0 18px;font-size:31px;color:var(--green);font-weight:800}.guide-lines{width:min(100%,540px);height:135px;position:relative;border-left:2px solid #d3dde0;border-right:2px solid #d3dde0;border-radius:15px;overflow:hidden;background:#fff}.guide-lines>i{position:absolute;left:0;right:0;height:2px;background:#b9dfe7}.guide-lines>i:nth-child(1){top:1px}.guide-lines>i:nth-child(2){top:44px;border-top:1px dashed #82c8d6;background:none}.guide-lines>i:nth-child(3){top:91px;height:3px;background:#67c0d2}.guide-lines>i:nth-child(4){bottom:1px}.guide-word{position:absolute;inset:14px 0 auto;height:82px;display:flex;justify-content:center;align-items:flex-end;color:var(--ink);font-size:92px;line-height:.82;font-weight:800}.guide-word .new-letter{color:var(--coral)}.mystery-dots{display:flex;gap:9px;position:absolute;bottom:13px}.mystery-dots i{width:6px;height:6px;border-radius:50%;background:var(--theme);opacity:.5}
.letter-card{justify-content:flex-start;padding-top:24px}.letter-tabs{display:flex;gap:9px;min-height:52px}.letter-tabs button{width:48px;height:48px;border:0;border-radius:15px;color:var(--blue);background:#edf4f6;font-size:26px;font-weight:800;cursor:pointer}.letter-tabs button.active{color:#fff;background:var(--theme);box-shadow:0 6px 0 color-mix(in srgb,var(--theme),#000 20%)}.letter-guide{width:min(100%,440px);height:370px;margin:0 auto}.letter-guide svg{width:100%;height:100%;overflow:visible}.writing-line{stroke-width:2;stroke:#d9e3e6}.writing-line.l1{stroke:#aed9e1;stroke-dasharray:7 7}.writing-line.l2{stroke:#67c0d2;stroke-width:3}.ghost-letter{fill:#5c667012;font-size:190px;font-weight:800;font-family:var(--font)}.animated-stroke{fill:none;stroke:var(--green);stroke-width:12;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:500;stroke-dashoffset:500;animation:draw 1.15s ease forwards}.stroke-2{stroke:var(--coral);animation-delay:1.05s}.stroke-3{stroke:var(--blue);animation-delay:2.1s}@keyframes draw{to{stroke-dashoffset:0}}.stroke-number-bg{fill:#fff;stroke:var(--coral);stroke-width:2}.stroke-number{fill:var(--coral);font-size:11px;font-weight:900}.stroke-instructions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:-12px 0 13px}.stroke-instructions span{border-radius:99px;background:var(--theme-soft);padding:7px 11px 7px 7px;font-size:13px;font-weight:700}.stroke-instructions b{width:23px;height:23px;margin-right:6px;display:inline-grid;place-items:center;border-radius:50%;color:#fff;background:var(--theme)}.replay-button{border:0;border-radius:99px;background:#fff;color:var(--blue);box-shadow:0 5px 18px #18334c1f;padding:10px 16px;cursor:pointer;font-weight:800}.lesson-controls{min-height:92px;padding:15px 36px 22px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}.lesson-controls .primary-button{justify-self:end;min-width:150px}.secondary-button{justify-self:start;border:1px solid #dbe4e7;background:#fff;color:var(--ink);border-radius:16px;padding:15px 20px;font-weight:800;cursor:pointer}.secondary-button:disabled{opacity:.35}.stage-dots{display:flex;gap:8px}.stage-dots i{width:9px;height:9px;border-radius:50%;background:#ccd8dc}.stage-dots i.active{width:28px;border-radius:99px;background:var(--theme)}
@media(max-width:980px){.hero{margin:0 18px;grid-template-columns:1fr;padding:55px 38px}.hero-art{min-height:390px}.word-grid{grid-template-columns:repeat(3,1fr)}.lesson-stage{grid-template-columns:1fr;gap:18px;padding-top:20px}.stage-copy{text-align:center}.stage-copy h1{max-width:none;font-size:46px}.stage-copy span{font-size:15px}.teaching-card{min-height:540px}}
@media(max-width:680px){.home-header{padding:12px 18px}.teacher-note{display:none}.hero{min-height:auto;padding:44px 25px 28px;border-radius:28px}.hero h1{font-size:58px}.hero-copy p{font-size:16px}.hero-art{transform:scale(.78);transform-origin:center top;margin-bottom:-70px}.word-library{padding:72px 18px 80px}.section-heading{align-items:flex-start;flex-direction:column;gap:20px}.search-box{width:100%}.word-grid{grid-template-columns:repeat(2,1fr);gap:12px}.word-card{min-height:230px;padding:16px;border-radius:21px}.card-emoji{font-size:64px;height:115px}.card-word{font-size:26px}.card-letter{right:15px;bottom:14px}footer{margin:0 18px 18px;flex-direction:column;align-items:flex-start;gap:6px}.lesson-header{padding:8px 14px}.icon-button span,.mini-brand .brand-logo{display:none}.lesson-stage{display:block;padding:10px 14px}.stage-copy{margin-bottom:14px}.stage-copy p{margin-bottom:5px}.stage-copy h1{font-size:35px;margin-bottom:7px}.stage-copy span{display:none}.teaching-card{min-height:485px;padding:22px 15px;border-radius:25px}.object-visual{height:195px;font-size:145px}.ipa{font-size:25px}.letter-guide{height:310px}.lesson-controls{padding:12px 14px 18px;grid-template-columns:1fr 1fr}.stage-dots{display:none}.secondary-button,.lesson-controls .primary-button{width:100%;min-width:0;padding:14px 8px}}
@media(max-width:410px){.word-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* Cohesive generated classroom illustrations */
.card-emoji img{width:135px;height:135px;object-fit:contain}
.object-visual{font-size:0}
.object-visual img{width:245px;height:245px;object-fit:contain}
@media(max-width:680px){.card-emoji img{width:112px;height:112px}.object-visual img{width:195px;height:195px}}

/* Literacy typography */
.word-card{font-family:"Print Clearly",var(--font)}
.card-word,.card-letter,.guide-word,.ghost-letter,.letter-tabs button{font-family:"Print Clearly",var(--font);font-weight:700}
.ipa,.card-ipa{font-family:"Andika","Noto Sans",sans-serif;font-weight:600;font-variant-ligatures:none;font-feature-settings:"kern" 1}
.card-ipa{font-size:17px;letter-spacing:.005em}
.ipa{font-size:32px;letter-spacing:.005em}
.guide-word{font-size:100px}

/* Exact tab hit targets */
.letter-tabs{position:relative;z-index:10;min-height:76px;padding:6px;align-items:center;isolation:isolate}
.letter-tabs button{position:relative;z-index:2;display:grid;place-items:center;width:64px;height:64px;min-width:64px;min-height:64px;padding:0;border:2px solid transparent;border-radius:18px;line-height:1;touch-action:manipulation;cursor:pointer}
.letter-tabs button.active{border-color:color-mix(in srgb,var(--theme),#18334c 28%);box-shadow:inset 0 -4px 0 color-mix(in srgb,var(--theme),#18334c 20%)}
.letter-guide{position:relative;z-index:1}

/* Compact, stroke-matched arrows and numbers */
.animated-stroke{stroke-width:10}
.animated-stroke.stroke-1{stroke:#00a690}.animated-stroke.stroke-2{stroke:#ff6b4a}.animated-stroke.stroke-3{stroke:#0052a4}
.stroke-number-bg{fill:#fff;stroke-width:2.2}.stroke-number{font-family:"Andika",sans-serif;font-size:9px;font-weight:600}
.stroke-number-bg.stroke-color-1{stroke:#00a690}.stroke-number.stroke-color-1{fill:#00a690}
.stroke-number-bg.stroke-color-2{stroke:#ff6b4a}.stroke-number.stroke-color-2{fill:#ff6b4a}
.stroke-number-bg.stroke-color-3{stroke:#0052a4}.stroke-number.stroke-color-3{fill:#0052a4}
.stroke-instructions span{border:1px solid transparent}
.stroke-instructions .stroke-color-1{border-color:#00a69033}.stroke-instructions .stroke-color-1 b{background:#00a690}
.stroke-instructions .stroke-color-2{border-color:#ff6b4a33}.stroke-instructions .stroke-color-2 b{background:#ff6b4a}
.stroke-instructions .stroke-color-3{border-color:#0052a433}.stroke-instructions .stroke-color-3 b{background:#0052a4}

@media(max-width:680px){.letter-tabs{min-height:66px}.letter-tabs button{width:56px;height:56px;min-width:56px;min-height:56px}.ipa{font-size:27px}.guide-word{font-size:86px}}

/* Equal-spacing handwriting guide with exact path overlay */
.letter-guide{width:min(100%,480px);height:400px}
.template-stroke{fill:none;stroke:#5c667014;stroke-width:18;stroke-linecap:round;stroke-linejoin:round}
.stroke-cue{pointer-events:none;opacity:0;animation:showCue .2s ease forwards}
.stroke-cue.cue-1{animation-delay:.05s}.stroke-cue.cue-2{animation-delay:1.05s}.stroke-cue.cue-3{animation-delay:2.1s}
.stroke-cue-line{stroke-width:3;stroke-linecap:round}
.stroke-cue-line.stroke-color-1{stroke:#00a690}.stroke-cue-line.stroke-color-2{stroke:#ff6b4a}.stroke-cue-line.stroke-color-3{stroke:#0052a4}
.stroke-instructions{margin:-8px 0 13px}
@keyframes showCue{to{opacity:1}}
@media(max-width:680px){.letter-guide{height:340px}.template-stroke{stroke-width:16}}
