/* 統一的日系生活插畫視覺；不變更資料與功能。 */
:root{--bg:#f7f5ef;--surface:#fffefa;--surface2:#efeee6;--fg:#293d35;--muted:#617368;--line:#e1e5da;--accent:#386c57;--accent-soft:#e7eee2;--shadow:0 6px 24px #344a3610}
body{letter-spacing:.015em}.app{max-width:1320px;gap:32px}.top{margin-bottom:24px}.eyebrow{font-size:12px;letter-spacing:.08em}h1{font-weight:750;font-size:30px}.card{border-radius:22px;box-shadow:var(--shadow)}.card h2,.sec{font-size:13px;font-weight:650;letter-spacing:.08em}.ic{stroke-width:1.45}.icon-wash{fill:#dce7d5;stroke:none}.brand .mark .ic{width:27px;height:27px}.brand .mark .icon-wash{fill:#ffffff20}.brand .mark{color:#fff;box-shadow:0 5px 14px #386c5725}.btn{font-weight:600;border-radius:13px;transition:background .2s,box-shadow .2s,transform .2s}.btn:hover{box-shadow:0 4px 12px #304a3610}.btn.primary{color:#fff;background:#386c57}.btn:focus-visible,.nv:focus-visible{outline:3px solid #bb804d;outline-offset:3px}.welcome{grid-template-columns:1fr 1.1fr;padding:30px 12px 30px 32px;background:#f0f0e5;border-color:#e2e6d7;position:relative;gap:16px;margin-bottom:18px;min-height:290px}.welcome h2{font-weight:750;font-size:clamp(27px,3vw,37px);letter-spacing:.015em;line-height:1.5;text-wrap:balance}.welcome p{line-height:1.9;color:#617160}.kicker{letter-spacing:.07em;font-size:12px}.hero-art{position:relative;isolation:isolate;border-radius:22px;overflow:hidden;align-self:stretch;display:flex;align-items:center;background:#f7f4eb}.welcome .hero-art img{max-width:none;width:100%;height:100%;object-fit:cover;aspect-ratio:3/2;animation:care-breathe 9s ease-in-out infinite;transform-origin:50% 65%}.hero-sunbeam{position:absolute;inset:-25%;pointer-events:none;background:linear-gradient(115deg,transparent 35%,#fff6ce28 46%,#fff9dd40 51%,transparent 65%);mix-blend-mode:soft-light;animation:care-light 12s ease-in-out infinite}.hero-leaves{position:absolute;bottom:20px;right:10px;width:40px;height:52px;fill:#718b6560;stroke:#718b6580;stroke-width:1.3;transform-origin:50% 100%;animation:care-leaf 7s ease-in-out infinite}.art-caption{position:absolute;bottom:10px;left:12px;font-size:10px;letter-spacing:.06em;color:#435d48;background:#fffdf3e8;border:1px solid #ffffff85;border-radius:99px;padding:4px 10px}.activity-strip{padding:0!important;background:none!important;border:0!important;box-shadow:none!important;margin:0 0 22px!important}.quick-actions{gap:10px}.quick-actions .btn{min-height:65px;justify-content:flex-start;padding:12px 16px;background:var(--surface);border:1px solid var(--line);color:var(--fg);box-shadow:0 2px 8px #344a3605}.quick-actions .ic{width:27px;height:27px;padding:2px;box-sizing:content-box;color:#416b51}.quick-actions .btn:nth-child(3) .icon-wash{fill:#efddc6}.quick-actions .btn:nth-child(4) .icon-wash{fill:#dce5ed}.grid{gap:16px}.next .bignum{background:var(--accent-soft);border-radius:18px;padding:15px;align-items:center;min-width:100px}.bignum span{font-size:44px;font-weight:750}.next-t b{font-size:18px}.stat{border-radius:15px;background:var(--bg);padding:16px}.stat b{font-size:32px;font-weight:700}.nums li{background:var(--bg);padding:14px 16px;border:1px solid var(--line)}.nums b{font-weight:650;font-size:22px}.lesson,.acc,.shopping-item,.rp{box-shadow:0 2px 8px #344a3604}.nv{transition:background .2s,color .2s}.nv[aria-current=page]{background:var(--accent-soft)}.nv[aria-current=page] .pillbg{background:transparent}.nav .pillbg{height:34px}.banner{font-size:12px;background:#faf4e6}.high-contrast .icon-wash{fill:#d5e5cf}.high-contrast .welcome{background:#f4f4e9}.high-contrast .welcome p,.high-contrast .kicker{color:#30452f}.spacious .quick-actions .btn{min-height:76px}
@keyframes care-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.025) translateY(-2px)}}
@keyframes care-light{0%,100%{transform:translateX(-3%);opacity:.4}50%{transform:translateX(3%);opacity:.8}}
@keyframes care-leaf{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(4deg)}}
@media(min-width:1100px){.app{grid-template-columns:210px minmax(0,1fr)}.nav{padding:32px 16px;height:100dvh}.brand{gap:10px;margin-bottom:34px}.nv{padding:12px;gap:10px;min-height:52px}.main{padding:30px 20px 48px 0}}
@media(min-width:760px) and (max-width:1099px){.welcome{padding:24px;grid-template-columns:1fr 1fr}.welcome h2{font-size:27px}.quick-actions .btn{padding:12px 9px;font-size:12px;gap:6px}}
@media(max-width:759px){h1{font-size:27px}.main{padding-top:20px}.top{align-items:center;margin-bottom:18px}.header-actions .btn{font-size:11px;padding:0 10px;gap:5px}.header-actions .ic{width:17px;height:17px}.welcome{grid-template-columns:1fr;padding:22px 22px 12px;gap:14px;min-height:0;border-radius:24px}.welcome h2{font-size:27px;margin:8px 0}.welcome p{font-size:14px;margin-bottom:14px}.hero-art{width:100%;max-height:195px;border-radius:17px}.welcome .hero-art img{aspect-ratio:3/2;object-fit:cover;max-height:195px}.kicker{font-size:11px}.art-caption{font-size:9px}.quick-actions .btn{min-height:60px;padding:10px 13px;font-size:13px}.quick-actions .ic{width:23px;height:23px}.activity-strip{margin-bottom:18px!important}.card{padding:20px;border-radius:20px}.nav{padding-top:7px;box-shadow:0 -3px 20px #344a3610}.nv{border-radius:14px;min-height:51px}.nv .ic{width:22px;height:22px}.nv .pillbg{height:29px}.next{gap:14px}.next-t{min-width:150px}.nums{grid-template-columns:1fr 1fr}.banner{line-height:1.8}}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]):not(.high-contrast){--bg:#19231e;--surface:#233129;--surface2:#2b3d32;--fg:#f0f1e8;--muted:#bcc8b9;--line:#415345;--accent:#aed2b4;--accent-soft:#334c39}.welcome{background:#e9ecde}.welcome h2{color:#293d35}.icon-wash{fill:#607c5b}.hero-art .icon-wash{fill:#dce7d5}}
.reduce-motion .hero-art *{animation:none!important;transform:none!important}
.hero-art{align-self:center}.welcome .hero-art img{height:auto;display:block}.hero-art{max-width:480px;justify-self:center}.welcome{padding-top:24px;padding-bottom:24px}.hero-art .art-caption{max-width:calc(100% - 24px)}
@media(max-width:759px){.welcome{padding:20px 20px 12px}.hero-art{max-height:none;max-width:100%}.welcome .hero-art img{max-height:none;height:auto;aspect-ratio:3/2}.art-caption{bottom:7px}.hero-leaves{bottom:20px;width:30px;height:40px}}
@media(prefers-reduced-motion:reduce){.hero-art *{animation:none!important;transform:none!important}}
