:root{--bg:#fff8ee;--card:#ffffff;--ink:#2a2440;--muted:#6b6585;--line:#ece3d4;--primary:#ff7a45;--primary-dark:#e85d27;--accent:#3fb6a8;--sun:#ffc93c;--ok:#2fa86b;--ok-bg:#e5f7ec;--no:#e0465c;--no-bg:#fde8eb;--hint-bg:#fff4cc;--radius:18px;--shadow:0 4px 0 rgba(42,36,64,0.08),0 8px 24px rgba(42,36,64,0.06)}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:Nunito,Segoe UI,system-ui,-apple-system,sans-serif;font-size:19px;line-height:1.55}a{color:inherit}h1,h2,h3{line-height:1.2;margin:0 0 .5em;font-weight:800}h1{font-size:1.8rem}h2{font-size:1.35rem}h3{font-size:1.1rem}.muted{color:var(--muted);font-size:.9em}.center{text-align:center}code{background:#f3ede2;padding:0 6px;border-radius:6px}.topbar{justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 20px;background:var(--card);border-bottom:3px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:10}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;text-decoration:none;font-weight:800;font-size:1.2rem}.brand small{display:block;font-size:.7rem;color:var(--muted);font-weight:600}.nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-weight:700}.nav a{text-decoration:none;padding:6px 10px;border-radius:10px}.nav a:hover,.who{background:var(--bg)}.who{font:inherit;font-weight:700;border:2px solid var(--line);border-radius:999px;padding:4px 12px;cursor:pointer}.container{max-width:860px;margin:0 auto;padding:20px 16px 60px}.crumbs{margin:0 0 12px;font-weight:700}.crumbs a{text-decoration:none;color:var(--primary-dark)}.page-title{margin:8px 0 16px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px;margin-bottom:20px;border:2px solid var(--line)}.hero{background:linear-gradient(135deg,#fff,#fff3e3)}.row{display:flex;gap:12px;flex-wrap:wrap}.btn,.row{align-items:center}.btn{display:inline-flex;justify-content:center;gap:6px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer;border:2px solid var(--line);background:#fff;color:var(--ink);padding:10px 18px;border-radius:14px;box-shadow:0 3px 0 var(--line);transition:transform .05s}.btn:active:not(:disabled){transform:translateY(2px);box-shadow:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary-dark);color:#fff;box-shadow:0 3px 0 var(--primary-dark)}.btn-hint{background:var(--hint-bg);border-color:#f0d36b;box-shadow:0 3px 0 #f0d36b}.btn-big{font-size:1.15rem;padding:14px 26px}.learner-list{display:flex;flex-wrap:wrap;gap:12px}.learner-btn{font:inherit;font-weight:800;display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:16px;border:2px solid var(--line);background:var(--bg);cursor:pointer}.learner-btn:hover{border-color:var(--primary)}.avatar{font-size:1.6rem}.new-learner{display:grid;grid-gap:14px;gap:14px}.new-learner input[name=name]{font:inherit;padding:12px 14px;border-radius:12px;border:2px solid var(--line)}.avatars{border:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}.avatars legend{font-weight:700;margin-bottom:6px}.avatars input{position:absolute;opacity:0}.avatars span{display:inline-block;font-size:1.7rem;padding:6px 10px;border-radius:12px;border:2px solid var(--line);cursor:pointer}.avatars input:checked+span{border-color:var(--primary);background:#ffe9df}.avatars input:focus-visible+span{outline:3px solid var(--accent)}.stat-row{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}.stat{background:#fff;border:2px solid var(--line);border-radius:14px;padding:8px 14px;display:flex;flex-direction:column;min-width:140px}.stat b{font-size:1.5rem}.stat span{color:var(--muted);font-size:.85rem}.unit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:16px;gap:16px}.unit-card{display:flex;flex-direction:column;gap:6px;text-decoration:none;background:var(--card);border:2px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:transform .1s}.unit-card:hover{transform:translateY(-3px);border-color:var(--primary)}.unit-emoji{font-size:2.2rem}.unit-num{color:var(--primary-dark);font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.unit-title{font-weight:800;font-size:1.15rem;line-height:1.25}.stars{color:var(--sun);font-size:1.3rem;letter-spacing:2px;text-shadow:0 1px 0 #d9a400}.pbar{height:12px;background:#f1ebe0;overflow:hidden;width:100%}.pbar,.pbar-fill{border-radius:999px}.pbar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--ok));transition:width .4s}.outcomes{list-style:none;padding:0;margin:0}.outcomes li{margin:4px 0}.memo-list{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-gap:12px;gap:12px}.memo-item{display:flex;align-items:center;gap:14px;text-decoration:none;background:var(--card);border:2px solid var(--line);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow)}.memo-item:hover{border-color:var(--primary)}.memo-num{flex:none;width:42px;height:42px;border-radius:50%;background:var(--accent);color:#fff;font-weight:800;display:grid;place-items:center;font-size:1.2rem}.memo-info{flex:1 1;display:flex;flex-direction:column;gap:4px}.memo-title{font-weight:800}.memo h1{color:var(--primary-dark)}.memo-body p{margin:0 0 .9em}.memo-body ul{padding-left:1.3em;margin:0 0 1em}.memo-body li{margin:.3em 0}.memo-body strong{color:#7a3cc4}.tip{display:flex;gap:12px;background:var(--hint-bg);border:2px dashed #f0d36b;border-radius:14px;padding:12px 16px;margin:0 0 1em}.tip-icon{font-size:1.4rem}.figure{margin:0 0 1em;text-align:center}.figure img{max-width:100%;max-height:360px;border-radius:12px}.figure figcaption{font-size:.9rem;color:var(--muted);margin-top:6px;font-weight:600}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:14px;gap:14px;margin:0 0 1em}.figure.small img{max-height:140px}.lightbox{position:fixed;inset:0;background:rgba(20,16,36,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;padding:20px;cursor:zoom-out}.lightbox img{max-width:95vw;max-height:85vh;background:#fff;border-radius:12px;padding:10px}.lightbox-close{color:#fff;margin-top:12px;font-weight:700}.flip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:12px;gap:12px}.flip{font:inherit;border:none;background:none;padding:0;perspective:800px;cursor:pointer;min-height:120px}.flip-inner{position:relative;display:block;width:100%;height:100%;min-height:120px;transition:transform .45s;transform-style:preserve-3d}.flip.flipped .flip-inner{transform:rotateY(180deg)}.flip-back,.flip-front{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:12px;border-radius:14px;-webkit-backface-visibility:hidden;backface-visibility:hidden;border:2px solid var(--line)}.flip-front{background:#efe6ff;font-weight:800;font-size:1.1rem;color:#5a2ea6}.flip-back{background:#e4f6f3;transform:rotateY(180deg);font-size:.9rem}.quiz-done,.quiz-intro{text-align:center}.quiz-top{display:grid;grid-gap:8px;gap:8px;margin-bottom:16px}.badge{margin-left:8px;background:var(--hint-bg);border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:800;color:#8a6d00}.prompt{font-size:1.3rem}.q-image{text-align:center;margin:0 0 16px}.q-image img{max-height:240px;max-width:100%;border-radius:12px;border:2px solid var(--line);padding:6px;background:#fff}.options{display:grid;grid-gap:10px;gap:10px}.options.tf{grid-template-columns:1fr 1fr}.option{font:inherit;text-align:left;display:flex;gap:12px;align-items:center;cursor:pointer;padding:12px 16px;border-radius:14px;border:2px solid var(--line);background:#fff;box-shadow:0 3px 0 var(--line)}.option:hover:not(:disabled){border-color:var(--accent)}.option-key{flex:none;width:34px;height:34px;border-radius:10px;background:var(--bg);display:grid;place-items:center;font-weight:800}.option.selected{border-color:var(--accent);background:#e4f6f3;box-shadow:0 3px 0 var(--accent)}.option.right{border-color:var(--ok);background:var(--ok-bg);box-shadow:0 3px 0 var(--ok)}.option.wrong{border-color:var(--no);background:var(--no-bg);box-shadow:0 3px 0 var(--no)}.option.dim{opacity:.5}.option:disabled{cursor:default;color:var(--ink)}.text-answer input{font:inherit;font-size:1.2rem;width:100%;padding:14px 16px;border-radius:14px;border:3px solid var(--line)}.text-answer input:focus{outline:none;border-color:var(--accent)}.text-answer input.right{border-color:var(--ok);background:var(--ok-bg)}.text-answer input.wrong{border-color:var(--no);background:var(--no-bg)}.hint{display:flex;gap:10px;margin-top:14px;background:var(--hint-bg);border-radius:14px;padding:12px 16px}.letters{font-family:ui-monospace,monospace;font-size:1.3rem;letter-spacing:4px;margin-top:6px;font-weight:700}.feedback{margin-top:16px;border-radius:14px;padding:14px 18px}.feedback p{margin:6px 0 0}.feedback.ok{background:var(--ok-bg);border:2px solid var(--ok)}.feedback.no{background:var(--no-bg);border:2px solid var(--no)}.feedback-title{font-weight:800;font-size:1.1rem}.quiz-actions{margin-top:18px;justify-content:flex-end}.big-stars{font-size:3.4rem;letter-spacing:6px;color:#e6dfd2}.big-stars .on{color:var(--sun);text-shadow:0 2px 0 #d9a400}.quiz-done .row{justify-content:center;margin-top:12px}.score{font-size:1.15rem}@media (max-width:560px){body{font-size:17px}.card{padding:18px 16px}.options.tf{grid-template-columns:1fr}.quiz-actions{justify-content:stretch}.quiz-actions .btn{flex:1 1}}.wb-theme{--primary-dark:color-mix(in srgb,var(--primary) 78%,black)}.shelf{margin-bottom:28px}.shelf-title{font-size:1.2rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:8px 0 12px}.book{border-top:8px solid var(--book,var(--primary))}.book-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.chip{text-decoration:none;font-weight:700;font-size:.9rem;padding:6px 14px;border-radius:999px;border:2px solid var(--line);background:#fff}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.book .unit-num{color:var(--book,var(--primary-dark))}.read-aloud{position:-webkit-sticky;position:sticky;top:70px;z-index:5;display:flex;align-items:center;gap:12px;background:#f4efff;border:2px solid #ddd0fb;border-radius:16px;padding:10px 12px;margin:0 0 18px}.ra-play{flex:none;width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;font-size:1.6rem;background:var(--primary);color:#fff;box-shadow:0 3px 0 var(--primary-dark)}.ra-play:active{transform:translateY(2px);box-shadow:none}.ra-main{flex:1 1;min-width:0;display:grid;grid-gap:4px;gap:4px}.ra-top{display:flex;justify-content:space-between;gap:8px;font-size:.95rem}.ra-seek{width:100%;accent-color:var(--primary);height:22px}.ra-tools{display:flex;gap:6px}.ra-small{font:inherit;font-weight:800;font-size:.95rem;min-width:44px;height:40px;border-radius:12px;border:2px solid #ddd0fb;background:#fff;cursor:pointer}.ra-small.on{background:#e6dcff;border-color:#b9a2f5}.memo .reading{background:#fff3b8;border-radius:6px;transition:background .3s,box-shadow .3s}.memo .reading,.memo .tip.reading,.memo h1.reading{box-shadow:0 0 0 6px #fff3b8}@media (max-width:560px){.topbar{position:static}.read-aloud{flex-wrap:wrap;top:8px}.ra-tools{width:100%;justify-content:flex-end}}.narrow{max-width:520px;margin:0 auto}.stack-form{display:grid;grid-gap:14px;gap:14px}.stack-form label{display:grid;grid-gap:6px;gap:6px;font-weight:700}.stack-form label.check{display:flex;align-items:center;gap:10px;font-weight:600}.stack-form input:not([type=radio]):not([type=checkbox]){font:inherit;padding:12px 14px;border-radius:12px;border:2px solid var(--line)}.stack-form input:focus{outline:none;border-color:var(--accent)}.stack-form .btn{justify-self:start}.form-msg{margin:0;padding:10px 14px;border-radius:12px;font-weight:700}.form-msg.err{background:var(--no-bg);color:#9b1c31}.form-msg.ok{background:var(--ok-bg);color:#1d6b45}.tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-bottom:18px}.tabs button{font:inherit;font-weight:800;padding:12px;border-radius:14px;border:2px solid var(--line);background:var(--bg);cursor:pointer}.tabs button.on{background:var(--primary);border-color:var(--primary-dark);color:#fff}.badge.warn{display:inline-block;margin:0;background:#fff1d6;color:#8a5a00;border-radius:10px;padding:4px 10px;font-weight:800;font-size:.85rem}.preview-banner{background:#e8f1ff;border:2px dashed #9cc0f5;border-radius:12px;padding:8px 14px;font-weight:700;color:#234a82;margin:0 0 16px}details.card summary{cursor:pointer;list-style:none}details.card summary::-webkit-details-marker{display:none}details.card[open] summary{margin-bottom:14px}.progress-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:.95rem}.progress-table td{padding:6px 8px;border-top:1px solid var(--line)}.wrong-list{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px}.wrong-list li{border:2px solid var(--line);border-radius:12px;padding:10px 14px}@media (max-width:560px){.progress-table td:nth-child(3){display:none}}.danger-zone{border-color:#f3c4cc}.danger-zone h3{color:#9b1c31;margin-top:8px}.danger-zone hr{border:none;border-top:2px dashed var(--line);margin:18px 0}.danger-zone .btn{border-color:#e0465c;color:#9b1c31;box-shadow:0 3px 0 #f3c4cc}