:root{color-scheme:light;--paper:#f8f5ed;--ink:#253547;--muted:#62727b;--teal:#087d75;--teal-dark:#07655e;--pink:#ee7794;--yellow:#f8c84c;--border:#e8e1d4;--tile:52px}
*{box-sizing:border-box}html{min-height:100%}body{margin:0;min-height:100vh;background:radial-gradient(circle at 85% 8%,#fce5d8 0,transparent 28%),radial-gradient(circle at 8% 42%,#def1e8 0,transparent 30%),var(--paper);color:var(--ink);font-family:"Arial Rounded MT Bold","Trebuchet MS",system-ui,sans-serif}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #143dff;outline-offset:3px}[hidden]{display:none!important}.app{width:min(100% - 28px,760px);margin:auto;padding:calc(14px + env(safe-area-inset-top)) 0 calc(30px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:10px;font-weight:900;font-size:19px;line-height:1.02}.brand-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:#ffe9a9;box-shadow:0 4px 0 #eac66d}.brand strong{color:var(--teal)}.brand small{display:block;letter-spacing:.16em;font-size:9px;color:var(--muted);margin-top:5px}.score{display:flex;align-items:center;gap:7px;padding:9px 14px;border:1px solid var(--border);background:#fff;border-radius:100px;box-shadow:0 3px 0 #e8e1d4;font-size:14px;font-weight:900}.score span:nth-child(2){color:#d89b07;font-size:20px}.screen{background:#fffdfa;border:1px solid var(--border);border-radius:30px;box-shadow:0 15px 35px #39516a12;padding:clamp(22px,5vw,38px)}.eyebrow{color:var(--teal);font-size:11px;font-weight:900;letter-spacing:.17em;margin:0 0 9px}.start{text-align:center;overflow:hidden}.hero-decoration{display:flex;justify-content:center;gap:7px;transform:rotate(-5deg);margin:8px 0 25px}.hero-decoration span{display:grid;place-items:center;width:45px;height:48px;border-radius:12px;background:#f8c84c;box-shadow:0 5px 0 #d8a92d;font-size:24px;font-weight:900}.hero-decoration span:nth-child(2n){background:#f49bb0;box-shadow:0 5px 0 #d66a85}.hero-decoration span:nth-child(3n){background:#88d5c0;box-shadow:0 5px 0 #54aa91}h1,h2{margin:0;line-height:1.12;letter-spacing:-.035em}h1{font-size:clamp(33px,7vw,54px)}h1 em{font-style:normal;color:var(--teal)}h2{font-size:clamp(29px,6vw,43px)}.intro{max-width:430px;margin:18px auto 22px;line-height:1.5;color:var(--muted);font-size:17px}.steps{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 auto 27px}.steps span{background:#f3f6ee;border:1px solid #e1eadc;border-radius:99px;padding:8px 12px;color:#485c58;font-size:13px;font-weight:800}.steps b{display:inline-grid;place-items:center;background:#d4ecdc;color:var(--teal-dark);width:21px;height:21px;border-radius:50%;margin-right:4px}.primary{border:0;border-radius:17px;background:var(--teal);box-shadow:0 6px 0 var(--teal-dark);padding:14px 25px;color:white;font-weight:900;font-size:17px;min-height:53px}.primary:hover{background:#099289}.primary:active{transform:translateY(4px);box-shadow:0 2px 0 var(--teal-dark)}.primary span{margin-left:9px}.level-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 2px 14px;color:var(--teal);font-size:12px;font-weight:900;letter-spacing:.1em}.progress-dots{display:flex;gap:5px}.progress-dots i{width:9px;height:9px;border-radius:50%;background:#e1e7e1}.progress-dots i.done{background:var(--teal)}.progress-dots i.current{background:var(--pink);transform:scale(1.25)}.game{padding:clamp(18px,4vw,30px)}.game-card{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:22px;background:#f5f9f4;border:1px solid #e1ecdf;border-radius:23px;padding:14px}.picture-wrap{position:relative;width:180px;height:180px;overflow:hidden;border-radius:17px;background:#e7efe8}.picture-wrap img{width:100%;height:100%;object-fit:cover}.picture-caption{position:absolute;left:7px;bottom:7px;background:#fffdf9e8;color:#44584e;font-size:10px;font-weight:900;padding:5px 8px;border-radius:99px}.preview-word{font-size:clamp(28px,6vw,45px);font-weight:900;line-height:1.1;min-height:1.1em}.preview-word.concealed{letter-spacing:.16em;color:#9baea5}.meaning{font-size:15px;color:var(--muted);margin-top:7px}.meaning strong{color:var(--ink)}.listen{border:1px solid #beddd5;background:#e7f6f0;color:var(--teal-dark);padding:9px 13px;border-radius:12px;font-size:13px;font-weight:900;margin-top:14px}.listen:hover{background:#d3eee4}.action-intro{text-align:center;padding:22px 0 2px}.action-intro p{margin:0 0 15px;color:var(--muted);font-weight:700}.puzzle{padding-top:18px}.puzzle-help{text-align:center;color:var(--muted);font-size:14px;line-height:1.4;margin:0 0 15px}.slots{display:flex;justify-content:center;gap:7px;flex-wrap:nowrap;margin:0 auto 20px}.slot{width:var(--tile);height:var(--tile);border:2px dashed #a7c4b7;background:#f1f8ef;border-radius:13px;color:var(--ink);font-size:calc(var(--tile)*.53);font-weight:900;display:grid;place-items:center;padding:0}.slot.filled{border:2px solid #7ac3a1;background:#dcf5e6}.slot.hint{animation:pulse 1s ease-in-out 2}.slot.wrong{animation:shake .3s ease}.tray{position:relative;height:205px;border:2px solid #eadfc9;border-radius:20px;background:linear-gradient(180deg,#fffaf0 0 76%,#f8e9cb 76% 100%);overflow:visible;touch-action:none}.tray::after{content:"";position:absolute;bottom:23%;left:0;right:0;height:1px;background:#e8d3aa}.tray-label{position:absolute;top:11px;left:14px;font-size:10px;font-weight:900;letter-spacing:.15em;color:#9b8c74}.tile{position:absolute;z-index:2;width:var(--tile);height:var(--tile);border:0;border-radius:13px;color:#2b3c47;font-weight:900;font-size:calc(var(--tile)*.52);box-shadow:0 5px 0 #0002,0 9px 13px #0001;touch-action:none;user-select:none;display:grid;place-items:center;padding:0}.tile:hover{filter:brightness(1.04)}.tile.selected{outline:4px solid var(--teal);outline-offset:2px;z-index:5}.tile.hint{animation:pulse 1s ease-in-out 2}.tile.dragging{z-index:20;box-shadow:0 10px 22px #0003;cursor:grabbing}.puzzle-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:16px}.secondary{border:1px solid var(--border);background:#fff;border-radius:12px;padding:10px 14px;font-size:13px;font-weight:900;color:#4b5c62}.secondary:hover{background:#f8f5ed}.secondary:disabled{opacity:.45;cursor:not-allowed}.status{min-height:21px;margin:10px 0 0;text-align:center;color:var(--teal-dark);font-size:13px;font-weight:900}.status.error{color:#b94e68}.result,.finish{text-align:center}.result-sparkle{font-size:42px;color:var(--yellow);margin:4px 0}.result img{width:144px;height:144px;object-fit:cover;border-radius:20px;margin:18px auto 7px}.result-word{font-size:40px;font-weight:900;color:var(--teal)}.result .meaning{font-size:17px}.example{background:#f5f9f4;border-radius:15px;padding:13px 15px;max-width:420px;margin:19px auto 10px;line-height:1.45;font-weight:700;color:#405855}.earned{font-size:27px;color:#d4a116;letter-spacing:.12em;margin:15px 0 20px}.trophy{font-size:64px;margin:4px 0 14px}.finish h2{color:var(--teal)}.finish p:not(.eyebrow){color:var(--muted);font-size:16px;line-height:1.5}.word-collection{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:25px 0}.collection-item{display:flex;flex-direction:column;align-items:center;gap:5px;background:#f5f9f4;border-radius:14px;padding:8px 4px;font-size:12px;font-weight:900}.collection-item img{width:54px;height:54px;object-fit:cover;border-radius:10px}@keyframes pulse{50%{box-shadow:0 0 0 9px #f8c84c90}}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@media(max-width:560px){.game-card{grid-template-columns:118px 1fr;gap:13px}.picture-wrap{width:118px;height:118px}.game-card{padding:10px}.preview-word{font-size:29px}.word-info .eyebrow{font-size:9px}.listen{margin-top:9px;font-size:12px}.meaning{font-size:13px}.word-collection{grid-template-columns:repeat(2,1fr)}.collection-item{flex-direction:row;padding:7px 10px;gap:10px}.collection-item img{width:42px;height:42px}}@media(max-width:390px){.app{width:min(100% - 18px,760px)}.screen{border-radius:22px;padding:17px}.game{padding:14px}.slots{gap:4px}.hero-decoration span{width:38px;height:42px;font-size:21px}.score{font-size:12px;padding:7px 10px}.brand{font-size:16px}.brand-icon{width:37px;height:37px}.game-card{grid-template-columns:100px 1fr}.picture-wrap{width:100px;height:100px}.preview-word{font-size:25px}.tray{height:190px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.sentence-line{margin:3px 0 0;font-size:clamp(21px,3.5vw,29px);font-weight:900;line-height:1.38;letter-spacing:-.025em}.sentence-line mark,.example mark{display:inline;box-decoration-break:clone;-webkit-box-decoration-break:clone;background:#ffe49a;color:#243650;border-radius:7px;padding:1px 5px;box-shadow:0 3px 0 #edc552}.sentence-line+.meaning{margin-top:13px}.example mark{box-shadow:none}@media(max-width:560px){.sentence-line{font-size:20px}}@media(max-width:390px){.sentence-line{font-size:18px}}
.slots{flex-wrap:wrap;max-width:640px;gap:9px}.slot.word-slot{height:52px;flex:0 0 auto;font-size:clamp(14px,2.5vw,19px);letter-spacing:-.02em;padding:0 8px;white-space:nowrap}.tile.word-tile{width:auto;min-width:66px;height:54px;font-size:18px;letter-spacing:-.02em;padding:0 15px;white-space:nowrap}.listen-row{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.sentence-line{font-size:clamp(19px,3vw,26px)}@media(max-width:560px){.slot.word-slot{font-size:15px}.tile.word-tile{font-size:16px;min-width:58px;padding:0 12px}.sentence-line{font-size:18px}.game-card{align-items:start}.picture-wrap{align-self:center}}
.slot.word-slot.target-word{background:#ffe49a;border-color:#e2b43e}
.slots{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 13px;max-width:680px}.word-group{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.word-group.target-group{padding:4px 6px;border-radius:13px;background:#fff0bd;box-shadow:inset 0 0 0 1px #edce71}.slot.letter-slot{width:var(--tile);height:var(--tile);flex:none;padding:0;font-size:calc(var(--tile)*.52)}.tile.letter-tile{width:var(--tile);height:var(--tile);min-width:0;padding:0;font-size:calc(var(--tile)*.54)}.punctuation{align-self:flex-end;padding:0 2px 1px;font-size:24px;font-weight:900;color:var(--ink)}@media(max-width:560px){.slots{gap:6px 9px}.word-group{gap:2px}.word-group.target-group{padding:3px 4px}}
.word-group{flex-wrap:wrap;justify-content:center;max-width:100%;white-space:normal}
.daily-note{width:fit-content;max-width:100%;margin:-8px auto 22px;padding:8px 13px;border:1px solid #e7dfc7;border-radius:99px;background:#fff8e6;color:#6b5d3a;font-size:13px;font-weight:800;line-height:1.4}
.download-prompt[hidden]{display:none}.download-prompt{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;padding:18px;background:#1f2a417a;backdrop-filter:blur(5px)}.download-prompt-card{width:min(440px,100%);max-height:calc(100vh - 36px);overflow-y:auto;overscroll-behavior:contain;padding:30px 24px 26px;border:4px solid #ffffffea;border-radius:29px;background:#fffdf7;box-shadow:0 25px 65px #161f343d;text-align:center;animation:prompt-pop .35s cubic-bezier(.2,.8,.2,1.3) both}.download-prompt-art{display:block;margin-bottom:8px;font-size:58px}.download-prompt-card h2{color:var(--ink);font-size:clamp(26px,6vw,34px)}.download-prompt-card>p:not(.eyebrow){margin:12px 0 20px;color:var(--muted);font-size:15px;line-height:1.6}.download-prompt-stores{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:18px}.download-store{display:inline-flex;min-height:48px;align-items:center;gap:9px;padding:8px 13px;border:1px solid #ddd;border-radius:13px;color:#fff;text-decoration:none;font-size:14px;font-weight:900;box-shadow:0 3px 0 #0002}.download-store>span:first-child{font-size:25px;line-height:1}.download-store--apple{background:#171717}.download-store--google{background:#172f22}.google-play-icon{color:#83d98b;transform:rotate(0deg)}.download-store-text{display:grid;text-align:left;line-height:1.1}.download-store-text small{margin-bottom:3px;font-size:9px;font-weight:700}.download-prompt-again{margin-top:2px}.download-prompt-again span{margin-left:5px}@keyframes prompt-pop{from{opacity:0;transform:translateY(12px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}
