.voice-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:grid;place-items:center;padding:1rem;background:#1f14069e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.voice-modal__panel{width:min(560px,100%);max-height:90vh;overflow-y:auto;background:var(--paper);border:6px solid var(--ink);border-radius:var(--radius-card);box-shadow:0 20px 50px #0006}.voice-modal__bar{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem .9rem 1.4rem;background:var(--sun);border-bottom:5px solid var(--ink)}.voice-modal__title{font-size:clamp(1.15rem,1rem + .7vw,1.5rem)}.voice-modal__close{flex:none;width:var(--touch);height:var(--touch);font-size:1.5rem;font-weight:800;display:grid;place-items:center;background:var(--paper);border:4px solid var(--ink);border-radius:50%;cursor:pointer;box-shadow:0 4px #3d2a1259}.voice-modal__close:active{transform:translateY(3px);box-shadow:0 1px #3d2a1259}.voice-modal__body{padding:1.2rem clamp(.9rem,4vw,1.5rem) 1.5rem}.voice-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.7rem}.voice-option{width:100%;min-height:76px;display:flex;align-items:center;gap:.9rem;padding:.7rem 1rem;font-family:inherit;text-align:left;background:#fff;border:4px solid var(--ink);border-radius:24px;cursor:pointer;box-shadow:0 5px #3d2a1240;transition:transform .14s ease,box-shadow .14s ease,background .2s ease}.voice-option:hover{transform:translateY(-3px);box-shadow:0 8px #3d2a1240}.voice-option:active{transform:translateY(3px);box-shadow:0 2px #3d2a1240}.voice-option.is-chosen{background:#eafaf1;border-color:#17a06a;box-shadow:0 5px #17a06a66}.voice-option__emoji{font-size:2.1rem;line-height:1;flex:none}.voice-option__text{flex:1;display:flex;flex-direction:column;gap:.15rem}.voice-option__name{font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:var(--ink)}.voice-option__desc{font-size:.92rem;color:var(--ink-soft)}.voice-option__mark{font-size:1.5rem;flex:none}.voice-modal__footnote{margin:0;font-size:.9rem;color:var(--ink-soft);line-height:1.5}.topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;width:min(1180px,100%);margin:0 auto;padding:1rem clamp(1rem,4vw,2.5rem)}.topbar__brand{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--ink);font-family:var(--font-display);font-weight:800;font-size:clamp(1.1rem,.95rem + .6vw,1.5rem)}.topbar__brand-icon{font-size:1.8em;animation:bounce-soft 4s ease-in-out infinite}.topbar__nav{display:flex;gap:.6rem;flex-wrap:wrap}.topbar__link{padding-inline:1.2rem;font-size:1rem;min-height:58px}.topbar__link.is-active{box-shadow:0 0 0 4px #ffffffe6,0 6px #3d2a1259}.topbar__voice{width:56px;height:56px;font-size:1.5rem;display:grid;place-items:center;background:var(--paper);border:4px solid var(--ink);border-radius:50%;cursor:pointer;box-shadow:0 4px #3d2a124d;transition:transform .14s ease}.topbar__voice:hover{transform:translateY(-2px) rotate(-8deg)}.topbar__voice:active{transform:translateY(3px);box-shadow:0 1px #3d2a124d}.topbar__count{margin:0;font-family:var(--font-display);font-weight:800;font-size:1.2rem;background:var(--paper);border:4px solid var(--ink);border-radius:var(--radius-pill);padding:.35rem .9rem;box-shadow:var(--shadow-soft)}.letter-nav{display:flex;align-items:center;justify-content:center;gap:clamp(.6rem,3vw,1.6rem);margin-top:2rem;flex-wrap:wrap}.letter-nav__side{font-size:clamp(1.3rem,1.1rem + .8vw,1.8rem);min-width:96px;min-height:72px}.letter-nav__home{flex:none}@media (max-width: 560px){.topbar{justify-content:center;text-align:center}.topbar__nav{width:100%;justify-content:center}.topbar__link{flex:1 1 auto}}.decorations{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:0}.deco-cloud{position:absolute;font-size:calc(clamp(3rem,7vw,6rem) * var(--cloud-scale, 1));opacity:.85;animation:drift linear infinite;will-change:transform}.deco-star{position:absolute;font-size:clamp(1.1rem,2vw,1.9rem);animation:twinkle ease-in-out infinite;will-change:opacity,transform}.deco-hill{position:absolute;bottom:-2px;left:0;width:100%;height:clamp(90px,14vh,170px);background:radial-gradient(60% 100% at 20% 100%,#a5e08c 0 70%,transparent 71%),radial-gradient(55% 100% at 75% 100%,#8fd97a 0 70%,transparent 71%);opacity:.55}.deco-critter{position:absolute;bottom:clamp(10px,3vh,34px);font-size:clamp(1.8rem,4vw,3rem);animation:bounce-soft 4s ease-in-out infinite}.celebration{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:1rem;background:#1f14068c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.celebration__confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}@keyframes confetti-fall{0%{transform:translateY(-12vh) rotate(0);opacity:0}10%{opacity:1}to{transform:translateY(110vh) rotate(220deg);opacity:.9}}.celebration__piece{position:absolute;top:0;font-size:clamp(1.6rem,4vw,2.6rem);animation:confetti-fall linear infinite}.celebration__card{position:relative;text-align:center;padding:2rem clamp(1.5rem,6vw,3.5rem);background:var(--paper);border:6px solid var(--ink);border-radius:var(--radius-card);box-shadow:0 18px 44px #00000059;max-width:min(520px,100%)}.celebration__emoji{font-size:clamp(4rem,14vw,6.5rem);display:block}.celebration__title{font-size:clamp(2.2rem,1.6rem + 3vw,3.6rem);color:var(--coral);margin:.3rem 0}.celebration__text{font-family:var(--font-display);font-weight:700;font-size:clamp(1.2rem,1rem + .8vw,1.6rem);margin:0 0 1.4rem}.audio-btn{font-family:var(--font-display);font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:var(--touch);min-width:var(--touch);padding:.55rem 1.1rem;border:4px solid var(--ink);border-radius:var(--radius-pill);background:var(--sun);color:var(--ink);cursor:pointer;box-shadow:0 5px #3d2a1252;transition:transform .14s ease,box-shadow .14s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.audio-btn:hover{transform:translateY(-3px);box-shadow:0 8px #3d2a1252}.audio-btn:active{transform:translateY(3px);box-shadow:0 2px #3d2a1252}.audio-btn--icon-only{padding:.55rem}.audio-btn--large{min-height:74px;font-size:1.25rem;padding:.7rem 1.6rem}.audio-btn--small{min-height:56px;min-width:56px;padding:.4rem .9rem}.audio-btn--coral{background:var(--coral);color:#fff}.audio-btn--leaf{background:var(--leaf);color:#08351f}.audio-btn--paper{background:var(--paper)}.audio-btn__icon{font-size:1.5em;line-height:1}.audio-btn__text{white-space:nowrap}.audio-btn.is-speaking .audio-btn__icon{animation:bounce-soft .9s ease-in-out infinite}.audio-btn[disabled]{opacity:.5;cursor:not-allowed}.alphabet-card{--card-soft: #fff3cf;--card-mid: #ffd166;--card-strong: #e8a317;--card-ink: #7a4d05;position:relative;list-style:none;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.4rem 1.1rem 1.5rem;background:radial-gradient(120% 70% at 50% 0%,#fff 0 38%,transparent 39%),linear-gradient(170deg,var(--card-soft) 0%,var(--card-mid) 100%);border:6px solid var(--ink);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease}.alphabet-card:hover,.alphabet-card:focus-within{transform:translateY(-6px) rotate(-.6deg);box-shadow:0 14px #00000017,0 24px 40px #3d2a1233}.alphabet-card__sticker{position:absolute;top:-14px;right:-10px;font-size:2.2rem;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25));animation:twinkle 3s ease-in-out infinite}.alphabet-card__letters{margin:0;display:flex;align-items:baseline;gap:.35rem;font-family:var(--font-display);font-weight:800;color:var(--card-ink);line-height:1;text-shadow:3px 3px 0 rgba(255,255,255,.85)}.alphabet-card__upper{font-size:clamp(3.6rem,11vw,5.4rem)}.alphabet-card__lower{font-size:clamp(2.4rem,7vw,3.6rem);opacity:.85}.alphabet-card__emoji{font-size:clamp(3.4rem,10vw,4.6rem);line-height:1}.alphabet-card__word{margin:.1rem 0 .6rem;font-family:var(--font-display);font-weight:800;font-size:clamp(1.2rem,1rem + .8vw,1.7rem);color:var(--card-ink)}.alphabet-card__actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:center}.alphabet-card__cta{padding-inline:1.3rem}.progress{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.7rem 1.4rem;background:#fffdf7e6;border:4px solid var(--ink);border-radius:var(--radius-pill);box-shadow:var(--shadow-soft);max-width:100%}.progress__label{margin:0;font-family:var(--font-display);font-weight:800;font-size:clamp(1rem,.9rem + .4vw,1.25rem);color:var(--ink)}.progress__dots{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem;margin:0;padding:0;list-style:none}.progress__dot{font-size:clamp(1.2rem,1rem + .6vw,1.6rem);line-height:1;color:#b3a284;transition:transform .2s ease,color .2s ease}.progress__dot.is-done{color:var(--leaf)}.progress__dot.is-current{color:var(--coral);transform:scale(1.35)}.progress--dense .progress__dots{gap:.15rem .22rem}.progress--dense .progress__dot{font-size:clamp(.85rem,.7rem + .45vw,1.15rem)}.progress--dense .progress__dot.is-current{transform:scale(1.45)}.home__hero{text-align:center;padding:clamp(.5rem,3vw,2rem) 0 clamp(1.5rem,4vw,2.5rem)}.home__title{display:flex;flex-wrap:wrap;justify-content:center;gap:0 .5rem;font-size:clamp(2.4rem,1.6rem + 5.5vw,5.2rem);line-height:1.05;margin-bottom:.4rem}.home__title-word{animation:bounce-soft 3.4s ease-in-out infinite;color:var(--ink);text-shadow:3px 3px 0 #fff,6px 6px 0 rgba(61,42,18,.18)}.home__title-word:nth-child(1){color:var(--coral)}.home__title-word:nth-child(2){color:var(--berry)}.home__title-word:nth-child(3){color:#1782d4}.home__title-word:nth-child(4){color:var(--leaf)}.home__subtitle{font-family:var(--font-display);font-weight:700;font-size:clamp(1.2rem,1rem + 1.2vw,2rem);color:var(--ink-soft);margin:0 0 1.4rem}.home__hero-actions{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.4rem}.home__progress{display:flex;flex-direction:column;align-items:center;gap:.8rem}.home__replay{min-height:58px;font-size:1rem}.home__grid{list-style:none;margin:0;padding:0;display:grid;gap:clamp(1rem,2.5vw,1.8rem);grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}@media (max-width: 600px){.home__grid{grid-template-columns:repeat(2,1fr);gap:.9rem}}@media (max-width: 380px){.home__grid{grid-template-columns:1fr}}@media (min-width: 1000px){.home__grid{grid-template-columns:repeat(5,1fr)}}.word-card-item{list-style:none;display:flex}.word-card{--word-soft: #fff3cf;--word-strong: #e8a317;--word-ink: #7a4d05;flex:1;font-family:inherit;display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:1.2rem 1rem 1rem;background:var(--word-soft);border:5px solid var(--ink);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:center;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.word-card:hover,.word-card:focus-visible{transform:translateY(-6px) rotate(-.8deg);box-shadow:0 14px #00000017,0 22px 34px #3d2a1233}.word-card:active{transform:translateY(3px);box-shadow:0 4px #00000017}.word-card.is-active{background:#fff;box-shadow:0 0 0 5px var(--word-strong),0 10px #00000014,0 18px 30px #3d2a122e}.word-card.is-active .word-card__emoji{transform:scale(1.08)}.word-card__emoji{font-size:clamp(3rem,9vw,4.4rem);line-height:1;transition:transform .2s ease}.word-card__word{font-family:var(--font-display);font-weight:800;font-size:clamp(1.15rem,1rem + .7vw,1.6rem);color:var(--word-ink)}.video-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:1rem;background:#1f14069e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.video-modal__panel{width:min(880px,100%);background:var(--paper);border:6px solid var(--ink);border-radius:var(--radius-card);box-shadow:0 20px 50px #0006;overflow:hidden}.video-modal__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem .9rem 1.4rem;background:var(--sun);border-bottom:5px solid var(--ink)}.video-modal__title{font-size:clamp(1.2rem,1rem + .9vw,1.7rem);color:var(--ink)}.video-modal__close{flex:none;width:var(--touch);height:var(--touch);font-size:1.6rem;font-weight:800;display:grid;place-items:center;background:var(--paper);border:4px solid var(--ink);border-radius:50%;cursor:pointer;box-shadow:0 4px #3d2a1259;transition:transform .14s ease}.video-modal__close:hover{transform:translateY(-2px) rotate(8deg)}.video-modal__close:active{transform:translateY(3px)}.video-modal__stage{background:#10202e;aspect-ratio:16 / 9;display:grid;place-items:center}.video-modal__video{width:100%;height:100%;object-fit:contain;background:#10202e}.video-modal__empty{text-align:center;color:#fff;padding:1.5rem}.video-modal__empty-emoji{font-size:clamp(3.5rem,12vw,6rem);display:block}.video-modal__empty-text{font-family:var(--font-display);font-weight:800;font-size:clamp(1.3rem,1rem + 1.2vw,2rem);margin:.6rem 0 .3rem}.video-modal__empty-hint{margin:0;font-size:.95rem;opacity:.8}.video-modal__empty-hint code{background:#ffffff26;padding:.15em .45em;border-radius:6px}.letter-page{--page-soft: #fff3cf;--page-mid: #ffd166;--page-strong: #e8a317;--page-ink: #7a4d05}.letter-page__progress{display:flex;justify-content:center;margin-bottom:1.4rem}.letter-page__body{display:flex;align-items:center;gap:clamp(.4rem,2vw,1.2rem)}.letter-page__hero{flex:1;min-width:0;text-align:center;padding:clamp(1.4rem,4vw,2.6rem) clamp(1rem,4vw,2.5rem) clamp(1.6rem,4vw,2.4rem);background:radial-gradient(120% 60% at 50% 0%,#fff 0 42%,transparent 43%),linear-gradient(175deg,var(--page-soft) 0%,var(--page-mid) 100%)}.letter-page__letters{margin:0;display:flex;align-items:baseline;justify-content:center;gap:.5rem;font-family:var(--font-display);font-weight:800;line-height:1;color:var(--page-ink);text-shadow:4px 4px 0 rgba(255,255,255,.9)}.letter-page__upper{font-size:clamp(5rem,20vw,10rem);display:inline-block}.letter-page__lower{font-size:clamp(3rem,12vw,6rem);opacity:.85}.letter-page__headline{margin:.6rem 0 .2rem;font-size:clamp(1.5rem,1.1rem + 2.4vw,2.8rem);color:var(--ink)}.letter-page__word{color:var(--page-strong)}.letter-page__illustration{margin:.6rem auto 1.2rem;width:clamp(190px,46vw,300px);height:clamp(190px,46vw,300px);display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff 0 28%,var(--page-soft) 29% 72%,var(--page-mid) 73%);border:7px solid var(--ink);box-shadow:var(--shadow-card)}.letter-page__illustration-emoji{font-size:clamp(7rem,26vw,11rem);line-height:1;filter:drop-shadow(0 8px 10px rgba(0,0,0,.18))}.letter-page__speakers{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}.letter-page__more{margin-top:2.2rem}.letter-page__more-title{text-align:center;font-size:clamp(1.3rem,1.1rem + 1vw,2rem);color:var(--ink);margin-bottom:1rem}.letter-page__word-grid{list-style:none;margin:0;padding:0;display:grid;gap:clamp(.8rem,2.5vw,1.4rem);grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.letter-page__watch{display:flex;justify-content:center;margin-top:2rem}@media (min-width: 900px){.letter-page__word-grid{grid-template-columns:repeat(4,1fr)}}.letter-arrow{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;width:clamp(64px,11vw,108px);height:clamp(64px,11vw,108px);border-radius:50%;background:var(--paper);border:6px solid var(--ink);box-shadow:0 7px #3d2a1259;color:var(--ink);text-decoration:none;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.letter-arrow:hover{transform:translateY(-4px) scale(1.04);box-shadow:0 11px #3d2a1259;background:var(--page-soft)}.letter-arrow:active{transform:translateY(4px);box-shadow:0 2px #3d2a1259}.letter-arrow__chevron{font-family:var(--font-display);font-weight:800;font-size:clamp(1.9rem,4.5vw,3rem);line-height:1}.letter-arrow__letter{font-family:var(--font-display);font-weight:800;font-size:clamp(.95rem,2vw,1.4rem);line-height:1;color:var(--page-ink)}.letter-arrow.is-empty{border:none;background:none;box-shadow:none;pointer-events:none}.letter-page__home{display:flex;justify-content:center;margin-top:1.4rem}@media (max-width: 620px){.letter-page__body{gap:.25rem}.letter-arrow{width:58px;height:58px;border-width:5px}.letter-arrow__letter{font-size:.85rem}.letter-page__hero{padding-inline:.75rem}}.book{--book-soft: #fff3cf;--book-mid: #ffd166;--book-strong: #e8a317;--book-ink: #7a4d05;display:flex;flex-direction:column;align-items:center;gap:1.4rem}.book__stage{position:relative;width:min(760px,100%);perspective:1600px}.book__spine{position:absolute;top:12px;right:-10px;bottom:-12px;left:-10px;background:linear-gradient(90deg,#e8d5b0,#f6ecd8);border:5px solid var(--ink);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);z-index:0}.book__page{position:relative;z-index:1;text-align:center;padding:clamp(1.4rem,4vw,2.4rem) clamp(1rem,4vw,2.2rem) clamp(1.6rem,4vw,2.2rem);background:radial-gradient(130% 55% at 50% 0%,#fff 0 45%,transparent 46%),linear-gradient(175deg,var(--book-soft) 0%,var(--book-mid) 100%);border:6px solid var(--ink);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transform-origin:left center;backface-visibility:hidden}@keyframes page-turn-next{0%{transform:rotateY(-42deg);opacity:.4}to{transform:rotateY(0);opacity:1}}@keyframes page-turn-prev{0%{transform:rotateY(42deg);opacity:.4}to{transform:rotateY(0);opacity:1}}.book__page.is-turning-next{animation:page-turn-next .5s ease-out}.book__page.is-turning-prev{animation:page-turn-prev .5s ease-out;transform-origin:right center}.book__page-number{margin:0 0 .4rem;font-family:var(--font-display);font-weight:700;color:var(--book-ink);opacity:.85}.book__letters{margin:0;display:flex;align-items:baseline;justify-content:center;gap:.4rem;font-family:var(--font-display);font-weight:800;line-height:1;color:var(--book-ink);text-shadow:4px 4px 0 rgba(255,255,255,.9)}.book__upper{font-size:clamp(4rem,16vw,7.5rem)}.book__lower{font-size:clamp(2.6rem,10vw,4.6rem);opacity:.85}.book__emoji{display:block;margin:.6rem auto;font-size:clamp(5.5rem,22vw,9rem);line-height:1;filter:drop-shadow(0 8px 10px rgba(0,0,0,.18))}.book__caption{font-size:clamp(1.4rem,1.1rem + 1.6vw,2.4rem);color:var(--ink);margin-bottom:1.2rem}.book__actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}.book__nav{display:flex;gap:clamp(.6rem,3vw,1.4rem);justify-content:center;flex-wrap:wrap;width:100%}.book__nav-btn{min-width:200px}.book__end{font-family:var(--font-display);font-weight:800;font-size:clamp(1.1rem,1rem + .6vw,1.5rem);background:var(--paper);border:4px solid var(--ink);border-radius:var(--radius-pill);padding:.7rem 1.5rem;box-shadow:var(--shadow-soft);margin:0}@media (max-width: 520px){.book__nav-btn{flex:1 1 100%}}:root{--sky-top: #bfe9ff;--sky-bottom: #ffeec2;--grass: #b6e8a1;--paper: #fffdf7;--ink: #3d2a12;--ink-soft: #6b5537;--sun: #ffd166;--coral: #ff7a90;--leaf: #4cc38a;--berry: #7a4ddb;--radius-card: 34px;--radius-pill: 999px;--shadow-card: 0 10px 0 rgba(0, 0, 0, .08), 0 18px 34px rgba(61, 42, 18, .16);--shadow-soft: 0 8px 22px rgba(61, 42, 18, .14);--touch: 64px;--font-display: "Baloo 2", "Comic Sans MS", "Trebuchet MS", system-ui, sans-serif;--font-body: "Fredoka", "Baloo 2", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-body);font-size:clamp(1.05rem,.9rem + .6vw,1.35rem);color:var(--ink);background:linear-gradient(180deg,var(--sky-top) 0%,#e8f4ff 45%,var(--sky-bottom) 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased;overflow-x:hidden}h1,h2,h3{font-family:var(--font-display);margin:0;line-height:1.1}img{max-width:100%;display:block}.app{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.page{width:min(1180px,100%);margin:0 auto;padding:1rem clamp(1rem,4vw,2.5rem) 4rem;flex:1}.btn{font-family:var(--font-display);font-weight:800;font-size:clamp(1.05rem,.95rem + .4vw,1.3rem);min-height:var(--touch);padding:.7rem 1.6rem;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:4px solid var(--ink);border-radius:var(--radius-pill);background:var(--sun);color:var(--ink);cursor:pointer;text-decoration:none;box-shadow:0 6px #3d2a1259;transition:transform .14s ease,box-shadow .14s ease,background .2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.btn:hover{transform:translateY(-3px);box-shadow:0 9px #3d2a1259}.btn:active{transform:translateY(4px);box-shadow:0 2px #3d2a1259}.btn--coral{background:var(--coral);color:#fff}.btn--leaf{background:var(--leaf);color:#08351f}.btn--berry{background:var(--berry);color:#fff}.btn--paper{background:var(--paper)}.btn--big{font-size:clamp(1.2rem,1rem + .8vw,1.7rem);min-height:78px;padding:.8rem 2.2rem}.btn[disabled],.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:0 6px #3d2a1233}:focus-visible{outline:5px solid #1b4dd8;outline-offset:4px;border-radius:8px}.skip-link{position:absolute;left:50%;top:-100px;transform:translate(-50%);z-index:50;background:var(--paper);border:4px solid var(--ink);border-radius:var(--radius-pill);padding:.8rem 1.6rem;font-family:var(--font-display);font-weight:800;transition:top .2s ease}.skip-link:focus{top:12px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.card{background:var(--paper);border:5px solid var(--ink);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}@keyframes bounce-soft{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes float-soft{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-12px) rotate(1.5deg)}}@keyframes twinkle{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:.9;transform:scale(1.08)}}@keyframes drift{0%{transform:translate(-20vw)}to{transform:translate(120vw)}}@keyframes pop-in{0%{opacity:0;transform:scale(.9) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}.anim-float{animation:float-soft 6s ease-in-out infinite}.anim-bounce{animation:bounce-soft 3.2s ease-in-out infinite}.anim-pop{animation:pop-in .45s ease-out both}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
