/* 人生修仙录 · 云栖山 / A quiet, local-first visual vocabulary.
   One shared design system, followed by scoped responsive and comfort refinements. */
:root {
  --paper:#f5f4eb; --surface:#fffef9; --surface-soft:#f1f3e9; --ink:#304539;
  --ink-strong:#243b2f; --muted:#65725b; --line:#dfe4d4; --pine:#45684d;
  --pine-dark:#2d4d36; --sage:#a7b998; --lime:#e5ebce; --gold:#ae8a4b;
  --clay:#85533d; --danger:#a45443; --shadow:0 5px 20px #344c3305;
  --radius:18px; --radius-small:10px; --rail:224px;
  color:var(--ink); background:var(--paper); font-synthesis:none;
  font-family:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",system-ui,-apple-system,sans-serif;
  font-size:14px; line-height:1.6; text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
* { box-sizing:border-box; }
body { margin:0; min-width:320px; }
body.modal-open { overflow:hidden; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; -webkit-tap-highlight-color:transparent; }
button,a,input,textarea,select { touch-action:manipulation; }
button { color:inherit; }
button:disabled { cursor:not-allowed; }
a { color:var(--pine); text-underline-offset:3px; }
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid #5d793e; outline-offset:4px; }
input:focus-visible,textarea:focus-visible,select:focus-visible { outline:2px solid #789667; outline-offset:2px; border-color:#789667; }
button,input,textarea,select { transition:background .16s ease,border-color .16s ease,box-shadow .16s ease; }
button[aria-busy="true"] { opacity:.65; cursor:progress; }
input,textarea,select { color:var(--ink); width:100%; border:1px solid #83946f; background:#fffef9; border-radius:10px; padding:12px 14px; min-height:46px; }
input::placeholder,textarea::placeholder { color:#60675b; opacity:1; }
textarea { resize:vertical; min-height:100px; line-height:1.8; }
input:disabled,textarea:disabled,select:disabled { opacity:.7; }
label { display:block; font-weight:600; font-size:13px; margin:0 0 8px; }
form > label:not(:first-child) { margin-top:20px; }
form > small,.form-field > small,.form-field > div + small { display:block; color:var(--muted); font-size:11px; margin-top:7px; line-height:1.6; }
h1,h2,h3,h4,p { margin:0; }
h1,h2,h3,h4 { font-weight:600; line-height:1.5; color:var(--ink-strong); }
h1 { letter-spacing:.025em; font-size:28px; }
h2 { font-size:18px; letter-spacing:.015em; }
h3 { font-size:15px; }
p { line-height:1.85; }
svg { max-width:100%; }
.icon { display:inline-block; width:20px; height:20px; vertical-align:middle; flex-shrink:0; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.skip-link { position:fixed; top:-80px; left:20px; padding:10px 18px; background:var(--pine); color:white; border-radius:8px; z-index:150; }
.skip-link:focus { top:12px; }
.primary,.secondary,.text-button,.icon-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:10px; font-weight:600; min-height:42px; text-decoration:none; }
.primary { background:var(--pine); border:1px solid var(--pine); color:#fffef5; padding:10px 18px; box-shadow:0 2px 2px #2c492b08; }
.primary:hover:not(:disabled) { background:var(--pine-dark); border-color:var(--pine-dark); box-shadow:0 4px 12px #294f2820; }
.primary:disabled { background:#c9d2bf; border-color:#c9d2bf; color:#5a6a52; box-shadow:none; }
.secondary { background:#fafbf4; border:1px solid #d3ddc7; color:var(--pine); padding:10px 16px; }
.secondary:hover:not(:disabled) { background:#edf2e1; border-color:#aabd95; }
.secondary:disabled { opacity:.6; }
.text-button { border:0; background:none; color:var(--pine); padding:5px 0; font-size:12px; }
.text-button:hover:not(:disabled) { color:var(--pine-dark); }
.text-button:disabled { color:#5e6858; }
.text-button .icon { width:16px; height:16px; }
.icon-button { width:42px; flex-shrink:0; padding:9px; border:0; background:transparent; color:var(--muted); }
.icon-button:hover { background:#eaf0e0; color:var(--pine); }
.full-width { width:100%; }
.row-actions { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.muted { color:var(--muted); font-size:12px; }
.fine-print { font-size:11px; line-height:1.8; color:var(--muted); }
.fine-print .icon { width:14px; height:14px; margin-right:3px; }
.eyebrow,.overline { display:block; color:#606856; font-size:11px; font-weight:500; letter-spacing:.14em; line-height:1.7; }
.overline { font-size:11px; letter-spacing:.15em; }
.seal,.seal-outline { display:inline-grid; place-items:center; font-family:"STKaiti","KaiTi",serif; border-radius:3px; flex-shrink:0; font-size:18px; width:31px; height:34px; line-height:1; }
.seal { color:#fff8e4; background:#aa7052; box-shadow:inset 0 0 0 3px #aa7052,inset 0 0 0 4px #f0d5b050; }
.seal-outline { color:#7f5d46; border:1px solid #bda485; }
.card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow); min-width:0; }
.section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:18px; }
.section-heading h2 { margin-top:3px; }
.section-heading > .icon { color:#5d6950; }
.section-description { font-size:12px; color:var(--muted); margin:-4px 0 20px; }
.tiny-badge,.count-chip,.privacy-chip { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; font-size:11px; color:#596b4d; border-radius:6px; background:#eff3e4; padding:4px 8px; }
.tiny-badge .icon,.privacy-chip .icon { width:13px; height:13px; }
.count-chip { font-size:11px; gap:4px; }
.count-chip b { font-size:16px; font-weight:600; }
.done-label { color:#566b44; display:inline-flex; align-items:center; gap:5px; }
.done-label .icon { width:15px; height:15px; }
.completion-label { display:inline-flex; align-items:center; gap:7px; color:#506c45; font-size:12px; }
.completion-label .icon { width:17px; height:17px; }

/* Application frame */
.app-shell { min-height:100vh; }
.sidebar { position:fixed; width:var(--rail); inset:0 auto 0 0; padding:33px 24px 18px; background:#f0f1e5; border-right:1px solid #dde1ce; display:flex; flex-direction:column; z-index:25; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; background:transparent; border:0; text-align:left; padding:0; color:var(--pine-dark); }
.brand-mark { display:grid; place-items:center; width:39px; height:42px; color:#536b4c; border:1px solid #97aa83; border-radius:13px 13px 9px 9px; background:#e6ecd8; position:relative; }
.brand-mark .icon { width:26px; height:26px; stroke-width:1.35; }
.brand strong { display:block; font-family:"STSong","Songti SC","Noto Serif CJK SC","SimSun",serif; font-size:19px; letter-spacing:.075em; line-height:1.5; font-weight:700; white-space:nowrap; }
.brand small { display:block; font-size:6.5px; letter-spacing:.17em; color:#5f6952; line-height:1.8; white-space:nowrap; }
.rail-nav { display:grid; gap:6px; margin-top:46px; }
.nav-item { display:flex; align-items:center; gap:13px; width:100%; text-align:left; background:none; border:1px solid transparent; border-radius:11px; color:#5d6954; padding:12px 13px; position:relative; min-height:62px; }
.nav-item > .icon { width:20px; height:20px; }
.nav-item > span { font-size:14px; font-weight:600; letter-spacing:.05em; }
.nav-item small { display:block; font-weight:400; font-size:11px; letter-spacing:.02em; color:#5f6853; margin-top:1px; }
.nav-item:hover { background:#e8ecd9; }
.nav-item.active { color:var(--pine-dark); background:#e0e8cf; border-color:#d6e0c0; }
.nav-item.active small { color:#5a6a4c; }
.nav-active-mark { position:absolute; right:10px; width:4px; height:18px; border-radius:5px; background:#93ab6e; }
.sidebar-note { margin:42px 0 24px; padding-left:17px; border-left:1px solid #d6ddc8; }
.sidebar-note .seal-outline { width:23px; height:26px; font-size:15px; margin-bottom:13px; }
.sidebar-note p { font-family:"STSong","Songti SC","Noto Serif CJK SC","SimSun",serif; font-size:19px; color:#5e6951; line-height:1.8; letter-spacing:.1em; }
.sidebar-note small { display:block; font-size:11px; line-height:1.9; color:#606852; margin-top:11px; }
.sidebar-profile { margin-top:auto; display:flex; align-items:center; padding:15px 0 0; gap:9px; border:0; border-top:1px solid #dce2cc; background:none; text-align:left; min-width:0; }
.sidebar-profile > span:nth-child(2) { min-width:0; }
.sidebar-profile strong { display:block; font-weight:500; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:108px; }
.sidebar-profile small { display:block; color:#5f6951; font-size:11px; margin-top:2px; }
.sidebar-profile > .icon { width:14px; height:14px; margin-left:auto; color:#5c6a4d; }
.mini-capy { width:38px; height:38px; flex-shrink:0; background:#e5e9d5; border-radius:50%; overflow:hidden; display:grid; place-items:center; }
.mini-capy .xiuxian-capy { width:43px; max-width:none; }
.main-column { margin-left:var(--rail); max-width:1510px; padding:0 48px; }
.topbar { height:85px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid #e4e6d9; gap:20px; }
.breadcrumb { display:flex; align-items:center; gap:11px; color:#5d6a50; font-size:11px; }
.breadcrumb > .icon { width:16px; height:16px; }
.breadcrumb strong { font-weight:500; color:#566b4b; }
.crumb-slash { color:#5d684c; }
.topbar-right { display:flex; align-items:center; gap:22px; }
.date-stamp { font-size:11px; color:#606857; }
.cloud-state { display:inline-flex; gap:5px; align-items:center; font-size:11px; color:#5c694f; }
.cloud-state .icon { width:16px; height:16px; }
.cloud-state.is-offline { color:var(--clay); }
.mobile-brand,.bottom-nav { display:none; }
#main-content { outline:none; padding-top:28px; }
.page-footer { display:flex; align-items:center; justify-content:space-between; gap:15px; color:#606853; padding:30px 2px 25px; font-size:11px; }
.page-footer > span:first-child { display:flex; align-items:center; gap:6px; }
.page-footer .icon { width:14px; height:14px; }
.page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:1px 0 26px; }
.page-heading h1 { margin:6px 0; font-family:"STSong","Songti SC","Noto Serif CJK SC","SimSun",serif; font-size:28px; letter-spacing:.08em; }
.page-heading p { color:#5f6856; font-size:12px; }
.header-metric { display:flex; align-items:center; gap:7px; font-size:11px; color:#5e6954; white-space:nowrap; }
.header-metric .icon { width:17px; height:17px; }
.offline-banner { color:#7e5f44; padding:12px 16px; font-size:12px; border-radius:8px; background:#f5ead7; border:1px solid #e9dac0; margin-top:18px; }

/* Home: landscape, main intent, daily rituals */
.welcome-line { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:24px; }
.welcome-line .eyebrow { font-size:11px; letter-spacing:.09em; }
.welcome-line h1 { font-family:"STSong","Songti SC","Noto Serif CJK SC","SimSun",serif; font-size:30px; letter-spacing:.1em; margin:5px 0 6px; }
.welcome-line p { font-size:12px; color:#5c6856; }
.season-note { display:flex; gap:7px; align-items:center; font-size:11px; color:#5e6952; white-space:nowrap; }
.season-note .icon { width:21px; height:21px; }
.retreat-hero { position:relative; height:365px; border-radius:20px; overflow:hidden; border:1px solid #d7deca; background:#e3e6d1; isolation:isolate; margin-bottom:25px; }
.hero-scene { position:absolute; inset:0; }
.hero-shade { position:absolute; inset:60% 0 0; background:linear-gradient(transparent,#3152390d); pointer-events:none; }
.hero-caption { position:absolute; bottom:23px; left:26px; z-index:5; width:253px; padding:17px 19px 16px; border-radius:13px; background:#fffef6e8; border:1px solid #fffdf580; backdrop-filter:blur(7px); box-shadow:0 4px 18px #53654605; }
.hero-location { display:flex; gap:10px; align-items:center; font-family:"STSong","Songti SC","Noto Serif CJK SC","SimSun",serif; font-size:18px; font-weight:600; }
.hero-location small { display:block; font-family:system-ui,sans-serif; font-size:11px; letter-spacing:.05em; font-weight:400; margin-top:2px; color:#5f6853; }
.hero-location .seal { width:28px; height:31px; font-size:16px; }
.hero-stats { margin-top:14px; }
.realm-badge { display:inline-flex; align-items:center; gap:6px; min-height:29px; padding:3px 0; border:0; background:none; color:#5a6b43; font-size:11px; }
.realm-badge .icon { width:14px; height:14px; }
.realm-badge .icon:last-child { width:11px; height:11px; }
.realm-badge:hover { color:var(--pine-dark); }
.progress-label { display:flex; justify-content:space-between; align-items:center; gap:5px; color:#5f6855; font-size:11px; margin:5px 0 6px; }
.progress-label i { color:#606757; font-style:normal; }
.progress { width:100%; height:5px; border-radius:20px; overflow:hidden; background:#e7ecd9; }
.progress > span { display:block; height:100%; min-width:0; border-radius:20px; background:linear-gradient(90deg,#aec388,#829f5e); transition:width .4s ease; }
.home-dashboard { display:grid; grid-template-columns:minmax(0,1fr) 295px; align-items:start; gap:22px; }
.home-main,.home-aside { display:grid; align-content:start; gap:20px; min-width:0; }
.destiny-card { display:flex; gap:16px; position:relative; background:#e9edda; border:1px solid #d5dfc2; border-radius:var(--radius); padding:24px; overflow:hidden; }
.destiny-icon { width:38px; height:40px; display:grid; place-items:center; color:#566c40; border-radius:10px; background:#dce6c6; border:1px solid #d0dcb8; flex-shrink:0; }
.destiny-icon .icon { width:23px; height:23px; }
.destiny-copy { position:relative; z-index:1; min-width:0; }
.card-kicker { display:flex; align-items:center; flex-wrap:wrap; column-gap:12px; font-size:11px; color:#596a46; font-weight:600; }
.card-kicker span { font-size:11px; color:#5e694e; font-weight:400; }
.destiny-card h2 { font-size:20px; margin:8px 0 4px; overflow-wrap:anywhere; }
.destiny-card p { color:#5d6a4d; font-size:11px; }
.destiny-card .row-actions { margin-top:17px; }
.destiny-card .primary,.destiny-card .secondary { font-size:11px; min-height:36px; padding:8px 12px; }
.destiny-card .primary .icon,.destiny-card .secondary .icon { width:15px; height:15px; }
.destiny-mark { position:absolute; right:-10px; bottom:-22px; opacity:.09; transform:rotate(-7deg); pointer-events:none; }
.destiny-mark .icon { width:150px; height:150px; stroke-width:.7; }
.destiny-card.is-complete { background:#edf1e2; }
.ritual-track { display:flex; gap:5px; margin:-4px 0 13px; }
.ritual-track span { flex:1; height:3px; border-radius:10px; background:#e9edde; }
.ritual-track span.filled { background:#a3b97c; }
.quest-list { display:grid; }
.quest-row { display:flex; align-items:center; gap:11px; border:0; border-bottom:1px solid #e9ecdf; background:none; padding:14px 0; width:100%; text-align:left; }
.quest-row:last-child { border-bottom:0; }
.quest-row:hover { background:#f7f9ef; border-radius:8px; }
.quest-symbol { width:33px; height:34px; display:grid; place-items:center; background:#edf1e3; color:#5c6949; border-radius:9px; flex-shrink:0; }
.quest-symbol.body { background:#f3ede0; color:#756243; }
.quest-symbol.mind { background:#eaf0e9; color:#536a63; }
.quest-symbol.social { background:#f4eae3; color:#7c5e4e; }
.quest-symbol.journal { background:#f0eee4; color:#68664f; }
.quest-symbol .icon { width:18px; height:18px; }
.quest-text { flex:1; min-width:0; }
.quest-text strong { display:block; font-size:12px; font-weight:500; }
.quest-text small { display:block; font-size:11px; color:#606855; margin-top:3px; }
.quest-end { display:flex; align-items:center; gap:10px; }
.quest-end > small { font-size:11px; color:#5e684d; }
.quest-end > .icon { width:13px; height:13px; color:#5d684d; }
.quest-end .done-label { font-size:11px; }
.quest-row.completed .quest-symbol { background:#e8efdc; color:#5a6b41; }
.quest-row.completed .quest-text strong { color:#5c694f; }
.ritual-footer { display:flex; gap:7px; align-items:flex-start; color:#606851; font-size:11px; border-top:1px dashed #e2e6d7; padding-top:13px; margin-top:8px; line-height:1.8; }
.ritual-footer .icon { width:13px; height:13px; color:#666744; margin-top:1px; }
.micro-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.micro-action { display:flex; align-items:flex-start; flex-direction:column; text-align:left; background:#f7f8f0; border:1px solid #e7eadd; border-radius:12px; padding:15px 12px 12px; min-width:0; }
.micro-action:hover:not(:disabled) { border-color:#b6c99b; background:#f0f5e5; transform:translateY(-1px); }
.micro-symbol { display:grid; place-items:center; width:31px; height:31px; border-radius:9px; color:#5a694b; background:#eaf0dd; margin-bottom:11px; }
.micro-symbol.water { color:#4c6a67; background:#e8efea; }
.micro-symbol.stretch { color:#796244; background:#f3ecdd; }
.micro-symbol.sunlight { color:#726335; background:#f6efcf; }
.micro-symbol.read { color:#626750; background:#eceee2; }
.micro-symbol .icon { width:20px; height:20px; }
.micro-action > strong { font-weight:500; font-size:11px; }
.micro-action > span:not(.micro-symbol) { color:#5f6851; font-size:11px; margin-top:3px; }
.micro-action > small { display:flex; align-items:center; justify-content:space-between; width:100%; color:#5e684a; font-size:11px; margin-top:12px; gap:3px; }
.micro-action > small i { font-style:normal; color:#606950; font-size:11px; }
.micro-action > small .icon { width:12px; height:12px; }
.micro-action.at-cap { opacity:.65; background:#f0f2e8; }
.log-item { display:flex; gap:10px; align-items:center; padding:13px 0; border-bottom:1px solid #ecefe4; }
.log-item:last-child { border:0; }
.log-symbol { display:grid; place-items:center; background:#f0f3e6; width:29px; height:29px; border-radius:8px; color:#5d6a4d; flex-shrink:0; }
.log-symbol .icon { width:15px; height:15px; }
.log-item > div { min-width:0; }
.log-item strong { font-size:11px; font-weight:500; }
.log-item p { font-size:11px; color:#5e6852; overflow-wrap:anywhere; }
.log-item small { display:block; font-size:11px; color:#5f6853; }
.log-item > b { margin-left:auto; font-size:13px; font-weight:500; color:#5c6946; text-align:right; white-space:nowrap; }
.log-item > b small { font-size:11px; font-weight:400; }
.empty-inline { display:flex; align-items:center; gap:14px; padding:17px 0; }
.empty-inline > .icon { width:34px; height:34px; color:#5a6b3f; stroke-width:1; }
.empty-inline strong { display:block; font-size:11px; font-weight:400; color:#5f6952; }
.empty-inline p { font-size:11px; color:#5f6852; margin-top:4px; }
.companion-card { padding:21px; }
.daily-numbers { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0 23px; text-align:center; }
.daily-numbers > div + div { border-left:1px solid #e8ecde; }
.daily-numbers strong { display:block; font-size:27px; line-height:1.4; font-family:Georgia,serif; color:#586a3f; font-weight:400; }
.daily-numbers strong > small { font-family:system-ui,sans-serif; font-size:11px; margin-left:4px; }
.daily-numbers span { font-size:11px; color:#5e6951; }
.attribute-orbs { display:flex; justify-content:space-between; gap:5px; }
.attribute-orb { display:flex; flex-direction:column; align-items:center; border:0; background:none; padding:4px; min-width:35px; }
.attribute-orb > span { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:#f2e4ce; color:#79603f; border:1px solid #e8dabe; box-shadow:inset 0 0 0 3px #fff8; }
.attribute-orb.blue > span { background:#e0eaed; color:#4f6971; border-color:#d3e1e4; }
.attribute-orb.gold > span { background:#f3e8c8; color:#716434; border-color:#e8ddbb; }
.attribute-orb.rose > span { background:#efdfd7; color:#805e50; border-color:#e4d3ca; }
.attribute-orb.violet > span { background:#e8e3ed; color:#6b6177; border-color:#dcd4e6; }
.attribute-orb .icon { width:15px; height:15px; stroke-width:1.4; }
.attribute-orb small { font-size:11px; color:#5f6950; margin-top:7px; }
.attribute-orb:hover > span { transform:translateY(-2px); }
.companion-card > .fine-print { text-align:center; margin-top:16px; font-size:11px; color:#5e694c; }
.quick-card { padding:21px; }
.quick-practices { display:grid; gap:10px; }
.quick-practice { display:flex; gap:11px; align-items:center; border:1px solid #e5e9db; border-radius:11px; background:#f7f8f0; padding:11px; text-align:left; }
.quick-practice:hover { background:#edf2df; border-color:#c9d5b5; }
.quick-symbol { width:35px; height:37px; display:grid; place-items:center; border-radius:9px; background:#e8edda; color:#5e684b; }
.quick-symbol .icon { width:21px; height:21px; }
.quick-practice.meditate .quick-symbol { background:#eeeae0; color:#6c644e; }
.quick-practice.sport .quick-symbol { background:#e7ecdf; color:#5b6a49; }
.quick-practice > span:nth-child(2) { flex:1; }
.quick-practice strong { display:block; font-weight:500; font-size:12px; }
.quick-practice small { display:block; color:#5f6850; font-size:11px; margin-top:2px; }
.quick-practice > .icon { width:15px; height:15px; color:#5f6949; }
.encounter-card { border-radius:var(--radius); border:1px solid #e0dbc0; padding:22px; background:#f2eedc; text-align:center; }
.encounter-kicker { display:flex; align-items:center; gap:6px; color:#6f6541; font-size:11px; }
.encounter-kicker > .icon { width:14px; height:14px; }
.encounter-kicker span { margin-left:auto; font-size:11px; color:#6e6445; }
.encounter-illustration { display:grid; place-items:center; width:66px; height:66px; margin:14px auto 6px; border:1px solid #e5dcc0; border-radius:50%; background:#f8f3df; }
.encounter-illustration .icon { width:37px; height:37px; stroke-width:1; color:#6f653d; }
.encounter-card h2 { font-family:"STSong","Songti SC","SimSun",serif; font-size:19px; color:#706541; letter-spacing:.12em; margin:10px 0 8px; }
.encounter-card p { font-size:11px; color:#6e6446; line-height:1.9; margin-bottom:17px; }
.encounter-card .secondary { background:#faf6e6; border-color:#ddd5b7; color:#716540; min-height:34px; font-size:11px; padding:7px 14px; }
.encounter-card .secondary .icon { width:14px; height:14px; }
.encounter-card > small { display:block; margin-top:10px; font-size:11px; color:#706444; }
.encounter-card .completion-label { font-size:11px; color:#696645; }
.gentle-note { border:1px dashed #d6ddc8; border-radius:var(--radius); padding:24px; background:#eff1e6; }
.gentle-note .seal-outline { width:21px; height:25px; font-size:13px; color:#706348; border-color:#c1b79b; margin-bottom:12px; }
.gentle-note > p { font-family:"STSong","Songti SC","SimSun",serif; font-size:18px; line-height:1.9; letter-spacing:.11em; color:#5f684e; }
.gentle-note > span:not(.seal-outline) { display:block; margin-top:13px; font-size:11px; color:#5e694f; }
.gentle-note .row-actions { margin-top:12px; }
.gentle-note .text-button { font-size:11px; }
.gentle-note .text-button .icon { width:13px; height:13px; }

/* Practice: deliberate choices and an unambiguous server-backed timer */
.practice-picker { padding:29px; margin-bottom:23px; }
.practice-intro { display:flex; align-items:center; gap:14px; margin-bottom:23px; }
.round-icon { width:43px; height:43px; border-radius:50%; background:#eef2e1; color:#5b6a45; display:grid; place-items:center; }
.practice-intro h2 { font-size:18px; }
.practice-intro p { font-size:12px; color:#5f6951; margin-top:3px; }
.practice-tabs { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; padding:5px; background:#f1f4e8; border:1px solid #e4ead8; border-radius:13px; }
.practice-tabs button { border:1px solid transparent; border-radius:9px; background:none; display:flex; align-items:center; justify-content:center; gap:11px; padding:13px 10px; color:#5d684c; min-height:67px; }
.practice-tabs button.active { background:var(--surface); border-color:#dfe7d0; color:#546c3f; box-shadow:0 2px 6px #4e632307; }
.practice-tabs button > .icon { width:24px; height:24px; }
.practice-tabs button > span { font-size:13px; text-align:left; font-weight:500; }
.practice-tabs small { display:block; color:#5f6950; font-size:11px; margin-top:1px; font-weight:400; }
.practice-panel { display:grid; grid-template-columns:.85fr 1.6fr; gap:30px; padding-top:25px; align-items:center; }
.practice-scene { padding:9px 0; text-align:center; }
.practice-art { width:190px; margin:auto; position:relative; }
.practice-art::before { content:''; position:absolute; width:168px; height:168px; border-radius:50%; background:#eff2e1; left:50%; top:40%; transform:translate(-50%,-50%); z-index:0; }
.practice-art .xiuxian-capy { position:relative; z-index:1; }
.practice-scene > span { display:block; color:#5f6950; font-size:11px; max-width:200px; margin:2px auto 0; }
.practice-settings h3 { margin-bottom:14px; font-size:13px; font-weight:500; }
.duration-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-bottom:20px; }
.duration-option { border:1px solid #e2e7d6; background:#fafbf5; border-radius:12px; padding:19px 9px 14px; display:flex; flex-direction:column; align-items:center; position:relative; }
.duration-option.selected { border-color:#73885b; background:#f0f5e1; }
.duration-option:hover:not(:disabled) { border-color:#a4ba81; }
.duration-option strong { font-family:Georgia,serif; color:#5b6a46; font-size:29px; font-weight:400; line-height:1.4; }
.duration-option strong small { font-family:system-ui,sans-serif; font-size:11px; margin-left:3px; color:#5e684d; }
.duration-option > span { font-size:11px; color:#5e694e; margin-top:5px; }
.duration-option > small { font-size:11px; color:#5e694d; margin-top:8px; white-space:nowrap; }
.duration-option > i { position:absolute; right:6px; top:6px; width:13px; height:13px; display:grid; place-items:center; background:#5e783e; border-radius:50%; color:#fff; }
.duration-option > i .icon { width:9px; height:9px; }
.duration-option:disabled { opacity:.55; }
.start-practice { min-height:46px; }
.start-practice .icon:last-child { margin-left:auto; }
.start-practice .icon:first-child { width:16px; height:16px; }
.practice-settings .fine-print { text-align:center; margin-top:12px; }
#small-actions { scroll-margin-top:25px; margin-bottom:23px; }
.will-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.will-action { display:flex; align-items:center; gap:11px; background:#f7f9ef; border:1px solid #e3e9d6; border-radius:11px; padding:15px 13px; text-align:left; }
.will-action:hover:not(:disabled) { background:#edf3df; border-color:#becea4; }
.will-action > span { display:grid; place-items:center; background:#e9efdc; color:#5c6949; border-radius:9px; width:34px; height:36px; }
.will-action > span .icon { width:19px; height:19px; }
.will-action > div { flex:1; }
.will-action strong { display:block; font-size:12px; font-weight:500; }
.will-action small { display:block; font-size:11px; color:#5d694b; margin-top:4px; }
.will-action > b { font-size:11px; font-weight:400; color:#5a6a42; }
.will-action > .icon { width:12px; height:12px; color:#5c6948; }
.will-action:disabled { opacity:.6; }
.timer-screen { margin-bottom:24px; text-align:center; padding:25px 34px 26px; background:radial-gradient(ellipse at 50% 50%,#f1f5e2,transparent 70%),var(--surface); }
.timer-topline { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.live-chip { display:inline-flex; align-items:center; gap:7px; font-size:11px; color:#5c6a45; }
.live-chip > span,.timer-pulse { width:6px; height:6px; border-radius:50%; background:#a1b37d; box-shadow:0 0 0 4px #a3b77a16; }
.timer-topline .text-button { font-size:11px; }
.timer-screen h2 { font-size:22px; max-width:580px; margin:28px auto 6px; overflow-wrap:anywhere; }
.timer-description { font-size:12px; color:#5d6a4e; }
.timer-visual { position:relative; width:390px; max-width:100%; margin:25px auto 28px; padding:3px 40px 9px 0; }
.timer-ring { width:254px; height:254px; border-radius:50%; background:conic-gradient(#a0b779 var(--progress),#e7edda 0); padding:7px; margin:auto; display:grid; place-items:center; box-shadow:0 0 0 1px #dce7c9; }
.timer-ring-inner { width:100%; height:100%; background:#f9fbf0; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; border:5px solid var(--surface); }
.timer-caption { color:#5c6a46; font-size:11px; }
.timer-ring strong { font-size:53px; font-family:Georgia,serif; font-weight:400; font-variant-numeric:tabular-nums; letter-spacing:.035em; color:#586c3d; line-height:1.6; }
.timer-target { font-size:11px; color:#5e694d; }
.timer-capy { position:absolute; bottom:-5px; right:-8px; width:150px; transform:rotate(4deg); }
.timer-actions { display:flex; align-items:center; justify-content:center; gap:12px; }
.timer-actions .primary { min-width:212px; }
.timer-actions .primary:disabled { background:#dde6cd; color:#596a48; border-color:#d5e0c2; }
.timer-footnote { color:#5b694b; font-size:11px; margin:18px auto 0; max-width:480px; }
.is-ready .timer-ring { background:#adc382; box-shadow:0 0 0 8px #ecf3df; }
.is-ready .live-chip > span { background:#83a55c; }
.mini-timer { position:fixed; bottom:25px; left:calc(var(--rail) + 48px); right:48px; max-width:650px; margin:auto; z-index:30; display:flex; align-items:center; gap:14px; background:#fffef4f5; border:1px solid #c7d4b3; box-shadow:0 9px 35px #465c3b20; border-radius:14px; padding:13px 15px; backdrop-filter:blur(8px); }
.mini-timer > div { min-width:0; flex:1; }
.mini-timer strong { display:block; font-size:11px; }
.mini-timer small { display:block; font-size:11px; color:#5d684d; max-width:300px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mini-timer-value { font-family:Georgia,serif; font-size:24px; color:#586a45; font-variant-numeric:tabular-nums; }
.mini-timer .primary { padding:8px 12px; min-height:35px; font-size:11px; }
.mini-timer .primary .icon { width:13px; height:13px; }
.is-focused .sidebar,.is-focused .topbar,.is-focused .bottom-nav,.is-focused .page-heading,.is-focused .page-footer,.is-focused #small-actions,.is-focused .will-events { display:none; }
.is-focused .main-column { margin:0 auto; max-width:1050px; min-height:100vh; display:grid; align-items:center; }
.is-focused .timer-screen { margin:30px 0; padding:30px; min-height:660px; }
.is-focused .timer-screen h2 { margin-top:50px; }
.is-focused .timer-visual { margin-top:35px; margin-bottom:35px; }

/* Friends, private journal, personal space */
.friends-layout { display:grid; grid-template-columns:minmax(300px,.85fr) minmax(0,1.25fr); gap:22px; align-items:start; }
.invite-card > p { font-size:12px; color:#5e6950; }
.invite-code { display:flex; align-items:center; justify-content:space-between; background:#f0f4e3; border:1px dashed #bfcca4; border-radius:12px; padding:13px 12px 13px 20px; margin:20px 0 11px; }
.invite-code > span { font-family:ui-monospace,monospace; font-size:25px; letter-spacing:.13em; color:#596b45; }
.invite-code .icon-button { color:#5c6a46; }
.invite-card .fine-print { font-size:11px; margin-bottom:25px; }
.inline-form { display:flex; align-items:center; gap:9px; }
.inline-form > input { min-width:0; }
.inline-form > button { flex-shrink:0; }
.inline-form .primary { font-size:11px; padding:12px; }
.inline-form .primary .icon { width:14px; height:14px; }
.privacy-note { display:flex; align-items:flex-start; gap:8px; border-radius:9px; background:#f4f6ed; padding:13px; margin-top:20px; color:#5c6a4c; font-size:11px; line-height:1.85; }
.privacy-note .icon { width:14px; height:14px; margin-top:3px; color:#5e694a; }
.heading-count { font-size:11px; display:inline-flex; justify-content:center; align-items:center; width:24px; height:24px; color:#5c694b; background:#eff3e4; border-radius:50%; margin-left:6px; }
.friend-list-card .section-heading { align-items:flex-start; }
.friend-list-card .section-heading > .muted { font-size:11px; padding-top:9px; }
.friend { display:flex; align-items:center; gap:11px; padding:18px 0; border-bottom:1px solid #e7edda; }
.friend:last-child { border:0; }
.friend-avatar { width:47px; height:47px; border-radius:50%; overflow:hidden; background:#e8efda; flex-shrink:0; display:grid; place-items:center; }
.friend-avatar .xiuxian-capy { width:54px; max-width:none; }
.friend-info { flex:1; min-width:0; }
.friend-info strong { display:block; font-weight:500; font-size:13px; overflow-wrap:anywhere; }
.friend-info span { display:block; font-size:11px; color:#5c6a4c; margin-top:4px; }
.friend-info i { font-style:normal; padding:0 4px; color:#5a6a46; }
.friend > button { font-size:11px; min-height:34px; padding:7px 10px; flex-shrink:0; }
.friend > button .icon { width:13px; height:13px; }
.supported-button { display:flex; align-items:center; gap:5px; background:#f2f5e9; border:1px solid #e4ecd6; border-radius:9px; color:#5c6948; }
.support-note { margin-top:17px; padding-top:13px; border-top:1px dashed #e2e9d5; font-size:11px; }
.empty-state { padding:22px 10px 29px; text-align:center; }
.empty-state h3 { font-family:"STSong","Songti SC","SimSun",serif; color:#5c694a; font-size:17px; letter-spacing:.08em; margin:12px 0 9px; }
.empty-state p { color:#5d694b; font-size:11px; line-height:1.9; }
.journal-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:22px; align-items:start; }
.journal-main,.journal-aside { display:grid; gap:22px; align-content:start; min-width:0; }
.journal-writing { padding:27px; }
.journal-save-state { color:#5d6948; font-size:11px; white-space:nowrap; }
.journal-question { display:flex; align-items:flex-start; gap:13px; margin:25px 0; }
.question-number { color:#5f684a; font-family:Georgia,serif; font-size:18px; line-height:1.6; }
.journal-question > div { min-width:0; flex:1; }
.journal-question label { font-size:13px; margin-bottom:4px; }
.journal-question label > span { font-size:11px; color:#5f684c; font-weight:400; margin-left:8px; }
.journal-question p { font-size:11px; color:#5e6a4c; margin-bottom:11px; }
.journal-question textarea,.journal-question input { font-size:12px; background:#fdfdf7; }
.field-footer { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:11px; color:#5e694d; margin-top:6px; }
.field-footer small { font-size:11px; }
.journal-submit { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid #e7ecdc; padding-top:20px; }
.journal-submit > span { color:#5b6948; font-size:11px; display:flex; gap:5px; align-items:center; }
.journal-submit > span .icon { width:13px; height:13px; }
.journal-submit > button { font-size:11px; }
.weekly-card { padding:23px; }
.weekly-card > p:first-of-type { font-size:11px; color:#5d694b; margin-top:-7px; }
.weekly-main-number { text-align:center; margin:22px 0; }
.weekly-main-number strong { font-family:Georgia,serif; font-size:37px; font-weight:400; color:#596b44; display:block; line-height:1.2; }
.weekly-main-number strong > span { font-family:system-ui,sans-serif; font-size:11px; color:#5d6949; margin-left:5px; }
.weekly-main-number > small { color:#5d6949; font-size:11px; margin-top:5px; display:block; }
.week-chart { display:flex; gap:8px; align-items:flex-end; border-bottom:1px solid #e5ecd8; padding:0 2px 13px; }
.week-day { flex:1; text-align:center; }
.week-day > span { display:block; font-size:11px; color:#5c6a48; margin-bottom:4px; }
.week-day > div { height:60px; display:flex; align-items:flex-end; justify-content:center; }
.week-day i { display:block; width:100%; max-width:18px; border-radius:5px 5px 2px 2px; background:#d8e3c6; min-height:3px; }
.week-day.today i { background:#9cb977; }
.week-day small { display:block; margin-top:8px; font-size:11px; color:#5e694d; }
.week-day.today small { color:#596b43; }
.weekly-totals { display:grid; grid-template-columns:1fr 1fr; gap:21px 12px; margin:22px 0; }
.weekly-totals > div { text-align:center; }
.weekly-totals strong { font-size:20px; font-family:Georgia,serif; font-weight:400; color:#5b6948; display:block; }
.weekly-totals strong small { font-family:system-ui,sans-serif; font-size:11px; margin-left:3px; }
.weekly-totals span { display:block; font-size:11px; color:#5d684d; margin-top:2px; }
.weekly-quote { padding-top:14px; border-top:1px dashed #e0e9d1; font-size:11px; color:#5c6a47; text-align:center; }
.achievement { display:flex; gap:12px; align-items:center; padding:13px 0; border-bottom:1px solid #e9eedf; }
.achievement:last-child { border:0; }
.achievement > span { display:grid; place-items:center; width:36px; height:36px; background:#f0edda; color:#70653c; border-radius:50%; }
.achievement .icon { width:21px; height:21px; }
.achievement strong { display:block; font-size:12px; font-weight:500; color:#5c694b; }
.achievement small { display:block; font-size:11px; color:#5c694a; margin-top:3px; }
.history-entry { border-top:1px solid #e5ebd9; }
.history-entry:first-child { border-top:0; }
.history-entry summary { display:flex; align-items:center; gap:11px; list-style:none; cursor:pointer; padding:15px 0; }
.history-entry summary::-webkit-details-marker { display:none; }
.history-entry summary > span { color:#5d694b; font-size:11px; flex-shrink:0; }
.history-entry summary strong { flex:1; color:#5d6a4c; font-size:11px; font-weight:400; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.history-entry summary .icon { width:14px; height:14px; color:#5d684a; }
.history-entry[open] summary .icon { transform:rotate(180deg); }
.history-entry > div { border-left:2px solid #dbe6c8; margin:0 0 19px 5px; padding:0 0 0 14px; }
.history-entry h4 { font-size:11px; color:#5c6a4c; margin:14px 0 5px; }
.history-entry p { white-space:pre-wrap; overflow-wrap:anywhere; font-size:11px; color:#5c6a4e; }
.mine-layout { display:grid; grid-template-columns:295px minmax(0,1fr); gap:23px; align-items:start; }
.mine-aside { display:grid; gap:21px; }
.profile-card { text-align:center; padding:24px; }
.profile-art { width:142px; margin:-4px auto 8px; background:radial-gradient(ellipse,#edf1dd 0 40%,transparent 65%); }
.profile-card > .eyebrow { font-size:11px; }
.profile-card > h2 { font-family:"STSong","Songti SC","SimSun",serif; font-size:23px; letter-spacing:.12em; margin-top:5px; overflow-wrap:anywhere; }
.realm-badge.light { background:#f0f4e3; border:1px solid #e4ecd3; border-radius:7px; padding:4px 8px; font-size:11px; margin-top:8px; }
.profile-numbers { display:grid; grid-template-columns:1fr 1fr; margin:23px 0 25px; }
.profile-numbers > div + div { border-left:1px solid #e6ecda; }
.profile-numbers strong { display:block; font-size:22px; font-family:Georgia,serif; font-weight:400; color:#5b6a46; }
.profile-numbers span { display:block; font-size:11px; color:#5c6a4c; }
.profile-card form { text-align:left; border-top:1px solid #e5ecd7; padding-top:20px; }
.profile-card form input { font-size:12px; min-height:40px; padding:9px 10px; }
.profile-card form label { font-size:11px; }
.profile-card form button { font-size:11px; min-height:40px; padding:8px 12px; }
.preferences-card { padding:21px; }
.preferences-card h2 { font-size:15px; }
.switch-label { display:flex; align-items:center; gap:10px; position:relative; cursor:pointer; padding:4px 0 0; font-weight:400; }
.switch-label > span:first-child { flex:1; }
.switch-label strong { display:block; font-size:11px; font-weight:500; }
.switch-label small { display:block; font-size:11px; color:#5b6949; margin-top:3px; }
.switch-label input { position:absolute; opacity:0; width:37px; height:22px; min-height:0; right:0; margin:0; z-index:1; cursor:pointer; }
.switch-track { width:35px; height:21px; border-radius:20px; background:#7c8e6d; padding:3px; transition:background .2s; }
.switch-track::before { content:''; display:block; width:15px; height:15px; border-radius:50%; background:#fffef8; box-shadow:0 1px 3px #25361a22; transition:transform .2s; }
.switch-label input:checked + .switch-track { background:#5d793e; }
.switch-label input:checked + .switch-track::before { transform:translateX(14px); }
.switch-label input:focus-visible + .switch-track { outline:2px solid #5d793e; outline-offset:3px; }
.preferences-card > .fine-print { font-size:11px; margin:12px 0 18px; }
.setting-action { display:flex; align-items:center; gap:10px; width:100%; background:none; border:0; border-top:1px solid #e7eddd; padding:17px 0; text-align:left; }
.setting-action > .icon:first-child { width:18px; height:18px; color:#5a6a45; }
.setting-action > span { flex:1; }
.setting-action strong { font-size:11px; font-weight:400; display:block; }
.setting-action small { font-size:11px; color:#5b694b; display:block; margin-top:3px; }
.setting-action > .icon:last-child { width:13px; height:13px; color:#5b694b; }
.setting-action.danger { padding-bottom:0; }
.danger,.setting-action.danger > .icon { color:#7f5d4a; }
.visions-card { padding:27px; }
.vision-list { display:grid; gap:14px; margin:23px 0; }
.vision { border:1px solid #e2e8d4; border-radius:13px; padding:19px; background:#f7f9ef; }
.vision-category { display:inline-block; color:#5e6847; font-size:11px; border:1px solid #dce5cb; border-radius:5px; padding:2px 7px; }
.vision h3 { font-family:"STSong","Songti SC","SimSun",serif; font-size:19px; letter-spacing:.055em; margin:10px 0 7px; color:#5c6949; overflow-wrap:anywhere; }
.vision p { font-size:11px; color:#5c6a4c; white-space:pre-wrap; overflow-wrap:anywhere; }
.vision .text-button { font-size:11px; margin-top:10px; }
.vision-editor { border-top:1px solid #e3ead7; margin-top:21px; padding-top:5px; }
.vision-editor > summary { display:flex; align-items:center; gap:8px; list-style:none; color:#596a43; font-size:12px; padding:17px 0; cursor:pointer; }
.vision-editor > summary::-webkit-details-marker { display:none; }
.vision-editor > summary .icon { width:16px; height:16px; }
.vision-editor > summary .icon:last-child { margin-left:auto; width:13px; height:13px; }
.vision-editor[open] > summary .icon:last-child { transform:rotate(180deg); }
.vision-editor form { padding:3px 0; }
.vision-editor label { font-size:11px; }
.vision-editor input,.vision-editor textarea,.vision-editor select { font-size:12px; }
.vision-editor > form > .primary { margin-top:20px; font-size:11px; }
.form-row { display:grid; grid-template-columns:112px minmax(0,1fr); gap:12px; }
.optional { font-size:11px; color:#5d684e; font-weight:400; margin-left:7px; }

/* Arrival and recovery states */
.auth-shell { min-height:100vh; max-width:1320px; margin:auto; padding:32px 52px 22px; }
.auth-header { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.auth-header > span { font-size:11px; color:#5e6951; }
.auth-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(360px,.85fr); gap:65px; align-items:center; margin-top:42px; }
.auth-landscape { position:relative; height:640px; border-radius:22px; overflow:hidden; border:1px solid #dce2cc; background:#e9edd8; }
.auth-landscape .xiuxian-companion { bottom:15%; }
.auth-art-caption { position:absolute; bottom:33px; left:35px; z-index:5; color:#5a694b; }
.auth-art-caption .seal-outline { width:24px; height:28px; font-size:15px; margin-bottom:14px; }
.auth-art-caption p { font-family:"STSong","Songti SC","SimSun",serif; font-size:25px; line-height:1.9; letter-spacing:.1em; }
.auth-art-caption small { display:block; color:#5e6949; font-size:11px; margin-top:15px; letter-spacing:.1em; }
.auth-panel { padding:23px 0; max-width:420px; width:100%; }
.auth-panel > .overline { font-size:11px; letter-spacing:.15em; }
.auth-panel > h1 { font-family:"STSong","Songti SC","SimSun",serif; letter-spacing:.085em; font-size:31px; margin:11px 0 13px; }
.auth-intro { font-size:12px; color:#5d6a4e; line-height:1.9; margin-bottom:25px; }
.auth-tabs { display:flex; border-bottom:1px solid #dce5ce; gap:30px; margin-bottom:26px; }
.auth-tabs button { color:#5e684a; font-size:12px; border:0; background:none; padding:10px 2px 12px; position:relative; }
.auth-tabs button.active { color:#566b41; font-weight:500; }
.auth-tabs button.active::after { content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:#849d62; border-radius:2px; }
.form-field { margin-bottom:19px; }
.auth-panel label { font-size:12px; color:#5c6a4f; }
.auth-panel input { background:#fdfdf5; border-color:#83946f; font-size:12px; min-height:47px; }
.auth-panel .form-field > small { font-size:11px; color:#5d694c; }
.password-field { position:relative; }
.password-field input { padding-right:47px; }
.password-field .icon-button { position:absolute; top:3px; right:3px; width:41px; min-height:41px; color:#5d694a; }
.password-field .icon-button .icon { width:18px; height:18px; }
.auth-panel form > .primary { margin-top:8px; justify-content:space-between; padding:13px 18px; font-size:13px; }
.auth-privacy { display:flex; align-items:flex-start; gap:8px; border-top:1px solid #e2e9d5; padding-top:22px; margin-top:27px; color:#5b694b; }
.auth-privacy .icon { width:15px; height:15px; margin-top:3px; }
.auth-privacy p { font-size:11px; line-height:1.9; }
.auth-footnote { font-size:11px; color:#5d694a; margin-top:15px; }
.auth-footer { display:flex; justify-content:space-between; gap:20px; color:#5e694d; font-size:11px; margin-top:31px; }
.onboarding-wrap { padding:35px 24px; min-height:100vh; background:radial-gradient(ellipse at 50% 40%,#e7eddb,transparent 65%); }
.onboarding-wrap > .brand { justify-content:center; }
.onboarding-card { max-width:570px; margin:33px auto 0; padding:35px 45px 26px; text-align:center; }
.onboarding-capy { width:145px; margin:0 auto 10px; }
.onboarding-card h1 { font-family:"STSong","Songti SC","SimSun",serif; font-size:27px; letter-spacing:.1em; margin:8px 0 10px; }
.onboarding-card > p { color:#5a694a; font-size:12px; }
.onboarding-card form { margin:25px 0; text-align:left; }
.onboarding-card form .primary { margin-top:23px; justify-content:space-between; }
.onboarding-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; border-top:1px solid #e4ebd6; padding-top:22px; margin-top:25px; }
.onboarding-steps .icon { display:block; margin:0 auto 9px; color:#5a6a43; width:22px; height:22px; }
.onboarding-steps strong { display:block; font-size:11px; font-weight:500; color:#5a6a46; }
.onboarding-steps span { display:block; color:#5c6948; font-size:11px; margin-top:5px; }
.onboarding-card > .text-button { margin-top:23px; font-size:11px; }
.loading-screen,.connection-screen { min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:30px; background:radial-gradient(ellipse at 50% 45%,#eaf0dc,transparent 65%); }
.loading-screen > .brand { margin-bottom:45px; }
.loading-screen h1 { font-family:"STSong","Songti SC","SimSun",serif; font-size:25px; letter-spacing:.1em; margin:23px 0 10px; }
.loading-screen p { color:#5d6948; font-size:12px; }
.loading-orbit { width:54px; height:54px; border:1px solid #c8d6b0; border-radius:50%; position:relative; animation:slow-orbit 7s linear infinite; }
.loading-orbit::before { content:''; position:absolute; top:-4px; left:20px; width:8px; height:8px; border-radius:50%; background:#a3b87a; box-shadow:0 0 0 5px #a3b87a15; }
.loading-orbit::after { content:''; position:absolute; inset:10px; border:1px solid #d8e2c7; border-radius:50%; }
.connection-screen > .brand { margin-bottom:30px; }
.connection-card { max-width:480px; padding:35px; }
.connection-card > .icon { width:42px; height:42px; color:#5a6b40; }
.connection-card h1 { font-family:"STSong","Songti SC","SimSun",serif; font-size:26px; margin:18px 0 14px; }
.connection-card p { color:#5c694a; font-size:12px; margin-bottom:22px; }
.connection-card > small { display:block; color:#5b694b; font-size:11px; margin-top:19px; }
.content-loading,.content-error { text-align:center; padding:42px 25px; color:#5c6949; }
.content-loading p { font-size:12px; margin-top:15px; }
.loading-dots { display:inline-block; width:22px; height:22px; border:2px solid #dce6c8; border-right-color:#8da665; border-radius:50%; animation:slow-orbit 1s linear infinite; }
.content-error > .icon { width:35px; height:35px; color:#5d6a43; }
.content-error h2 { font-size:18px; margin:12px 0 8px; }
.content-error p { font-size:12px; color:#5d694a; margin-bottom:20px; }
.form-error { color:#945342; font-size:12px; padding:10px 12px; background:#f9eee5; border:1px solid #ebd6c8; border-radius:8px; margin:15px 0; }
.form-error[hidden] { display:none; }

/* Dialogs, completion feedback and accessible motion */
.modal-scrim { position:fixed; inset:0; z-index:100; display:flex; align-items:center; justify-content:center; padding:25px; background:#283b2d70; backdrop-filter:blur(5px); overflow-y:auto; }
.modal-card { width:100%; max-width:460px; max-height:calc(100dvh - 50px); overflow-y:auto; padding:31px 29px 26px; border:1px solid #dfe6d0; border-radius:20px; background:#fffef7; box-shadow:0 25px 80px #1e332d35; position:relative; animation:dialog-enter .22s ease-out; }
.modal-close { position:absolute; top:9px; right:9px; color:#5d694a; min-height:35px; width:35px; }
.modal-close .icon { width:17px; height:17px; }
.modal-card > .eyebrow { font-size:11px; margin-bottom:10px; }
.modal-card h2 { font-family:"STSong","Songti SC","SimSun",serif; font-size:24px; letter-spacing:.055em; padding-right:13px; }
.modal-description,.modal-card > p { font-size:12px; color:#5d6a4e; line-height:1.9; margin-top:12px; }
.modal-form { margin-top:21px; }
.modal-form label { font-size:12px; }
.modal-form textarea,.modal-form input { font-size:13px; background:#fcfdf5; }
.modal-actions { display:flex; align-items:center; gap:11px; margin-top:24px; }
.modal-actions > button { flex:1; min-height:43px; font-size:12px; }
.modal-note { background:#f0f4e5; border:1px solid #e1e9d0; padding:13px; border-radius:10px; font-size:11px!important; }
.modal-logs { max-height:50vh; overflow-y:auto; margin-top:18px; }
.realm-modal-art { width:150px; margin:13px auto 0; }
.realm-requirements { display:grid; gap:15px; margin-top:22px; }
.realm-requirements > div { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:7px; font-size:12px; color:#5b6a4d; }
.realm-requirements strong { display:flex; gap:5px; align-items:center; font-size:13px; font-weight:500; }
.realm-requirements strong small { color:#5d694b; font-size:11px; }
.realm-requirements .progress { height:4px; margin-top:2px; }
.attribute-detail { display:flex; flex-direction:column; align-items:center; border-radius:14px; background:#f5eddf; padding:24px; margin-top:23px; color:#766240; }
.attribute-detail > span { display:grid; place-items:center; width:43px; height:43px; background:#efe2c8; border-radius:50%; margin-bottom:10px; }
.attribute-detail > strong { font-family:Georgia,serif; font-size:43px; font-weight:400; line-height:1.2; }
.attribute-detail > small { font-size:11px; margin-top:9px; }
.attribute-detail.blue { color:#50696c; background:#eaf1ed; }
.attribute-detail.gold { color:#716536; background:#f5f1db; }
.attribute-detail.rose { color:#7b5f52; background:#f4ebe4; }
.attribute-detail.violet { color:#6c5e82; background:#efebf3; }
.rank-track { display:flex; justify-content:space-between; gap:8px; margin:20px 0 8px; color:#5f694f; font-size:11px; }
.rank-track > span { flex:1; text-align:center; border-top:3px solid #e5e9dc; padding-top:9px; }
.rank-track > .reached { border-color:#aec583; color:#596a42; }
.guide-list { padding-left:20px; margin:20px 0 0; }
.guide-list li { padding-left:3px; margin-bottom:18px; color:#5b6948; font-size:12px; }
.guide-list strong { font-size:12px; color:#5a6a4a; font-weight:500; }
.guide-list p { font-size:11px; color:#5c684e; margin-top:5px; }
.selectable-code { user-select:all; text-align:center; background:#eef4df; border:1px dashed #b7c9a0; border-radius:11px; padding:19px; font-size:25px; letter-spacing:.15em; font-family:ui-monospace,monospace; color:#596a45; margin-top:22px; }
.toast { position:fixed; bottom:28px; left:50%; transform:translateX(-50%); z-index:125; max-width:min(90vw,570px); width:max-content; display:flex; align-items:center; gap:10px; padding:11px 12px 11px 17px; border-radius:12px; background:#38583ceF; color:#f8f9ee; border:1px solid #748964; box-shadow:0 10px 30px #31402725; backdrop-filter:blur(8px); font-size:12px; }
.toast > .icon { width:17px; height:17px; color:#c6d9ac; }
.toast > button { background:none; color:#cfddbc; border:0; width:29px; height:29px; display:grid; place-items:center; padding:4px; }
.toast > button .icon { width:15px; height:15px; }
.toast-error { background:#705747ef; border-color:#a38a74; }
.toast-error > .icon { color:#e6ccb1; }
.reward-pop { position:fixed; right:28px; bottom:29px; z-index:120; display:flex; align-items:flex-start; gap:12px; width:min(390px,calc(100vw - 32px)); padding:20px 44px 20px 18px; border:1px solid #c6d4ac; border-radius:16px; background:#fcfff2f5; backdrop-filter:blur(8px); box-shadow:0 12px 38px #45532e25; animation:reward-enter .3s ease-out; }
.reward-symbol { display:grid; place-items:center; width:36px; height:38px; background:#eaf2d8; color:#9bb66f; border:1px solid #d7e4bd; border-radius:11px; flex-shrink:0; }
.reward-symbol .icon { width:24px; height:24px; }
.reward-pop strong { font-family:"STSong","Songti SC","SimSun",serif; font-size:18px; color:#566b42; letter-spacing:.065em; }
.reward-pop p { color:#5b6a42; font-size:13px; margin-top:4px; }
.reward-pop small { color:#5c6a48; font-size:11px; display:block; margin-top:5px; }
.reward-extra { display:block; margin-top:7px; font-size:11px; color:#706541; }
.reward-pop > .icon-button { position:absolute; right:7px; top:8px; width:31px; min-height:31px; padding:7px; }
.reward-pop > .icon-button .icon { width:14px; height:14px; }
@keyframes dialog-enter { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:none; } }
@keyframes reward-enter { from { opacity:0; transform:translateY(15px); } to { opacity:1; transform:none; } }
@keyframes slow-orbit { to { transform:rotate(360deg); } }

/* Responsive reflow follows reading order, not an oversized desktop miniature. */
@media (min-width:1650px) { .main-column { margin-right:auto; } }
@media (max-width:1250px) {
  :root { --rail:195px; }
  .sidebar { padding-inline:19px; }
  .brand strong { font-size:17px; }
  .brand small { font-size:5.5px; }
  .brand-mark { width:34px; height:37px; }
  .main-column { padding-inline:30px; }
  .home-dashboard { grid-template-columns:minmax(0,1fr) 267px; gap:17px; }
  .home-main,.home-aside { gap:17px; }
  .card { padding:21px; }
  .destiny-card { padding:21px; }
  .destiny-icon { display:none; }
  .micro-grid { gap:8px; }
  .micro-action { padding:12px 9px; }
  .retreat-hero { height:345px; }
  .journal-layout { grid-template-columns:minmax(0,1fr) 260px; gap:18px; }
  .journal-writing { padding:22px; }
  .journal-question { gap:10px; }
  .journal-submit { align-items:flex-start; }
  .journal-submit > span { max-width:110px; }
  .practice-panel { gap:17px; }
  .practice-art { width:160px; }
  .duration-options { gap:7px; }
  .duration-option { padding-inline:5px; }
  .mini-timer { left:calc(var(--rail) + 30px); right:30px; }
}
@media (max-width:1050px) {
  :root { --rail:175px; }
  .sidebar { padding-inline:15px; }
  .sidebar > .brand { gap:6px; }
  .sidebar > .brand strong { font-size:15px; }
  .sidebar > .brand .brand-mark { width:32px; height:36px; }
  .sidebar > .brand small { font-size:5px; letter-spacing:.07em; }
  .main-column { padding-inline:25px; }
  .topbar-right { gap:12px; }
  .date-stamp { display:none; }
  .welcome-line h1 { font-size:26px; }
  .season-note { display:none; }
  .home-dashboard { grid-template-columns:minmax(0,1fr); }
  .home-aside { grid-template-columns:1fr 1fr; align-items:start; }
  .gentle-note { min-height:270px; }
  .home-micro { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .friends-layout { grid-template-columns:1fr; }
  .friend-list-card { min-height:280px; }
  .practice-panel { grid-template-columns:1fr; }
  .practice-scene { display:none; }
  .practice-tabs small { display:none; }
  .practice-tabs button { min-height:54px; }
  .journal-layout { grid-template-columns:1fr; }
  .journal-aside { grid-template-columns:1fr 1fr; align-items:start; }
  .journal-submit > span { max-width:none; }
  .mine-layout { grid-template-columns:1fr; }
  .mine-aside { grid-template-columns:1fr 1fr; align-items:start; }
  .auth-shell { padding-inline:35px; }
  .auth-grid { gap:35px; grid-template-columns:minmax(0,1fr) minmax(325px,.9fr); }
  .auth-landscape { height:590px; }
  .auth-panel > h1 { font-size:27px; }
  .auth-art-caption { left:25px; }
  .auth-art-caption p { font-size:22px; }
}
@media (max-width:760px) {
  :root { --rail:0px; font-size:14px; }
  body { background:#f7f6ee; }
  .sidebar,.breadcrumb,.date-stamp { display:none; }
  .main-column { margin-left:0; padding:0 18px; }
  .topbar { height:74px; border-bottom:0; }
  .mobile-brand { display:flex; align-items:center; gap:8px; }
  .mobile-brand .brand-mark { width:34px; height:37px; }
  .mobile-brand strong { font-family:"STSong","Songti SC","SimSun",serif; display:block; font-size:18px; letter-spacing:.08em; line-height:1.5; color:#4e6746; }
  .mobile-brand small { display:block; font-size:5.5px; letter-spacing:.14em; color:#5b694b; }
  .cloud-state span { display:none; }
  .cloud-state { width:34px; height:34px; border:1px solid #e0e6d4; border-radius:50%; justify-content:center; background:#f3f5e9; }
  .cloud-state .icon { width:17px; height:17px; }
  #main-content { padding-top:7px; }
  .bottom-nav { display:flex; position:fixed; bottom:0; left:0; right:0; z-index:40; background:#fffef7f2; border-top:1px solid #e1e7d6; backdrop-filter:blur(14px); padding:8px 9px calc(8px + env(safe-area-inset-bottom)); gap:4px; }
  .bottom-nav .nav-item { min-height:51px; flex:1; width:auto; padding:5px; flex-direction:column; gap:3px; border:0; justify-content:center; border-radius:10px; }
  .bottom-nav .nav-item > .icon { width:21px; height:21px; }
  .bottom-nav .nav-item > span { font-size:11px; line-height:1.5; font-weight:400; letter-spacing:.08em; }
  .bottom-nav .nav-item.active { background:#edf3de; color:#576c3f; }
  .bottom-nav .nav-item.active > span { font-weight:600; }
  .page-footer { flex-direction:column; align-items:center; gap:5px; padding:24px 0 calc(92px + env(safe-area-inset-bottom)); font-size:11px; }
  .welcome-line { margin-bottom:20px; }
  .welcome-line .eyebrow { font-size:11px; }
  .welcome-line h1 { font-size:25px; letter-spacing:.065em; margin-top:6px; }
  .welcome-line p { font-size:11px; max-width:320px; }
  .retreat-hero { height:365px; margin-bottom:18px; border-radius:17px; }
  .hero-scene { bottom:92px; }
  .hero-shade { display:none; }
  .hero-caption { bottom:0; left:0; right:0; width:100%; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; border:0; border-top:1px solid #dce2cc; background:#f7f8ed; border-radius:0; box-shadow:none; backdrop-filter:none; min-height:94px; }
  .hero-location { font-size:16px; gap:8px; flex-shrink:0; }
  .hero-location small { max-width:104px; font-size:11px; }
  .hero-location .seal { width:23px; height:29px; font-size:14px; }
  .hero-stats { margin-top:0; flex:1; max-width:158px; }
  .hero-stats .realm-badge { font-size:11px; }
  .hero-stats .realm-badge > .icon:first-child { display:none; }
  .progress-label { flex-direction:column; align-items:flex-start; gap:1px; margin:3px 0 4px; }
  .progress-label > span:last-child { display:none; }
  .home-dashboard { gap:17px; }
  .home-main,.home-aside { gap:17px; }
  .home-aside { grid-template-columns:1fr; }
  .card { padding:20px 18px; border-radius:15px; }
  .section-heading { margin-bottom:15px; gap:9px; }
  .section-heading h2 { font-size:17px; }
  .eyebrow { font-size:11px; }
  .section-description { font-size:11px; }
  .destiny-card { border-radius:15px; padding:21px 19px; }
  .card-kicker { font-size:11px; gap:11px; }
  .card-kicker span { font-size:11px; }
  .destiny-card h2 { font-size:19px; line-height:1.65; margin-top:9px; }
  .destiny-card p { font-size:11px; }
  .destiny-card .primary,.destiny-card .secondary { min-height:43px; font-size:11px; padding:10px 12px; }
  .destiny-card .icon-button { min-height:43px; }
  .quest-row { padding:14px 0; gap:9px; }
  .quest-text strong { font-size:12px; }
  .quest-text small { font-size:11px; }
  .quest-end { gap:6px; }
  .quest-end small { font-size:11px; }
  .quest-symbol { width:33px; height:35px; }
  .ritual-footer { font-size:11px; }
  .micro-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .micro-action { padding:15px 13px; }
  .micro-symbol { width:33px; height:33px; margin-bottom:10px; }
  .micro-action > strong { font-size:12px; }
  .micro-action > span:not(.micro-symbol) { font-size:11px; }
  .micro-action > small,.micro-action > small i { font-size:11px; }
  .home-micro { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .home-micro .micro-action { display:grid; grid-template-columns:35px 1fr; column-gap:10px; align-items:start; }
  .home-micro .micro-symbol { grid-row:1 / 3; margin:0; }
  .home-micro .micro-action > strong { align-self:end; font-size:11px; }
  .home-micro .micro-action > span:not(.micro-symbol) { font-size:11px; }
  .home-micro .micro-action > small { grid-column:1 / 3; }
  .daily-numbers strong { font-size:31px; }
  .daily-numbers span { font-size:11px; }
  .attribute-orb > span { width:38px; height:38px; }
  .attribute-orb .icon { width:19px; height:19px; }
  .attribute-orb small { font-size:11px; }
  .companion-card > .fine-print { font-size:11px; }
  .quick-practices { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .quick-practice { flex-direction:column; text-align:center; gap:7px; padding:13px 5px; }
  .quick-practice > .icon { display:none; }
  .quick-practice small { font-size:11px; }
  .encounter-card { text-align:left; position:relative; padding:22px; }
  .encounter-illustration { position:absolute; right:19px; top:45px; width:63px; height:63px; }
  .encounter-card h2 { margin:17px 0 8px; }
  .encounter-card p { padding-right:78px; font-size:11px; }
  .encounter-card .secondary { min-height:41px; font-size:11px; }
  .encounter-card > small { font-size:11px; }
  .gentle-note { min-height:0; padding:22px; }
  .gentle-note > p { font-size:20px; }
  .gentle-note > span:not(.seal-outline),.gentle-note .text-button { font-size:11px; }
  .page-heading { padding:4px 0 23px; }
  .page-heading h1 { font-size:25px; letter-spacing:.055em; }
  .page-heading p { font-size:11px; }
  .page-heading .overline { font-size:11px; }
  .header-metric { display:none; }
  .practice-picker { padding:20px 16px; }
  .practice-intro { margin-bottom:20px; gap:10px; }
  .practice-intro h2 { font-size:17px; }
  .practice-intro p { font-size:11px; }
  .round-icon { width:37px; height:37px; }
  .practice-tabs { padding:4px; }
  .practice-tabs button { gap:7px; padding:11px 4px; min-height:47px; }
  .practice-tabs button > .icon { width:21px; height:21px; }
  .practice-tabs button > span { font-size:12px; }
  .practice-panel { padding-top:20px; }
  .practice-settings h3 { font-size:12px; }
  .duration-options { gap:7px; }
  .duration-option { padding:19px 3px 14px; }
  .duration-option strong { font-size:28px; }
  .duration-option > span { font-size:11px; }
  .duration-option > small { font-size:11px; letter-spacing:-.04em; }
  .practice-settings .fine-print { font-size:11px; }
  .will-grid { grid-template-columns:1fr; gap:10px; }
  .will-action { padding:14px 11px; }
  .will-action strong { font-size:12px; }
  .will-action small { font-size:11px; }
  .timer-screen { padding:18px 17px 24px; }
  .timer-topline .text-button,.live-chip { font-size:11px; }
  .timer-screen h2 { font-size:19px; margin-top:27px; }
  .timer-description { font-size:11px; }
  .timer-visual { padding-right:29px; width:300px; margin-top:26px; margin-bottom:27px; }
  .timer-ring { width:219px; height:219px; }
  .timer-ring strong { font-size:45px; }
  .timer-capy { width:122px; right:-4px; }
  .timer-actions { gap:9px; }
  .timer-actions .primary { min-width:0; flex:1; font-size:11px; padding:11px; }
  .timer-actions .secondary { font-size:11px; padding:11px; }
  .timer-actions .primary .icon { width:16px; height:16px; }
  .timer-footnote { font-size:11px; }
  .mini-timer { left:12px; right:12px; bottom:calc(79px + env(safe-area-inset-bottom)); padding:10px 12px; border-radius:12px; gap:10px; }
  .mini-timer small { max-width:145px; font-size:11px; }
  .mini-timer strong { font-size:11px; }
  .mini-timer-value { font-size:23px; }
  .mini-timer .primary { min-height:36px; font-size:11px; padding:8px 10px; }
  .is-focused .main-column { padding:0 12px; }
  .is-focused .timer-screen { min-height:620px; margin:12px 0; padding:22px 18px; }
  .is-focused .timer-screen h2 { margin-top:55px; }
  .friends-layout,.journal-layout,.mine-layout { gap:17px; }
  .invite-card > p { font-size:11px; }
  .invite-code { padding:13px 12px 13px 17px; }
  .invite-code > span { font-size:27px; }
  .invite-card .fine-print,.privacy-note { font-size:11px; }
  .friend-list-card .section-heading { flex-wrap:wrap; }
  .friend-list-card .section-heading > .muted { font-size:11px; padding-top:0; }
  .friend-info strong { font-size:12px; }
  .friend-info span { font-size:11px; }
  .friend > button { font-size:11px; min-height:40px; padding:8px; }
  .friend { gap:9px; }
  .friend-avatar { width:40px; height:40px; }
  .friend-avatar .xiuxian-capy { width:47px; }
  .empty-state { padding-block:15px 22px; }
  .empty-state p { font-size:12px; }
  .journal-main,.journal-aside { gap:17px; }
  .journal-aside { grid-template-columns:1fr; }
  .journal-writing { padding:22px 17px; }
  .journal-writing .section-heading { flex-wrap:wrap; }
  .journal-save-state { font-size:11px; }
  .journal-question { gap:9px; margin:25px 0; }
  .question-number { font-size:15px; }
  .journal-question label { font-size:12px; }
  .journal-question p { font-size:11px; }
  .journal-question input,.journal-question textarea { font-size:14px; padding:12px; }
  .field-footer,.field-footer small { font-size:11px; }
  .journal-submit { flex-direction:column; align-items:stretch; gap:13px; }
  .journal-submit > span { justify-content:center; }
  .journal-submit > button { min-height:46px; font-size:12px; }
  .week-chart { gap:12px; }
  .week-day > div { height:80px; }
  .week-day i { max-width:24px; }
  .weekly-totals { gap:20px; }
  .weekly-totals strong { font-size:24px; }
  .weekly-totals span { font-size:11px; }
  .weekly-quote { font-size:11px; }
  .history-entry summary { flex-wrap:wrap; gap:4px 10px; padding-block:16px; }
  .history-entry summary > span { width:100%; font-size:11px; }
  .history-entry summary > strong { font-size:12px; }
  .history-entry p { font-size:12px; }
  .mine-aside { grid-template-columns:1fr; gap:17px; }
  .profile-card { padding:25px; }
  .preferences-card { padding:23px; }
  .preferences-card h2 { font-size:17px; }
  .switch-label strong,.setting-action strong { font-size:13px; }
  .switch-label small,.setting-action small { font-size:11px; }
  .preferences-card > .fine-print { font-size:11px; }
  .setting-action { padding-block:20px; }
  .visions-card { padding:23px 19px; }
  .visions-card .section-heading { align-items:flex-start; }
  .vision h3 { font-size:19px; }
  .vision p { font-size:12px; }
  .form-row { grid-template-columns:1fr; gap:19px; }
  .vision-editor label { font-size:12px; }
  .vision-editor input,.vision-editor textarea,.vision-editor select { font-size:14px; }
  .vision-editor > form > .primary { width:100%; min-height:44px; font-size:12px; }
  .auth-shell { padding:23px 21px 25px; }
  .auth-header > span { display:none; }
  .auth-grid { grid-template-columns:1fr; gap:0; margin-top:27px; }
  .auth-landscape { height:245px; border-radius:16px; }
  .auth-art-caption { bottom:15px; left:18px; }
  .auth-art-caption .seal-outline { width:20px; height:23px; font-size:12px; margin-bottom:8px; }
  .auth-art-caption p { font-size:17px; line-height:1.9; }
  .auth-art-caption small { display:none; }
  .auth-landscape .xiuxian-companion { bottom:0; left:65%; width:158px; }
  .auth-landscape .xiuxian-scene-caption { display:none; }
  .auth-landscape .xiuxian-speech { display:none; }
  .auth-panel { max-width:none; padding:28px 3px 12px; }
  .auth-panel > .overline { font-size:11px; }
  .auth-panel > h1 { font-size:27px; margin:7px 0 11px; }
  .auth-intro { font-size:12px; margin-bottom:22px; }
  .auth-tabs { gap:30px; margin-bottom:24px; }
  .auth-tabs button { font-size:13px; }
  .auth-panel label { font-size:13px; }
  .auth-panel input { font-size:16px; }
  .auth-panel .form-field > small { font-size:11px; }
  .auth-panel form > .primary { min-height:49px; font-size:14px; }
  .auth-privacy p { font-size:11px; }
  .auth-footnote { font-size:11px; }
  .auth-footer { flex-direction:column; gap:4px; margin-top:19px; font-size:11px; }
  .onboarding-wrap { padding:25px 16px; }
  .onboarding-card { margin-top:25px; padding:25px 21px; }
  .onboarding-capy { width:134px; }
  .onboarding-card h1 { font-size:25px; }
  .onboarding-card input { font-size:16px; }
  .onboarding-steps { gap:8px; }
  .onboarding-steps strong { font-size:11px; }
  .onboarding-steps span { font-size:11px; }
  .onboarding-card > .text-button { min-height:44px; font-size:12px; }
  .modal-scrim { padding:16px; align-items:center; }
  .modal-card { padding:30px 22px 23px; border-radius:18px; max-height:calc(100dvh - 32px); }
  .modal-card h2 { font-size:22px; }
  .modal-form input,.modal-form textarea { font-size:16px; }
  .modal-actions > button { min-height:46px; }
  .toast { bottom:calc(83px + env(safe-area-inset-bottom)); max-width:calc(100vw - 28px); font-size:12px; }
  .reward-pop { bottom:calc(83px + env(safe-area-inset-bottom)); right:16px; padding:18px 42px 18px 15px; }
  .reward-pop strong { font-size:17px; }
  .reward-pop small { font-size:11px; }
}
@media (max-width:370px) {
  .main-column { padding-inline:12px; }
  .card { padding:18px 15px; }
  .hero-caption { padding-inline:13px; gap:9px; }
  .hero-location { font-size:14px; }
  .hero-location small { font-size:11px; }
  .hero-location .seal { display:none; }
  .hero-stats { max-width:149px; }
  .home-micro .micro-action { column-gap:7px; padding:12px 10px; grid-template-columns:28px 1fr; }
  .home-micro .micro-symbol { width:28px; height:30px; }
  .quest-text small { max-width:163px; }
  .quest-end > small { display:none; }
  .friend-info span { font-size:11px; }
  .friend > button { padding-inline:6px; font-size:11px; gap:4px; }
  .friend > button .icon { width:11px; height:11px; }
  .timer-ring { width:202px; height:202px; }
  .timer-capy { width:111px; }
  .auth-panel > h1 { font-size:25px; }
  .auth-shell { padding-inline:17px; }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
html[data-motion="reduced"] *,html[data-motion="reduced"] *::before,html[data-motion="reduced"] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
@media (prefers-contrast:more) {
  :root { --muted:#42543b; --line:#859d75; }
  small,.fine-print,.muted,.eyebrow { color:#53694b!important; }
  .card { border-color:#849879; }
}
@media print {
  .sidebar,.topbar,.bottom-nav,.mini-timer,.page-footer,.row-actions,.toast,.reward-pop { display:none!important; }
  .main-column { margin:0; padding:0; }
  .card { break-inside:avoid; box-shadow:none; }
}

/* Numeric duration metadata may wrap at narrow widths instead of clipping. */
.duration-option > small { white-space:normal; line-height:1.6; }

/* iOS should not zoom when focusing any normal form control. */
@media (max-width:760px) { input:not([type="checkbox"]), textarea, select { font-size:16px!important; } }

/* Comfortable close targets on touch screens, without hiding the content. */
@media (max-width:760px) { .icon-button, .modal-close, .reward-pop > .icon-button { width:44px; min-height:44px; } .toast > button { width:44px; height:44px; flex-shrink:0; } .modal-close { right:5px; top:5px; } .reward-pop > .icon-button { top:4px; right:4px; } }

/* The sign-in vignette has its own caption-safe composition on narrow phones. */
@media (max-width:760px) {
  .auth-art-caption { max-width:44%; }
  .auth-art-caption p { font-size:16px; letter-spacing:.055em; line-height:1.85; }
  .auth-landscape .xiuxian-companion { left:76%; width:145px; bottom:0; }
}
@media (max-width:370px) {
  .auth-art-caption { max-width:43%; }
  .auth-art-caption p { font-size:15px; }
  .auth-landscape .xiuxian-companion { left:77%; width:130px; }
}

/* Caption and illustration never share a hit area or obscure each other. */
.auth-landscape > .xiuxian-scene { bottom:170px; }
.auth-landscape .xiuxian-companion { left:54%; bottom:0; width:clamp(180px,45%,245px); }
.auth-art-caption { left:0; right:0; bottom:0; height:170px; max-width:none; padding:24px 30px; display:grid; grid-template-columns:27px minmax(0,1fr); gap:7px 14px; align-content:center; background:#f1f3e6; border-top:1px solid #d6dfc6; }
.auth-art-caption .seal-outline { grid-row:1 / 3; margin:4px 0 0; width:25px; height:29px; font-size:15px; }
.auth-art-caption p { font-size:22px; line-height:1.75; letter-spacing:.075em; }
.auth-art-caption small { grid-column:2; margin:0; display:block; }
@media (max-width:760px) {
  .auth-landscape { height:320px; }
  .auth-landscape > .xiuxian-scene { bottom:106px; }
  .auth-landscape .xiuxian-companion { left:56%; bottom:0; width:145px; }
  .auth-art-caption { height:106px; padding:17px 20px; grid-template-columns:22px minmax(0,1fr); gap:7px 12px; max-width:none; }
  .auth-art-caption .seal-outline { width:22px; height:26px; font-size:13px; }
  .auth-art-caption p { font-size:18px; line-height:1.8; letter-spacing:.075em; }
  .auth-art-caption small { display:none; }
}

.gentle-time { margin-top:12px; border-top:1px dashed #d5ddc5; padding-top:13px; width:100%; justify-content:flex-start; }
.gentle-time .icon:last-child { margin-left:auto; }
.time-detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:23px 0; }
.time-detail-grid > div { border:1px solid #dfe7d2; border-radius:11px; padding:18px 9px; background:#f3f6e9; text-align:center; }
.time-detail-grid strong { display:block; color:#637a49; font-family:Georgia,serif; font-size:25px; font-weight:400; font-variant-numeric:tabular-nums; }
.time-detail-grid strong > small { margin-left:5px; font-size:11px; font-family:system-ui,sans-serif; }
.time-detail-grid span { display:block; font-size:11px; color:#5d694b; margin-top:7px; }
.demon-history { margin:19px 0; }
.demon-history > div { display:flex; align-items:flex-start; gap:10px; padding:13px 0; border-bottom:1px solid #e3e9d8; }
.demon-history > div > span { color:#829571; }
.demon-history .icon { width:18px; height:18px; }
.demon-history p { font-size:12px; color:#67765a; overflow-wrap:anywhere; }
.demon-history small { display:block; margin-top:4px; font-size:11px; color:#5d694b; }

.treasure-pocket { display:flex; gap:10px; align-items:center; text-align:left; width:100%; padding:12px; background:#f4edde; border:1px solid #e1d3b9; border-radius:10px; margin:-5px 0 23px; color:#78613b; }
.treasure-pocket > .icon:first-child { width:25px; height:25px; color:#a27c47; }
.treasure-pocket > span { flex:1; font-size:11px; }
.treasure-pocket small { display:block; margin-top:2px; font-size:11px; color:#78613b; }
.treasure-pocket > .icon:last-child { width:13px; height:13px; }
.treasure-detail { display:flex; flex-direction:column; align-items:center; padding:24px; background:#f6efdf; border:1px solid #e7dbc1; border-radius:14px; margin-top:22px; color:#907245; }
.treasure-detail > .icon { width:47px; height:47px; stroke-width:1.2; }
.treasure-detail strong { font-family:Georgia,serif; font-size:35px; margin:10px 0 3px; font-weight:400; }
.treasure-detail strong small { font-family:system-ui,sans-serif; font-size:11px; margin-left:5px;  color:#78613b; }
.treasure-detail > span { font-size:12px; color:#78613b; }

.remote-refresh-notice { display:flex; align-items:center; gap:8px; padding:10px 14px; margin-top:12px; background:#edf3df; border:1px solid #cedeb6; border-radius:10px; color:#587145; font-size:12px; }
.remote-refresh-notice > .icon { width:17px; height:17px; }
.remote-refresh-notice > span { flex:1; }
.remote-refresh-notice .text-button { font-size:12px; flex-shrink:0; }
@media (max-width:760px) { .remote-refresh-notice { align-items:flex-start; font-size:11px; flex-wrap:wrap; } .remote-refresh-notice > span { flex-basis:calc(100% - 30px); } .remote-refresh-notice > button { margin-left:25px; } }

.modal-card.wide { max-width:760px; }
.journal-conflict { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:22px; }
.journal-conflict h3 { font-size:13px; color:#5c714a; margin-bottom:10px; }
.journal-conflict textarea { min-height:220px; font-size:12px; background:#f5f7ec; color:#536448; line-height:1.8; }
@media (max-width:760px) { .journal-conflict { grid-template-columns:1fr; } .journal-conflict textarea { min-height:180px; } }

.old-draft-notice { border:1px solid #ddcfac; background:#f5eedb; border-radius:11px; padding:15px; margin:19px 0; color:#78613b; }
.old-draft-notice > strong { display:flex; align-items:center; gap:7px; font-size:12px; font-weight:500; }
.old-draft-notice > strong .icon { width:17px; height:17px; }
.old-draft-notice p { font-size:11px; margin:7px 0 11px; }
.old-draft-notice > div { display:flex; flex-wrap:wrap; gap:7px; }
.old-draft-notice .secondary { min-height:36px; background:#fff8e8; border-color:#d6c6a0; color:#776137; padding:7px 10px; font-size:11px; }
.old-draft-notice .secondary .icon { width:12px; height:12px; }
@media(max-width:760px) { .old-draft-notice .secondary { min-height:44px; } }

/* On first compact render, quick starts appear in the real reading order after the main intent. */
.home-main > .quick-card .quick-practices { grid-template-columns:repeat(3,minmax(0,1fr)); }
.home-main > .quick-card .quick-practice { flex-direction:column; text-align:center; gap:7px; padding:14px 7px; }
.home-main > .quick-card .quick-practice > .icon { display:none; }
@media(max-width:760px) { .retreat-hero { height:340px; } }

.practice-limit-note { color:#5d694b; background:#f0f3e3; border:1px dashed #cbd8b4; padding:10px 12px; border-radius:8px; font-size:12px; margin:-3px 0 15px; }

/* Core action text stays comfortably readable beside the illustration. */
.destiny-card p,
.quest-text small,
.quick-practice small,
.micro-action > span:not(.micro-symbol),
.home-micro .micro-action > span:not(.micro-symbol),
.micro-action > small,
.micro-action > small i { font-size:12px; }
.quest-text strong,
.quick-practice strong,
.micro-action > strong,
.home-micro .micro-action > strong { font-size:13px; }
.destiny-card .primary,
.destiny-card .secondary { font-size:12px; min-height:42px; }
@media(max-width:760px) {
  .destiny-card .primary,.destiny-card .secondary { min-height:44px; }
  .quest-end > small { font-size:11px; }
  .quick-practice small { line-height:1.6; }
}
@media(max-width:370px) {
  .destiny-card .row-actions { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:8px; }
  .destiny-card .row-actions > .primary { grid-column:1 / -1; width:100%; }
  .destiny-card .row-actions > .secondary { width:100%; }
  .destiny-card .row-actions > .icon-button { width:44px; min-height:44px; }
}

.mini-timer.is-ready { border-color:#9db37b; background:#f4f8e9f5; }
.mini-timer.is-ready .timer-pulse { background:#718f4d; box-shadow:0 0 0 4px #9fba7a24; }

/* Home card titles already carry meaning; avoid decorative English overlines. */
.home-dashboard .section-heading h2 { margin-top:0; }

/* Actual timer height + computed bottom inset are measured by the app. */
.has-mini-timer .toast,
.has-mini-timer .reward-pop { bottom:var(--mini-timer-clearance,120px); }
@media(max-width:760px) {
  .has-mini-timer .toast,
  .has-mini-timer .reward-pop { bottom:var(--mini-timer-clearance,calc(161px + env(safe-area-inset-bottom))); }
}

/* Secondary reading: useful detail remains readable without inflating headings. */
.page-heading p,.section-description,
.practice-intro p,.practice-scene > span,.practice-tabs small,
.practice-settings .fine-print,.duration-option > span,.duration-option > small,.duration-option strong small,
.will-action small,.will-action > b,
.timer-description,.timer-caption,.timer-target,.timer-footnote,.live-chip,
.timer-topline .text-button,.timer-actions .primary,.timer-actions .secondary,
.mini-timer strong,.mini-timer small,.mini-timer .primary,
.invite-card > p,.invite-card .fine-print,.privacy-note,
.friend-list-card .section-heading > .muted,.friend-info span,.friend > button,.support-note,.inline-form .primary,.empty-state p,
.journal-save-state,.journal-question p,.journal-question label > span,
.field-footer,.field-footer small,.journal-submit > span,
.weekly-card > p:first-of-type,.weekly-main-number > small,.weekly-totals span,.weekly-quote,.achievement small,
.history-entry h4,.history-entry summary > span,
.profile-card > .eyebrow,.realm-badge.light,.profile-numbers span,
.preferences-card > .fine-print,.switch-label small,.setting-action small,
.treasure-pocket > span,.treasure-pocket small,.vision-category,.vision-editor form > small,.optional,
.auth-panel .form-field > small,.auth-privacy p,.auth-footnote,.auth-intro,.auth-tabs button,
.old-draft-notice p,.old-draft-notice .secondary { font-size:12px; }

.practice-settings h3,.practice-tabs button > span,.will-action strong,
.friend-info strong,.journal-question label,.journal-submit > button,
.profile-card form label,.profile-card form button,.switch-label strong,.setting-action strong,
.vision-editor label,.vision-editor > summary,.vision-editor > form > .primary,
.auth-panel label,.history-entry summary strong { font-size:13px; }

.history-entry p,.vision p,
.journal-question textarea,.journal-question input,.profile-card form input,
.vision-editor input,.vision-editor textarea,.vision-editor select,.auth-panel input { font-size:14px; }
/* Existing mobile input 16px!important contract is retained. */

.friend > button,.profile-card form button,.inline-form > button,.mini-timer .primary,
.auth-tabs button,.timer-topline .text-button,.realm-badge.light,.vision .text-button { min-height:44px; }
.password-field .icon-button { width:44px; min-height:44px; top:2px; right:2px; }
.auth-panel input { min-height:50px; }
.password-field input { padding-right:50px; }
.profile-card form input { min-height:44px; }
.field-footer { flex-wrap:wrap; }
.field-footer > span { white-space:nowrap; }
#small-actions .section-heading { flex-wrap:wrap; }
.section-heading > div > h2:first-child { margin-top:0; }

/* Let the last action scroll entirely above a running-session bar. */
html { scroll-padding-bottom:var(--mini-timer-clearance,0px); }
.has-mini-timer .page-footer { padding-bottom:max(25px,var(--mini-timer-clearance,120px)); }
@media(max-width:760px) {
  .has-mini-timer .page-footer { padding-bottom:max(calc(92px + env(safe-area-inset-bottom)),var(--mini-timer-clearance,calc(161px + env(safe-area-inset-bottom)))); }
}

/* Home retreat: separate scene width, compact character size and information space. */
.retreat-hero {
  container-type: inline-size;
  container-name: home-retreat;
}
@media (width > 760px) {
  @container home-retreat (width < 680px) {
    .hero-scene { bottom:92px; }
    .hero-shade { display:none; }
    .hero-caption {
      bottom:0; left:0; right:0; width:100%; display:flex;
      align-items:center; justify-content:space-between; gap:12px;
      padding:14px 16px; border:0; border-top:1px solid #dce2cc;
      background:#f7f8ed; border-radius:0; box-shadow:none;
      backdrop-filter:none; min-height:94px;
    }
    .hero-location { font-size:16px; gap:8px; flex-shrink:0; }
    .hero-location small { max-width:104px; font-size:11px; }
    .hero-location .seal { width:23px; height:29px; font-size:14px; }
    .hero-stats { margin-top:0; flex:1; max-width:158px; }
    .hero-stats .realm-badge { font-size:11px; }
    .hero-stats .realm-badge > .icon:first-child { display:none; }
    .hero-caption .progress-label {
      flex-direction:column; align-items:flex-start; gap:1px;
      margin:3px 0 4px;
    }
    .hero-caption .progress-label > span:last-child { display:none; }
  }
}
