:root{--brand:#4f46e5;--brand-dark:#3730a3;--bg:#f5f3ff;--card:#fff;--text:#1e1b4b;--muted:#6b7280;--ok:#16a34a;--ok-bg:#dcfce7;--bad:#dc2626;--bad-bg:#fee2e2;--warn-bg:#fef9c3;--radius:16px;color:var(--text);background:var(--bg);font-family:Segoe UI,system-ui,-apple-system,Roboto,sans-serif}*{box-sizing:border-box}body{-webkit-tap-highlight-color:transparent;min-height:100vh;margin:0}h1{margin:.2em 0;font-size:clamp(1.5rem,5vw,2.2rem)}h2{margin:.3em 0;font-size:clamp(1.25rem,4vw,1.7rem)}h3,h4{margin:.2em 0}.container{max-width:880px;margin:0 auto;padding:16px 16px 64px;overflow-x:clip}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;display:flex}.center{text-align:center}.lead{font-size:1.15rem;line-height:1.5}.hint{color:var(--muted);margin:4px 0;font-size:.95rem}.topbar{background:var(--brand);color:#fff;z-index:10;justify-content:space-between;align-items:center;padding:10px 16px;display:flex;position:sticky;top:0}.brand{color:#fff;align-items:center;min-height:44px;font-size:1.2rem;font-weight:700;text-decoration:none;display:inline-flex}.topbar .btn-ghost{color:#fff;border-color:#fff9}.card{background:var(--card);border-radius:var(--radius);border:2px solid #0000;padding:16px;box-shadow:0 2px 10px #4f46e51a}.is-correct{border-color:var(--ok);background:var(--ok-bg)}.is-wrong{border-color:var(--bad);background:var(--bad-bg)}.big-emoji{font-size:clamp(2.6rem,10vw,4rem);line-height:1.1}.badge{color:var(--brand-dark);background:#e0e7ff;border-radius:999px;padding:2px 12px;font-size:.9rem;font-weight:600;display:inline-block}.btn{font:inherit;border:2px solid var(--brand);min-height:48px;color:var(--brand);cursor:pointer;background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 20px;font-weight:600;text-decoration:none;transition:transform .1s,background .2s;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-dark)}.btn-ghost{background:0 0;min-height:40px;padding:4px 14px}.btn-lg{min-height:56px;font-size:1.1rem}.btn-recording{background:var(--bad);border-color:var(--bad);color:#fff;animation:1s infinite pulse}.link{min-height:44px;color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:0;align-items:center;padding:8px 0;text-decoration:underline;display:inline-flex}.btn:focus-visible,.link:focus-visible,.tile:focus-visible,.chip:focus-visible,.input:focus-visible,.example-btn:focus-visible{outline-offset:2px;outline:3px solid #f59e0b}.field{flex-direction:column;gap:6px;font-weight:600;display:flex}.input{font:inherit;background:#fff;border:2px solid #c7d2fe;border-radius:12px;flex:200px;min-width:0;min-height:48px;padding:8px 14px}.notice{background:var(--warn-bg);border-radius:12px;margin:8px 0;padding:10px 14px}.notice-error{background:var(--bad-bg);color:#7f1d1d}.toggle{align-items:center;gap:6px;display:inline-flex}.auth{place-items:center;min-height:100vh;padding:16px;display:grid}.auth-card{text-align:center;flex-direction:column;gap:10px;width:100%;max-width:420px;display:flex}.auth-card form{text-align:left}.stats{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.stat{text-align:center;flex-direction:column;display:flex}.stat strong{color:var(--brand);font-size:1.8rem}.lesson-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.lesson-card{color:inherit;flex-direction:column;gap:6px;text-decoration:none;transition:transform .15s;display:flex}.lesson-card:hover{border-color:var(--brand);transform:translateY(-3px)}.status{color:var(--brand);font-weight:700}.status-completed{color:var(--ok)}.steps,.progress-dots{gap:6px;margin:4px 0;display:flex}.step,.dot{background:#ddd6fe;border-radius:4px;flex:1;max-width:60px;height:8px}.step-on,.dot-on{background:var(--brand)}.slide{text-align:center;min-height:260px;animation:.4s both slide-in}.pop{animation:.6s both pop}.examples{flex-wrap:wrap;justify-content:center;gap:14px;padding:0;list-style:none;display:flex}.example{animation:.5s both rise}.example-btn{border-radius:var(--radius);cursor:pointer;font:inherit;background:#fff;border:2px solid #c7d2fe;flex-direction:column;align-items:center;min-width:96px;min-height:48px;padding:10px 18px;display:flex}.q-card{text-align:center}.options{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.chip{font:inherit;cursor:pointer;background:#fff;border:2px solid #c7d2fe;border-radius:999px;min-height:48px;padding:8px 22px;font-weight:600}.chip-selected{background:var(--brand);border-color:var(--brand);color:#fff}.chip-right{border-color:var(--ok);box-shadow:0 0 0 3px var(--ok-bg)}.tile{font:inherit;cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;border:2px solid #c7d2fe;border-radius:14px;min-width:56px;min-height:56px;padding:8px 16px;font-size:1.1rem;font-weight:600}.tile:disabled{cursor:default}.tile-selected{border-color:var(--brand);background:#e0e7ff;transform:scale(1.05)}.tile-joined{border-color:var(--brand)}.tile-target{border-style:dashed}.tile-hover{background:#fef3c7;border-color:#f59e0b}.tile-pic{place-items:center;display:grid}.tile-word,.tile-item{cursor:grab}.tile-placed{cursor:pointer;font-size:1rem}.ghost{pointer-events:none;background:var(--brand);color:#fff;z-index:100;border-radius:12px;padding:8px 16px;font-weight:700;position:fixed;transform:translate(-50%,-120%);box-shadow:0 6px 16px #00000040}.match{justify-content:space-between;gap:40%;padding:8px 0;display:flex;position:relative}.match-col{flex-direction:column;flex:1;gap:16px;display:flex}.match-lines{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.line{fill:none;stroke-width:4px;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0;animation:.5s both draw}.line-pending{stroke:var(--brand)}.line-right{stroke:var(--ok)}.line-wrong{stroke:var(--bad)}.pool,.sentence-slot,.bucket-items{flex-wrap:wrap;align-items:center;gap:10px;min-height:64px;display:flex}.pool{border-radius:var(--radius);background:#ede9fe;padding:10px}.sentence-slot{border-radius:var(--radius);background:#fff;border:3px dashed #a5b4fc;margin:10px 0;padding:10px}.buckets{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.bucket{border-radius:var(--radius);background:#fff;border:3px dashed #a5b4fc;min-height:120px;padding:10px}.feedback{border-radius:var(--radius);align-items:center;gap:14px;margin:16px 0;padding:14px;animation:.5s both pop;display:flex}.feedback-perfect{background:var(--ok-bg)}.feedback-good{background:#dbeafe}.feedback-retry{background:var(--warn-bg);animation-name:shake}.feedback-emoji{font-size:2.6rem}.stars{color:#d1d5db;font-size:1.6rem}.star-on{color:#f59e0b;animation:.5s both pop;display:inline-block}.tutor .answer{background:#eef2ff;border-radius:12px;margin-top:8px;padding:10px 14px}@keyframes slide-in{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:scale(.4)}70%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes pulse{50%{box-shadow:0 0 0 10px #dc262633}}@media (width>=720px){.container{padding:24px}.buckets{grid-template-columns:repeat(4,1fr)}.match{gap:25%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
