*,:before,:after{box-sizing:border-box}html{background:var(--color-page);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100%}body{min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}button,input,textarea,select{color:inherit;font:inherit}button,[role=button]{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}h1,h2,h3,p{margin:0}img,svg{max-width:100%;display:block}:root{color:var(--color-ink);background:var(--color-page);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--viewport-max:430px;--tap-min:48px;--safe-bottom:env(safe-area-inset-bottom,0px);--safe-top:env(safe-area-inset-top,0px);--motion-fast:.16s;--motion-card:.28s;--color-page:#eeeaf3;--color-canvas:#fffaf3;--color-surface:#fffdf9;--color-surface-muted:#f6f0f8;--color-ink:#332864;--color-ink-soft:#6e6686;--color-lavender:#8b74d3;--color-lavender-strong:#654ea4;--color-lavender-soft:#e7dcf5;--color-sage:#527965;--color-sage-decoration:#e5eee4;--color-gold:#d2aa66;--color-gold-soft:#f6e8cc;--color-border:#dfd4e2;--color-border-warm:#ead5ad;--color-focus:#426fa9;--radius-card:24px;--radius-control:18px;--radius-pill:999px;--shadow-card:0 12px 28px #4934701a;--shadow-nav:0 -8px 24px #432f661a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--type-display:ui-rounded, "Hiragino Sans GB", "PingFang SC", "Microsoft YaHei", serif;--type-body:-apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,sans-serif}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}#root{min-height:100dvh}.app-shell{--nav-height:84px;width:min(100%, var(--viewport-max));background:var(--color-canvas);min-height:100dvh;margin-inline:auto;box-shadow:0 0 0 1px #ffffff8c}.app-shell__content{min-height:100%;padding:calc(var(--safe-top) + var(--space-8)) var(--space-5) calc(var(--nav-height) + var(--safe-bottom) + var(--space-5))}.placeholder-page{gap:var(--space-6);display:grid}.placeholder-page__header{gap:var(--space-2);padding:var(--space-2) var(--space-1) 0;display:grid}.placeholder-page__eyebrow,.game-card__overline{color:var(--color-sage);letter-spacing:.12em;font-size:.82rem;font-weight:700}.placeholder-page h1{color:var(--color-ink);font-family:var(--type-display);letter-spacing:.04em;font-size:clamp(2rem,9vw,2.65rem);font-weight:700;line-height:1.15}.placeholder-page__intro{color:var(--color-ink-soft);font-size:1rem}.game-card{gap:var(--space-4);padding:var(--space-6);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);transition:box-shadow var(--motion-card) ease, transform var(--motion-fast) ease;display:grid}.game-card__copy{color:var(--color-ink-soft);font-size:1rem;line-height:1.65}.game-card__stat{color:var(--color-lavender-strong);font-family:var(--type-display);letter-spacing:.04em;font-size:2.5rem;font-weight:700}.game-card__title{color:var(--color-ink);font-family:var(--type-display);font-size:1.35rem}.progress-bar{background:var(--color-lavender-soft);border-radius:var(--radius-pill);width:100%;height:10px;overflow:hidden}.progress-bar__fill{background:var(--color-lavender);border-radius:inherit;height:100%;transition:width var(--motion-card) ease;display:block}.bottom-nav{z-index:10;width:min(100%, var(--viewport-max));min-height:calc(var(--nav-height) + var(--safe-bottom));padding:var(--space-2) var(--space-2) calc(var(--space-2) + var(--safe-bottom));background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-nav);border-bottom:0;border-radius:26px 26px 0 0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav__link{min-width:0;min-height:var(--tap-min);padding:var(--space-1) 0;color:var(--color-ink-soft);transition:color var(--motion-fast) ease, transform var(--motion-fast) ease;place-items:center;font-size:.88rem;font-weight:700;line-height:1.1;text-decoration:none;display:grid}.bottom-nav__icon{color:currentColor}.bottom-nav__link[aria-current=page]{color:var(--color-lavender-strong)}.bottom-nav__link[aria-current=page]:after{content:"";background:var(--color-lavender);border-radius:var(--radius-pill);width:24px;height:4px;margin-top:2px}@media (hover:hover) and (pointer:fine){.game-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px #49347024}.bottom-nav__link:hover{color:var(--color-lavender-strong)}}.bottom-nav__link:active{transform:scale(.96)}@media (width>=431px){.app-shell{border-inline:1px solid var(--color-border)}}.onboarding-loading,.onboarding-page{width:min(100%, var(--viewport-max));min-height:100dvh;color:var(--color-ink);background:var(--color-canvas);margin-inline:auto}.onboarding-loading{padding:var(--space-8);place-items:center;display:grid}.onboarding-page{padding:calc(var(--safe-top) + var(--space-6)) var(--space-5) calc(var(--safe-bottom) + var(--space-6));flex-direction:column;display:flex;overflow:hidden}.onboarding-page--welcome,.onboarding-page--name,.onboarding-page--pets{isolation:isolate;position:relative}.onboarding-page__welcome-art,.onboarding-page__name-art,.onboarding-page__pet-choice-art{z-index:-1;object-fit:cover;object-position:center;width:100%;max-width:none;height:100%;position:absolute;inset:0}.onboarding-page__welcome-art img,.onboarding-page__name-art img,.onboarding-page__pet-choice-art img{object-fit:cover;object-position:center;width:100%;height:100%}.onboarding-page__welcome-content,.onboarding-page__header{gap:var(--space-2);text-align:center;display:grid}.onboarding-page--name{min-height:100dvh;padding:calc(var(--safe-top) + var(--space-5)) var(--space-4) calc(var(--safe-bottom) + var(--space-6));align-content:center;overflow:hidden}.onboarding-page__name-art{z-index:-2;position:absolute;inset:0}.onboarding-page--name:after{z-index:-1;content:"";background:linear-gradient(#f5f0ffc2,#fffbf4f0);position:absolute;inset:0}.onboarding-page--name .onboarding-page__step{margin-bottom:0}.onboarding-page--name .onboarding-page__progress{margin-bottom:var(--space-3)}.onboarding-page--name .onboarding-page__header{text-align:center}.onboarding-page__name-icon{width:68px;height:68px;color:var(--color-lavender-strong);border:1px solid var(--color-border-warm);box-shadow:var(--shadow-card);background:#fffdf9db;border-radius:50%;place-items:center;margin-inline:auto;display:grid}.learner-name-card{padding:var(--space-5);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);gap:var(--space-3);background:#fffdf9f0;display:grid}.learner-name-card label{color:var(--color-ink);text-align:left;font-size:1rem;font-weight:800}.learner-name-card input{width:100%;min-height:52px;padding:0 var(--space-3);color:var(--color-ink);border:1px solid var(--color-lavender);border-radius:var(--radius-control);font:inherit;background:#fff;outline:none;font-size:1.1rem}.learner-name-card input:focus{border-color:var(--color-lavender-strong);box-shadow:0 0 0 3px var(--color-lavender-soft)}.learner-name-card__meta{color:var(--color-ink-soft);gap:var(--space-2);text-align:left;justify-content:space-between;font-size:.78rem;display:flex}.learner-name-card__meta span{flex:none}.learner-name-card__error{color:#a64242;text-align:left;font-weight:700}.onboarding-page__welcome-content{margin-top:clamp(54px,8dvh,82px)}.onboarding-page h1{font-family:var(--type-display);letter-spacing:.04em;font-size:clamp(2.15rem,10vw,3.15rem);font-weight:700;line-height:1.1}.onboarding-page--welcome h1{color:#493680;letter-spacing:.025em;text-shadow:0 2px #fff9ebeb,0 0 18px #fff8ddf5;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(3.25rem,15vw,4.2rem);font-weight:700}.onboarding-page--welcome .onboarding-page__eyebrow{color:var(--color-lavender-strong);letter-spacing:.08em;text-shadow:0 1px 8px #fffdf9eb;font-family:Songti SC,STSong,SimSun,serif;font-size:1.08rem;font-weight:700}.onboarding-page--welcome .onboarding-page__actions{background:0 0;width:min(100%,354px);margin:auto auto clamp(16px,4.4dvh,44px);padding:0}.onboarding-page__eyebrow,.onboarding-page__header p,.onboarding-page__hint,.onboarding-page__step{color:var(--color-ink-soft)}.onboarding-page__intro{color:var(--color-ink-soft);line-height:1.6}.onboarding-page__actions{gap:var(--space-3);text-align:center;margin-top:auto;display:grid}.onboarding-button{min-height:var(--tap-min);border-radius:var(--radius-pill);cursor:pointer;border:0;font-weight:800}.onboarding-button--primary{color:#fff;background-color:var(--color-lavender-strong);min-height:58px;box-shadow:none;text-shadow:0 2px 3px #32206073;background-image:url(/assets/home/optimized/daily-plan-button-v1.webp);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border:0;font-size:1.45rem}.onboarding-button--primary:active{filter:brightness(.96);transform:translateY(2px)scale(.99)}.onboarding-button--primary:disabled{cursor:default;filter:saturate(.35);opacity:.68}.onboarding-button--text{color:var(--color-lavender-strong);background:0 0;font-size:1rem}.onboarding-page__hint{font-size:.95rem;line-height:1.45}.onboarding-page__welcome-hint{color:var(--color-lavender-strong);text-shadow:0 1px 8px #fffdf9f2;font-size:.82rem;font-weight:700}.onboarding-page__step{margin:0 auto var(--space-2);font-family:var(--type-display);font-size:1.1rem}.onboarding-page__progress{gap:var(--space-2);margin-bottom:var(--space-6);justify-content:center;display:flex}.onboarding-page__progress span{background:var(--color-lavender-soft);border:1px solid var(--color-lavender);border-radius:50%;width:12px;height:12px}.onboarding-page__progress .is-current{background:var(--color-lavender);box-shadow:0 0 0 4px var(--color-gold-soft)}.onboarding-page--pets,.onboarding-page--tutorial{gap:var(--space-5)}.onboarding-page--pets{padding:calc(var(--safe-top) + var(--space-8)) var(--space-3) calc(var(--safe-bottom) + var(--space-4));gap:var(--space-3);background:#eee9f8}.onboarding-page--pets .onboarding-page__step{color:#fffdf9eb;text-shadow:0 1px 6px #4934808c;margin-bottom:0}.onboarding-page--pets .onboarding-page__progress{margin-bottom:var(--space-1)}.onboarding-page--pets .onboarding-page__header{gap:var(--space-1)}.onboarding-page--pets .onboarding-page__header h1{color:#493680;letter-spacing:.025em;text-shadow:0 2px 10px #fffdf9f0;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(2.35rem,11vw,3rem);font-weight:700;display:grid}.onboarding-page--pets .onboarding-page__header p{color:var(--color-lavender-strong);font-family:Songti SC,STSong,SimSun,serif;font-weight:700}.onboarding-page--tutorial{gap:var(--space-3)}.onboarding-page--tutorial .onboarding-page__progress{margin-bottom:var(--space-2)}.pet-choice-grid{padding-top:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:7px;display:grid}.pet-choice-card{gap:var(--space-2);min-width:0;min-height:clamp(318px,44dvh,372px);padding:7px 7px var(--space-3);color:var(--color-ink);cursor:pointer;transition:transform var(--motion-card) ease, box-shadow var(--motion-card) ease, border-color var(--motion-fast) ease;background:#fffdf9c7;border:2px solid #8b74d36b;border-radius:54px 54px 26px 26px;place-items:center;display:grid;position:relative;box-shadow:0 9px 22px #4934701a}.pet-choice-card--sprout-fox{background:#fcfae2d1;border-color:#5279656b}.pet-choice-card--bubble-otter{background:#ffefe8d1;border-color:#d38b786b}.pet-choice-card.is-selected{z-index:1;border-color:var(--color-gold);transform:translateY(-13px)scale(1.045);box-shadow:0 0 0 3px #f6e8ccd1,0 12px 28px #49347029}.pet-choice-card picture{border-radius:46px 46px 18px 18px;width:100%;overflow:hidden}.pet-choice-card img{object-fit:cover;object-position:center;width:100%;height:clamp(205px,29dvh,246px)}.pet-choice-card__name{white-space:nowrap;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(1rem,4.5vw,1.32rem);font-weight:700}.pet-choice-card--star-rabbit .pet-choice-card__name{color:var(--color-lavender-strong)}.pet-choice-card--sprout-fox .pet-choice-card__name{color:var(--color-sage)}.pet-choice-card--bubble-otter .pet-choice-card__name{color:#b86f5c}.pet-choice-card__trait{padding:3px var(--space-3);color:var(--color-sage);border-radius:var(--radius-pill);background:#e5eee4c2;border:1px solid #52796533;font-size:.78rem;font-weight:700}.onboarding-page__pet-actions{gap:var(--space-2);text-align:center;width:min(100%,330px);margin:auto auto 0;display:grid}.onboarding-page__pet-actions .onboarding-button--primary{min-height:60px;font-size:1.35rem}.onboarding-page--pets .onboarding-page__hint{color:var(--color-lavender-strong);font-weight:700}.tutorial-steps{gap:var(--space-2);grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;display:grid}.tutorial-steps li{min-height:90px;padding:var(--space-2);color:var(--color-ink-soft);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-control);text-align:center;place-items:center;font-size:.82rem;line-height:1.4;display:grid}.tutorial-steps svg{color:var(--color-lavender-strong)}.tutorial-word-card{min-height:210px;padding:var(--space-4);background:var(--color-surface);border:2px solid var(--color-sage);border-radius:var(--radius-card);display:grid;position:relative;overflow:hidden}.tutorial-word-card__word{z-index:1;color:var(--color-lavender-strong);letter-spacing:.03em;font-family:Georgia,serif;font-size:clamp(2.4rem,13vw,4rem)}.tutorial-word-card img{right:calc(var(--space-4) * -1);width:58%;position:absolute;bottom:0}.tutorial-word-card__speaker{z-index:1;width:64px;min-height:64px;color:var(--color-lavender-strong);background:var(--color-surface-muted);border:1px solid var(--color-border);cursor:pointer;border-radius:50%;margin-top:auto}.tutorial-options{gap:var(--space-2);display:grid}.tutorial-options p{min-height:44px;padding:var(--space-1) var(--space-4);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-control);align-items:center;gap:var(--space-4);font-size:1.1rem;font-weight:700;display:flex}.tutorial-options span{color:var(--color-sage);font-family:Georgia,serif;font-size:1.45rem}.onboarding-page__actions--tutorial{gap:var(--space-1);margin-top:0}.onboarding-page__actions--tutorial .onboarding-button--primary{min-height:54px}.onboarding-page__actions--tutorial .onboarding-button--text{min-height:32px}.onboarding-page--tutorial .onboarding-page__hint{font-size:.82rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width<=359px){.onboarding-page{padding-inline:var(--space-3)}.pet-choice-card{min-height:282px}.pet-choice-card img{height:180px}.pet-choice-card__trait{padding-inline:var(--space-2)}.tutorial-word-card{min-height:220px}}@media (height<=760px){.onboarding-page--pets{padding-top:calc(var(--safe-top) + var(--space-4));gap:var(--space-2)}.onboarding-page--pets .onboarding-page__header h1{font-size:2.15rem}.pet-choice-grid{padding-top:var(--space-2)}.pet-choice-card{min-height:278px}.pet-choice-card img{height:178px}}.practice-loading,.practice-question,.rescue-page,.session-result,.answer-feedback{gap:var(--space-5);width:100%;max-width:430px;margin-inline:auto;display:grid}.practice-loading{min-height:55dvh;color:var(--color-ink-soft);text-align:center;align-content:center}.practice-loading h1{color:var(--color-ink);font-family:var(--type-display);font-size:1.8rem}.practice-question{gap:var(--space-3);padding-top:0}.practice-question__top{gap:var(--space-2);text-align:center;display:grid}.practice-question__count{color:var(--color-lavender-strong);font-family:var(--type-display);font-size:2rem;font-weight:800;line-height:1}.practice-question__count span{font-size:1rem;font-weight:600}.practice-question__progress{background:var(--color-lavender-soft);border-radius:var(--radius-pill);height:11px;overflow:hidden;box-shadow:inset 0 0 0 1px #654ea417}.practice-question__progress span{background:var(--color-lavender);border-radius:inherit;height:100%;transition:width var(--motion-card) ease;display:block}.practice-question__streak{width:fit-content;min-height:34px;color:var(--color-sage);background:var(--color-sage-decoration);border-radius:var(--radius-pill);border:1px solid #52796547;margin-inline:auto;padding:6px 17px;font-weight:800}.practice-word-card{min-height:190px;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:center;align-content:center;display:grid;position:relative;overflow:hidden}.practice-word-card:before{border-radius:calc(var(--radius-card) - 7px);content:"";pointer-events:none;border:1px solid #5279652e;position:absolute;inset:9px}.practice-word-card h1{z-index:1;color:#38318a;letter-spacing:.015em;overflow-wrap:break-word;word-break:normal;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.25rem,11vw,3.25rem);font-weight:500;line-height:1.1}.practice-word-card h1.practice-word-card__headword--long{font-size:clamp(1.75rem,7vw,2.4rem);line-height:1.15}.practice-word-card__label{z-index:1;color:var(--color-sage);font-size:.9rem;font-weight:800}.practice-word-card__source{z-index:1;width:fit-content;margin:var(--space-4) auto 0;color:var(--color-ink-soft);background:var(--color-surface-muted);border-radius:var(--radius-pill);padding:5px 12px;font-size:.86rem}.practice-question__prompt{color:#38318a;font-family:var(--type-display);text-align:center;font-size:clamp(1.3rem,6vw,1.65rem);font-weight:800}.practice-options{gap:var(--space-2);display:grid}.practice-option{color:#2e2c36;background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-control);cursor:pointer;align-items:center;gap:var(--space-3);text-align:left;min-width:0;min-height:54px;transition:transform var(--motion-fast) ease, border-color var(--motion-fast) ease, background var(--motion-fast) ease;padding:7px 14px;font-size:clamp(1rem,4.7vw,1.25rem);font-weight:750;display:flex;box-shadow:0 3px #d2aa6621}.practice-option:active{transform:scale(.985)}.practice-option:disabled{cursor:wait;opacity:.62}.practice-option__letter{width:38px;height:38px;color:var(--color-sage);border:1px solid #52796554;border-radius:50%;flex:0 0 38px;place-items:center;font-family:Georgia,serif;font-size:1.5rem;font-weight:500;display:grid}.answer-feedback{min-height:calc(100dvh - var(--nav-height) - var(--safe-top) - var(--safe-bottom) - var(--space-10));padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:center;align-content:center}.answer-feedback__title{color:var(--color-sage);justify-content:center;gap:var(--space-2);align-items:center;display:flex}.answer-feedback--wrong .answer-feedback__title{color:var(--color-lavender-strong)}.answer-feedback h2{font-family:var(--type-display);font-size:2rem}.answer-feedback__word{color:#38318a;overflow-wrap:anywhere;font-family:Georgia,serif;font-size:clamp(2.5rem,14vw,4.2rem);line-height:1.05}.answer-feedback__meaning{color:var(--color-sage);font-family:var(--type-display);font-size:1.4rem;font-weight:800}.answer-feedback__explanation{padding:var(--space-3);color:var(--color-ink-soft);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-control);gap:var(--space-2);text-align:left;display:grid}.answer-feedback__explanation svg{color:#d45a5a}.answer-feedback__explanation b{color:var(--color-sage)}.answer-feedback__sentence{color:#35353e;font-size:1.03rem;line-height:1.6}.answer-feedback__sentence mark{color:#38318a;border-bottom:2px solid var(--color-lavender);background:0 0}.answer-feedback__chinese{color:var(--color-ink-soft);line-height:1.6}.answer-feedback__rescue-note{color:var(--color-sage);font-weight:750}.practice-primary{width:100%;min-height:56px;margin-top:var(--space-2);color:#fff;background:var(--color-lavender-strong);border-radius:var(--radius-pill);box-shadow:0 6px 0 #493680, var(--shadow-card);cursor:pointer;font-family:var(--type-display);transition:transform var(--motion-fast) ease, box-shadow var(--motion-fast) ease;border:0;font-size:1.35rem;font-weight:800}.practice-primary:active{transform:translateY(4px);box-shadow:0 2px #493680}.practice-primary:disabled{cursor:wait;opacity:.7}.practice-primary--sage{background:var(--color-sage);box-shadow:0 6px 0 #3d604d, var(--shadow-card)}.practice-primary--sage:active{box-shadow:0 2px #3d604d}.rescue-page{gap:var(--space-2)}.rescue-page__header{padding:var(--space-2) var(--space-3);color:#a66a26;background:var(--color-gold-soft);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);gap:var(--space-2);align-items:center;display:flex}.rescue-page__header h1{font-family:var(--type-display);font-size:1.35rem}.rescue-page__header p{color:var(--color-ink-soft);margin-top:1px;font-size:.88rem}.rescue-page .practice-question{gap:var(--space-2)}.rescue-page .practice-word-card{min-height:150px;padding:var(--space-3)}.rescue-page .practice-options{gap:6px}.rescue-page .practice-option{min-height:48px}.session-result{padding:var(--space-3) 0 var(--space-4);text-align:center}.session-result>header{gap:var(--space-2);display:grid}.session-result>header p{color:var(--color-sage);font-weight:800}.session-result>header h1{color:#38318a;font-family:var(--type-display);font-size:clamp(2.3rem,11vw,3.3rem);line-height:1}.session-result>header span{color:var(--color-ink-soft);font-size:1.1rem}.session-result__pet{height:170px;display:block}.session-result__pet img{object-fit:cover;object-position:center;filter:drop-shadow(0 10px 12px #5279652e);border-radius:50%;width:180px;height:180px}.session-result__stats{padding:var(--space-4) var(--space-2);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.session-result__stats div{min-width:0;padding:0 var(--space-2);color:var(--color-ink-soft);gap:var(--space-2);place-items:center;display:grid}.session-result__stats div+div{border-left:1px solid var(--color-border)}.session-result__stats svg{color:var(--color-sage)}.session-result__stats div:nth-child(2) svg{color:var(--color-lavender)}.session-result__stats div:nth-child(3) svg{color:var(--color-gold)}.session-result__stats span{font-size:.84rem;font-weight:700}.session-result__stats strong{color:var(--color-lavender-strong);font-family:var(--type-display);font-size:1.8rem}.session-result__stats small{color:var(--color-sage);font-weight:800}.session-result__growth{padding:var(--space-5);color:var(--color-lavender-strong);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-card);gap:var(--space-1);display:grid}.session-result__growth p{color:var(--color-ink-soft);font-weight:750}.session-result__growth strong{font-family:var(--type-display);font-size:3.3rem;line-height:1}.session-result__growth span{color:var(--color-sage);font-weight:750}.practice-option:focus-visible,.practice-primary:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}@media (width<=359px){.practice-word-card{min-height:174px;padding:var(--space-3)}.practice-option{min-height:50px}.answer-feedback{padding:var(--space-4);gap:var(--space-3)}}@media (hover:hover) and (pointer:fine){.practice-option:hover{border-color:var(--color-lavender);background:#fffbf4}}.home-loading{min-height:60dvh;color:var(--color-ink-soft);text-align:center;place-items:center;display:grid}.home-page,.daily-plan,.unit-map{isolation:isolate;min-height:calc(100dvh - var(--nav-height));position:relative}.home-page{width:calc(100% + var(--space-10));padding-inline:var(--space-5);margin-inline:calc(var(--space-5) * -1);overflow-x:clip}.home-page__background,.daily-plan__background,.unit-map__background{z-index:-1;inset:calc(var(--safe-top) + var(--space-8)) 0 auto;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;max-width:none;position:absolute}.home-page__background,.daily-plan__background{border-radius:var(--radius-card);opacity:.54;overflow:hidden}.home-page__background{top:calc((var(--safe-top) + var(--space-8)) * -1);opacity:.82;border-radius:0;height:auto;bottom:0}.daily-plan__background{top:calc((var(--safe-top) + var(--space-8)) * -1);opacity:.74;border-radius:0;height:310px}.home-page__background img,.daily-plan__background img{object-fit:cover;object-position:center 45%;width:100%;height:100%}.home-page__header,.daily-plan__header,.unit-map__header{gap:var(--space-2);display:grid;position:relative}.home-page__header{padding:var(--space-1) var(--space-1) 0;grid-template-columns:minmax(0,1fr) auto;align-items:start}.home-page__header>div{gap:var(--space-1);display:grid}.home-page__settings{width:46px;min-height:46px;color:var(--color-lavender-strong);border:1px solid var(--color-border-warm);box-shadow:var(--shadow-card);background:#fffdf9d1;border-radius:50%;place-items:center;display:grid}.home-page__header p,.daily-plan__header p,.unit-map__header p{color:var(--color-lavender-strong);align-items:center;gap:var(--space-1);font-size:1.08rem;font-weight:800;display:flex}.home-page__header p{font-size:1.13rem}.home-page h1,.daily-plan h1,.unit-map h1{color:var(--color-ink);font-family:var(--type-display);text-shadow:0 2px 12px #fffdf9d9;font-size:clamp(2rem,10vw,2.7rem);line-height:1.15}.home-page h1{font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(1.85rem,8vw,2.15rem);font-weight:650}.home-page__pet{height:clamp(278px,38dvh,330px);margin-top:0;position:relative}.home-page__pet>img{filter:drop-shadow(0 14px 14px #49347033);width:min(96%,374px);max-height:324px;display:block;position:absolute;bottom:-10px;left:50%;transform:translate(-50%)}.home-page__pet>span{z-index:1;top:var(--space-2);left:var(--space-1);width:max-content;max-width:100%;padding:7px var(--space-4);color:var(--color-sage);border:1px solid var(--color-sage);border-radius:var(--radius-pill);box-shadow:var(--shadow-card);background:#fffdf9e0;font-family:Songti SC,STSong,SimSun,serif;font-size:1.05rem;font-weight:800;position:absolute}.home-practice-card{min-height:190px;padding:var(--space-4);border:1px solid var(--color-border-warm);align-items:center;column-gap:var(--space-4);background:#fffdf9f2;border-radius:30px;grid-template-columns:90px minmax(0,1fr);margin-top:0;display:grid;box-shadow:0 14px 30px #49347021,inset 0 0 0 1px #fffc}.home-practice-card__icon{width:84px;height:84px;color:var(--color-lavender-strong);background:var(--color-lavender-soft);border:1px solid #8b74d33d;border-radius:50%;place-items:center;display:grid}.home-practice-card__copy{gap:3px;min-width:0;display:grid}.home-practice-card h2{color:var(--color-ink);font-family:Songti SC,STSong,SimSun,serif;font-size:1.55rem;font-weight:650}.home-practice-card strong{color:var(--color-lavender-strong);font-family:Songti SC,STSong,SimSun,serif;font-size:2rem;font-weight:500;line-height:1.1;display:block}.home-practice-card small{color:var(--color-ink-soft);font-size:.8rem}.home-practice-card__progress{height:7px;margin-top:var(--space-1);border-radius:var(--radius-pill);background:#eee8ea;display:block;overflow:hidden}.home-practice-card__progress i{background:var(--color-lavender);border-radius:inherit;height:100%;display:block}.home-practice-card__cta,.daily-plan__primary{min-height:56px;padding:var(--space-3) var(--space-5);margin-top:var(--space-3);color:#fff;background-color:var(--color-lavender-strong);border-radius:var(--radius-pill);box-shadow:none;justify-content:center;gap:var(--space-2);text-shadow:0 2px 3px #32206066;background-image:url(/assets/home/optimized/daily-plan-button-v1.webp);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border:0;grid-column:1/-1;font-size:1.16rem;font-weight:800;text-decoration:none;display:flex}.home-review-link,.daily-plan__scope{min-height:var(--tap-min);padding:var(--space-3) var(--space-4);margin-top:var(--space-3);color:var(--color-lavender-strong);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:#fffdf9eb;justify-content:space-between;align-items:center;font-weight:800;text-decoration:none;display:flex}.home-review-link span{margin-right:auto;margin-left:var(--space-3)}.home-review-link strong{margin-left:var(--space-2);font-size:1.35rem}.daily-plan{width:calc(100% + var(--space-10));min-height:0;padding:0 var(--space-2) var(--space-4);margin-inline:calc(var(--space-5) * -1);align-content:start;gap:10px;display:grid;overflow-x:clip}.daily-plan__background img{object-position:center 31%}.daily-plan h1{letter-spacing:.03em;font-family:Songti SC,STSong,SimSun,serif;font-size:clamp(1.9rem,8.7vw,2.125rem);font-weight:600;line-height:1.1}.daily-plan__pet{z-index:0;object-fit:contain;filter:drop-shadow(0 10px 12px #49347026);pointer-events:none;width:55%;max-height:220px;position:absolute;top:44px;right:-10px}.daily-plan__header{z-index:1;min-height:184px;padding:62px var(--space-4) 0;align-content:start;gap:var(--space-2)}.daily-plan__header p{color:var(--color-ink);font-size:1rem;font-weight:650}.daily-plan__card,.daily-plan__primary,.daily-plan__scope{z-index:1;position:relative}.daily-plan__card{min-height:360px;padding:var(--space-5) var(--space-4) var(--space-4);border:1px solid var(--color-border-warm);background:#fffdf9f5;border-radius:30px;gap:10px;display:grid;box-shadow:0 12px 28px #4934701f,inset 0 0 0 1px #ffffffd1}.daily-plan__card h2{color:var(--color-ink);letter-spacing:.04em;justify-content:center;align-items:center;gap:var(--space-4);text-align:center;font-family:Songti SC,STSong,SimSun,serif;font-size:1.65rem;font-weight:600;display:flex}.daily-plan__card h2 svg{color:#7faa91}.daily-plan__allocation{grid-template-columns:minmax(0,43%) minmax(0,57%);align-items:center;gap:10px;min-height:190px;display:grid}.daily-plan__summary{width:min(100%,150px);color:var(--color-lavender-strong);place-items:center;margin-inline:auto;display:grid;position:relative}.daily-plan__summary>img{width:100%;height:auto;display:block}.daily-plan__summary-value{align-content:center;justify-items:center;display:grid;position:absolute;inset:0}.daily-plan__summary strong{font-family:Songti SC,STSong,SimSun,serif;font-size:3.25rem;font-weight:500;line-height:.82}.daily-plan__summary-value>span{margin-top:var(--space-2);color:var(--color-ink-soft);font-size:.9rem}.daily-plan__rows{gap:var(--space-2);display:grid}.daily-plan__rows p{min-height:54px;padding:5px var(--space-3) 5px 5px;color:#2e2a35;border:1px solid var(--color-border);align-items:center;gap:var(--space-2);background:#fffdf9e0;border-radius:20px;grid-template-columns:40px minmax(0,1fr) auto;font-family:Songti SC,STSong,SimSun,serif;font-size:1rem;display:grid}.daily-plan__row-icon{border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.daily-plan__rows p:first-child .daily-plan__row-icon{color:var(--color-sage);background:var(--color-sage-decoration)}.daily-plan__rows p:nth-child(2) .daily-plan__row-icon{color:var(--color-lavender);background:var(--color-lavender-soft)}.daily-plan__rows p:nth-child(3) .daily-plan__row-icon{color:var(--color-gold);background:var(--color-gold-soft)}.daily-plan__rows p:first-child strong{color:var(--color-sage)}.daily-plan__rows p:nth-child(2) strong{color:var(--color-lavender-strong)}.daily-plan__rows p:nth-child(3) strong{color:#c28d3e}.daily-plan__rows strong{font-family:Songti SC,STSong,SimSun,serif;font-size:1.75rem;font-weight:500}.daily-plan__mix-note{color:var(--color-ink-soft);justify-items:center;gap:var(--space-2);text-align:center;font-family:Songti SC,STSong,SimSun,serif;font-size:.84rem;display:grid}.daily-plan__mixed{min-height:36px;padding:5px var(--space-4);color:var(--color-sage);border-radius:var(--radius-pill);justify-content:center;align-items:center;gap:var(--space-2);background:#e5eee48f;border:1px solid #52796547;font-size:.98rem;font-weight:650;display:flex}.daily-plan__scope-copy,.daily-plan__rescue{color:var(--color-ink-soft);text-align:center;font-size:.72rem;line-height:1.35}.daily-plan__primary{min-height:62px;padding:var(--space-3) var(--space-5);margin:0 var(--space-4);background-color:var(--color-lavender-strong);box-shadow:none;letter-spacing:.02em;text-shadow:0 2px 3px #32206066;background-image:url(/assets/home/optimized/daily-plan-button-v1.webp);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border:0;font-size:1.38rem}.daily-plan__scope{min-height:50px;padding:var(--space-2) var(--space-4);margin:4px var(--space-4) 0;background:#fffdf9e6;justify-content:flex-start;gap:0;box-shadow:0 4px 14px #4934700f}.daily-plan__scope span{margin-left:var(--space-3)}.daily-plan__scope svg:last-child{margin-left:auto}.unit-map{align-content:start;gap:var(--space-4);display:grid}.unit-map__background{top:0;right:calc(var(--space-5) * -1);bottom:calc(var(--nav-height) * -1);left:calc(var(--space-5) * -1);width:calc(100% + var(--space-10));height:calc(100% + var(--nav-height));opacity:.55}.unit-map__background img{object-fit:cover;width:100%;height:100%}.unit-map__header{padding-top:var(--space-2)}.unit-map__header h1{font-size:clamp(2.25rem,12vw,3rem)}.unit-map__tabs{border:1px solid var(--color-border);border-radius:var(--radius-pill);scrollbar-width:none;background:#fffdf9d4;padding:3px;display:flex;overflow-x:auto}.unit-map__tabs button{flex:1 0 max-content;min-height:44px;padding:0 var(--space-3);color:var(--color-ink-soft);border-radius:var(--radius-pill);cursor:pointer;font:inherit;background:0 0;border:0;font-weight:800}.unit-map__tabs button[aria-pressed=true]{color:#fff;background:var(--color-lavender);box-shadow:0 3px 0 var(--color-lavender-strong)}.unit-map__cards{gap:var(--space-3);padding-bottom:var(--space-4);display:grid}.unit-card{width:100%;min-height:136px;padding:var(--space-4);color:var(--color-ink);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);cursor:pointer;font:inherit;text-align:left;align-items:center;gap:var(--space-3);background:#fffdf9f0;grid-template-columns:62px 1fr auto;display:grid;position:relative}.unit-card:focus-visible,.unit-map__tabs button:focus-visible,.home-practice-card__cta:focus-visible,.daily-plan__primary:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}.unit-card__companion{border-radius:50%;place-items:center;width:58px;height:58px;display:grid}.unit-card__companion.is-locked{color:var(--color-ink-soft);background:var(--color-lavender-soft)}.unit-card__companion.is-egg{color:var(--color-gold);background:var(--color-gold-soft)}.unit-card__companion.is-complete{color:var(--color-sage);background:var(--color-sage-decoration)}.unit-card__copy{gap:2px;min-width:0;display:grid}.unit-card__copy small{color:var(--color-lavender-strong);font-family:Georgia,serif;font-size:1.2rem}.unit-card__copy strong{font-family:var(--type-display);text-overflow:ellipsis;white-space:nowrap;font-size:1.35rem;overflow:hidden}.unit-card__copy em{color:var(--color-ink-soft);font-size:.78rem;font-style:normal}.unit-card__progress{height:12px;margin-top:var(--space-2);background:var(--color-lavender-soft);border-radius:var(--radius-pill);align-items:center;gap:var(--space-2);grid-template-columns:1fr auto;display:grid;overflow:hidden}.unit-card__progress i{background:var(--color-sage);border-radius:inherit;height:100%}.unit-card__progress b{color:var(--color-lavender-strong);font-size:.85rem}.unit-card__badge{padding:4px var(--space-2);color:var(--color-sage);background:var(--color-sage-decoration);border-radius:var(--radius-pill);align-self:start;font-size:.72rem;font-weight:800}.unit-map__hint{min-height:var(--tap-min);padding:var(--space-3);color:var(--color-sage);border-radius:var(--radius-control);justify-content:center;align-items:center;gap:var(--space-2);text-align:center;background:#fffdf9d9;font-size:.86rem;font-weight:700;display:flex}@media (width<=359px){.home-page__pet{height:250px}.home-page__pet>img{width:min(92%,310px);max-height:252px}.home-practice-card{padding:var(--space-3);grid-template-columns:72px minmax(0,1fr)}.home-practice-card__icon{width:68px;height:68px}.unit-card{padding:var(--space-3)}.daily-plan__pet{width:50%;max-height:206px;top:52px;right:-6px}.daily-plan__card{min-height:340px;padding:var(--space-4) var(--space-3) var(--space-3)}.daily-plan__allocation{grid-template-columns:minmax(0,41%) minmax(0,59%);gap:6px;min-height:180px}.daily-plan__rows p{padding-right:var(--space-2);grid-template-columns:36px minmax(0,1fr) auto;gap:5px;font-size:.9rem}.daily-plan__row-icon{width:36px;height:36px}.daily-plan__rows strong{font-size:1.5rem}.unit-card{gap:var(--space-2);grid-template-columns:50px 1fr auto}.unit-card__companion{width:48px;height:48px}.unit-card__copy strong{font-size:1.12rem}}.collection-page{align-content:start;gap:var(--space-4);min-height:calc(100dvh - var(--nav-height));color:var(--color-ink);display:grid}.collection-header{grid-template-columns:48px 1fr 48px;align-items:center;min-height:54px;display:grid;position:relative}.collection-header h1{font-family:var(--type-display);text-align:center;grid-column:2;font-size:clamp(2rem,10vw,2.65rem);line-height:1.1}.collection-header__back{width:48px;height:48px;color:var(--color-lavender-strong);background:var(--color-surface);border:1px solid var(--color-border-warm);box-shadow:var(--shadow-card);border-radius:50%;grid-area:1/1;place-items:center;display:grid}.collection-load{min-height:60dvh;color:var(--color-ink-soft);gap:var(--space-3);text-align:center;place-items:center;display:grid}.collection-load button,.collection-primary,.unlock-overlay button{min-height:52px;padding:var(--space-3) var(--space-6);color:#fff;background:var(--color-lavender-strong);border:1px solid var(--color-gold);border-radius:var(--radius-pill);font:inherit;text-align:center;font-weight:800;text-decoration:none;box-shadow:0 5px #493680}.collection-primary{justify-content:center;align-items:center;width:100%;display:flex}.collection-secondary{min-height:48px;color:var(--color-lavender-strong);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);justify-content:center;align-items:center;font-weight:800;text-decoration:none;display:flex}.collection-primary:disabled{color:var(--color-ink-soft);background:var(--color-surface-muted);border-color:var(--color-border);box-shadow:none}.collection-count{padding:8px var(--space-6);color:var(--color-lavender-strong);background:var(--color-surface);border:1px solid var(--color-sage);border-radius:var(--radius-pill);font-family:var(--type-display);justify-self:center;font-weight:800}.collection-count strong{color:var(--color-sage);font-size:1.2rem}.collection-tabs{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-pill);grid-auto-columns:1fr;grid-auto-flow:column;padding:3px;display:grid}.collection-tabs button{min-height:44px;padding:var(--space-2);color:var(--color-ink-soft);border-radius:var(--radius-pill);font:inherit;background:0 0;border:0;font-weight:800}.collection-tabs button[aria-pressed=true]{color:#fff;background:var(--color-sage);box-shadow:0 3px #365846}.collection-section-title{margin-top:var(--space-2);color:var(--color-sage);font-family:var(--type-display);justify-content:center;align-items:center;gap:var(--space-2);font-size:1.35rem;display:flex}.pet-album__grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.album-card{min-width:0;min-height:202px;padding:var(--space-3);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:var(--radius-card);box-shadow:var(--shadow-card);text-align:center;place-items:center;text-decoration:none;display:grid;position:relative;overflow:hidden}.album-card img{object-fit:contain;filter:drop-shadow(0 8px 10px #49347026);width:100%;height:134px}.album-card strong{width:100%;font-family:var(--type-display);text-overflow:ellipsis;white-space:nowrap;font-size:1.12rem;overflow:hidden}.album-card small{color:var(--color-ink-soft);font-size:.73rem;line-height:1.25}.album-card.is-active{border-color:var(--color-sage);box-shadow:0 0 0 3px #52796529, var(--shadow-card)}.album-card.is-locked img,.pet-detail__hero.is-locked img,.wardrobe-item.is-locked img,.home-stage.is-locked img{opacity:.32;filter:grayscale()brightness(.8)}.album-card__lock{color:var(--color-lavender-strong);position:absolute;top:74px;left:50%;transform:translate(-50%,-50%)}.album-card__badge{top:var(--space-2);right:var(--space-2);color:#fff;background:var(--color-sage);border-radius:var(--radius-pill);padding:4px 7px;font-size:.68rem;font-weight:800;position:absolute}.pet-detail__hero{background:var(--color-sage-decoration);border:1px solid var(--color-border-warm);min-height:316px;box-shadow:var(--shadow-card);border-radius:34px;place-items:center;display:grid;position:relative;overflow:hidden}.pet-detail__hero img{object-fit:contain;filter:drop-shadow(0 18px 18px #49347033);width:min(88%,330px);height:292px}.pet-detail__hero>span{top:var(--space-3);padding:6px var(--space-4);color:#fff;background:var(--color-sage);border-radius:var(--radius-pill);font-weight:800;position:absolute}.pet-detail__hero>svg{color:var(--color-lavender-strong);position:absolute}.pet-detail__level{padding:var(--space-3) var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);justify-content:space-between;align-items:center;display:flex}.pet-detail__level strong{color:var(--color-sage);font-family:var(--type-display);font-size:1.8rem}.collection-lock-copy,.collection-notice{padding:var(--space-3);color:var(--color-lavender-strong);background:var(--color-lavender-soft);border-radius:var(--radius-control);text-align:center;font-weight:800}.pet-forms{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.pet-form{min-width:0;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);gap:var(--space-1);text-align:center;place-items:center;display:grid}.pet-form img{object-fit:contain;width:100%;height:112px;transition:opacity var(--motion-card) ease, transform var(--motion-card) ease}.pet-form--1 img{opacity:.82;transform:scale(.82)}.pet-form--2 img{transform:scale(.92)}.pet-form--3 img{transform:scale(1.02)}.pet-form.is-locked img{opacity:.25;filter:grayscale()}.pet-form.is-current{border-color:var(--color-sage);box-shadow:0 0 18px #5279653d}.pet-form strong{font-family:var(--type-display);font-size:.9rem}.pet-form small{color:var(--color-ink-soft);font-size:.7rem}.wardrobe__preview{background:var(--color-sage-decoration);border:1px solid var(--color-border-warm);border-radius:34px;place-items:center;height:262px;display:grid;position:relative;overflow:hidden}.wardrobe__preview>.wardrobe__pet{object-fit:contain;filter:drop-shadow(0 14px 14px #4934702e);width:min(72%,280px);height:232px}.wardrobe__equipped-assets{pointer-events:none;position:absolute;inset:0}.wardrobe__equipped-assets img{object-fit:contain;filter:drop-shadow(0 5px 7px #49347040);width:70px;height:70px;position:absolute}.wardrobe__equipped-assets img.is-headwear{top:28px;left:47%;transform:translate(-50%)}.wardrobe__equipped-assets img.is-neckwear{width:64px;height:64px;top:102px;left:47%;transform:translate(-50%)}.wardrobe__equipped-assets img.is-home-decor{border:1px solid var(--color-gold);box-shadow:var(--shadow-card);background:#fffdf9eb;border-radius:50%;padding:4px;bottom:44px;right:12px}.wardrobe__preview span{bottom:var(--space-3);max-width:calc(100% - 32px);padding:6px var(--space-4);color:var(--color-sage);background:var(--color-surface);border:1px solid var(--color-sage);border-radius:var(--radius-pill);font-size:.8rem;font-weight:800;position:absolute}.wardrobe__pet-lock{color:var(--color-lavender-strong);position:absolute}.wardrobe__grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.wardrobe-item{min-width:0;min-height:144px;padding:var(--space-2);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);font:inherit;text-align:center;place-items:center;gap:2px;display:grid;position:relative}.wardrobe-item[aria-pressed=true]{border-color:var(--color-lavender);box-shadow:0 0 0 3px #8b74d32e}.wardrobe-item:disabled{cursor:not-allowed}.wardrobe-item img{object-fit:contain;width:100%;height:84px}.wardrobe-item>svg{color:var(--color-lavender-strong);position:absolute;top:45px}.wardrobe-item strong{width:100%;font-family:var(--type-display);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.wardrobe-item small{color:var(--color-ink-soft);font-size:.65rem}.homes__hero{background:var(--color-surface);border:2px solid var(--color-sage);box-shadow:var(--shadow-card);border-radius:28px;display:grid;position:relative;overflow:hidden}.homes__hero img{object-fit:cover;width:100%;height:330px}.homes__hero>div{top:var(--space-4);left:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-warm);border-radius:var(--radius-control);background:#fffdf9eb;position:absolute}.homes__hero h2{font-family:var(--type-display);font-size:1.65rem}.homes__hero span{color:var(--color-sage);font-weight:800}.homes__hero p{padding:var(--space-3) var(--space-4);color:var(--color-sage);justify-content:space-between;align-items:center;font-weight:800;display:flex}.homes__hero p strong{font-family:var(--type-display);font-size:1.35rem}.home-stages{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.home-stage{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);gap:var(--space-1);text-align:center;min-width:0;display:grid;overflow:hidden}.home-stage.is-current{border-color:var(--color-sage);box-shadow:0 0 16px #52796538}.home-stage>div{position:relative}.home-stage img{object-fit:cover;width:100%;height:116px}.home-stage svg{color:var(--color-lavender-strong);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.home-stage strong{font-family:var(--type-display);padding-inline:4px;font-size:.78rem}.home-stage small{min-height:42px;padding:0 5px var(--space-2);color:var(--color-ink-soft);font-size:.62rem;line-height:1.25}.unlock-overlay{z-index:30;padding:var(--space-5);background:#3328648f;place-items:center;display:grid;position:fixed;inset:0}.unlock-overlay__card{width:min(100%,360px);padding:var(--space-8);color:var(--color-ink);background:var(--color-surface);border:2px solid var(--color-gold);gap:var(--space-3);text-align:center;border-radius:34px;place-items:center;display:grid;position:relative;box-shadow:0 24px 70px #2016454d}.unlock-overlay__sparkle{top:var(--space-4);right:var(--space-5);color:var(--color-gold);position:absolute}.unlock-overlay h2{font-family:var(--type-display);font-size:1.75rem}.unlock-overlay ul{color:var(--color-sage);gap:var(--space-1);font-weight:800;list-style:none;display:grid}.collection-save-error{padding:var(--space-3);color:var(--color-lavender-strong);background:var(--color-lavender-soft);border:1px solid var(--color-lavender);border-radius:var(--radius-control);justify-content:space-between;align-items:center;gap:var(--space-3);font-weight:800;display:flex}.collection-save-error button{min-height:44px;padding:6px var(--space-3);color:#fff;background:var(--color-lavender-strong);border-radius:var(--radius-pill);font:inherit;white-space:nowrap;border:0;font-weight:800}.album-card:active,.wardrobe-item:active,.collection-tabs button:active,.collection-primary:active,.collection-secondary:active,.collection-header__back:active{transform:scale(.97)}.album-card:focus-visible,.wardrobe-item:focus-visible,.collection-tabs button:focus-visible,.collection-primary:focus-visible,.collection-secondary:focus-visible,.collection-header__back:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}@media (width<=359px){.collection-page{gap:var(--space-3)}.album-card{min-height:186px}.album-card img{height:120px}.pet-detail__hero{min-height:280px}.pet-detail__hero img{height:258px}.pet-form img{height:92px}.wardrobe-item{min-height:132px}.wardrobe-item img{height:74px}.homes__hero img{height:286px}.home-stage img{height:96px}}@media (prefers-reduced-motion:no-preference){.album-card,.wardrobe-item,.home-stage{animation:collection-enter var(--motion-card) ease both}.album-card:nth-child(2n),.wardrobe-item:nth-child(2n),.home-stage:nth-child(2){animation-delay:45ms}.album-card:nth-child(3n),.wardrobe-item:nth-child(3n),.home-stage:nth-child(3){animation-delay:90ms}@keyframes collection-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.library-page{background-color:#fffaf3;gap:16px;min-height:calc(100dvh - 84px);margin:-32px -20px -20px;padding:30px 18px 28px;display:grid;position:relative;overflow:hidden}.library-page:before{content:"";pointer-events:none;opacity:.12;background:url(/assets/home/optimized/unit-map-background-v1-853w.webp) top/100% no-repeat;position:absolute;inset:0}.library-page>*{z-index:1;position:relative}.library-titlebar,.library-centered-header{z-index:1;justify-content:space-between;align-items:center;min-height:58px;display:flex;position:relative}.library-titlebar p{color:var(--color-sage);letter-spacing:.12em;font-size:.75rem;font-weight:800}.library-titlebar h1,.library-centered-header h1{color:var(--color-ink);font-family:var(--type-display);letter-spacing:.06em;font-size:1.9rem;line-height:1.15}.library-icon-link,.library-centered-header>a{width:48px;height:48px;color:var(--color-lavender-strong);border:1px solid var(--color-border-warm);box-shadow:var(--shadow-card);background:#fffdf9e6;border-radius:50%;place-items:center;text-decoration:none;display:grid}.library-text-link{color:var(--color-lavender-strong);font-weight:800;text-decoration:none}.mastery-total{color:var(--color-sage);border-radius:var(--radius-pill);background:#fffdf9e0;border:1px solid #bad3be;justify-self:center;align-items:center;gap:8px;padding:7px 18px;font-weight:800;display:flex}.library-subnav{border:1px solid var(--color-border-warm);border-radius:var(--radius-pill);background:#fffdf9e0;grid-template-columns:repeat(3,1fr);padding:4px;display:grid}.library-subnav a,.library-subnav span{min-height:42px;color:var(--color-ink-soft);text-align:center;border-radius:var(--radius-pill);place-items:center;font-size:.86rem;font-weight:800;text-decoration:none;display:grid}.library-subnav [aria-current=page]{color:#fff;background:#63917b;box-shadow:inset 0 0 0 1px #ffffffa6,0 4px 12px #40695433}.mastery-search-row{grid-template-columns:1fr 46px;gap:10px;display:grid}.mastery-search{min-height:48px;color:var(--color-ink-soft);border:1px solid var(--color-border-warm);border-radius:var(--radius-pill);background:#fffdf9e6;align-items:center;gap:10px;padding-inline:15px;display:flex}.mastery-search input{background:0 0;border:0;outline:0;width:100%;min-width:0}.mastery-filter-icon{width:46px;height:46px;color:var(--color-lavender-strong);background:var(--color-surface);border:1px solid var(--color-border-warm);border-radius:50%;padding:11px}.mastery-unit-filter{color:var(--color-sage);grid-template-columns:auto 1fr;align-items:center;gap:12px;font-size:.78rem;font-weight:800;display:grid}.mastery-unit-filter select{min-width:0;min-height:42px;color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;padding:0 12px}.mastery-levels{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding-bottom:2px;display:grid}.mastery-levels button,.review-tabs button{min-height:42px;color:var(--color-ink-soft);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:#fffdf9d1;padding:0 15px;font-size:.82rem;font-weight:800}.mastery-levels button{white-space:normal;place-content:center;min-width:0;padding-inline:1px;font-size:.68rem;line-height:1.08;display:grid}.mastery-levels button small{font:inherit}.mastery-levels button[aria-pressed=true],.review-tabs button[aria-pressed=true]{color:#fff;background:var(--color-lavender-strong);border-color:var(--color-lavender-strong)}.mastery-list,.review-list{gap:10px;display:grid}.mastery-word,.review-word{border:1px solid var(--color-border-warm);background:#fffdf9ed;border-radius:22px;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:104px;padding:13px;display:grid;box-shadow:0 8px 20px #49347014}.mastery-word__level{color:#a7a2ab;background:#f3f1ec;border:1px solid #ded9d1;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.mastery-word__level--1,.mastery-word__level--2{color:#4e8b6d;background:#e7f0e9}.mastery-word__level--3{color:#4f73bd;background:#e5ebfa}.mastery-word__level--4{color:#7954bd;background:#eee8fa}.mastery-word__level--5{color:#b47a22;background:#faf0d9}.mastery-word__body{min-width:0}.mastery-word h2,.review-word h3{color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:1.42rem;line-height:1.1;overflow:hidden}.mastery-word__body>p,.review-word p{color:#37333e;margin-top:5px;font-size:.9rem}.mastery-leaves{color:#d8d3ca;gap:2px;margin-top:8px;display:flex}.mastery-leaves .is-filled{color:var(--color-lavender)}.mastery-word__meta{color:var(--color-sage);justify-items:end;gap:6px;font-size:.72rem;display:grid}.mastery-word__meta span{background:var(--color-sage-decoration);border-radius:var(--radius-pill);padding:4px 8px}.mastery-word__meta strong{font-size:.82rem}.mastery-word__meta small{color:var(--color-ink-soft)}.mastery-more{color:var(--color-ink-soft);justify-items:center;gap:10px;padding:16px;font-size:.8rem;display:grid}.mastery-more button{color:#fff;background:var(--color-lavender-strong);border-radius:var(--radius-pill);border:0;min-width:140px;min-height:46px;font-weight:800}.library-centered-header>span{width:48px}.review-tabs{grid-template-columns:1fr 1fr;gap:6px;display:grid}.review-summary{text-align:center;border:1px solid var(--color-border-warm);box-shadow:var(--shadow-card);background:#fffdf9f0;border-radius:26px;gap:12px;padding:22px 18px;display:grid}.review-summary>p{color:var(--color-ink);font-size:1.25rem}.review-summary>p strong{color:var(--color-lavender-strong);font-size:2rem}.review-summary>span{color:var(--color-ink-soft);justify-content:center;align-items:center;gap:6px;display:flex}.review-stats,.achievement-stats{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.review-stats>div{text-align:left;border:1px solid var(--color-border);background:#faf7f1;border-radius:18px;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;padding:12px;display:grid}.review-stats svg{color:var(--color-sage);grid-row:1/3}.review-stats strong{color:var(--color-lavender-strong);font-size:1.5rem}.review-start{color:#fff;border-radius:var(--radius-pill);background:#7665ca;border:2px solid #ffffffa6;justify-content:center;align-items:center;gap:8px;min-height:54px;font-size:1.14rem;font-weight:900;text-decoration:none;display:flex;box-shadow:0 8px 18px #5741a83d}.review-summary>small{color:var(--color-sage)}.library-section-title{color:var(--color-ink);font-family:var(--type-display);text-align:center;letter-spacing:.08em;font-size:1.25rem}.review-word{min-height:90px}.review-word small{color:var(--color-sage);margin-top:6px;display:block}.review-word>strong{color:var(--color-lavender-strong);font-size:.78rem}.streak-card{height:190px;box-shadow:var(--shadow-card);background:#fffdf9e6;border:1px solid #bed2bf;border-radius:28px;grid-template-columns:1fr 44%;display:grid;overflow:hidden}.streak-card>div{z-index:1;padding:22px 0 18px 22px;display:block}.streak-card p{color:var(--color-sage);align-items:center;gap:6px;font-size:1.12rem;font-weight:900;display:flex}.streak-card strong{color:#4d816b;font-family:Georgia,serif;font-size:4.8rem;line-height:1}.streak-card span{color:var(--color-ink-soft);margin-left:6px;font-size:1.2rem}.streak-card small{color:#a67a43;margin-top:8px;line-height:1.4;display:block}.streak-card img{align-self:end;width:190px;max-width:none;transform:translate(-20px)}.achievement-stats{border:1px solid var(--color-border-warm);background:#fffdf9eb;border-radius:22px;grid-template-columns:repeat(3,1fr);padding:14px 5px}.achievement-stats>div{color:var(--color-sage);text-align:center;border-right:1px solid var(--color-border);justify-items:center;gap:6px;padding:2px 6px;font-size:.72rem;display:grid}.achievement-stats>div:last-child{border-right:0}.achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.achievement-grid article{text-align:center;background:#f3eef9e0;border:1px solid #d2c9e0;border-radius:22px;justify-items:center;gap:4px;min-height:128px;padding:10px 8px;display:grid}.achievement-grid article.is-complete{background:#faf8eef0;border-color:#b9cfbb}.achievement-icon{color:#8f84ad;background:#ffffffa6;border:1px solid #d4cce0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.achievement-grid .is-complete .achievement-icon{color:var(--color-sage);border-color:#a9c7ad}.achievement-grid h3{color:var(--color-ink);font-size:.9rem}.achievement-grid strong{color:var(--color-lavender-strong);font-size:.75rem}.achievement-progress{border-radius:var(--radius-pill);background:#ded6e8;width:100%;height:7px;overflow:hidden}.achievement-progress span{background:var(--color-lavender);border-radius:inherit;height:100%;display:block}.achievement-grid small{color:var(--color-ink-soft)}.library-loading,.library-empty{color:var(--color-ink-soft);text-align:center;padding:36px 20px}.library-loading button{color:#fff;background:var(--color-lavender-strong);border-radius:var(--radius-pill);border:0;min-height:48px;margin-top:16px;padding:0 18px;font-weight:800}@media (width<=350px){.library-page{padding-inline:12px}.library-titlebar h1,.library-centered-header h1{font-size:1.6rem}.mastery-word{grid-template-columns:40px minmax(0,1fr)}.mastery-word__meta{grid-column:2;grid-template-columns:repeat(3,auto);justify-items:start}}.settings-page{width:min(100%, var(--viewport-max));min-height:100dvh;padding:calc(var(--safe-top) + 20px) 16px calc(var(--safe-bottom) + 24px);color:var(--color-ink);background-color:#fffaf4;background-image:url(/assets/home/optimized/unit-map-background-v1-853w.webp);background-position:top;background-repeat:no-repeat;background-size:100%;gap:14px;margin-inline:auto;display:grid}.settings-header{grid-template-columns:48px 1fr 48px;align-items:center;min-height:58px;display:grid}.settings-header a{width:48px;height:48px;color:var(--color-lavender-strong);background:var(--color-surface);border:1px solid var(--color-border-warm);box-shadow:var(--shadow-card);border-radius:50%;place-items:center;text-decoration:none;display:grid}.settings-header h1{color:var(--color-ink);font-family:var(--type-display);text-align:center;letter-spacing:.06em;font-size:1.8rem}.settings-card{border:1px solid var(--color-border-warm);background:#fffdf9f0;border-radius:24px;gap:12px;padding:16px;display:grid;box-shadow:0 8px 22px #49347012}.settings-card h2{color:var(--color-sage);font-family:var(--type-display);letter-spacing:.04em;align-items:center;gap:8px;font-size:1.15rem;display:flex}.settings-card__hint{color:var(--color-ink-soft);text-align:center;font-size:.78rem;line-height:1.45}.profile-name{color:var(--color-ink-soft);gap:7px;font-size:.78rem;font-weight:800;display:grid}.profile-name input{width:100%;min-height:50px;color:var(--color-ink);border:1px solid var(--color-border);background:#fffdfa;border-radius:15px;padding:0 14px;font-size:1rem}.profile-name input:focus{border-color:var(--color-lavender);outline:3px solid #9074d729}.profile-name input[aria-invalid=true]{border-color:#b7565b}.profile-name__error{color:#a94d52;text-align:center;font-size:.78rem}.profile-name__save{color:#fff;background:var(--color-lavender-strong);border-radius:var(--radius-pill);border:0;min-height:48px;font-weight:800}.profile-name__save:disabled{opacity:.55}.settings-row{border:1px solid var(--color-border);background:#fffdfa;border-radius:18px;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:64px;padding:10px;display:grid}.settings-row>svg{color:var(--color-lavender)}.settings-row div{gap:3px;display:grid}.settings-row strong{font-size:1rem}.settings-row small{color:var(--color-ink-soft);font-size:.72rem;line-height:1.35}.settings-switch{border-radius:var(--radius-pill);background:#d8d3df;border:1px solid #c7bfd0;width:58px;height:34px;padding:0;position:relative}.settings-switch span{width:26px;height:26px;transition:transform var(--motion-fast) ease;background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #2c214833}.settings-switch[aria-checked=true]{background:#6fa083;border-color:#5c896f}.settings-switch[aria-checked=true] span{transform:translate(24px)}.backup-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.backup-actions button,.backup-check{min-height:52px;color:var(--color-ink);background:#f4effa;border:1px solid #cfc4df;border-radius:17px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-weight:800;display:flex}.backup-actions button:last-child{color:var(--color-sage);background:#edf3eb;border-color:#bfd0bd}.backup-code{color:var(--color-ink-soft);gap:6px;font-size:.78rem;font-weight:800;display:grid}.backup-code textarea{resize:vertical;width:100%;min-height:70px;color:var(--color-ink);border:1px solid var(--color-border);background:#fffdfa;border-radius:14px;padding:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;line-height:1.4}.backup-check{color:#fff;background:var(--color-lavender-strong);border-color:var(--color-lavender-strong);min-height:46px}.backup-check:disabled,.backup-actions button:disabled{opacity:.55}.backup-preview{color:var(--color-sage);background:#edf5ed;border:1px solid #afcaae;border-radius:16px;grid-template-columns:auto minmax(0,1fr);gap:10px;padding:12px;display:grid}.backup-preview>div{gap:3px;display:grid}.backup-preview span,.backup-preview small{color:var(--color-ink-soft);font-size:.72rem}.backup-preview button{color:#fff;background:var(--color-sage);border-radius:var(--radius-pill);border:0;grid-column:1/-1;min-height:44px;font-weight:800}.settings-status,.settings-page__status{color:var(--color-sage);text-align:center;font-size:.78rem;line-height:1.45}.danger-settings{border-color:#e9b8b3}.danger-settings h2{color:#a94d52}.reset-entry{color:#a94d52;text-align:left;background:#fff9f7;border:1px solid #df8f8d;border-radius:18px;grid-template-columns:38px 1fr;align-items:center;gap:10px;min-height:66px;padding:10px;display:grid}.reset-entry span{gap:4px;display:grid}.reset-entry strong{font-size:1rem}.reset-entry small{color:#9b7073;line-height:1.35}.reset-confirm{color:#804e52;background:#fff5f3;border:1px solid #e5aaa7;border-radius:16px;gap:12px;padding:12px;display:grid}.reset-confirm p{font-size:.82rem;line-height:1.55}.reset-confirm>div{grid-template-columns:1fr 1.4fr;gap:8px;display:grid}.reset-confirm button{background:#fff;border:1px solid #d8b2b0;border-radius:14px;min-height:46px;font-weight:800}.reset-confirm button:last-child{color:#fff;background:#b7565b;border-color:#b7565b}.settings-done{color:#fff;background:var(--color-lavender-strong);border-radius:var(--radius-pill);border:2px solid #ffffffb3;place-items:center;min-height:56px;font-size:1.2rem;font-weight:900;text-decoration:none;display:grid;box-shadow:0 8px 18px #5741a838}html[data-motion=reduced] *,html[data-motion=reduced] :before,html[data-motion=reduced] :after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}@media (width<=350px){.settings-page{padding-inline:10px}.settings-header h1{font-size:1.5rem}.backup-actions{grid-template-columns:1fr}}
