html,body{touch-action:manipulation;-webkit-user-select:none;user-select:none}#root{min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.page{max-width:1000px;margin:0 auto}.center-page{text-align:center;padding-top:10vh}.muted{color:var(--muted)}.small{font-size:14px}.row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.row.center{justify-content:center}h3{margin:24px 0 12px;font-size:22px}.btn{background:var(--paper);min-height:56px;box-shadow:0 5px 0 var(--line);border-radius:18px;justify-content:center;align-items:center;gap:8px;padding:0 26px;font-size:20px;font-weight:700;transition:transform 80ms,box-shadow 80ms;display:inline-flex}.btn:active:not(:disabled){box-shadow:0 1px 0 var(--line);transform:translateY(4px)}.btn.big{border-radius:24px;min-height:76px;padding:0 44px;font-size:28px}.btn.small{border-radius:14px;min-height:44px;padding:0 16px;font-size:17px}.btn.primary{background:var(--orange);color:#fff;box-shadow:0 5px 0 var(--orange-d)}.btn.blue{background:var(--blue);color:#fff;box-shadow:0 5px 0 var(--blue-d)}.btn.white{color:var(--orange-d);background:#fff;box-shadow:0 5px #0000001f}.btn.ghost{color:#fff;box-shadow:none;background:#ffffff38}.close-btn{background:var(--paper);width:52px;height:52px;box-shadow:0 4px 0 var(--line);color:var(--muted);border-radius:50%;flex:none;font-size:22px}.sound{background:var(--soft-blue);border-radius:50%;flex:none;place-items:center;transition:transform .1s;display:inline-grid}.sound-sm{width:44px;height:44px;font-size:20px}.sound-md{width:58px;height:58px;font-size:26px}.sound-lg{width:130px;height:130px;font-size:58px;box-shadow:0 6px #c9dcfb}.sound:active{transform:scale(.92)}.sound.is-playing{animation:.6s ease-in-out infinite alternate pulse}@keyframes pulse{to{transform:scale(1.08)}}.chip,.chip-btn{background:var(--paper);box-shadow:0 3px 0 var(--line);border-radius:999px;align-items:baseline;gap:6px;margin:4px;padding:8px 14px;font-size:17px;font-weight:700;display:inline-flex}.chip small{color:var(--muted);font-weight:400}.chip-btn.on{background:var(--ink);color:#fff;box-shadow:none}.tag{background:var(--soft-orange);color:var(--orange-d);border-radius:999px;padding:6px 14px;font-size:15px;font-weight:700;display:inline-block}.tag-extra{background:var(--soft-yellow);color:var(--yellow-d)}.panel{background:var(--paper);border-radius:var(--radius);box-shadow:0 6px 0 var(--line);margin-bottom:22px;padding:22px}.panel h3{margin:0 0 14px}.empty{text-align:center;color:var(--muted);padding:40px 0;font-size:20px}.page-head{align-items:center;gap:16px;margin:4px 0 20px;display:flex}.page-head h1{margin:0;font-size:32px}.pair{text-align:center;max-width:520px;padding-top:6vh}.pair-emoji{font-size:80px}.pair-code{justify-content:center;gap:12px;margin:28px 0;display:flex}.pair-code span{border:3px solid var(--line);background:var(--paper);border-radius:16px;place-items:center;width:58px;height:72px;font-size:38px;font-weight:800;display:grid}.pair-code span.filled{border-color:var(--blue)}.pair-pad{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.pad-key{background:var(--paper);height:76px;box-shadow:0 5px 0 var(--line);border-radius:20px;font-size:32px;font-weight:700}.pad-key:disabled{visibility:hidden}.home-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:6px 0 22px;display:flex}.hello{margin:0;font-size:38px}.pills{gap:10px;display:flex}.pill{background:var(--paper);box-shadow:0 4px 0 var(--line);border-radius:999px;padding:10px 18px;font-size:22px;font-weight:800}.pill.streak.on{background:var(--soft-orange);color:var(--orange-d)}.pill small{color:var(--muted);text-align:center;font-size:13px;font-weight:600;display:block}button.pill{font:inherit;color:inherit;font-size:22px;font-weight:800}.task{background:linear-gradient(135deg, #ffb067, var(--orange));color:#fff;box-shadow:0 8px 0 var(--orange-d);border-radius:32px;margin-bottom:26px;padding:30px;position:relative;overflow:hidden}.task h2{margin:0 0 6px;font-size:32px}.task p{opacity:.95;margin:0 0 22px;font-size:20px}.task-deco{opacity:.2;pointer-events:none;font-size:140px;position:absolute;top:-16px;right:-6px;transform:rotate(12deg)}.task-done{background:linear-gradient(135deg, #5ed68f, var(--green));box-shadow:0 8px 0 var(--green-d)}.task-test{background:linear-gradient(135deg, #a993ff, var(--purple));box-shadow:0 8px #6a4fd6}.task-test .btn.white{color:#6a4fd6}.task-rest{background:linear-gradient(135deg, #7fb2ff, var(--blue));box-shadow:0 8px 0 var(--blue-d)}.task-rest .btn.white{color:var(--blue-d)}.counts{gap:16px;margin-bottom:24px;display:flex}.count{background:#fff3;border-radius:20px;flex:1;padding:14px 20px}.count b{font-size:44px;line-height:1.1;display:block}.count span{font-size:18px}.week{justify-content:space-between;gap:8px;display:flex}.week-day{text-align:center;color:var(--muted);flex:1;font-size:16px}.week-dot{background:var(--bg);border-radius:50%;place-items:center;width:52px;height:52px;margin:0 auto 6px;font-size:26px;display:grid}.week-day.s-done .week-dot{background:var(--soft-orange)}.week-day.s-frozen .week-dot{background:var(--soft-blue)}.week-day.s-missed .week-dot{color:var(--muted);background:#f1eef4}.week-day.is-today{color:var(--ink);font-weight:800}.week-day.is-today .week-dot{outline:3px solid var(--orange)}.tiles{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.tile{background:var(--paper);border-radius:var(--radius);box-shadow:0 6px 0 var(--line);text-align:center;padding:20px 10px}.tile:active{box-shadow:0 2px 0 var(--line);transform:translateY(4px)}.tile-icon{font-size:44px;display:block}.tile b{margin-top:8px;font-size:20px;display:block}.modal{z-index:40;background:#2b234073;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-box{background:var(--bg);border-radius:32px;width:min(960px,100%);max-height:92dvh;padding:26px;position:relative;overflow:auto}.modal-close{z-index:2;position:absolute;top:14px;right:14px}.badge-pop{text-align:center;padding:20px}.badge-pop-emoji{font-size:110px;animation:1s ease-in-out infinite alternate bounce}.session{flex-direction:column;max-width:1000px;min-height:calc(100dvh - 40px);margin:0 auto;display:flex}.topbar{align-items:center;gap:16px;margin-bottom:14px;display:flex}.progress{background:var(--line);border-radius:99px;flex:1;height:20px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--green), #5ed68f);border-radius:99px;height:100%;transition:width .4s;display:block}.stars-now{text-align:right;min-width:70px;font-size:22px;font-weight:800}.stage{flex-direction:column;flex:1;justify-content:center;gap:20px;display:flex}.foot{justify-content:center;min-height:60px;padding:18px 0 6px;display:flex}.section-intro{text-align:center}.section-emoji{font-size:110px}.section-intro h2{margin:10px 0;font-size:44px}.section-intro p{color:var(--muted);font-size:22px}.wordcard{background:var(--paper);box-shadow:0 8px 0 var(--line);border-radius:32px;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:30px;padding:26px;display:grid}.wc-pic{aspect-ratio:1;background:var(--bg);border-radius:24px;overflow:hidden}.wc-pic img{object-fit:cover;width:100%;height:100%}.wc-noimg{place-items:center;height:100%;font-size:110px;display:grid}.wc-word{margin:12px 0 8px}.wc-ipa{color:var(--muted);font-size:22px}.wc-senses{margin:18px 0;font-size:26px;line-height:1.45}.pos{color:var(--muted);margin-right:8px;font-size:18px;font-style:italic}.wc-example{background:var(--bg);border-radius:20px;align-items:flex-start;gap:12px;padding:14px;display:flex}.wc-example p{margin:0}.wc-example .en{font-size:21px;line-height:1.4}.wc-example .en b{color:var(--orange-d)}.wc-example .zh{color:var(--muted);margin-top:4px;font-size:16px}.wc-cols{margin-top:10px}.phonics-step,.echo{text-align:center}.breakdown{background:var(--paper);box-shadow:0 8px 0 var(--line);border-radius:32px;margin:16px 0;padding:26px}.breakdown-meta{color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin:14px 0;font-size:18px;display:flex}.chunks{flex-wrap:wrap;justify-content:center;gap:10px;margin:12px 0;display:flex}.chunk{background:var(--bg);border-radius:14px;flex-direction:column;align-items:center;min-width:64px;padding:8px 14px;display:flex}.chunk b{font-size:30px}.chunk small{color:var(--muted);font-size:15px}.chunk-vowel b{color:var(--ph-vowel)}.chunk-consonant b{color:var(--ph-consonant)}.chunk-silent b{color:var(--ph-silent)}.rules{text-align:left;margin:10px 0 0;padding:0;font-size:19px;list-style:none;display:inline-block}.rules li{margin:6px 0}.parts{background:var(--soft-yellow);border-radius:20px;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:10px;padding:14px 18px;font-size:22px;display:flex}.parts-title{font-weight:800}.parts-eq b{color:var(--orange-d)}.parts-eq small{color:var(--muted);font-size:15px}.parts-note{color:var(--muted);font-size:17px}.related{margin-top:14px;font-size:18px}.echo-word{margin:10px 0 20px}.echo-rec{flex-direction:column;align-items:center;gap:14px;margin-top:26px;display:flex}.rec-btn{background:var(--red);color:#fff;min-width:260px;height:84px;box-shadow:0 6px 0 var(--red-d);border-radius:42px;font-size:28px;font-weight:800}.rec-btn.is-recording{animation:.6s ease-in-out infinite alternate pulse}.echo-ok{color:var(--green-d);font-size:22px;font-weight:700}.echo-try{color:var(--orange-d);font-size:20px}.ask{text-align:center}.ask-q{color:var(--muted);margin-bottom:14px;font-size:24px;font-weight:700}.ask-pic{aspect-ratio:1;object-fit:cover;width:min(320px,38vh);box-shadow:0 8px 0 var(--line);border-radius:24px;margin:0 auto}.ask-row{text-align:left;justify-content:center;align-items:center;gap:20px;display:flex}.ask-row .ask-q{margin-bottom:4px}.ask-thumb{object-fit:cover;border-radius:20px;width:130px;height:130px}.big-word{font-size:64px;font-weight:800}.big-zh{font-size:46px;font-weight:800;line-height:1.3}.mid-zh{font-size:30px;font-weight:800}.options{grid-template-columns:1fr 1fr;gap:16px;display:grid}.opt{background:var(--paper);min-height:90px;box-shadow:0 6px 0 var(--line);word-break:break-word;border-radius:24px;padding:12px 16px;font-size:32px;font-weight:800}.opt:disabled{opacity:1}.opt-zh{font-size:26px;font-weight:700}.opt:active:not(:disabled){box-shadow:0 2px 0 var(--line);transform:translateY(4px)}.opt.is-right{background:var(--soft-green);box-shadow:0 6px 0 var(--green);color:var(--green-d)}.opt.is-wrong{background:var(--soft-red);box-shadow:0 6px 0 var(--red);color:var(--red-d);animation:.35s shake}.opt.is-dim{opacity:.45}.opt.is-chosen{box-shadow:0 6px 0 var(--blue)}.options-pics{grid-template-columns:repeat(4,1fr)}.options-pics .opt{padding:10px}.options-pics img{aspect-ratio:1;object-fit:cover;border-radius:16px;width:100%}@keyframes shake{20%,60%{transform:translate(-8px)}40%,80%{transform:translate(8px)}}.spell{flex-direction:column;align-items:center;gap:18px;display:flex}.slots{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.slot-word{gap:8px;display:inline-flex}.phrase-word{margin:0 6px;font-size:34px;font-weight:800}.slot{background:var(--paper);border:3px dashed #d9cbb5;border-radius:14px;place-items:center;width:56px;height:70px;font-size:38px;font-weight:800;display:grid}.slot.filled{border-style:solid;border-color:var(--blue);color:var(--blue-d)}.slot.is-cursor{border-color:var(--orange);border-style:solid;animation:1s step-end infinite blink}@keyframes blink{50%{border-color:var(--line)}}.slot-given{color:var(--ink);background:0 0;border:3px solid #0000}.slot-gap{background:0 0;border:0;width:20px}.slot.is-right{border-color:var(--green);background:var(--soft-green);color:var(--green-d)}.slot.is-wrong{border-color:var(--red);background:var(--soft-red);color:var(--red-d)}.spell-answer{font-size:24px}.spell-answer b{color:var(--green-d);letter-spacing:.05em;font-size:32px}.keyboard{background:#ece3d3;border-radius:24px;flex-direction:column;gap:10px;width:100%;max-width:900px;padding:12px;display:flex}.keyboard.is-disabled{opacity:.5}.kb-row{justify-content:center;gap:8px;display:flex}.kb-key{background:#fff;border-radius:14px;flex:1;max-width:76px;height:64px;font-size:30px;font-weight:700;box-shadow:0 4px #cdbfa8}.kb-key:active{transform:translateY(3px);box-shadow:0 1px #cdbfa8}.kb-wide{flex:1.6;max-width:130px;font-size:20px}.kb-hint{background:var(--soft-yellow)}.kb-key.is-highlight{background:var(--yellow)}.feedback{padding:20px max(24px, env(safe-area-inset-left)) max(24px, env(safe-area-inset-bottom));z-index:10;justify-content:space-between;align-items:center;gap:18px;font-size:28px;font-weight:800;animation:.2s ease-out up;display:flex;position:fixed;bottom:0;left:0;right:0}.feedback.good{background:var(--soft-green);color:var(--green-d)}.feedback.bad{background:var(--soft-red);color:var(--red-d)}.feedback-answer{color:var(--ink);margin-top:4px;font-size:22px;font-weight:600}@keyframes up{0%{transform:translateY(100%)}}.done,.report{text-align:center;padding-top:4vh}.done h1,.report h1{margin:10px 0;font-size:46px}.streak-flame,.trophy{font-size:130px;animation:1s ease-in-out infinite alternate bounce}@keyframes bounce{to{transform:translateY(-14px)rotate(-4deg)}}.done-stats{flex-wrap:wrap;justify-content:center;gap:16px;margin:28px 0;display:flex}.stat{background:var(--paper);box-shadow:0 6px 0 var(--line);border-radius:24px;min-width:160px;padding:18px 28px}.stat b{font-size:40px;display:block}.stat span{color:var(--muted);font-size:17px}.new-badge{background:var(--soft-yellow);border-radius:999px;margin:0 6px 18px;padding:10px 22px;font-size:20px;display:inline-block}.confetti{pointer-events:none;z-index:30;position:fixed;inset:0;overflow:hidden}.confetti i{border-radius:4px;width:14px;height:20px;animation:linear forwards fall;position:absolute;top:-20px}@keyframes fall{to{transform:translateY(110vh)rotate(720deg)}}.bonus-tag{background:var(--soft-yellow);color:var(--yellow-d);border-radius:999px;align-self:center;padding:8px 18px;font-weight:800}.report-list{text-align:left;max-width:640px;margin:22px auto}.report-row{background:var(--paper);border-radius:16px;flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:10px;padding:12px 18px;font-size:20px;display:flex}.report-mark{font-weight:800}.report-row.ok .report-mark{color:var(--green)}.report-row.no .report-mark{color:var(--red)}.report-wrong{color:var(--red-d);font-size:17px}.cal-nav{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.cal-nav h2{margin:0;font-size:24px}.cal{grid-template-columns:repeat(7,1fr);gap:10px;display:grid}.cal-head{text-align:center;color:var(--muted);font-weight:700}.cal-day{aspect-ratio:1;background:var(--paper);box-shadow:0 3px 0 var(--line);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.cal-num{color:var(--muted);font-size:15px;position:absolute;top:6px;left:10px}.cal-icon{font-size:34px}.cal-score{font-size:13px;font-weight:700}.cal-day.s-done{background:var(--soft-orange)}.cal-day.s-frozen{background:var(--soft-blue)}.cal-day.s-missed{background:#f1eef4}.cal-day.s-future{opacity:.5}.legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin-top:16px;display:flex}.legend-missed:before{content:"";vertical-align:-2px;background:#e3dde9;border-radius:4px;width:14px;height:14px;margin-right:6px;display:inline-block}.search{border:3px solid var(--line);background:var(--paper);-webkit-user-select:text;user-select:text;border-radius:18px;outline:none;width:100%;height:56px;padding:0 20px;font-size:20px}.search:focus{border-color:var(--blue)}.chips-row{margin:12px 0 16px}.wgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.witem{background:var(--paper);box-shadow:0 4px 0 var(--line);text-align:center;border-radius:20px;padding:10px;position:relative}.witem img,.witem-noimg{aspect-ratio:1;object-fit:cover;background:var(--bg);border-radius:14px;place-items:center;width:100%;font-size:50px;display:grid}.witem b{margin-top:8px;font-size:19px;display:block}.witem span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.witem .witem-stage{font-size:20px;position:absolute;top:14px;right:14px}.balance{margin-bottom:18px;font-size:26px}.balance b{color:var(--orange-d);font-size:40px}.freeze{align-items:center;gap:18px;display:flex}.freeze-icon{font-size:56px}.freeze-text{flex-direction:column;flex:1;gap:4px;font-size:20px;display:flex}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px;display:grid}.badge{background:var(--paper);border-radius:var(--radius);text-align:center;opacity:.55;filter:grayscale(.8);flex-direction:column;gap:4px;padding:18px;display:flex}.badge.earned{opacity:1;filter:none;box-shadow:0 6px 0 var(--yellow)}.badge-emoji{font-size:56px}.badge b{font-size:19px}.badge span,.badge small{color:var(--muted);font-size:14px}.page.home{max-width:1240px}.home-main{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:stretch;gap:22px;margin-bottom:22px;display:grid}.home-main .task{flex-direction:column;justify-content:center;margin-bottom:0;display:flex}.task-hint{color:var(--ink);background:#ffffffeb;border-radius:999px;align-self:flex-start;padding:10px 18px;font-size:18px;font-weight:700;opacity:1!important}.home-main .task>.btn{align-self:flex-start}.home-pet{flex-direction:column;gap:10px;min-width:0;display:flex}.pet-yard{background:var(--paper);box-shadow:0 8px 0 var(--line);border-radius:32px;overflow:hidden}.yard-stage{-webkit-user-select:none;user-select:none;background:linear-gradient(#b4dcff 0%,#e6f5ff 52%,#92c454 52%,#7fb648 100%);width:100%;position:relative;overflow:hidden}.yard-layer{pointer-events:none;max-width:none;height:auto;position:absolute}.yard-front{z-index:2000}.corgi{aspect-ratio:1;opacity:1;position:absolute;transform:translate(-50%,-93.75%)}.corgi-layers,.corgi-sprite{position:absolute;inset:0}.corgi-sprite{background-repeat:no-repeat}.corgi-hit{cursor:pointer;background:0 0;border-radius:40%;position:absolute;inset:12% 18% 6%}.corgi-hit:focus-visible{outline:3px solid var(--orange)}.corgi-heart{pointer-events:none;font-size:clamp(18px,2.4vw,30px);animation:1.1s ease-out forwards heart-up;position:absolute;top:18%;left:50%}@keyframes heart-up{0%{opacity:0;transform:translate(-50%)scale(.5)}25%{opacity:1}to{opacity:0;transform:translate(-50%,-120%)scale(1.2)}}.corgi-bubble{white-space:nowrap;background:var(--paper);color:var(--ink);pointer-events:none;border-radius:16px;padding:.4em .8em;font-size:clamp(14px,1.7vw,20px);font-weight:800;animation:.25s ease-out bubble-in;position:absolute;top:0;left:58%;transform:translateY(-60%);box-shadow:0 4px 12px #3c28142e}@keyframes bubble-in{0%{opacity:0;transform:translateY(-40%)scale(.7)}}.yard-title{z-index:2100;pointer-events:none;text-shadow:0 2px 6px #ffffffe6;flex-direction:column;gap:2px;display:flex;position:absolute;top:4%;left:3%}.yard-title b{color:#c4501a;font-size:clamp(20px,2.6vw,32px)}.yard-title span{color:var(--ink);font-size:clamp(13px,1.4vw,17px);font-weight:700}.yard-bar{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 12px;min-height:64px;padding:12px 16px;display:flex}.yard-bar:empty{display:none}.yard-btn{min-height:50px;padding:0 20px;font-size:19px}.yard-btn.white{color:var(--ink);box-shadow:0 5px 0 var(--line)}.yard-status{text-align:center;color:var(--muted);flex-basis:100%;font-size:17px;font-weight:700}.yard-ball{aspect-ratio:1;box-shadow:none;cursor:pointer;background:0 0;padding:0;transition-property:left,top,width;transition-timing-function:cubic-bezier(.2,.7,.4,1);position:absolute;transform:translate(-50%,-50%)}.yard-ball:before{content:"";position:absolute;inset:-80%}.yard-ball img{width:100%;display:block}.yard-ball.flying img{animation:.65s ease-out ball-arc}@keyframes ball-arc{40%{transform:translateY(-260%)rotate(240deg)}70%{transform:translateY(0)rotate(420deg)}85%{transform:translateY(-50%)rotate(480deg)}to{transform:translateY(0)rotate(540deg)}}.treat-picker{border-top:2px dashed var(--line);text-align:center;padding:12px 16px 16px}.treat-picker p{color:var(--muted);margin:0 0 10px;font-weight:700}.treat-row{justify-content:center;gap:12px;display:flex}.treat-item{background:var(--soft-yellow);width:116px;box-shadow:0 4px 0 var(--line);border-radius:20px;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;display:flex}.treat-item img{object-fit:contain;width:64px;height:64px}.treat-item b{font-size:17px}.treat-item span{color:var(--orange-d);font-size:15px;font-weight:700}.treat-item:disabled{opacity:.45}.goal-progress{background:var(--paper);width:100%;box-shadow:0 5px 0 var(--line);text-align:left;border-radius:22px;grid-template-columns:1fr auto;align-items:center;gap:8px 14px;padding:14px 18px;font-size:17px;display:grid}.goal-name{font-weight:800}.goal-count{color:var(--orange-d)}.goal-bar{background:var(--line);border-radius:999px;grid-column:1/-1;height:14px;overflow:hidden}.goal-bar i{border-radius:inherit;background:linear-gradient(90deg, #ffc93d, var(--orange));height:100%;display:block}.goal-progress.ready .goal-count{color:var(--green-d)}.reward-moment{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 20px;margin:8px auto 20px;display:flex}.reward-moment p{text-align:left;flex-direction:column;gap:4px;margin:0;font-size:24px;display:flex}.reward-moment span{color:var(--muted);font-size:18px}.corgi-moment{aspect-ratio:1;width:220px;position:relative}@media (prefers-reduced-motion:reduce){.corgi-heart,.corgi-bubble,.yard-ball.flying img{animation:none}}.shop-locked{background:var(--soft-yellow);border-radius:18px;margin-bottom:14px;padding:12px 18px;font-weight:700}.shop .goal-progress{margin-bottom:16px}.shop-goals{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.shop-card{box-shadow:0 4px 0 var(--line);text-align:center;background:#fffaf2;border-radius:22px;flex-direction:column;align-items:center;gap:4px;padding:16px 14px;display:flex}.shop-card.owned{background:#f0fbf3}.shop-card p{min-height:2.6em;margin:2px 0 8px}.shop-emoji{font-size:48px}.shop-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:auto;display:flex}.shop-actions .btn{min-height:46px;padding:0 16px;font-size:17px}.shop-owned{color:var(--green-d);font-size:16px;font-weight:700}.sticker-page h4{margin:18px 0 10px;font-size:19px}.sticker-grid{grid-template-columns:repeat(8,1fr);gap:10px;display:grid}.sticker{color:var(--muted);background:#f6f2ec;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 8px;font-size:14px;font-weight:700;display:flex}.sticker img{aspect-ratio:1;filter:grayscale()opacity(.35);width:100%}.sticker.owned{color:var(--ink);background:#fff6e0}.sticker.owned img{filter:none}.sticker.is-goal{outline:3px solid var(--blue)}.sticker-pop{text-align:center}.sticker-pop img{aspect-ratio:1;width:min(280px,60vw);margin:0 auto;display:block}.sticker-pop img.not-owned{filter:grayscale()opacity(.5)}.sticker-pop h2{margin:6px 0 0}.family-strip{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:22px;display:grid}.family-strip>div{background:var(--soft-yellow);border-radius:var(--radius);align-items:center;gap:14px;padding:16px 20px;display:flex}.family-strip-icon{font-size:40px}.family-strip p{flex-direction:column;gap:4px;margin:0;display:flex}.family-strip b{font-size:18px}.family-strip span{color:var(--muted);font-size:15px}.tile{position:relative}.tile small{color:var(--muted);margin-top:4px;font-size:14px;display:block}.tile-badge{background:var(--red);color:#fff;border-radius:999px;place-items:center;min-width:30px;height:30px;padding:0 8px;font-size:17px;font-weight:800;display:grid;position:absolute;top:10px;right:14px}.family-pending{grid-template-columns:1fr 1fr;gap:18px;display:grid}.family-pending-card{align-items:center;gap:18px;margin-bottom:0;display:flex}.family-pending-card.has{background:var(--soft-yellow)}.family-pending-icon{font-size:64px}.family-pending-card b{font-size:48px;line-height:1.1;display:block}.family-pending-card small{color:var(--muted);font-size:20px}.family-note{margin:14px 4px 22px;font-size:17px}.family-list{margin:0;padding:0;list-style:none}.family-list li{border-bottom:2px solid var(--bg);align-items:center;gap:14px;padding:12px 0;display:flex}.family-list li:last-child{border-bottom:0}.family-list-icon{font-size:32px}.family-list-text{flex-direction:column;flex:1;font-size:19px;display:flex}.family-list-text small{color:var(--muted);font-size:15px}.family-list-state{color:var(--orange-d);font-size:16px;font-weight:700}.family-list-state.issued{color:var(--green-d)}@media (orientation:portrait),(width<=900px){.home-main{grid-template-columns:1fr}}@media (orientation:portrait),(width<=760px){.wordcard{grid-template-columns:1fr;gap:18px}.wc-pic{width:min(100%,380px);margin:0 auto}.options-pics{grid-template-columns:1fr 1fr}}@media (width<=760px){.tiles{grid-template-columns:1fr 1fr}.family-strip,.family-pending{grid-template-columns:1fr}.pills{flex-wrap:wrap}.hello{font-size:28px}.phw-lg{font-size:48px}.big-word{font-size:46px}.big-zh{font-size:34px}.opt{min-height:72px;font-size:24px}.slot{width:42px;height:54px;font-size:28px}.kb-key{height:50px;font-size:22px}.btn.big{min-height:64px;padding:0 28px;font-size:22px}}@media (orientation:landscape) and (height<=860px){.ask-pic{width:min(260px,32vh)}.sound-lg{width:110px;height:110px;font-size:50px}.kb-key{height:56px}.slot{height:62px}}@media (width<=760px){.sticker-grid{grid-template-columns:repeat(4,1fr)}}
