:root{--ink:#30322e;--muted:#6f7167;--paper:#fff9f2;--pink:#b83265;--pink-light:#ffe5ed;--green:#2f6d5e;--green-light:#e6f0e6;--purple:#70559a;--purple-light:#eee7f7;--yellow:#f6ce61;--line:#e8e3d9;--red:#be343c;--shadow:0 5px 0 rgba(62,54,41,.045)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Trebuchet MS",Arial,sans-serif;font-size:17px;line-height:1.5;-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{color:inherit;cursor:pointer}button:disabled{cursor:default}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #257d82;outline-offset:4px}button{border:0}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.12}button svg{pointer-events:none}svg{display:block}button:disabled{opacity:.45}.topbar{max-width:1170px;margin:auto;padding:24px 30px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:15px;line-height:1.05;letter-spacing:-.2px}.brand strong{font-size:18px}.brand-mark{display:grid;place-items:center;background:#f5d99e;width:45px;height:45px;border-radius:16px;transform:rotate(-8deg);font:bold 38px Georgia;position:relative}.brand-mark span{position:absolute;right:-6px;top:-4px;color:var(--pink);font-size:20px}.top-actions{display:flex;align-items:center;gap:16px}.star-counter{background:#fff0c8;padding:8px 15px;border-radius:30px;font-weight:bold;color:#745522;white-space:nowrap}.icon-button{width:44px;height:44px;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:24px}.icon-button:hover{background:white}#app{max-width:1110px;margin:auto;padding:0 30px}.eyebrow{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;font-weight:800;color:var(--green)}.hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:24px;padding:45px 0 30px}.hero h1{font-size:clamp(44px,5.5vw,66px);letter-spacing:-3px;margin:18px 0}.hero h1 em{font-style:normal;color:var(--pink);position:relative}.hero p{font-size:19px;color:#686b60;max-width:430px;line-height:1.65}.hero .primary{margin-top:26px}.primary,.secondary,.subtle-button{min-height:48px;border-radius:14px;padding:12px 22px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none}.primary{background:var(--green);color:white;box-shadow:0 4px 0 #204f44}.primary:hover{background:#275d50;transform:translateY(-1px)}.primary:active{transform:translateY(3px);box-shadow:none}.secondary{background:white;border:1.5px solid #deddd3}.secondary:hover{background:#f7f5ed}.subtle-button{background:transparent;font-size:15px;color:var(--muted)}.hero-art{position:relative;min-height:335px;display:grid;place-items:center}.art-oval{width:320px;height:300px;border-radius:48% 52% 44% 56%;background:#f8e6e8;transform:rotate(-9deg);position:absolute}.sticker{position:absolute;display:grid;place-items:center;font-weight:900;box-shadow:0 4px 0 #0000000a;z-index:2}.sticker.k{font-size:49px;width:78px;height:87px;border-radius:16px;background:#e4eee2;color:#316857;left:16px;top:62px;transform:rotate(-13deg)}.sticker.p{font-size:44px;width:76px;height:80px;border-radius:16px;background:#fbe6ac;color:#8a6026;right:8px;bottom:53px;transform:rotate(11deg)}.hero-art .spark{position:absolute;color:var(--pink);font-size:28px;right:25px;top:34px}.hero-art .mini-label{position:absolute;bottom:0;left:70px;background:white;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:30px;padding:8px 18px;font-size:14px;transform:rotate(-3deg)}.character{overflow:hidden;position:relative;mix-blend-mode:multiply;flex-shrink:0}.character img{position:absolute;max-width:none;pointer-events:none;user-select:none}.character.kitty-writing{width:230px;height:295px}.kitty-writing img{width:970px;left:-705px;top:-38px}.character.kitty-diary{width:200px;height:255px}.kitty-diary img{width:730px;left:-515px;top:-25px}.character.kitty-detective{width:220px;height:245px}.kitty-detective img{width:730px;left:-520px;top:-4px}.character.little-my{width:220px;height:225px}.little-my img{width:920px;left:-640px;top:-1047px}.journey-header{display:flex;align-items:end;justify-content:space-between;margin:25px 0 18px}.journey-header h2{font-size:27px;letter-spacing:-.6px}.journey-header p{color:var(--muted);font-size:14px}.mission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.mission-card{text-align:left;border:1px solid var(--line);background:#fffefa;padding:22px;border-radius:22px;position:relative;min-height:216px;box-shadow:var(--shadow);transition:transform .18s,border-color .18s}.mission-card:hover{transform:translateY(-5px);border-color:#b5bca9}.card-top{display:flex;justify-content:space-between;align-items:center}.mission-icon{width:53px;height:53px;border-radius:17px;display:grid;place-items:center;font-size:29px;font-weight:800;background:var(--accent-bg);color:var(--accent)}.mission-icon svg{width:32px;height:32px}.mission-index{font-size:13px;color:var(--muted)}.mission-card h3{font-size:22px;margin:19px 0 9px;letter-spacing:-.4px}.mission-card p{font-size:15px;color:var(--muted);padding-right:20px}.card-arrow{position:absolute;right:20px;bottom:20px;color:var(--accent);font-size:24px}.card-done{font-size:12px;color:var(--green);font-weight:800;background:var(--green-light);padding:4px 9px;border-radius:20px}.home-bottom{display:flex;align-items:center;gap:12px;padding:24px 0;color:var(--muted);font-size:14px}.home-bottom .dots{display:flex;gap:6px}.dots i{font-style:normal;font-size:22px;color:#d0cebf}.dots i.earned{color:#a06b15}.footer{max-width:1110px;margin:25px auto 0;padding:25px 30px 30px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);display:flex;justify-content:space-between}.footer span{color:#bc6b7b}.game-nav{display:flex;justify-content:space-between;align-items:center;padding:24px 0 18px;gap:10px}.back{background:transparent;font-size:14px;font-weight:700;padding:8px 0}.game-track{display:flex;gap:7px}.game-track button{height:10px;width:25px;border-radius:20px;background:#e1e1d6;padding:0;min-height:20px;background-clip:content-box;border-top:5px solid transparent;border-bottom:5px solid transparent}.game-track button.active{background-color:var(--pink)}.game-track button.complete{background-color:var(--green)}.game-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 22px;gap:20px}.game-heading h1{font-size:clamp(30px,4vw,43px);letter-spacing:-1.3px;margin:8px 0 11px}.game-heading p{font-size:18px;max-width:650px;color:var(--muted)}.game-heading .mission-icon{width:70px;height:70px;font-size:38px;flex-shrink:0}.game-surface{background:#fffefa;border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow)}.game-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:22px 0 10px;flex-wrap:wrap}.status-note{padding:12px 16px;border-radius:12px;background:#f4f2e9;color:#626659;font-size:15px;line-height:1.5}.status-note.good{background:var(--green-light);color:#255d4e}.activity-count{font-size:14px;color:var(--green);font-weight:bold;margin-bottom:18px}.legend{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.legend span{border-radius:12px;padding:9px 16px;background:var(--purple-light);font-weight:bold}.legend .flower{background:var(--pink-light)}.cipher-layout{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:28px;align-items:center}.cipher-words{display:grid;gap:18px}.cipher-word{display:flex;gap:5px;align-items:flex-end;justify-content:center;padding:14px 0;border-bottom:1px dashed var(--line)}.letter-cell{font-size:clamp(24px,4vw,44px);font-weight:700;width:clamp(23px,5vw,45px);text-align:center;height:68px;display:flex;align-items:center;justify-content:center}.slot-wrap{position:relative;padding-top:26px}.slot-symbol{position:absolute;top:-3px;left:0;right:0;font-size:23px;text-align:center;color:var(--pink);line-height:25px}.slot-symbol.heart{color:var(--purple)}.letter-slot{height:68px;width:clamp(37px,5.6vw,59px);border:2px dashed #b6b4bc;border-radius:12px;background:#faf7fc;font-size:clamp(27px,4vw,44px);font-weight:800;color:var(--purple);padding:0}.letter-slot.filled{background:#e9f2e6;color:var(--green);border:2px solid #a9c3a5}.letter-slot.target{background:#efe1f6;transform:scale(1.06)}.letter-bank{position:sticky;bottom:12px;z-index:10;margin-top:24px;background:#fff8e8;border:1px solid #e7d6aa;border-radius:18px;padding:14px;box-shadow:0 4px 24px #5b431616;text-align:center}.letter-bank p{font-size:13px;color:#736342;margin-bottom:10px}.tiles{display:flex;justify-content:center;gap:12px}.letter-tile{width:65px;height:65px;border:1px solid #e3cf99;border-bottom:5px solid #d7bf82;border-radius:12px;background:#fffdf6;font-size:38px;font-weight:800;touch-action:none;user-select:none}.letter-tile.selected{outline:3px solid var(--purple);background:var(--purple-light)}.drag-ghost{position:fixed;pointer-events:none;z-index:9999;width:65px;height:65px;display:grid;place-items:center;font-size:38px;font-weight:bold;background:#f8e8fa;border:2px solid var(--purple);border-radius:12px;box-shadow:0 8px 20px #0002;transform:translate(-50%,-70%)}.writer-layout{display:grid;grid-template-columns:1fr 240px;gap:26px}.writing-row{width:100%;display:flex;align-items:center;gap:8px;margin:8px 0 17px;background:linear-gradient(to bottom,transparent 14%,#d9dcd0 14%,#d9dcd0 15%,transparent 15%,transparent 45%,#e5d1cb 45%,#e5d1cb 46%,transparent 46%,transparent 75%,#b6bba6 75%,#b6bba6 77%,transparent 77%,transparent 96%,#d9dcd0 96%,#d9dcd0 97%,transparent 97%);border-radius:12px;min-height:103px;padding:0 12px;border:2px solid transparent;text-align:center}.writing-row.current{border-color:#b4c8a5;background-color:#f4f8ee}.writing-cell{flex:1;min-width:0;font-family:Arial,sans-serif;font-size:66px;line-height:100px;color:#d7d8d0;position:relative}.writing-cell.model{color:var(--green);font-weight:bold}.writing-cell.written{color:var(--ink);animation:pop .2s}.writing-cell.next{color:#bdcbb1}.writing-label{font-size:12px;position:absolute;left:0;right:0;bottom:-5px;line-height:16px;color:var(--green);font-family:"Trebuchet MS",Arial,sans-serif}.keyboard-area{position:sticky;bottom:10px;background:var(--green-light);padding:16px;border-radius:17px;margin-top:16px;z-index:5;border:1px solid #cddac6}.keyboard-prompt{font-size:18px;font-weight:800;margin-bottom:8px}.keyboard-prompt strong{font-size:26px}.key-entry{display:flex;gap:10px}.key-entry input{width:100%;min-width:0;font-size:20px;padding:12px 15px;border:2px solid #9db999;border-radius:12px;background:white;min-height:52px}.key-entry button{font-size:22px;background:white;border:1px solid #b8cab4;border-radius:12px;min-width:52px}.small{font-size:13px;color:var(--muted);margin-top:9px}.writer-side .character{transform:scale(.8);transform-origin:top left;margin-bottom:-45px}.tip-card{background:#fcf1d6;border:1px solid #eddeb9;padding:16px;border-radius:18px;font-size:14px}.color-picker{display:flex;gap:12px;margin-bottom:22px}.color-tool{padding:12px 20px;flex:1;border:2px solid transparent;border-radius:15px;font-weight:800;background:#fae5e5;display:flex;align-items:center;justify-content:center;gap:10px}.color-tool.yellow{background:#fff2c2}.color-tool.active{border-color:var(--ink);box-shadow:0 3px 0 #30322e}.swatch{width:24px;height:24px;border:2px solid #0002;display:inline-block;border-radius:50%;background:#ea6269}.yellow .swatch{background:#f5d45e}.gifts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;max-width:750px;margin:auto}.gift{position:relative;aspect-ratio:1/1.08;min-width:0}.gift svg{width:100%;height:100%}.gift-part{cursor:pointer;transition:fill .2s}.gift-part:focus{outline:none;stroke:var(--purple);stroke-width:4}.gift text{font-family:Arial,sans-serif;font-weight:bold;pointer-events:none;fill:#30322e}.gift-part.done{cursor:default}.dress-controls{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.choice{background:white;border:2px solid #d8ddd0;padding:10px 19px;border-radius:13px;min-height:49px;font-weight:bold}.choice.active{background:var(--green-light);border-color:var(--green)}.dress-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;margin-top:20px}.dress-board{width:100%;border:1px dashed #ddd2c2;background:white;border-radius:20px;touch-action:manipulation;cursor:crosshair}.dress-board svg{width:100%;height:auto}.stamp-tools{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.stamp-button{background:#faf6ff;border:2px solid #dfd4ed;min-height:86px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:13px}.stamp-button svg{width:35px;height:35px}.stamp-button.active{border-color:var(--purple);background:#eee4fb}.stamp-button[aria-disabled="true"]{opacity:.45}.stamp-button .first{color:var(--purple);font-weight:900}.dress-status{font-size:15px;color:var(--muted);margin:12px 0}.canvas-tools{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.canvas-tools h3{font-size:18px}.draw-board{width:100%;height:165px;touch-action:none;background:white;border:1px dashed #b8c7b2;border-radius:15px;cursor:crosshair;display:block}.custom-accessory{margin-top:20px;padding:20px;background:#f2f5e9;border-radius:18px}.custom-accessory input{padding:12px 14px;border-radius:12px;border:1px solid #b8c7b2;background:white;min-width:0;width:100%;margin-top:10px;font-size:18px}.detect-tools{display:flex;gap:12px;flex-wrap:wrap}.detect-tools .choice{flex:1;white-space:nowrap}.detect-tools .choice[data-mark="K"].active{border-color:var(--pink);background:var(--pink-light)}.detect-tools .choice[data-mark="P"].active{border-color:var(--purple);background:var(--purple-light)}.detect-word-list{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px 0}.detect-word{font-size:clamp(20px,3.4vw,34px);letter-spacing:1px;font-weight:800;background:#f8f6ef;border:2px solid #ece9df;border-radius:17px;min-height:86px;position:relative;overflow:hidden}.detect-word span{position:relative;display:inline-block;padding:7px}.detect-word.marked-k span{text-decoration:underline wavy #be4775;text-underline-offset:9px;text-decoration-thickness:3px}.detect-word.marked-p span{border:3px solid var(--purple);border-radius:50%;padding:8px 12px}.detect-word.correct{background:#fcfff6;border-color:#c9d9b6}.bonus-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.bonus-grid label{font-weight:bold;display:flex;gap:10px;align-items:center}.bonus-grid input{width:100%;min-width:0;padding:12px;border:1px solid #c8ccbf;border-radius:12px;font-size:18px}.reading-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:25px}.reading-paper{padding:15px 10px}.story-line{font-size:clamp(25px,2.6vw,31px);line-height:1.65;letter-spacing:.15px;margin-bottom:14px}.story-line .red-word{color:#b32e48;font-weight:700}.story-line .orange-word{color:#925112;font-weight:700}.story-line .green-word{color:#2e725f;font-weight:700}.story-line .purple-word{color:#755197;font-weight:700}.mi-word{display:inline;font:inherit;color:inherit;border:0;background:transparent;padding:0;border-radius:7px;cursor:default}.hunt-mode .mi-word{cursor:pointer}.mi-word.found{background:#ffe89d;outline:2px solid #b78e30}.reading-aside{padding-top:12px}.reading-aside .character{margin:auto}.bubble{position:relative;background:#fce8d9;padding:18px;border-radius:20px;font-size:18px;font-weight:bold;line-height:1.45;transform:rotate(2deg)}.bubble:after{content:"";position:absolute;bottom:-10px;left:50%;border-top:12px solid #fce8d9;border-left:12px solid transparent;border-right:12px solid transparent}.read-controls{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.read-controls .secondary{font-size:14px;min-height:44px;padding:9px 14px}.read-progress{height:7px;background:#ebe8dd;border-radius:20px;overflow:hidden;margin-bottom:18px}.read-progress span{display:block;height:100%;background:var(--green);transition:width .25s}.reading-page-label{font-size:13px;color:var(--muted);font-weight:bold}.reading-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.quiz-box{max-width:670px;margin:auto;text-align:center;padding:15px 0}.quiz-box h2{font-size:30px;line-height:1.3;margin:10px 0 25px}.answer-options{display:grid;gap:12px}.answer-button{border:2px solid #e1e1d4;border-radius:16px;background:white;text-align:left;font-size:22px;font-weight:700;padding:16px 20px;min-height:66px;display:flex;align-items:center;gap:15px}.answer-button .answer-letter{border-radius:10px;background:#f4f2e7;width:37px;height:37px;display:grid;place-items:center;font-size:17px;flex-shrink:0}.answer-button.correct{border-color:var(--green);background:var(--green-light)}.answer-button.wrong{border-color:#c18c93;background:#fff0f0}.hunt-box{padding:20px;background:#fff5d5;border:1px solid #e7d49a;border-radius:18px;margin-top:20px}.hunt-box h2{font-size:24px;margin-bottom:8px}.hunt-box p{font-size:17px}.number-options{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.number-options button{background:white;border:2px solid #dec98b;min-width:52px;height:52px;border-radius:12px;font-size:25px;font-weight:bold}.number-options button.selected{background:#e3efd5;border-color:var(--green)}.movement{background:var(--pink-light);padding:24px;border-radius:18px;margin-top:20px}.movement h2{font-size:25px;margin-bottom:10px}.movement p{font-size:20px;max-width:640px}.movement .primary{margin-top:18px}.celebration{text-align:center;padding:25px 0}.big-star{font-size:75px;color:#b78118;line-height:1.2;animation:pop .4s}.celebration h1{font-size:42px;margin:14px 0}.celebration p{font-size:20px;color:var(--muted);max-width:550px;margin:15px auto}.celebration .primary{margin-top:15px}.earned-grid{display:flex;justify-content:center;gap:12px;margin:22px 0}.earned-grid span{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#f4e3b3;font-size:28px;color:#926011}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:10002;background:#303c31;color:white;border-radius:16px;padding:14px 22px;box-shadow:0 6px 25px #0002;font-size:16px;font-weight:bold;max-width:min(90vw,580px);text-align:center;transition:opacity .15s,transform .15s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid var(--line);border-radius:24px;padding:28px;max-width:520px;width:calc(100% - 32px);background:var(--paper);color:var(--ink);box-shadow:0 15px 80px #0003}dialog::backdrop{background:#202a2266;backdrop-filter:blur(3px)}dialog h2{margin-bottom:18px;font-size:27px}dialog p{margin:12px 0;font-size:16px}dialog a{color:var(--green)}.dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.danger{color:#a53643}.confetti{position:fixed;left:50%;top:35%;pointer-events:none;width:10px;height:16px;z-index:10010;border-radius:2px;animation:confetti 1.4s ease-out forwards}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.all-done{background:#eff4df;border:1px solid #cfd7b8;border-radius:20px;margin:25px 0;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:15px}.all-done h2{font-size:25px;margin-bottom:7px}@keyframes pop{0%{transform:scale(.8)}70%{transform:scale(1.12)}100%{transform:scale(1)}}@keyframes confetti{to{transform:translate(var(--x),var(--y)) rotate(var(--rot));opacity:0}}@media(min-width:1300px){.hero{padding-top:52px}}
@media(max-width:800px){.hero{grid-template-columns:1.2fr .8fr;gap:10px}.hero-art{transform:scale(.8);transform-origin:center right}.hero h1{font-size:50px}.mission-grid{grid-template-columns:1fr 1fr}.cipher-layout{grid-template-columns:1fr}.cipher-layout>.character{display:none}.writer-layout{grid-template-columns:1fr}.writer-side{display:none}.reading-layout{grid-template-columns:1fr}.reading-aside{display:none}.dress-layout{grid-template-columns:1fr 220px;gap:16px}}
@media(max-width:560px){body{font-size:16px}.topbar{padding:17px 20px}.brand-mark{width:39px;height:39px;font-size:32px}.brand{font-size:13px}.brand strong{font-size:16px}.top-actions{gap:8px}.star-counter{font-size:14px;padding:7px 11px}.icon-button{width:38px;height:38px;font-size:22px}#app{padding:0 18px}.hero{display:block;padding:29px 0 12px;position:relative;min-height:365px}.hero .eyebrow{font-size:10px;letter-spacing:1.1px}.hero h1{font-size:43px;letter-spacing:-2px;margin:15px 0 17px;position:relative;z-index:2;max-width:275px}.hero p{font-size:16px;line-height:1.65;max-width:210px;position:relative;z-index:2}.hero .primary{margin-top:23px;font-size:15px;padding:11px 18px;min-height:48px;position:relative;z-index:3}.hero-art{position:absolute;right:-2px;bottom:8px;width:180px;min-height:250px;transform:scale(.63);transform-origin:bottom right;pointer-events:none}.hero-art .art-oval{width:270px;height:245px}.hero-art .mini-label{display:none}.hero-art .sticker.k{left:-67px;top:0;width:65px;height:70px;font-size:38px}.hero-art .sticker.p{right:-10px;bottom:0;width:58px;height:65px;font-size:37px}.hero-art .spark{right:-12px;top:-13px}.hero-art .character{margin-left:-25px}.journey-header{margin:18px 0 15px;align-items:start}.journey-header h2{font-size:23px}.journey-header p{font-size:12px;text-align:right;max-width:100px}.mission-grid{gap:11px}.mission-card{padding:16px 14px;border-radius:18px;min-height:208px}.mission-icon{width:44px;height:44px;border-radius:13px;font-size:25px}.mission-icon svg{width:28px;height:28px}.mission-card h3{font-size:19px;line-height:1.2;margin-top:16px}.mission-card p{font-size:13px;line-height:1.5;padding-right:6px}.card-arrow{right:13px;bottom:12px;font-size:20px}.card-done{font-size:10px;padding:4px 6px}.mission-index{font-size:11px}.home-bottom{align-items:start;gap:10px;font-size:12px}.home-bottom .dots{gap:3px}.dots i{font-size:18px}.footer{margin-top:10px;padding:19px 20px;font-size:12px}.game-nav{padding:17px 0}.game-track{gap:4px}.game-track button{width:18px}.game-heading{gap:10px;margin-bottom:18px}.game-heading h1{font-size:31px;letter-spacing:-1px}.game-heading p{font-size:16px}.game-heading .mission-icon{display:none}.game-heading .eyebrow{font-size:10px}.game-surface{padding:18px 14px;border-radius:20px}.legend{gap:8px;margin-bottom:14px}.legend span{padding:8px 11px;font-size:15px}.cipher-words{gap:8px}.cipher-word{gap:3px;padding:7px 0 14px}.letter-cell{font-size:clamp(23px,7vw,34px);width:clamp(21px,6vw,30px);height:54px}.letter-slot{height:54px;width:clamp(33px,8.3vw,45px);font-size:31px;border-radius:9px}.letter-bank{padding:12px;margin-top:16px;bottom:8px}.letter-bank p{font-size:11px}.tiles{gap:10px}.letter-tile{width:57px;height:60px;font-size:34px}.writing-row{padding:0 5px;gap:3px;min-height:92px;margin:3px 0 10px}.writing-cell{font-size:53px;line-height:89px}.writing-label{bottom:-5px;font-size:10px}.keyboard-area{padding:12px;margin-top:12px}.keyboard-prompt{font-size:16px}.key-entry input{font-size:18px;padding:11px}.color-picker{gap:8px}.color-tool{padding:11px 7px;font-size:14px;gap:6px}.swatch{width:20px;height:20px}.gifts-grid{gap:5px}.gift text{font-weight:700}.dress-layout{display:flex;flex-direction:column}.dress-sidebar{order:-1}.stamp-tools{grid-template-columns:repeat(4,1fr);gap:7px}.stamp-button{min-height:75px;font-size:11px}.stamp-button svg{width:29px;height:29px}.dress-sidebar h3{font-size:17px}.dress-sidebar .small{display:none}.dress-status{margin:6px 0}.dress-board{margin-top:-8px}.dress-controls{gap:8px}.choice{padding:9px 13px;font-size:15px}.custom-accessory{padding:15px}.custom-accessory p{font-size:15px}.detect-word-list{grid-template-columns:1fr;gap:11px;margin:20px 0}.detect-word{min-height:69px;font-size:27px}.detect-word.marked-p span{padding:3px 15px}.detect-tools{gap:8px}.detect-tools .choice{font-size:14px;padding:12px 6px}.bonus-grid{grid-template-columns:1fr}.reading-paper{padding:10px 3px}.story-line{font-size:27px;line-height:1.6;margin-bottom:19px}.reading-actions .primary,.reading-actions .secondary{padding:11px 15px;font-size:15px}.read-controls{gap:8px;margin-bottom:10px}.read-controls .secondary{font-size:13px;padding:8px 10px}.reading-page-label{font-size:12px}.quiz-box{padding:5px 0}.quiz-box h2{font-size:26px}.answer-button{font-size:20px;padding:13px 12px}.hunt-box{padding:16px}.hunt-box h2{font-size:22px}.movement{padding:19px}.movement p{font-size:19px}.celebration h1{font-size:33px}.celebration p{font-size:18px}.game-footer .primary,.game-footer .secondary{font-size:14px;padding:11px 15px}.game-footer .subtle-button{padding:8px 0;font-size:13px}.all-done{display:block;padding:20px}.all-done .primary{margin-top:15px}.earned-grid{gap:8px}.earned-grid span{width:37px;height:37px;font-size:24px}.toast{bottom:14px;font-size:15px;padding:12px 18px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.character.kitty-writing{clip-path:inset(0 0 0 7px)}
.writing-progress{display:none}
@media(max-width:560px){.writing-progress{display:flex;gap:7px;margin-bottom:18px;justify-content:space-between}.writing-progress span{background:#f1f2e9;border-radius:9px;padding:7px 8px;font-size:12px}.writing-progress b{font-size:19px;margin-right:3px}.writing-progress .active{background:#dfead5;color:#2f634a;outline:1px solid #adc69b}.has-active .writing-row:not(.current){display:none}.keyboard-area{position:static}.writing-row.current{min-height:110px}.writing-row.current .writing-cell{line-height:106px;font-size:60px}}

@media(max-width:800px){.reading-aside{display:flex;order:-1;align-items:center;gap:15px;padding:0}.reading-aside .bubble{font-size:16px;padding:14px;flex:1;transform:none}.reading-aside .bubble:after{display:none}.reading-aside .character.little-my{width:110px;height:113px;margin:0}.reading-aside .little-my img{width:450px;left:-313px;top:-512px}.reading-layout{gap:12px}}

.hero-art{mix-blend-mode:multiply}
.home-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:-2px 0 22px}.home-controls>span{color:var(--muted);font-size:13px}.reset-all-button{font-size:14px;min-height:44px;color:#7d3d4c;border-color:#dec7c9;background:#fff5f3}.reset-all-button:hover{background:#ffe8e5}.adult-check{display:flex;align-items:flex-start;gap:11px;margin:18px 0 4px;padding:14px 15px;background:#fff9e9;border:1px solid #e2d3a8;border-radius:13px;color:#68572f;text-align:left;font-size:14px;line-height:1.5}.adult-check input,.custom-accessory .adult-check input{appearance:auto;accent-color:var(--green);width:22px;height:22px;min-width:22px;padding:0;margin:0;border:0;border-radius:4px;flex:none}.final-score{display:flex;flex-direction:column;align-items:center;margin:15px auto 20px;color:#326b54}.final-score strong{font-size:110px;line-height:1;font-family:Georgia,serif}.final-score span{font-size:23px;font-weight:bold;margin-top:10px}.final-report h1{font-size:36px;max-width:700px;margin:10px auto}.final-report .final-percent{display:inline-block;background:#e6f0dc;border:1px solid #b9d1a6;color:#2d5d44;font-size:18px;padding:10px 20px;border-radius:30px;margin:10px auto 5px}.final-checklist{max-width:650px;margin:25px auto;text-align:left;display:grid;gap:9px}.final-checklist>div{display:flex;align-items:center;gap:12px;border:1px solid #e4e2d7;background:#f7f5ed;padding:13px 17px;border-radius:13px;color:var(--muted);font-size:15px}.final-checklist>div.checked{background:#f0f6e8;border-color:#cddcbc;color:#2d644d}.final-checklist>div>span:first-child{font-size:22px;font-weight:bold;width:25px;text-align:center}.final-checklist strong{flex:1}.final-checklist>div>span:last-child{font-size:12px}.reward-open{overflow:hidden}.reward-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;border:0;border-radius:0;background:radial-gradient(ellipse at 50% 38%,#fff7d9 0,#fff7e9 45%,#fce8e7 100%);padding:25px;overflow-x:hidden;overflow-y:auto;isolation:isolate}.reward-dialog::backdrop{background:#fbefe6}.reward-stage{min-height:calc(100vh - 50px);min-height:calc(100dvh - 50px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;max-width:850px;margin:auto;z-index:1}.reward-stage .eyebrow{color:#80562a;font-size:13px}.berry-shell{width:clamp(180px,30vw,280px);margin:14px auto 8px;animation:berry-float 3s ease-in-out .9s infinite}.strawberry-art{width:100%;height:auto;filter:drop-shadow(0 15px 7px #a7553024);animation:berry-arrive .85s cubic-bezier(.2,.7,.3,1.1)}.reward-dialog h2{font-size:clamp(32px,5vw,53px);line-height:1.13;letter-spacing:-1.4px;color:#813344;max-width:750px;margin:10px auto 18px;animation:reward-text .65s .2s both}.reward-grade{background:white;border:1px solid #e8ce91;border-radius:30px;padding:10px 23px;color:#77602f;font-size:18px}.reward-grade strong{color:#466b43;margin:0 3px}.reward-stage>p:not(.eyebrow){color:#746352;font-size:17px;margin:18px auto 5px;line-height:1.6}.reward-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:20px auto 10px}.reward-buttons .primary{background:#a72f4c;box-shadow:0 4px 0 #81253c}.reward-buttons .primary:hover{background:#93263f}.reward-sprinkles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}.reward-sprinkles i{position:absolute;top:-20px;left:var(--left);width:10px;height:18px;opacity:0;border-radius:3px;animation:reward-rain 3.8s var(--delay) ease-out 2}.reward-sprinkles i:nth-child(3n){width:13px;height:13px;border-radius:50%}.reward-sprinkles i:nth-child(4n){width:8px;height:23px}@keyframes berry-arrive{0%{transform:scale(.1) rotate(-30deg);opacity:0}65%{transform:scale(1.1) rotate(6deg);opacity:1}100%{transform:scale(1) rotate(0)}}@keyframes berry-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes reward-text{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes reward-rain{0%{opacity:0;transform:translateY(0) rotate(0)}10%{opacity:.85}90%{opacity:.85}100%{opacity:0;transform:translateY(105vh) rotate(var(--twist))}}@media(max-width:560px){.home-controls{gap:8px;margin:0 0 17px}.home-controls .secondary{font-size:13px;min-height:42px;padding:10px 14px}.home-controls>span{font-size:11px;max-width:140px}.adult-check{font-size:13px;padding:12px}.final-score strong{font-size:93px}.final-report h1{font-size:29px}.final-checklist>div{padding:11px 10px;gap:8px;font-size:13px}.final-checklist>div>span:last-child{font-size:10px}.reward-dialog{padding:22px 18px}.reward-stage{min-height:calc(100dvh - 44px)}.reward-stage .eyebrow{font-size:10px;letter-spacing:1px}.berry-shell{width:190px;margin:14px auto 5px}.reward-dialog h2{font-size:33px;letter-spacing:-.8px;margin-bottom:17px}.reward-grade{font-size:15px;padding:10px 15px}.reward-stage>p:not(.eyebrow){font-size:15px;margin-top:16px}.reward-buttons{gap:10px;margin-top:18px}.reward-buttons button{font-size:14px;padding:12px 16px}.reward-buttons .primary{width:100%}.reward-sprinkles i{width:8px;height:14px}}@media(max-height:650px){.berry-shell{width:145px;margin:8px auto 0}.reward-dialog h2{font-size:30px;margin:7px auto 13px}.reward-stage>p:not(.eyebrow){margin-top:10px;font-size:14px}.reward-buttons{margin-top:12px}.reward-dialog{padding-top:17px;padding-bottom:17px}.reward-stage{min-height:calc(100dvh - 34px)}}
@media(max-width:560px){.hero-art{right:10px}.hero-art .art-oval{width:210px}}
@media(max-width:360px){.hero h1{font-size:39px}.hero p{max-width:180px;font-size:15px}.hero-art{transform:scale(.54);right:8px}.hero .primary{padding:11px 13px;font-size:14px}.journey-header h2{font-size:21px}.writing-progress{gap:4px}.writing-progress span{padding:6px;font-size:11px}.letter-bank{padding:10px 7px}.tiles{gap:8px}.letter-tile{width:51px;height:55px}.game-track{gap:3px}.game-track button{width:15px}}

/* Colored Little My replaces the worksheet crop. */
.character.little-my img,.reading-aside .little-my img{width:100%;height:100%;left:0;top:0;object-fit:contain}
.cipher-hint{text-align:center;color:var(--green);font-size:13px;font-weight:700;margin:14px 0 0}
@media(max-width:560px){.cipher-word.long{gap:2px}.cipher-word.long .letter-cell{width:clamp(14px,4.5vw,22px);font-size:clamp(17px,5.4vw,27px)}.cipher-word.long .letter-slot{width:clamp(28px,7.5vw,37px);font-size:27px}.cipher-hint{font-size:12px;margin-top:12px}}
