:root{--ink: #0f172a;--ink-soft: #33415c;--ink-muted: #64748b;--blue: #2563eb;--blue-dark: #1d4ed8;--blue-soft: #dbeafe;--blue-tint: #eff6ff;--amber: #f59e0b;--amber-dark: #c2410c;--amber-soft: #fef3c7;--pink: #ec4899;--pink-soft: #fce7f3;--mint: #10b981;--mint-soft: #d1fae5;--red: #dc2626;--red-soft: #fee2e2;--surface: #ffffff;--muted: #f5f8ff;--border: #e0eafc;--border-strong: #c7d9f8;--radius-sm: 12px;--radius: 18px;--radius-lg: 26px;--radius-xl: 34px;--shadow-clay: 0 10px 0 -4px #d9e6fb, 0 22px 38px -20px rgba(15, 23, 42, .35), inset 0 2px 0 #fff;--shadow-lift: 0 16px 0 -4px #d3e2fa, 0 30px 46px -22px rgba(15, 23, 42, .4), inset 0 2px 0 #fff;--shadow-sm: 0 4px 0 -1px #e3ecfd, 0 10px 20px -14px rgba(15, 23, 42, .4);--font-display: "Baloo 2", "Trebuchet MS", system-ui, sans-serif;--font-body: "Comic Neue", "Segoe UI", system-ui, sans-serif;--icon-sm: 16px;--icon-md: 20px;--icon-lg: 26px;color-scheme:light}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:17px;line-height:1.6;color:var(--ink-soft);background:var(--blue-tint);min-height:100dvh;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(38rem 26rem at 12% -8%,rgba(245,158,11,.22),transparent 70%),radial-gradient(34rem 24rem at 92% 4%,rgba(236,72,153,.16),transparent 72%),radial-gradient(40rem 30rem at 60% 100%,rgba(37,99,235,.14),transparent 70%);z-index:0}h1,h2,h3,h4{font-family:var(--font-display);font-weight:800;color:var(--ink);line-height:1.1;letter-spacing:-.015em}h2{font-size:clamp(1.7rem,3.4vw,2.5rem)}h3{font-size:clamp(1.15rem,2vw,1.4rem)}p{max-width:68ch}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:var(--blue);text-decoration:none}:focus-visible{outline:3px solid rgba(37,99,235,.55);outline-offset:3px;border-radius:6px}::selection{background:var(--amber-soft);color:var(--ink)}.container{width:min(1180px,100% - 2.5rem);margin-inline:auto}.section{position:relative;z-index:1;padding-block:clamp(2.5rem,5vw,4.5rem)}.section-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.75rem}.section-head p{color:var(--ink-muted);max-width:52ch;margin-top:.4rem}.eyebrow{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-display);font-weight:700;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);background:var(--blue-soft);padding:.35rem .8rem;border-radius:999px}.eyebrow.amber{background:var(--amber-soft);color:#92400e}.eyebrow.pink{background:var(--pink-soft);color:#9d174d}.clay{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-clay);border:2px solid #fff}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-display);font-weight:700;font-size:1rem;padding:.7rem 1.35rem;border-radius:999px;color:var(--ink);background:#fff;box-shadow:0 5px #dbe6fa,0 10px 18px -12px #0f172a80;transition:transform .16s ease,box-shadow .16s ease,background .16s ease;border:2px solid #fff;min-height:44px;white-space:nowrap}.btn:hover{transform:translateY(-2px);box-shadow:0 8px #dbe6fa,0 16px 24px -14px #0f172a80}.btn:active{transform:translateY(3px);box-shadow:0 2px #dbe6fa}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:0 4px #e8eefb}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 5px 0 var(--blue-dark),0 12px 22px -12px #2563ebb3}.btn-primary:hover{background:#1f5aef;box-shadow:0 8px 0 var(--blue-dark),0 18px 26px -12px #2563ebb3}.btn-primary:active{box-shadow:0 2px 0 var(--blue-dark)}.btn-amber{background:var(--amber);color:#3b2408;box-shadow:0 5px 0 var(--amber-dark),0 12px 22px -12px #f59e0bb3}.btn-amber:hover{background:#ffa713;box-shadow:0 8px 0 var(--amber-dark)}.btn-amber:active{box-shadow:0 2px 0 var(--amber-dark)}.btn-pink{background:var(--pink);color:#fff;box-shadow:0 5px #be185d,0 12px 22px -12px #ec4899b3}.btn-pink:hover{background:#f45fa9}.btn-pink:active{box-shadow:0 2px #be185d}.btn-sm{font-size:.88rem;padding:.45rem 1rem;min-height:38px}.btn-ghost{background:#ffffffb3;box-shadow:none;border:2px solid var(--border-strong)}.btn-ghost:hover{background:#fff;box-shadow:0 4px #e6eefc}.chip{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;font-family:var(--font-display);padding:.3rem .75rem;border-radius:999px;background:var(--muted);color:var(--ink-muted);border:2px solid var(--border);cursor:pointer;transition:all .16s ease;min-height:36px}.chip:hover{background:var(--blue-soft);color:var(--blue-dark);border-color:var(--border-strong)}.chip.active{background:var(--blue);color:#fff;border-color:var(--blue-dark);box-shadow:0 3px 0 var(--blue-dark)}.chip-row{display:flex;flex-wrap:wrap;gap:.5rem}.badge{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-display);font-weight:700;font-size:.74rem;padding:.22rem .62rem;border-radius:999px;background:var(--blue-soft);color:var(--blue-dark);text-transform:uppercase;letter-spacing:.05em}.badge.amber{background:var(--amber-soft);color:#92400e}.badge.pink{background:var(--pink-soft);color:#9d174d}.badge.mint{background:var(--mint-soft);color:#047857}.badge.red{background:var(--red-soft);color:#b91c1c}.navbar{position:sticky;top:0;z-index:40;background:#eff6ffd1;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:2px solid rgba(199,217,248,.6)}.nav-inner{display:flex;align-items:center;gap:1rem;height:74px}.brand{display:flex;align-items:center;gap:.65rem}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(150deg,#3b82f6,var(--blue-dark));color:#fff;box-shadow:0 4px #1e40af,inset 0 2px #fff6}.brand-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}.brand-text strong{font-family:var(--font-display);font-weight:800;font-size:1.22rem;color:var(--ink)}.brand-text small{font-size:.7rem;color:var(--ink-muted);letter-spacing:.04em}.nav-links{display:flex;gap:.2rem;margin-inline-start:auto}.nav-link{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--ink-soft);padding:.5rem .8rem;border-radius:999px;transition:background .16s ease,color .16s ease}.nav-link:hover{background:#fff;color:var(--blue-dark)}.nav-actions{display:flex;align-items:center;gap:.55rem}.stars-pill{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:700;font-size:.85rem;color:#92400e;background:var(--amber-soft);padding:.35rem .7rem;border-radius:999px;border:2px solid #fde68a}.nav-toggle{display:none;padding:.5rem;border-radius:12px;background:#fff;box-shadow:var(--shadow-sm)}.mobile-menu{display:grid;gap:.2rem;padding:.75rem 1.25rem 1rem;background:#fff;border-top:2px solid var(--border)}.mobile-menu .nav-link{text-align:left;padding:.7rem .5rem}.hero{position:relative;z-index:1;padding-block:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,3vw,2.5rem)}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:center}.hero-copy h1{margin-block:1rem .9rem;font-size:clamp(2rem,4.6vw,3.3rem)}.hero-copy h1 .hl{color:var(--blue);position:relative}.hero-copy h1 .hl:after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.18em;background:var(--amber);opacity:.45;border-radius:999px;z-index:-1}.hero-copy>p{font-size:1.05rem;color:var(--ink-soft);max-width:56ch}.hero-cta{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.4rem}.hero-stats{display:flex;flex-wrap:wrap;gap:1.4rem;list-style:none;margin-top:1.7rem}.hero-stats li{display:flex;flex-direction:column}.hero-stats strong{font-family:var(--font-display);font-size:1.5rem;color:var(--ink);line-height:1}.hero-stats span{font-size:.78rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.08em}.hero-art{position:relative;min-height:380px;display:grid;place-items:center}.spotlight-card{position:relative;z-index:2;width:min(340px,100%);padding:1.4rem 1.5rem 1.2rem;background:#fff;transform:rotate(-2deg);animation:floaty 7s ease-in-out infinite}.spotlight-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.icon-btn{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--muted);color:var(--blue-dark);border:2px solid var(--border);transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.icon-btn:hover{background:var(--blue-soft);transform:translateY(-2px);box-shadow:0 4px #dbe6fa}.icon-btn:active{transform:translateY(1px);box-shadow:none}.icon-btn.small{width:32px;height:32px}.spotlight-word{font-family:var(--font-display);font-weight:800;font-size:1.9rem;color:var(--ink);margin-top:.8rem;line-height:1.1}.spotlight-def{font-size:.95rem;color:var(--ink-soft);margin-top:.35rem;min-height:3.2em}.spotlight-foot{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.9rem}.art-tile{position:absolute;display:grid;place-items:center;width:62px;height:62px;border-radius:20px;background:#fff;color:var(--blue);box-shadow:var(--shadow-clay);border:2px solid #fff}.tile-a{top:4%;left:2%;transform:rotate(-10deg);color:var(--blue)}.tile-b{top:14%;right:4%;transform:rotate(9deg);color:var(--amber);animation:floaty 6s ease-in-out infinite .4s}.tile-c{bottom:8%;left:8%;transform:rotate(7deg);color:var(--pink);animation:floaty 8s ease-in-out infinite .8s}.float-pill{position:absolute;z-index:3;font-family:var(--font-display);font-weight:700;font-size:.8rem;padding:.45rem .8rem;border-radius:999px;background:#fff;box-shadow:var(--shadow-sm);display:inline-flex;align-items:center;gap:.3rem;border:2px solid #fff}.pill-stars{bottom:16%;right:0;color:#92400e;background:var(--amber-soft);transform:rotate(-3deg)}.pill-level{top:2%;right:22%;color:var(--blue-dark);background:var(--blue-soft);animation:floaty 5s ease-in-out infinite}@keyframes floaty{0%,to{translate:0 0}50%{translate:0 -9px}}.levels{padding-top:clamp(1rem,2vw,2rem)}.level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.1rem}.level-card{padding:1.3rem 1.35rem;text-align:left;display:flex;flex-direction:column;gap:.45rem;transition:transform .18s ease,box-shadow .18s ease}.level-card:hover{transform:translateY(-4px)}.level-card.active{box-shadow:0 10px 0 -2px var(--blue),0 26px 40px -24px #2563ebcc,inset 0 2px #fff}.level-top{display:flex;align-items:center;gap:.5rem}.level-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:15px;background:var(--blue-soft);color:var(--blue-dark)}.level-icon.l2{background:var(--amber-soft);color:#b45309}.level-icon.l3{background:var(--pink-soft);color:#9d174d}.level-check{margin-inline-start:auto;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--mint);color:#fff}.level-card h3{margin-top:.35rem}.level-card p{font-size:.92rem;color:var(--ink-muted)}.level-dots{display:flex;gap:.3rem;margin-top:.5rem}.level-dots i{width:26px;height:7px;border-radius:999px;background:var(--border)}.level-dots i.on{background:var(--blue)}.level-card:nth-child(2) .level-dots i.on{background:var(--amber)}.level-card:nth-child(3) .level-dots i.on{background:var(--pink)}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:1.1rem}.game-card{padding:1.3rem 1.35rem;display:flex;flex-direction:column;gap:.55rem;animation:fadeUp .5s ease both;transition:transform .18s ease,box-shadow .18s ease}.game-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lift)}.game-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.game-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--blue-soft);color:var(--blue-dark);box-shadow:inset 0 -3px #2563eb29}.tone-blue{background:var(--blue-soft);color:var(--blue-dark)}.tone-amber{background:var(--amber-soft);color:#b45309}.tone-pink{background:var(--pink-soft);color:#9d174d}.tone-mint{background:var(--mint-soft);color:#047857}.tone-violet{background:#ede9fe;color:#6d28d9}.game-card h3{font-size:1.28rem}.game-blurb{font-size:.93rem;color:var(--ink-muted);flex:1}.game-meta{display:flex;flex-wrap:wrap;gap:.55rem;font-size:.76rem;color:var(--ink-muted);font-weight:700}.game-meta span{display:inline-flex;align-items:center;gap:.25rem}.game-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.35rem;padding-top:.8rem;border-top:2px dashed var(--border)}.stars-best{display:inline-flex;gap:.15rem;color:#cbd5e1}.stars-best .lit{color:var(--amber)}.game-play{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:700;font-size:.95rem;color:var(--blue-dark);padding:.35rem .7rem;border-radius:999px;transition:background .16s ease,gap .16s ease,transform .16s ease}.game-play:hover{background:var(--blue-soft);gap:.6rem;transform:translate(2px)}.bank-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;margin-bottom:1.3rem}.search-box{display:flex;align-items:center;gap:.5rem;background:#fff;border:2px solid var(--border);border-radius:999px;padding:.35rem .5rem .35rem .9rem;min-width:270px;color:var(--ink-muted);box-shadow:var(--shadow-sm)}.search-box input{border:none;background:transparent;outline:none;padding:.35rem 0;font-size:.95rem;color:var(--ink);width:100%}.search-box button{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:var(--ink-muted)}.search-box button:hover{background:var(--muted)}.word-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:.9rem}.word-card{background:#fff;border-radius:var(--radius);padding:1rem 1.05rem;border:2px solid #fff;box-shadow:0 6px 0 -3px #dbe6fa,0 12px 22px -18px #0f172a80;transition:transform .16s ease,box-shadow .16s ease;display:flex;flex-direction:column;gap:.35rem}.word-card:hover{transform:translateY(-3px);box-shadow:0 9px 0 -3px #d3e2fa,0 18px 26px -18px #0f172a80}.word-card-top{display:flex;align-items:center;justify-content:space-between}.word-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px}.word-icon.cat-buildings{background:var(--blue-soft);color:var(--blue-dark)}.word-icon.cat-sports{background:var(--mint-soft);color:#047857}.word-card h4{font-family:var(--font-display);font-size:1.1rem;color:var(--ink);line-height:1.2}.word-card p{font-size:.86rem;color:var(--ink-muted)}.word-tags{display:flex;gap:.3rem;margin-top:auto;padding-top:.4rem}.empty{padding:2.5rem;text-align:center;display:grid;gap:.6rem;justify-items:center;color:var(--ink-muted)}.teacher-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}.teacher-grid .lead{font-size:1.02rem;margin-block:.6rem 1.2rem}.step-list{list-style:none;display:grid;gap:.9rem}.step-list li{display:flex;gap:.9rem;align-items:flex-start}.step-n{font-family:var(--font-display);font-weight:800;font-size:.9rem;color:var(--blue-dark);background:var(--blue-soft);border-radius:12px;padding:.45rem .55rem;line-height:1;box-shadow:inset 0 -3px #2563eb26}.step-list h3{font-size:1.08rem}.step-list p{font-size:.93rem;color:var(--ink-muted);margin-top:.1rem}.teacher-card{padding:1.5rem;display:flex;flex-direction:column;gap:.8rem}.teacher-card-head{display:flex;align-items:center;justify-content:space-between}.diff-list{list-style:none;display:grid;gap:.55rem;font-size:.92rem;color:var(--ink-soft)}.diff-list li{padding-left:1.1rem;position:relative}.diff-list li:before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--amber)}.diff-list strong{color:var(--ink);font-family:var(--font-display)}.teacher-tip{display:flex;gap:.6rem;align-items:flex-start;background:var(--mint-soft);color:#065f46;padding:.8rem .9rem;border-radius:var(--radius-sm);font-size:.88rem}.teacher-tip svg{flex-shrink:0;margin-top:2px}.teacher-foot{display:flex;flex-wrap:wrap;gap:1rem;font-size:.78rem;font-weight:700;color:var(--ink-muted);border-top:2px dashed var(--border);padding-top:.7rem}.teacher-foot span{display:inline-flex;align-items:center;gap:.3rem}.footer{position:relative;z-index:1;margin-top:2rem;background:#ffffffb3;border-top:2px solid var(--border);padding-block:1.8rem 1.2rem}.footer-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.footer-brand{display:flex;gap:.7rem;align-items:center}.footer-brand strong{font-family:var(--font-display);font-size:1.1rem;color:var(--ink)}.footer-brand p{font-size:.82rem;color:var(--ink-muted)}.footer-links{display:flex;flex-wrap:wrap;gap:.4rem}.footer-links button{display:inline-flex;align-items:center;gap:.3rem;font-size:.85rem;font-weight:700;color:var(--ink-soft);padding:.4rem .7rem;border-radius:999px}.footer-links button:hover{background:#fff;color:var(--blue-dark)}.footer-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--border);font-size:.78rem;color:var(--ink-muted)}.footer-love{display:inline-flex;align-items:center;gap:.3rem}.footer-love svg{color:var(--pink)}.game-screen{position:relative;z-index:1;padding-block:1.5rem 3rem;min-height:70vh}.game-bar{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:2px solid #fff;border-radius:var(--radius);padding:.7rem .9rem;box-shadow:var(--shadow-sm);margin-bottom:1.2rem;position:sticky;top:84px;z-index:20}.game-bar-title{display:flex;align-items:center;gap:.7rem;margin-inline-end:auto}.game-bar-title h1{font-size:clamp(1.15rem,2.4vw,1.5rem)}.game-bar-title p{font-size:.76rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.07em}.game-bar-right{display:flex;align-items:center;gap:.5rem}.level-pills{display:flex;gap:.25rem;background:var(--muted);border:2px solid var(--border);border-radius:999px;padding:.2rem}.level-pill{display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-display);font-weight:700;font-size:.8rem;padding:.35rem .6rem;border-radius:999px;color:var(--ink-muted);transition:all .16s ease}.level-pill span{display:none}.level-pill:hover{color:var(--blue-dark)}.level-pill.active{background:var(--blue);color:#fff;box-shadow:0 3px 0 var(--blue-dark)}.level-pill.active span{display:inline}.game-body{animation:fadeUp .35s ease both}.play-card{padding:clamp(1.1rem,2.5vw,1.7rem)}.hud{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem .9rem;margin-bottom:1rem;background:#fff;border-radius:999px;padding:.5rem .9rem;border:2px solid #fff;box-shadow:var(--shadow-sm)}.hud-item{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:700;font-size:.88rem;color:var(--ink-soft)}.hud-item.score{margin-inline-start:auto;color:var(--blue-dark)}.hud-progress{flex:1 1 120px;height:10px;background:var(--muted);border-radius:999px;overflow:hidden;min-width:90px}.hud-progress i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),#60a5fa);transition:width .35s ease}.hud-count{font-family:var(--font-display);font-weight:700;font-size:.82rem;color:var(--ink-muted)}.feedback{display:flex;align-items:center;gap:.5rem;padding:.65rem .9rem;border-radius:var(--radius-sm);font-weight:700;font-size:.9rem;margin-top:1rem}.feedback.ok{background:var(--mint-soft);color:#065f46}.feedback.no{background:var(--red-soft);color:#991b1b}.hint-row{display:flex;align-items:center;gap:.45rem;margin-top:.9rem;font-size:.88rem;color:#92400e;background:var(--amber-soft);padding:.5rem .8rem;border-radius:var(--radius-sm)}.field-error{color:var(--red);font-size:.85rem;font-weight:700;margin-top:.4rem}.result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:1.2rem;background:#0f172a73;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fadeIn .2s ease}.result-card{width:min(520px,100%);padding:2rem 1.8rem;text-align:center;display:grid;gap:.7rem;animation:pop .35s cubic-bezier(.16,1,.3,1)}.result-stars{display:flex;justify-content:center;gap:.4rem;color:var(--amber)}.result-stars .dim{color:#dbe4f3}.result-stars .pop{animation:pop .5s cubic-bezier(.16,1,.3,1) both}.result-card h2{font-size:clamp(1.4rem,3vw,1.9rem)}.result-card p{font-size:.96rem;color:var(--ink-muted);margin-inline:auto}.result-stat{font-family:var(--font-display);font-weight:700;font-size:.85rem;color:var(--blue-dark);background:var(--blue-soft);padding:.4rem .8rem;border-radius:999px;justify-self:center}.result-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:.4rem}.toast-wrap{position:fixed;bottom:1.2rem;right:1.2rem;z-index:100;display:grid;gap:.5rem;max-width:min(340px,90vw)}.toast{display:flex;align-items:center;gap:.5rem;padding:.7rem 1rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:700;background:#fff;box-shadow:var(--shadow-clay);border-left:5px solid var(--mint);animation:slideIn .3s ease}.toast.error{border-left-color:var(--red)}.toast.info{border-left-color:var(--blue)}.toast svg{color:var(--mint);flex-shrink:0}.toast.error svg{color:var(--red)}.toast.info svg{color:var(--blue)}.hunt-wrap{display:grid;gap:1rem}.hunt-map{display:flex;align-items:center;gap:.3rem;padding:.8rem 1rem;position:relative;overflow-x:auto;background:linear-gradient(135deg,#e0f2fe,#eff6ff)}.hunt-route{position:absolute;left:2rem;right:2rem;top:2rem;border-top:3px dashed #93c5fd;z-index:0}.hunt-stop{display:grid;justify-items:center;gap:.25rem;flex:1;min-width:64px;position:relative;z-index:1}.stop-node{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#94a3b8;border:3px solid #dbeafe;transition:all .25s ease}.hunt-stop.current .stop-node{background:var(--amber);color:#3b2408;border-color:#fcd34d;transform:scale(1.12);box-shadow:0 0 0 6px #f59e0b2e}.hunt-stop.done .stop-node{background:var(--mint);color:#fff;border-color:#6ee7b7}.stop-label{font-size:.7rem;font-weight:700;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em}.hunt-keys{margin-inline-start:auto;display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-display);font-weight:700;font-size:.85rem;color:#92400e;background:var(--amber-soft);padding:.3rem .6rem;border-radius:999px;white-space:nowrap;z-index:1}.hunt-card{display:grid;gap:.7rem}.hunt-head{display:flex;align-items:center;gap:.4rem}.hunt-misses{margin-inline-start:auto;font-size:.78rem;font-weight:700;color:var(--red)}.hunt-freeze{font-size:.85rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.07em;font-weight:700}.hunt-clue{font-family:var(--font-display);font-weight:600;font-size:clamp(1.15rem,2.4vw,1.5rem);color:var(--ink);line-height:1.45;max-width:46ch}.hunt-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem;margin-top:.5rem}.hunt-opt{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--ink);padding:.8rem 1rem;border-radius:var(--radius-sm);background:#fff;border:2px solid var(--border);box-shadow:0 4px #e8eefb;text-align:left;transition:all .16s ease;min-height:52px}.hunt-opt:hover:not(:disabled){border-color:var(--blue);background:var(--blue-tint);transform:translateY(-2px);box-shadow:0 6px #dbe6fa}.hunt-opt.right{background:var(--mint-soft);border-color:var(--mint);color:#065f46;box-shadow:0 4px #a7f3d0}.hunt-opt.wrong{background:var(--red-soft);border-color:var(--red);color:#991b1b;box-shadow:0 4px #fecaca}.hunt-opt.muted{opacity:.45}.hunt-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.4rem;border-top:2px dashed var(--border);padding-top:.7rem}.hunt-note{font-size:.82rem;color:var(--ink-muted)}.bank-strip{display:flex;flex-wrap:wrap;gap:.35rem}.bank-chip{font-size:.82rem;font-weight:700;background:var(--muted);border:2px solid var(--border);border-radius:999px;padding:.25rem .65rem;color:var(--ink-soft)}.jig-card{display:grid;gap:1rem}.jig-head{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.jig-actions{margin-inline-start:auto;display:flex;gap:.4rem}.jig-stage{display:grid;grid-template-columns:minmax(0,1fr) 176px;gap:1rem;align-items:start}.jig-grid{display:grid;gap:3px;width:min(100%,540px);aspect-ratio:1;background:#fff;padding:6px;border-radius:var(--radius);box-shadow:inset 0 0 0 2px var(--border)}.jig-tile{position:relative;overflow:hidden;padding:0;border-radius:6px;background:#e2e8f0;box-shadow:inset 0 0 0 1px #ffffffb3;transition:transform .12s ease,box-shadow .12s ease}.jig-tile:hover{box-shadow:inset 0 0 0 3px #93c5fd;z-index:2}.jig-tile.sel{box-shadow:inset 0 0 0 4px var(--amber),0 0 0 3px #fcd34d;z-index:3;transform:scale(.97)}.jig-inner{position:absolute;top:0;left:0}.poster{position:relative;isolation:isolate;width:100%;height:100%;display:grid;place-items:center;align-content:center;gap:.5rem;padding:1.2rem;text-align:center;color:#fff;overflow:hidden}.poster:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.55;background-image:radial-gradient(rgba(255,255,255,.28) 1.6px,transparent 2px);background-size:24px 24px}.poster:after{content:"";position:absolute;z-index:-1;width:62%;aspect-ratio:1;border-radius:50%;border:22px solid rgba(255,255,255,.16);right:-18%;bottom:-26%}.poster>*{position:relative;z-index:1}.poster-buildings{background:radial-gradient(circle at 25% 20%,#60a5fa,transparent 55%),linear-gradient(145deg,#1e3a8a,#2563eb 60%,#38bdf8)}.poster-sports{background:radial-gradient(circle at 78% 22%,#fda4af,transparent 55%),linear-gradient(145deg,#9d174d,#ec4899 55%,#f59e0b)}.poster-icon{opacity:.95;filter:drop-shadow(0 6px 14px rgba(0,0,0,.25));width:clamp(42px,4.4vw,76px);height:auto}.poster-word{font-family:var(--font-display);font-weight:800;font-size:clamp(1.5rem,3.2vw + 1rem,3.2rem);line-height:1.05;text-shadow:0 3px 10px rgba(0,0,0,.3)}.poster-tag{font-size:clamp(.45rem,1.1vw,.62rem);letter-spacing:.22em;font-weight:700;opacity:.85}.jig-preview{padding:.6rem;display:grid;gap:.4rem;justify-items:center;background:#fff}.jig-preview-art{width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden}.jig-tip,.mem-tip,.wb-tip,.sort-tip,.ws-note{font-size:.84rem;color:var(--ink-muted)}.sketch-card{display:grid;gap:.9rem}.sketch-head{display:flex;align-items:center;gap:.5rem}.prompt-box{background:var(--blue-tint);border:2px dashed var(--border-strong);border-radius:var(--radius);padding:.9rem 1rem;display:grid;gap:.2rem;justify-items:start}.prompt-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--ink-muted)}.prompt-word{font-family:var(--font-display);font-size:clamp(1.5rem,4vw,2.1rem);font-weight:800;color:var(--ink);line-height:1.1;text-transform:capitalize}.hidden-word{letter-spacing:.18em;color:var(--border-strong)}.prompt-def{font-size:.95rem;color:var(--ink-soft)}.prompt-note{font-size:.78rem;color:var(--ink-muted);font-style:italic}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1rem;padding:.6rem .8rem;background:var(--muted);border-radius:var(--radius-sm)}.tool-group{display:flex;align-items:center;gap:.35rem}.swatch{width:30px;height:30px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 2px var(--border);transition:transform .14s ease,box-shadow .14s ease}.swatch:hover{transform:scale(1.1)}.swatch.on{box-shadow:0 0 0 3px var(--blue);transform:scale(1.08)}.tool{display:inline-flex;align-items:center;gap:.3rem;font-size:.82rem;font-weight:700;padding:.4rem .6rem;border-radius:var(--radius-sm);color:var(--ink-soft);background:#fff;border:2px solid var(--border);min-height:38px}.tool:hover{background:var(--blue-soft);color:var(--blue-dark)}.tool.on{background:var(--blue);color:#fff;border-color:var(--blue-dark)}.range{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:700;color:var(--ink-muted)}.range input{width:90px;accent-color:var(--blue)}.canvas-frame{border-radius:var(--radius);overflow:hidden;border:3px solid #fff;box-shadow:0 0 0 2px var(--border),0 14px 30px -22px #0f172a99;background:#fff}.draw-canvas{display:block;width:100%;height:auto;touch-action:none;cursor:crosshair}.guess-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.guess-row input{flex:1 1 220px;padding:.7rem 1rem;border-radius:var(--radius-sm);border:2px solid var(--border);background:#fff;outline:none}.guess-row input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #2563eb2e}.shake{animation:shake .35s ease}.cw-topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.8rem}.cw-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.cw-status{font-size:.86rem;font-weight:700;color:var(--ink-soft);background:#fff;border-radius:999px;padding:.35rem .8rem;justify-self:start;margin-bottom:.6rem;display:inline-block}.cw-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1rem;align-items:start}.cw-grid-wrap{padding:.8rem;overflow:auto;max-height:72vh;background:#fff}.cw-grid{display:grid;grid-template-columns:repeat(var(--cols),var(--cw-cell));grid-template-rows:repeat(var(--rows),var(--cw-cell));gap:2px;width:max-content}.cw-block{background:transparent}.cw-cell{position:relative;background:#fff;box-shadow:inset 0 0 0 1.5px #cbd5e1;border-radius:4px}.cw-cell.in-entry{background:var(--blue-tint);box-shadow:inset 0 0 0 1.5px #93c5fd}.cw-cell.bad{background:#fee2e2;box-shadow:inset 0 0 0 2px #f87171}.cw-num{position:absolute;top:0;left:2px;font-size:8px;font-weight:700;color:var(--ink-muted);line-height:1;pointer-events:none}.cw-cell input{width:100%;height:100%;border:none;background:transparent;text-align:center;font-family:var(--font-display);font-weight:700;font-size:calc(var(--cw-cell) * .55);color:var(--ink);text-transform:uppercase;padding:0;outline:none;border-radius:4px}.cw-cell input:focus{background:#fef3c7;box-shadow:inset 0 0 0 2px var(--amber)}.cw-clues{padding:1rem;display:grid;gap:1rem;background:#fff;max-height:72vh;overflow:auto}.cw-clue-group h4{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:var(--blue-dark);margin-bottom:.35rem}.cw-clue-group ul{list-style:none;display:grid;gap:.15rem}.clue{text-align:left;font-size:.82rem;line-height:1.4;padding:.25rem .35rem;border-radius:8px;color:var(--ink-soft);width:100%}.clue:hover{background:var(--blue-tint)}.clue.on{background:var(--amber-soft);color:#78350f}.clue b{color:var(--ink);margin-inline-end:.15rem}.clue i{color:var(--ink-muted);font-style:normal;font-size:.75rem}.cw-note{font-size:.78rem;color:var(--ink-muted);border-top:2px dashed var(--border);padding-top:.6rem}.mem-wrap{display:grid;gap:.8rem;justify-items:center}.mem-grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:clamp(.4rem,1.4vw,.7rem);width:min(100%,760px)}.mem-card{position:relative;aspect-ratio:4 / 5;perspective:900px;padding:0}.mem-inner{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d;transition:transform .38s cubic-bezier(.2,.8,.3,1)}.mem-card.flipped .mem-inner{transform:rotateY(180deg)}.mem-face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;display:grid;place-items:center;padding:.4rem;text-align:center;backface-visibility:hidden;overflow:hidden}.mem-back{background:linear-gradient(150deg,#3b82f6,#1e40af);color:#fff;box-shadow:0 5px #1e3a8a,inset 0 2px #ffffff59}.mem-card:hover .mem-back{filter:brightness(1.08)}.mem-front{transform:rotateY(180deg);background:#fff;box-shadow:inset 0 0 0 2px var(--border),0 4px #e2e9f8;font-size:clamp(.62rem,1.2vw,.8rem);line-height:1.25;color:var(--ink-soft)}.mem-front.word{font-family:var(--font-display);font-weight:800;font-size:clamp(.7rem,1.5vw,1rem);color:var(--ink)}.mem-card.matched .mem-front{background:var(--mint-soft);box-shadow:inset 0 0 0 2px var(--mint)}.mem-tip{text-align:center;max-width:46ch}.ws-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}.ws-grid-wrap{padding:.8rem;display:grid;place-items:center;background:#fff}.ws-grid{display:grid;grid-template-columns:repeat(var(--size),minmax(0,1fr));gap:2px;width:min(100%,600px);aspect-ratio:1}.ws-cell{display:grid;place-items:center;aspect-ratio:1;font-family:var(--font-display);font-weight:700;font-size:clamp(.55rem,1.35vw,.92rem);color:var(--ink-soft);background:#fff;border-radius:6px;box-shadow:inset 0 0 0 1px #e6edfa;transition:background .12s ease,color .12s ease,transform .12s ease}.ws-cell:hover{background:var(--blue-tint)}.ws-cell.start{background:var(--amber);color:#3b2408;box-shadow:0 0 0 2px #fbbf24}.ws-cell.sel{background:var(--amber-soft);color:#92400e}.ws-cell.found{background:var(--mint-soft);color:#047857;box-shadow:inset 0 0 0 2px #6ee7b7}.ws-list{padding:1rem;background:#fff}.ws-list h4{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;color:var(--blue-dark);margin-bottom:.5rem}.ws-list ul{list-style:none;display:grid;gap:.3rem}.ws-list li{display:flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:700;color:var(--ink-soft)}.ws-list li .dot{width:7px;height:7px;border-radius:50%;background:var(--border-strong)}.ws-list li.got{color:#047857}.ws-list li i{margin-inline-start:auto;font-style:normal;font-size:.66rem;color:var(--ink-muted);text-align:right;max-width:48%}.ws-note{margin-top:.8rem;border-top:2px dashed var(--border);padding-top:.6rem}.wb-card{display:grid;gap:1rem;max-width:820px;margin-inline:auto}.wb-head{display:flex;align-items:center;gap:.6rem}.wb-lives{display:flex;gap:.15rem;margin-inline-start:auto;color:var(--pink)}.wb-lives .dim{color:#e2e8f0}.wb-def{display:flex;gap:.5rem;align-items:flex-start;background:var(--blue-tint);border-radius:var(--radius-sm);padding:.7rem .9rem;font-size:.92rem;color:var(--ink-soft)}.wb-def svg{color:var(--amber);flex-shrink:0;margin-top:3px}.wb-word{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;padding:.6rem 0}.wb-slot{width:clamp(30px,4.2vw,44px);height:clamp(40px,5.6vw,56px);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:clamp(1rem,2.2vw,1.4rem);color:var(--ink);background:#fff;border-radius:10px;box-shadow:inset 0 -4px #dbe6fa,inset 0 0 0 2px var(--border);transition:all .2s ease}.wb-slot.open{box-shadow:inset 0 -4px #a7f3d0,inset 0 0 0 2px var(--mint);background:var(--mint-soft)}.wb-slot.cold{box-shadow:inset 0 -4px #fecaca,inset 0 0 0 2px #fca5a5}.wb-gap{width:14px}.wb-keyboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(34px,1fr));gap:.3rem}.key{font-family:var(--font-display);font-weight:700;font-size:.9rem;padding:.55rem 0;border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 3px #dbe6fa,inset 0 0 0 2px var(--border);transition:all .13s ease}.key:hover:not(:disabled){background:var(--blue-tint);transform:translateY(-1px)}.key:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #dbe6fa}.key.hit{background:var(--mint-soft);color:#047857;box-shadow:inset 0 0 0 2px #6ee7b7}.key.miss{background:var(--red-soft);color:#b91c1c;opacity:.55}.key:disabled{cursor:default}.quiz-wrap{display:grid;gap:.8rem}.quiz-card{display:grid;gap:.7rem}.quiz-prompt{font-size:clamp(1.15rem,2.5vw,1.5rem);line-height:1.4;margin-top:.2rem}.quiz-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.6rem}.quiz-opt{display:flex;align-items:center;justify-content:space-between;gap:.5rem;text-align:left;font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--ink);padding:.85rem 1rem;border-radius:var(--radius-sm);background:#fff;border:2px solid var(--border);box-shadow:0 4px #e8eefb;transition:all .15s ease;min-height:56px}.quiz-opt:hover:not(:disabled){border-color:var(--blue);background:var(--blue-tint);transform:translateY(-2px);box-shadow:0 6px #dbe6fa}.quiz-opt.right{background:var(--mint-soft);border-color:var(--mint);color:#065f46;box-shadow:0 4px #a7f3d0}.quiz-opt.wrong{background:var(--red-soft);border-color:var(--red);color:#991b1b;box-shadow:0 4px #fecaca}.quiz-opt.muted{opacity:.45}.sort-wrap{display:grid;gap:.9rem}.sort-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.6rem}.sort-hint{font-size:.86rem;color:var(--ink-muted);margin-top:.3rem}.sort-pool{display:flex;flex-wrap:wrap;gap:.45rem;padding:.8rem;min-height:78px;align-items:center;background:#fff;border:2px dashed var(--border-strong)}.sort-item{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-display);font-weight:700;font-size:.88rem;padding:.5rem .8rem;border-radius:999px;background:var(--muted);border:2px solid var(--border);color:var(--ink-soft);transition:all .15s ease;min-height:40px}.sort-item:hover{background:var(--blue-soft);color:var(--blue-dark);transform:translateY(-2px)}.sort-item.sel{background:var(--blue);color:#fff;border-color:var(--blue-dark);box-shadow:0 3px 0 var(--blue-dark)}.sort-item.wrong{background:var(--red-soft);border-color:var(--red);color:#b91c1c;animation:shake .35s ease}.sort-empty{color:var(--mint);font-weight:700}.sort-buckets{display:grid;gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.sort-buckets.count-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sort-buckets.count-4{grid-template-columns:repeat(4,minmax(0,1fr))}.bucket{display:grid;gap:.5rem;text-align:left;padding:.8rem;border-radius:var(--radius);background:#fff;border:2px dashed var(--border-strong);min-height:150px;align-content:start;transition:all .16s ease}.bucket.ready{border-color:var(--blue);background:var(--blue-tint);box-shadow:0 0 0 4px #2563eb1a}.bucket.ready:hover{transform:translateY(-3px);box-shadow:0 0 0 4px #2563eb2e,0 10px 20px -16px #0f172a99}.bucket-head{display:flex;align-items:center;gap:.4rem;font-family:var(--font-display);color:var(--ink)}.bucket-count{margin-inline-start:auto;font-size:.78rem;background:var(--muted);border-radius:999px;padding:.1rem .5rem;color:var(--ink-muted)}.bucket-body{display:grid;gap:.25rem;align-content:start}.bucket-empty{font-size:.78rem;color:var(--ink-muted);font-style:italic}.bucket-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:700;color:#047857;background:var(--mint-soft);border-radius:8px;padding:.2rem .45rem;animation:pop .25s ease}.sort-tip{text-align:center}.cw-layout{--cw-cell: clamp(24px, 3.4vw, 36px)}.jig-preview-art .poster{padding:.5rem;gap:.3rem}.jig-preview-art .poster-word{font-size:.78rem}.jig-preview-art .poster-icon{width:42px}.jig-preview-art .poster-tag{display:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media (max-width: 1024px){.hero-grid{grid-template-columns:1fr}.hero-art{min-height:340px;order:-1}.teacher-grid,.cw-layout,.ws-layout{grid-template-columns:1fr}.cw-clues{max-height:none}.jig-stage{grid-template-columns:1fr}.jig-preview{grid-template-columns:auto;justify-self:start;width:150px}}@media (max-width: 900px){.nav-links{display:none}.nav-toggle{display:grid;place-items:center}.game-bar{position:static}.game-bar-right{width:100%;justify-content:space-between}}@media (max-width: 760px){.level-grid,.game-grid{grid-template-columns:1fr}.sort-buckets,.sort-buckets.count-3,.sort-buckets.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}.hunt-clue{font-size:1.1rem}.hud{border-radius:var(--radius)}}@media (max-width: 640px){body{font-size:16px}.container{width:min(100% - 1.6rem,1180px)}.brand-text small{display:none}.stars-pill{padding:.3rem .5rem;font-size:.78rem}.nav-actions .btn{display:none}.hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.hero-art{min-height:300px}.art-tile{width:50px;height:50px;border-radius:16px}.section-head{flex-direction:column;align-items:flex-start}.result-card{padding:1.5rem 1.1rem}.mem-grid{gap:.35rem}.mem-front{font-size:.58rem;line-height:1.2}.wb-keyboard{grid-template-columns:repeat(7,1fr)}.key{font-size:.8rem;padding:.5rem 0}.toolbar{gap:.5rem}.guess-row .btn{flex:1 1 auto}.footer-inner{flex-direction:column;align-items:flex-start}}
