@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@500;600;700;800;900;1000&display=swap');
:root{font-family:Nunito,'Segoe UI',sans-serif;color:#233e49;background:#f6f4ed;font-synthesis:none;--teal:#117f83;--ink:#233e49;--yellow:#ffd468}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 8%,#d7efea 0,transparent 42%),#f6f4ed}button,input,a{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.65}button:focus-visible,a:focus-visible,input:focus-visible+span{outline:3px solid #bf5b26;outline-offset:4px}[hidden]{display:none!important}.shell{max-width:1120px;margin:auto;padding:24px 32px}.topbar{display:flex;align-items:center;gap:20px;min-height:42px}.topbar a{color:var(--ink);font-weight:900;text-decoration:none}.subject{margin-left:auto;font-size:.68rem;letter-spacing:2px;font-weight:900;color:#52747a}.intro{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:48px 0 30px;align-items:center}.eyebrow{font-size:.72rem;font-weight:900;letter-spacing:2px;color:var(--teal)}h1,h2,h3,p{margin:0}h1{font-size:clamp(2.5rem,5vw,4.2rem);line-height:1.04;letter-spacing:-2px;font-weight:1000;margin:14px 0}h1 em{color:var(--teal);font-style:normal}.intro p{font-size:1.1rem;font-weight:900}.intro .description{font-size:.98rem;font-weight:600;color:#647880;line-height:1.6;margin-top:12px}.hero-art{height:230px;position:relative;max-width:420px;width:100%;justify-self:center}.paper-word{position:absolute;background:#fffdf5;border:1px solid #e4dcc6;border-bottom:5px solid #e7dcc0;border-radius:14px;box-shadow:0 10px 30px #496c6812;font-size:2rem;font-weight:1000;padding:13px 27px}.w1{top:8px;left:14px;transform:rotate(-8deg)}.w2{top:75px;right:12px;background:#ffd468;transform:rotate(6deg)}.w3{bottom:0;left:40px;transform:rotate(-3deg);background:#b8e3d5}.art-dot{color:#117f83}.art-star{position:absolute;right:40px;top:0;font-size:3rem;color:#eda53c}.art-pencil{position:absolute;right:3px;bottom:-8px;color:var(--teal);font-size:4rem;transform:rotate(10deg)}.settings{display:flex;flex-wrap:wrap;gap:22px;align-items:center;padding:22px 24px;background:#fffdf7;border:1px solid #e6e3d6;border-radius:20px}fieldset{border:0;padding:0;margin:0}legend{font-weight:900;font-size:.78rem;margin-bottom:9px}.segmented{display:flex;gap:5px;background:#eeeee5;padding:4px;border-radius:11px}.segmented label{position:relative;cursor:pointer}.segmented input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.segmented span{display:block;padding:7px 15px;border-radius:8px;font-size:.88rem;font-weight:800}.segmented input:checked+span{background:var(--teal);color:white;box-shadow:0 2px 5px #11666930}.star-note{margin-left:auto;max-width:220px;font-size:.83rem;color:#746437;line-height:1.5;font-weight:700}.section-title{display:flex;justify-content:space-between;align-items:center;margin:30px 0 16px;gap:10px}.section-title h2{font-size:1.3rem}.section-title span{font-size:.8rem;color:#657b80}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.mode-card{text-align:left;background:#fffef9;border:1px solid #e2e4d9;border-radius:17px;padding:19px 17px;position:relative;color:var(--ink);min-height:164px;transition:transform .18s,box-shadow .18s}.mode-card:hover{transform:translateY(-3px);box-shadow:0 9px 18px #234c4910;border-color:#75aba0}.mode-card .mode-icon{display:inline-grid;place-items:center;background:var(--tint);border-radius:11px;width:39px;height:39px;font-size:1.35rem;margin-bottom:13px}.mode-card strong{display:block;font-size:.98rem;line-height:1.25}.mode-card small{display:block;font-size:.73rem;color:#6a7b7e;line-height:1.4;margin-top:6px}.earned-star{position:absolute;top:15px;right:16px;color:#b57608;font-size:1.2rem}.mode-card:last-child{grid-column:span 2;min-height:130px}.help-note{text-align:center;color:#728184;font-size:.8rem;margin:22px 0}.quiet,.primary{border-radius:12px;padding:12px 20px;font-weight:900;border:1px solid #cadbd5;background:#fffef8;color:var(--ink);min-height:46px}.primary{background:var(--teal);color:white;border-color:var(--teal);box-shadow:0 4px #08585f;display:inline-flex;justify-content:center;align-items:center;gap:25px}.primary:hover{background:#096e75}.quiet:hover{background:#e9f3eb}.topbar .quiet{padding:8px 13px;font-size:.8rem;min-height:36px}.play-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:36px 0 22px}.play-header h1{font-size:clamp(1.8rem,4vw,2.7rem);letter-spacing:-1px}.score{border:1px solid #e2d6ae;background:#fff0c3;border-radius:16px;min-width:90px;text-align:center;padding:8px 20px}.score span{font-size:2rem;font-weight:1000;display:block}.score small{font-size:.64rem;letter-spacing:2px;font-weight:900}.progress-line{display:flex;justify-content:space-between;font-size:.78rem;font-weight:800;margin:0 2px 9px;gap:10px}#star-status{color:#946516}progress{width:100%;height:8px;appearance:none;border:0;border-radius:10px;overflow:hidden;background:#e0e6db}progress::-webkit-progress-bar{background:#e0e6db}progress::-webkit-progress-value{background:var(--teal);border-radius:10px}progress::-moz-progress-bar{background:var(--teal)}.workshop{margin-top:24px;padding:30px;background:#fffef9;border:1px solid #e3e6d9;border-radius:24px;box-shadow:0 15px 45px #3e68640b}.task-heading{display:flex;align-items:center;gap:15px;margin-bottom:26px}#task-badge{display:grid;place-items:center;border-radius:12px;min-width:44px;height:44px;background:#e0eee8;font-weight:1000;color:var(--teal)}.task-heading h2{font-size:1.2rem;line-height:1.3}.task-heading p{font-size:.85rem;color:#657b80;margin-top:6px}.workshop h3{font-size:.75rem;font-weight:900;color:#697f83;margin-bottom:10px}.answer{min-height:102px;padding:17px;border:2px dashed #accbc1;background:repeating-linear-gradient(#f2f8f2 0,#f2f8f2 32px,#e8efe7 33px);border-radius:16px;display:flex;align-items:center;flex-wrap:wrap;gap:9px}.answer-placeholder{font-size:.9rem;color:#7b918b;width:100%;text-align:center;pointer-events:none}.bank{display:flex;gap:10px;flex-wrap:wrap;min-height:56px;padding:3px 0}.bank-heading{display:flex;align-items:center;justify-content:space-between;margin:22px 0 10px}.bank-heading h3{margin:0}.text-button{border:0;background:none;color:var(--teal);font-size:.75rem;font-weight:800;padding:6px}.word{background:#ffedbd;border:1px solid #ecd497;border-bottom:4px solid #ddc487;border-radius:11px;color:#453e2b;padding:11px 17px;min-height:48px;font-size:1.1rem;font-weight:900;touch-action:none;user-select:none;cursor:grab}.answer .word{background:#fff;border-color:#b4d1c1;color:#204c45}.answer .word:first-child::first-letter{text-transform:uppercase}.word:hover{filter:brightness(.98)}.word.dragging{opacity:.4}.drag-ghost{position:fixed;z-index:99;pointer-events:none;transform:translate(-50%,-50%) rotate(-3deg);box-shadow:0 9px 25px #173f4933}.keyboard-note{font-size:.7rem;color:#7a8989;margin:13px 0 23px}.punctuation{border-top:1px solid #e5e9dd;padding-top:20px;margin-top:22px}.punctuation legend{float:left;width:100%;margin-bottom:12px;font-size:.83rem}#punctuation-choices{display:flex;gap:10px;clear:both}#punctuation-choices button{width:51px;height:47px;background:#f2f3eb;border:2px solid #dbe2d4;border-radius:11px;font-size:1.5rem;font-weight:1000;color:#2c4e50}#punctuation-choices button[aria-pressed=true]{border-color:var(--teal);background:#def0e6;color:var(--teal)}.feedback{border-radius:12px;font-size:.94rem;font-weight:800;line-height:1.5;margin-top:20px}.feedback:not(:empty){padding:14px 17px;background:#eef3e9}.feedback.success{background:#dcf2e3;color:#236446}.feedback.error{background:#fff0d9;color:#875620}.actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.source,.sentence-template{padding:20px 24px;background:#f2f5ed;border-radius:14px;font-size:1.18rem;font-weight:900;line-height:1.8;margin-bottom:20px}.source small{display:block;color:#738983;font-size:.72rem;font-weight:700}.choices{display:flex;gap:10px;flex-wrap:wrap}.choice{padding:11px 18px;min-height:48px;background:#ffedbd;border:2px solid #efdaab;border-radius:11px;font-weight:900;color:#4d482f;font-size:1.02rem}.choice[aria-pressed=true]{background:#d8efe1;border-color:var(--teal);color:var(--teal)}.choice.remove[aria-pressed=true]{text-decoration:line-through;background:#ffe6dd;border-color:#cb7156;color:#97513f}.gap{display:inline-block;min-width:80px;border-bottom:3px solid #299386;color:#117f83;text-align:center;margin:0 4px}.picture{display:flex;align-items:center;justify-content:center;min-height:150px;border-radius:17px;background:linear-gradient(#dcf3ef,#f5eed8);font-size:3.6rem;letter-spacing:16px;margin:0 0 22px;padding:15px}.result{text-align:center;max-width:640px;margin:55px auto;background:#fffef8;border:1px solid #e6e1cb;border-radius:28px;padding:40px 30px}.result h1{font-size:2.5rem;letter-spacing:-1px;margin:16px 0}.result-icon{font-size:5.5rem;color:#e6b441;line-height:1.2;margin-bottom:16px}.result p{color:#667c7d;line-height:1.7}.result-score{font-size:2.7rem;font-weight:1000;color:var(--teal);margin:17px}.result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:28px}footer{font-size:.72rem;text-align:center;color:#7c8d8d;padding:30px 0 8px}footer span{color:#bb9242;margin-left:9px}@media(max-width:800px){.mode-grid{grid-template-columns:repeat(2,1fr)}.star-note{max-width:none;margin:0;flex-basis:100%}.intro{gap:15px}.paper-word{font-size:1.5rem;padding:13px 20px}.hero-art{height:215px}.w1{left:0}.w3{left:0}}@media(max-width:520px){.shell{padding:17px}.subject{font-size:.56rem;letter-spacing:1px}.topbar{gap:10px}.topbar a{font-size:.85rem}.intro{padding:32px 0 24px;grid-template-columns:1fr}.intro h1{font-size:3.3rem}.hero-art{display:none}.settings{padding:18px;gap:18px}.segmented span{padding:7px 13px}.mode-card{padding:16px 13px;min-height:162px}.section-title span{font-size:.7rem}.workshop{padding:20px 16px;border-radius:20px}.play-header{margin:28px 0 18px}.play-header h1{font-size:1.8rem}.score{padding:8px 12px;min-width:67px}.score span{font-size:1.65rem}.word{padding:10px 12px;font-size:1rem}.answer{padding:12px;min-height:110px}.actions .primary,.actions .quiet{padding:11px 14px;font-size:.88rem}.picture{font-size:2.6rem;letter-spacing:7px;min-height:115px}.result{margin:30px auto;padding:28px 20px}.result h1{font-size:2rem}.source,.sentence-template{padding:15px;font-size:1.05rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
