/* 拾忆 · 宣传落地页
   色值/圆角/时长/曲线全部取自小程序令牌表（tools/gen-tokens.js → styles/tokens.wxss），
   换算沿用 App 的 1px = 2rpx。 */

/* ══════ 1. 重置与基准 ══════ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--bg);color:var(--tx);
  font-family:'Inter','PingFang SC','Noto Sans SC','Microsoft YaHei',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background .5s var(--eo),color .5s var(--eo)}
h1,h2,h3,h4,p,dl,dd,ul,li,table,figure{margin:0;padding:0}
ul{list-style:none}a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
b,strong{font-weight:600}
code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em;
  background:rgba(var(--prgb),.09);padding:.1em .38em;border-radius:5px}
::selection{background:rgba(var(--prgb),.22)}
:focus-visible{outline:2px solid var(--p);outline-offset:3px;border-radius:6px}

/* ══════ 2. 令牌：默认 = 松间 · 浅色 ══════ */
:root{
  --d-press:.1s; --d-fast:.2s; --d-enter:.3s; --d-slow:.46s;
  --eo:cubic-bezier(0,0,.2,1);
  --eo-cubic:cubic-bezier(.33,1,.68,1);
  --ei:cubic-bezier(.4,0,1,1);
  --elastic:cubic-bezier(.34,1.22,.64,1);
  --r-card:22px; --r-lg:16px; --r-md:12px; --r-sm:7px; --r-full:999px;
  --gutter:clamp(18px,4.4vw,60px);
  --maxw:1240px;
  --ok:#6F8F5F; --warn:#D98A2B; --danger:#C0442F;
  --on-accent:#FFFDF9;
  --gh:255,253,249;
  --mood-happy:#E0913F; --mood-eager:#C9663A; --mood-calm:#7C8B6F; --mood-tired:#8A8FA3; --mood-worried:#6E7BA6;
  --inner:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -1px 0 rgba(58,46,36,.03);
  --soft:0 1px 2px rgba(58,46,36,.06),0 2px 6px rgba(58,46,36,.06),0 8px 20px rgba(58,46,36,.05);
  --elev:0 10px 30px rgba(58,46,36,.10),0 4px 10px rgba(58,46,36,.05);
}
[data-mode="dark"]{
  --ok:#9BB48A; --warn:#E0A85C; --danger:#D9705C;
  --mood-happy:#E8A659; --mood-eager:#E08A5F; --mood-calm:#9BB48A; --mood-tired:#A3A8BC; --mood-worried:#8E9BC4;
  --inner:inset 0 1px 0 rgba(255,253,249,.10),inset 0 -1px 0 rgba(0,0,0,.30);
  --soft:0 1px 2px rgba(0,0,0,.40),0 4px 12px rgba(0,0,0,.32),0 8px 20px rgba(0,0,0,.24);
  --elev:0 10px 30px rgba(0,0,0,.50),0 4px 10px rgba(0,0,0,.30);
}

/* ── 主题 × 明暗（与令牌表逐值对应） ── */
[data-theme="sage"][data-mode="light"]{--p:#5F7F4F;--pc:#4C683F;--pf:#E2EBD7;--prgb:95,127,79;--s:#8A8763;--teal:#4E8A80;--indigo:#6B7CA0;--purple:#7E7AA0;--tx:#232A1F;--tx2:#5F6657;--tx3:#8E9580;--bg:#F4F6EE;--bg-hi:#F8FAF2;--bg-tail:#EFF3E8;--card:#FCFDF8;--surf:#F8FAF1;--bd:#DFE5D2;--bd-s:#EAF0E0;--mat:linear-gradient(160deg,#FCFDF8 0%,#F8FAF1 100%)}
[data-theme="sage"][data-mode="dark"]{--p:#94B27E;--pc:#5F7F4F;--pf:#243020;--prgb:148,178,126;--s:#B3AE84;--teal:#8CC0B6;--indigo:#9BABCC;--purple:#A99BC4;--tx:#E8EDE0;--tx2:#AEB6A1;--tx3:#838B77;--bg:#171A13;--bg-hi:#252B1D;--bg-tail:#1F2419;--card:#1D2217;--surf:#1D2217;--bd:#39412E;--bd-s:#2C3324;--mat:linear-gradient(160deg,#262C1F 0%,#1D2217 100%)}
[data-theme="paper"][data-mode="light"]{--p:#C9663A;--pc:#A9522C;--pf:#F6E3D7;--prgb:201,102,58;--s:#7C8B6F;--teal:#4F8A82;--indigo:#6E7BA6;--purple:#8B6B9E;--tx:#2B2622;--tx2:#6B6259;--tx3:#9C9288;--bg:#F7F3EC;--bg-hi:#FBF6EE;--bg-tail:#F2EDE4;--card:#FFFDF9;--surf:#FBF7F0;--bd:#E7DFD3;--bd-s:#F0E9DE;--mat:linear-gradient(160deg,#FFFDF9 0%,#FBF6EE 100%)}
[data-theme="paper"][data-mode="dark"]{--p:#E08A5F;--pc:#C9663A;--pf:#3A2A20;--prgb:224,138,95;--s:#A3B193;--teal:#7FB5AD;--indigo:#9AA6CC;--purple:#B79BC7;--tx:#EFE9E0;--tx2:#B7AEA2;--tx3:#8C8378;--bg:#1A1714;--bg-hi:#2A241C;--bg-tail:#231F1A;--card:#232019;--surf:#232019;--bd:#423A31;--bd-s:#332C24;--mat:linear-gradient(160deg,#2E2820 0%,#232019 100%)}
[data-theme="ink"][data-mode="light"]{--p:#3F6396;--pc:#33507C;--pf:#DDE6F2;--prgb:63,99,150;--s:#6E7F8C;--teal:#3F8189;--indigo:#5A72A8;--purple:#7A6FA6;--tx:#1E2530;--tx2:#566173;--tx3:#8892A2;--bg:#F2F5F9;--bg-hi:#F7F9FC;--bg-tail:#EDF1F6;--card:#FBFCFE;--surf:#F7F9FC;--bd:#DBE2EB;--bd-s:#E8EDF3;--mat:linear-gradient(160deg,#FBFCFE 0%,#F7F9FC 100%)}
[data-theme="ink"][data-mode="dark"]{--p:#7BA3D9;--pc:#3F6396;--pf:#1C2736;--prgb:123,163,217;--s:#9BAAB8;--teal:#7FBFC7;--indigo:#92A8D8;--purple:#A69BD0;--tx:#E4EAF2;--tx2:#A5AFBE;--tx3:#7B8595;--bg:#12161D;--bg-hi:#202836;--bg-tail:#181E28;--card:#161C25;--surf:#161C25;--bd:#303A47;--bd-s:#242C38;--mat:linear-gradient(160deg,#1E2530 0%,#161C25 100%)}
[data-theme="plum"][data-mode="light"]{--p:#7D4F6B;--pc:#664057;--pf:#EFDDE7;--prgb:125,79,107;--s:#7E7A94;--teal:#4F8489;--indigo:#6D74A6;--purple:#8A6BA8;--tx:#2A2229;--tx2:#675C64;--tx3:#968A93;--bg:#F6F0F3;--bg-hi:#FAF5F7;--bg-tail:#F2ECEF;--card:#FDFBFB;--surf:#FAF5F7;--bd:#E3D8DF;--bd-s:#EFE7EB;--mat:linear-gradient(160deg,#FDFBFB 0%,#FAF5F7 100%)}
[data-theme="plum"][data-mode="dark"]{--p:#C08FAB;--pc:#7D4F6B;--pf:#30222A;--prgb:192,143,171;--s:#ABA6C0;--teal:#87BEC4;--indigo:#A0A8D6;--purple:#BFA0D6;--tx:#EFE7EC;--tx2:#B9ACB4;--tx3:#8B7F87;--bg:#191416;--bg-hi:#2C242A;--bg-tail:#241D21;--card:#221B1F;--surf:#221B1F;--bd:#41353D;--bd-s:#332930;--mat:linear-gradient(160deg,#2B2328 0%,#221B1F 100%)}
[data-theme="amber"][data-mode="light"]{--p:#B8823A;--pc:#96682C;--pf:#F6E9D2;--prgb:184,130,58;--s:#8C8A5E;--teal:#4F8A7C;--indigo:#6E7BA6;--purple:#8B7396;--tx:#2E2718;--tx2:#6B6047;--tx3:#9A8E73;--bg:#F8F3E7;--bg-hi:#FBF7EC;--bg-tail:#F5EFE0;--card:#FFFDF7;--surf:#FBF7EC;--bd:#E6DCC5;--bd-s:#F0E9D9;--mat:linear-gradient(160deg,#FFFDF7 0%,#FBF7EC 100%)}
[data-theme="amber"][data-mode="dark"]{--p:#DCA85C;--pc:#B8823A;--pf:#332614;--prgb:220,168,92;--s:#B8B486;--teal:#87C0B2;--indigo:#9AA6CC;--purple:#B39BC0;--tx:#F2ECDF;--tx2:#BFB49A;--tx3:#8E8369;--bg:#191712;--bg-hi:#2C2820;--bg-tail:#231F18;--card:#231F18;--surf:#231F18;--bd:#443E32;--bd-s:#353026;--mat:linear-gradient(160deg,#2E2A20 0%,#231F18 100%)}
[data-theme="mint"][data-mode="light"]{--p:#3E8A7A;--pc:#316F62;--pf:#D8EFEA;--prgb:62,138,122;--s:#6E8B92;--teal:#3E8A7A;--indigo:#5A7CA8;--purple:#7A79A6;--tx:#1B2A28;--tx2:#4E6461;--tx3:#83978F;--bg:#F0F7F5;--bg-hi:#F6FBFA;--bg-tail:#EAF4F1;--card:#FBFEFD;--surf:#F6FBFA;--bd:#D6E6E1;--bd-s:#E4F0EC;--mat:linear-gradient(160deg,#FBFEFD 0%,#F6FBFA 100%)}
[data-theme="mint"][data-mode="dark"]{--p:#6FC0AE;--pc:#3E8A7A;--pf:#18302C;--prgb:111,192,174;--s:#9BB8BE;--teal:#6FC0AE;--indigo:#8CAACC;--purple:#A6A5D0;--tx:#E2F0ED;--tx2:#A4BAB5;--tx3:#778D88;--bg:#111A18;--bg-hi:#20302D;--bg-tail:#17211F;--card:#151E1D;--surf:#151E1D;--bd:#31413D;--bd-s:#23312E;--mat:linear-gradient(160deg,#1D2927 0%,#151E1D 100%)}
[data-theme]{--glow:rgba(var(--prgb),.09)}

/* ── 材质：一档半透明磨砂，按区域勾选（data-mat = 空格分隔的区域清单） ── */
:root{--blur:14px;--frost:rgba(255,253,249,.40);--frost-card:rgba(255,253,249,.72);--frost-bd:rgba(120,106,90,.2)}
[data-mode="dark"]{--frost:rgba(255,253,249,.15);--frost-card:rgba(255,253,249,.22);--frost-bd:rgba(255,253,249,.25)}
/* 卡片上有正文，所以「页面卡片」用更实的 0.72 —— 0.4 会把页面底糊上来 */
[data-mat~="card"] .glass-card,[data-mat~="card"] .cover,[data-mat~="card"] .pcard,
[data-mat~="card"] .sg,[data-mat~="card"] .ov-sheet,[data-mat~="card"] .me-head{
  background:var(--frost-card);border-color:var(--frost-bd);
  backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur))}
[data-mat~="nav"] .nav{background:var(--frost);border-color:var(--frost-bd);
  backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur))}
[data-mat~="tabbar"] .tabbar-glass{background:var(--frost);border-color:var(--frost-bd)}
[data-mat~="popup"] .ai-pop-card,[data-mat~="popup"] .fpick-drop{background:var(--frost-card);
  border-color:var(--frost-bd);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4)}

/* ══════ 3. 液态背景 ══════ */
.liquid{position:fixed;inset:0;z-index:-1;overflow:hidden;
  background:
    radial-gradient(400px 400px at 0% 0%,var(--glow),transparent 60%),
    radial-gradient(360px 360px at 100% 45%,var(--glow),transparent 60%),
    linear-gradient(135deg,var(--bg-hi) 0%,var(--bg) 55%,var(--bg-tail) 100%);
  transition:background .5s var(--eo)}
.orb{position:absolute;border-radius:50%;filter:blur(40px);will-change:transform;
  transition:background .5s var(--eo)}
.orb-1{width:340px;height:340px;left:14%;top:6%;background:radial-gradient(circle,rgba(var(--prgb),.30),transparent 70%);animation:drift1 16s ease-in-out infinite}
.orb-2{width:300px;height:300px;left:78%;top:22%;background:radial-gradient(circle,rgba(var(--prgb),.20),transparent 70%);animation:drift2 16s ease-in-out -5.33s infinite}
.orb-3{width:380px;height:380px;left:44%;top:62%;background:radial-gradient(circle,var(--glow),transparent 70%);animation:drift3 22s ease-in-out -10.67s infinite}
.orb-4{width:260px;height:260px;left:8%;top:80%;background:radial-gradient(circle,rgba(var(--prgb),.14),transparent 70%);animation:drift4 19s ease-in-out -8s infinite}
@keyframes drift1{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(46px,30px,0) scale(1.09)}}
@keyframes drift2{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-38px,26px,0) scale(1.06)}}
@keyframes drift3{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(34px,-40px,0) scale(1.12)}}
@keyframes drift4{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-28px,-30px,0) scale(1.05)}}
.grain{position:absolute;inset:0;opacity:.035;mix-blend-mode:multiply;
  background-image:radial-gradient(var(--tx) .5px,transparent .6px);background-size:4px 4px}
[data-mode="dark"] .grain{mix-blend-mode:screen;opacity:.05}

/* ══════ 4. 滚动进度 / 导航 ══════ */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:70}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--p),var(--teal));transition:width .12s linear}
.nav{position:fixed;top:14px;left:var(--gutter);right:var(--gutter);z-index:60;
  display:flex;align-items:center;gap:18px;height:56px;padding:0 8px 0 12px;
  border-radius:var(--r-full);background:var(--card);border:1px solid var(--bd);
  box-shadow:var(--soft);transition:background .4s var(--eo),border-color .4s var(--eo),box-shadow .3s var(--eo),transform .34s var(--eo-cubic)}
.nav.is-stuck{background:var(--card);border-color:var(--bd);box-shadow:var(--elev)}
.nav.is-hide{transform:translateY(-84px)}
.nav-brand{display:flex;align-items:center;gap:9px;flex:none}
.mark{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;
  background:var(--mat);border:1px solid var(--bd);box-shadow:var(--inner),var(--soft);
  color:var(--p);font-weight:700;font-size:17px;letter-spacing:-.5px;transition:transform .34s var(--elastic)}
.nav-brand:hover .mark{transform:rotate(-6deg) scale(1.08)}
.mark.sm{width:26px;height:26px;font-size:14px;border-radius:8px}
.nav-brand-text{display:flex;flex-direction:column;line-height:1.15}
.nav-brand-text b{font-size:15px;letter-spacing:.5px}
.nav-brand-text i{font-style:normal;font-size:10.5px;color:var(--tx3);letter-spacing:.3px}
.nav-links{display:flex;gap:2px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.nav-links::-webkit-scrollbar{display:none}
.nav-links a{position:relative;padding:8px 11px;border-radius:var(--r-full);font-size:13.5px;color:var(--tx2);
  white-space:nowrap;transition:color var(--d-fast) var(--eo),background var(--d-fast) var(--eo)}
.nav-links a:hover{color:var(--tx);background:rgba(var(--prgb),.07)}
.nav-links a.is-on{color:var(--p);background:rgba(var(--prgb),.1);font-weight:600}
.nav-tools{display:flex;align-items:center;gap:8px;flex:none}
.icon-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;color:var(--tx2);
  background:rgba(var(--gh),.5);border:1px solid var(--bd);transition:all var(--d-press) var(--eo)}
.icon-btn:hover{color:var(--p);transform:translateY(-1px);box-shadow:var(--soft)}
.icon-btn svg{width:17px;height:17px;transition:transform .4s var(--elastic)}
.i-moon{display:none}
[data-mode="dark"] .i-sun{display:none}
[data-mode="dark"] .i-moon{display:block}
[data-mode="dark"] .icon-btn svg{transform:rotate(-18deg)}

.skip{position:fixed;left:14px;top:-64px;z-index:80;padding:10px 18px;border-radius:var(--r-full);background:var(--p);color:var(--on-accent);font-size:14px;font-weight:600;transition:top .24s var(--eo-cubic)}
.skip:focus{top:14px}
.nav-menu{display:none}
.pg:focus{outline:none}
.pg:focus-visible{outline:2px solid var(--p);outline-offset:-4px}
[data-mode="dark"] .tiny{color:var(--tx2)}

/* ══════ 5. 通用件 ══════ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 22px;
  border-radius:var(--r-full);font-size:14.5px;font-weight:600;letter-spacing:.3px;
  transition:transform var(--d-press) var(--eo),box-shadow var(--d-fast) var(--eo),background var(--d-fast) var(--eo),border-color var(--d-fast) var(--eo)}
.btn-sm{height:36px;padding:0 15px;font-size:13px}
.btn-primary{background:var(--p);color:var(--on-accent);box-shadow:0 2px 0 rgba(58,46,36,.10)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--elev)}
.btn-primary:active{transform:translateY(0) scale(.985)}
.btn-ghost{border:1px solid var(--bd);background:var(--card);color:var(--tx)}
.btn-ghost:hover{border-color:var(--p);color:var(--p);transform:translateY(-2px)}
.pill{display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:var(--r-full);
  font-size:12.5px;color:var(--tx2);background:rgba(var(--prgb),.08);border:1px solid var(--bd-s);
  transition:all var(--d-fast) var(--eo)}
.pill--ok{color:var(--ok);background:rgba(111,143,95,.13);border-color:rgba(111,143,95,.28)}
.pill:hover{transform:translateY(-1px);border-color:var(--p)}
.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.tiny{font-size:12.5px;line-height:1.75;color:var(--tx3)}
.tiny b{color:var(--tx2)}
.hl{color:var(--p)}
.flex{flex:1}
.dot{width:6px;height:6px;border-radius:50%;background:var(--p);box-shadow:0 0 0 4px rgba(var(--prgb),.16);
  animation:beat 2.6s ease-in-out infinite alternate}
@keyframes beat{0%{box-shadow:0 0 0 3px rgba(var(--prgb),.20)}100%{box-shadow:0 0 0 8px rgba(var(--prgb),.02)}}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:1.4px;
  text-transform:uppercase;color:var(--tx3)}
.accent{width:4px;height:15px;border-radius:2px;background:var(--p);flex:none}
.accent--muted{background:var(--s);opacity:.6}
.glass-card{background:var(--mat);border:1px solid var(--bd-s);border-radius:var(--r-card);box-shadow:var(--inner),var(--soft);
  transition:background .4s var(--eo),border-color .4s var(--eo),backdrop-filter .3s var(--eo)}
.mt{margin-top:16px}
.pcard-head{display:flex;align-items:center;gap:8px;padding:2px 2px 10px}
.pcard-head b{font-size:14px;letter-spacing:.3px}
.pcard-head em{font-style:normal;font-size:11.5px;color:var(--tx3);font-variant-numeric:tabular-nums}
.pcard-head .gear{font-style:normal;font-size:12px;color:var(--tx3);margin-left:6px}

/* ══════ 6. 版式骨架 ══════ */
main{position:relative;z-index:1}
.hero,.sec{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.sec{padding-top:clamp(72px,10vw,132px)}
.sec-head{max-width:760px;margin-bottom:clamp(26px,4vw,46px)}
.sec-head h2{font-size:clamp(24px,3.4vw,38px);line-height:1.3;font-weight:700;letter-spacing:-.3px;margin:12px 0 10px}
.sec-head .sec-sub{font-size:clamp(14.5px,1.5vw,17px);color:var(--tx2);line-height:1.8}
.sec-head .sec-sub b{color:var(--tx)}

/* ══════ 7. 主视觉 ══════ */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,4vw,56px);
  align-items:center;padding-top:calc(56px + var(--gutter) + 28px);padding-bottom:clamp(40px,6vw,80px);
  min-height:min(100vh,880px)}
.hero-copy h1{font-size:clamp(31px,4.6vw,54px);line-height:1.26;font-weight:700;letter-spacing:-1px;margin:16px 0 0}
.hero-slogan{margin-top:20px;font-size:clamp(14.5px,1.55vw,17.5px);line-height:1.85;color:var(--tx2);max-width:50ch}
.hero-slogan b{color:var(--tx)}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.hero-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:34px;
  padding-top:22px;border-top:1px solid var(--bd)}
.hero-facts div{display:flex;gap:8px;align-items:flex-start}
.hero-facts dt{font-size:26px;font-weight:700;line-height:1;color:var(--p);font-variant-numeric:tabular-nums}
.hero-facts dd{font-size:11px;line-height:1.5;color:var(--tx3)}

/* ── 手机壳 ── */
.hero-phone{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px}
.phone-tag{font-size:11px;color:var(--tx3);background:rgba(var(--gh),.5);border:1px dashed var(--bd);
  padding:4px 10px;border-radius:var(--r-full);letter-spacing:.4px}
.phone{position:relative;width:326px;padding:9px;border-radius:44px;
  background:linear-gradient(160deg,var(--card),var(--surf));
  border:1px solid var(--bd);box-shadow:var(--inner),var(--elev),0 0 0 1px rgba(var(--prgb),.05);
  transition:transform .5s var(--eo-cubic),box-shadow .4s var(--eo)}
.phone::after{content:"";position:absolute;inset:-1px;border-radius:45px;pointer-events:none;
  background:linear-gradient(150deg,rgba(255,253,249,.55),transparent 40%);opacity:.5}
.phone-island{position:absolute;top:16px;left:50%;transform:translateX(-50%);width:76px;height:20px;
  border-radius:var(--r-full);background:#0d0f0b;z-index:5}
.screen{position:relative;width:308px;height:624px;border-radius:36px;overflow:hidden;
  background:var(--bg);isolation:isolate}
.statusbar{position:absolute;top:0;left:0;right:0;height:40px;z-index:6;display:flex;align-items:flex-end;
  justify-content:space-between;padding:0 20px 4px;font-size:11px;font-weight:600;color:var(--tx2);
  font-variant-numeric:tabular-nums;pointer-events:none}
.statusbar-r{display:flex;gap:3px;align-items:center}
.statusbar-r i{width:3px;border-radius:1px;background:var(--tx3)}
.statusbar-r i:nth-child(1){height:4px}.statusbar-r i:nth-child(2){height:6px}.statusbar-r i:nth-child(3){height:8px}
.home-indicator{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:104px;height:4px;
  border-radius:var(--r-full);background:var(--tx3);opacity:.35;z-index:8}

/* 页面（4 屏） */
.pg{position:absolute;inset:0;padding:40px 0 116px;overflow:hidden auto;opacity:0;visibility:hidden;
  transform:translateY(8px) scale(.99);transition:opacity .3s var(--eo),transform .34s var(--eo-cubic);
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.pg::-webkit-scrollbar{display:none}
.pg.is-on{opacity:1;visibility:visible;transform:none}
.tnav{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:7px;padding:6px 14px 8px;
  background:linear-gradient(var(--bg) 62%,transparent)}
.tnav b{font-size:17px;font-weight:700;letter-spacing:.4px}
.tnav-ico{font-style:normal;font-size:13px;color:var(--tx3);display:grid;place-items:center;
  width:24px;height:24px;border-radius:50%;background:var(--card);border:1px solid var(--bd)}
.fpill{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:var(--r-full);
  font-size:10.5px;color:var(--tx2);background:var(--card);border:1px solid var(--bd);white-space:nowrap}
.fpill em{font-style:normal;color:var(--tx3);font-size:9px}
.fpill-h{width:8px;height:8px;border-radius:2.5px;background:var(--p);flex:none}

/* 封面 */
.cover{position:relative;margin:2px 14px 0;padding:18px 16px 15px;border-radius:var(--r-card);overflow:hidden;
  background:var(--mat);border:1px solid var(--bd-s);box-shadow:var(--inner),var(--soft)}
.glow{position:absolute;width:210px;height:210px;border-radius:50%;pointer-events:none;will-change:transform;
  background:radial-gradient(circle,rgba(var(--prgb),.22),transparent 70%)}
.glow-a{top:-84px;left:-64px;animation:drift1 18s ease-in-out infinite}
.glow-b{bottom:-96px;right:-56px;animation:drift2 23s ease-in-out infinite;
  background:radial-gradient(circle,rgba(var(--prgb),.16),transparent 70%)}
.cv-mood{position:absolute;top:14px;right:14px;width:22px;height:22px;display:grid;place-items:center}
.cv-mood i{width:13px;height:13px;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.05)}
.cv-body{position:relative}
.cv-greet{font-size:25px;font-weight:700;line-height:1.2;letter-spacing:.5px}
.cv-meta{margin-top:3px;font-size:11px;color:var(--tx2);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cv-streak{display:inline-flex;align-items:center;gap:3px;color:var(--tx2)}
.cv-streak svg{width:11px;height:11px;stroke:none;fill:var(--warn);animation:none}
.cv-progress{display:flex;align-items:center;gap:5px;margin-top:13px;font-size:11px;color:var(--tx2)}
.cv-num{font-size:19px;font-weight:700;color:var(--tx);font-variant-numeric:tabular-nums;line-height:1}
.cv-track{flex:1;height:5px;margin-left:6px;border-radius:var(--r-full);background:rgba(var(--prgb),.14);overflow:hidden}
.cv-track i{display:block;height:100%;width:0;border-radius:inherit;background:var(--p);transition:width .5s var(--eo-cubic)}

/* 屏内小卡 */
.pcard,.sg,.ov-sheet{position:relative;margin:9px 14px 0;padding:11px 12px 12px;border-radius:var(--r-card);
  background:var(--mat);border:1px solid var(--bd-s);box-shadow:var(--inner),var(--soft);
  animation:none}
.pg.is-on .pcard,.pg.is-on .sg{animation:pgIn var(--d-slow) var(--eo-cubic) both}
.pg.is-on .pcard:nth-of-type(2){animation-delay:80ms}
.pg.is-on .pcard:nth-of-type(3){animation-delay:160ms}
.pg.is-on .sg{animation-delay:240ms}
@keyframes pgIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* 习惯 / 待办行 */
.prow,.trow{display:flex;align-items:center;gap:7px;min-height:34px;padding:3px 4px;border-radius:11px;
  transition:background var(--d-press) var(--eo)}
.prow:hover,.trow:hover{background:rgba(var(--prgb),.06)}
.pdot{width:9px;height:9px;border-radius:50%;flex:none}
.prow-n{font-size:12.5px;font-weight:500}
.prow-s{font-size:10.5px;color:var(--tx3);margin-left:auto;font-variant-numeric:tabular-nums}
.prow.is-due{background:rgba(217,138,43,.12);box-shadow:inset 0 0 0 1px rgba(217,138,43,.3)}
.prow.is-due .prow-s{color:var(--warn);margin-left:6px}
.prow-btn{font-size:10px;font-weight:600;color:var(--on-accent);background:var(--warn);
  padding:2px 8px;border-radius:var(--r-full)}
.pcheck{font-style:normal;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;
  font-size:10px;color:var(--ok);background:rgba(111,143,95,.16);border:1px solid rgba(111,143,95,.4)}
.prow.is-done .prow-n{color:var(--tx2);text-decoration:line-through;text-decoration-color:var(--tx3)}
.tbox{width:15px;height:15px;border-radius:5px;display:grid;place-items:center;font-size:10px;flex:none;
  border:1.4px solid var(--bd);color:transparent}
.trow.is-done .tbox{background:var(--p);border-color:var(--p);color:var(--on-accent)}
.trow.is-done span{color:var(--tx3);text-decoration:line-through}
.trow span{font-size:12.5px}

/* 快捷动作 / 家里的情况 */
.qa{display:flex;gap:7px;margin:11px 14px 0}
.qa-act{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:9px 4px;border-radius:14px;
  background:var(--card);border:1px solid var(--bd);font-size:10.5px;color:var(--tx2);
  transition:transform var(--d-fast) var(--elastic),box-shadow var(--d-fast) var(--eo)}
.qa-act:hover{transform:translateY(-2px);box-shadow:var(--soft)}
.qa-ico{font-style:normal;width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-size:14px;
  color:var(--p);background:rgba(var(--prgb),.1)}
.qa-ico--s{color:var(--s);background:rgba(138,135,99,.13)}
.qa-ico--t{color:var(--teal);background:rgba(78,138,128,.13)}
.sg-chips{display:flex;flex-direction:column;gap:6px}
.sg-chip{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--tx2);padding:5px 8px;border-radius:10px;
  background:rgba(var(--prgb),.05);border:1px solid var(--bd-s)}
.sg-chip em{font-style:normal;margin-left:auto;color:var(--tx3)}
.sg-chip--w{color:var(--warn);border-color:rgba(217,138,43,.32);background:rgba(217,138,43,.10)}

/* 拾忆屏：日历 / 胶囊 / 时间轴 / 影集 */
.cal{margin:2px 14px 0;padding:10px 12px 11px;border-radius:var(--r-card)}
.cal-head,.cal2-head{display:flex;align-items:center;gap:8px}
.cal-head b,.cal2-head b{font-size:13px;font-weight:600}
.cal-head span{margin-left:auto;font-size:11px;color:var(--tx3);letter-spacing:2px}
.cal-week{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:9px}
.cal-sum{margin-top:8px;font-size:10px;color:var(--tx3);text-align:center;font-variant-numeric:tabular-nums}
.cap-row{display:flex;flex-wrap:wrap;gap:5px}
.cap{position:relative;display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--r-full);
  font-size:10.5px;color:var(--tx2);background:rgba(var(--gh),.6);border:1px solid var(--bd);overflow:visible}
.cap::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c,var(--s));margin-right:6px}
.cap--done{color:var(--tx);border-color:var(--c);background:color-mix(in srgb,var(--c) 16%,transparent)}
.cap--due{color:var(--warn);border-color:rgba(217,138,43,.5);background:rgba(217,138,43,.13)}
.cap--rest{opacity:.62;border-style:dashed}
.cap-glow{position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  box-shadow:0 2px 8px rgba(217,138,43,.34);animation:breathe 2.8s ease-in-out infinite alternate}
@keyframes breathe{from{opacity:.15;transform:scale(1)}to{opacity:.85;transform:scale(1.06)}}
.tl{display:flex;flex-direction:column;gap:8px}
.tl li{display:flex;gap:8px;align-items:flex-start;animation:pgIn var(--d-enter) var(--eo-cubic) both}
.tl li:nth-child(2){animation-delay:36ms}.tl li:nth-child(3){animation-delay:72ms}.tl li:nth-child(4){animation-delay:108ms}
.tl-t{font-size:10px;color:var(--tx3);font-variant-numeric:tabular-nums;padding-top:1px;width:32px;flex:none}
.tl-c{flex:1;min-width:0;font-size:11.5px;background:var(--card);border:1px solid var(--bd-s);
  border-radius:11px;padding:6px 9px;box-shadow:var(--soft)}
.tl-c b{font-weight:500;font-size:11.5px;line-height:1.5}
.tl-c--punch{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--tx2);background:transparent;
  border-style:dashed;box-shadow:none}
.mood-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:1px}
.tl-x{font-size:10px;color:var(--tx3);margin-top:3px}
.stack{position:relative;height:104px;margin-top:2px;margin-bottom:16px}
.ph{position:absolute;left:0;top:0;width:74px;height:100%;border-radius:12px;
  background:linear-gradient(150deg,hsl(var(--h) 38% 72%),hsl(calc(var(--h) + 22) 34% 56%));
  border:1px solid rgba(255,253,249,.5);box-shadow:var(--soft);cursor:pointer;
  transition:transform .46s var(--eo-cubic),opacity .3s var(--eo)}
[data-mode="dark"] .ph{border-color:rgba(255,253,249,.18);filter:brightness(.82) saturate(.9)}
.ph-1{transform:translate(0,0) rotate(-3deg)}
.ph-2{transform:translate(26px,6px) rotate(2.5deg)}
.ph-3{transform:translate(52px,12px) rotate(-1.5deg)}
.ph-4{transform:translate(78px,17px) rotate(4deg);opacity:.9}
.ph-front{transform:translate(0,0) rotate(0deg) scale(1.02);z-index:9;box-shadow:var(--elev)}
.stack-badge{position:absolute;right:0;top:0;font-size:9.5px;color:var(--tx2);background:var(--card);
  border:1px solid var(--bd);border-radius:var(--r-full);padding:2px 7px;font-variant-numeric:tabular-nums}
.fab-mini{position:absolute;right:14px;bottom:76px;width:44px;height:44px;border-radius:50%;z-index:7;
  background:var(--p);color:var(--on-accent);font-size:17px;display:grid;place-items:center;
  box-shadow:var(--elev);opacity:0;transform:scale(.6);pointer-events:none;
  transition:opacity var(--d-fast) var(--eo),transform .3s var(--elastic)}
.screen[data-s="memories"] .fab-mini{opacity:1;transform:none;pointer-events:auto}
.fab-mini::after{content:"";position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 5px rgba(var(--prgb),.18);
  animation:ringOut 2.6s ease-out infinite}
@keyframes ringOut{0%{opacity:.5;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.3)}}
.fab-mini:hover{transform:scale(1.07)}

/* 物品屏 */
.space-bar{display:flex;gap:5px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;padding:2px 14px 0;align-items:center}
.space-bar::-webkit-scrollbar{display:none}
.sp{display:inline-flex;align-items:center;gap:4px;height:23px;padding:0 9px;border-radius:var(--r-full);
  font-size:10.5px;color:var(--tx2);background:var(--card);border:1px solid var(--bd);white-space:nowrap;flex:none;
  transition:all var(--d-fast) var(--eo)}
.sp i{font-style:normal;color:var(--tx3);font-size:9.5px;font-variant-numeric:tabular-nums}
.sp.is-on{background:var(--p);color:var(--on-accent);border-color:var(--p)}
.sp.is-on i{color:var(--on-accent);opacity:.8}
.sp--orphan{border-style:dashed;color:var(--warn);background:rgba(217,138,43,.08)}
.sp--add{font-size:13px;padding:0 7px;color:var(--p);border-color:rgba(var(--prgb),.35)}
.zone-head{display:flex;align-items:center;gap:6px;margin:13px 14px 6px;font-size:10.5px;color:var(--tx2)}
.zone-head i{width:3px;height:11px;border-radius:2px}
.zone-head em{font-style:normal;color:var(--tx3);margin-left:auto;font-variant-numeric:tabular-nums}
.igrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 14px}
.item{background:var(--card);border:1px solid var(--bd-s);border-radius:13px;padding:7px;
  box-shadow:var(--soft);transition:transform var(--d-fast) var(--eo-cubic),box-shadow var(--d-fast) var(--eo)}
.item:hover{transform:translateY(-3px);box-shadow:var(--elev)}
.item-img{position:relative;display:grid;place-items:center;height:52px;border-radius:9px;
  background:linear-gradient(150deg,rgba(var(--prgb),.10),rgba(var(--prgb),.03))}
.item-img i{font-style:normal;font-size:20px;color:var(--tx3);opacity:.5}
.ib{position:absolute;left:4px;top:4px;font-style:normal;font-size:8.5px;padding:1px 5px;border-radius:5px;
  font-weight:600;color:var(--on-accent)}
.ib--warn{background:var(--warn)}.ib--danger{background:var(--danger)}.ib--ok{background:var(--teal)}
.item b{display:block;margin-top:6px;font-size:11px;font-weight:500}
.item-m{display:block;font-size:9.5px;color:var(--tx3);font-variant-numeric:tabular-nums}
.ov-sheet{margin-top:14px}
.ov-row{display:flex;align-items:center;gap:8px;font-size:10.5px;padding:4px 0;border-top:1px dashed var(--bd-s)}
.ov-row span{width:52px;flex:none;color:var(--tx2)}
.ov-bar{flex:1;height:5px;border-radius:var(--r-full);background:rgba(var(--prgb),.1);overflow:hidden}
.ov-bar b{display:block;height:100%;width:0;background:var(--p);border-radius:inherit;transition:width .9s var(--eo-cubic)}
.pg.is-on .ov-bar b{width:var(--w)}
.ov-bar--o b{background:var(--warn)}
.ov-row em{font-style:normal;font-size:9.5px;color:var(--tx3);width:74px;text-align:right;flex:none}
.ov-row--orphan span{color:var(--warn)}

/* 我的屏 */
.me-head{display:flex;align-items:center;gap:10px;margin:2px 14px 0;padding:12px;border-radius:var(--r-card)}
.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:600;
  color:var(--on-accent);background:var(--p);box-shadow:var(--soft)}
.me-head b{font-size:14px}
.me-head p{font-size:10.5px;color:var(--tx3)}
.tri{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;text-align:center;padding:6px 0 8px}
.tri b{display:block;font-size:20px;font-weight:700;line-height:1.1;color:var(--p);font-variant-numeric:tabular-nums}
.tri span{font-size:10px;color:var(--tx3)}
.rhythm{display:flex;gap:2px;align-items:flex-end;height:26px}
.rhythm i{flex:1;border-radius:1.5px;background:rgba(var(--prgb),.22);transition:height .5s var(--eo-cubic),background .3s}
.num{font-variant-numeric:tabular-nums}
.pill-row{display:flex;gap:6px;flex-wrap:wrap}
.pill-row .pill,.chip-wrap .pill{height:24px;font-size:11px}
.bar-line{display:flex;align-items:center;gap:8px;font-size:11px;padding:5px 0;border-top:1px dashed var(--bd-s)}
.bar-line span{color:var(--tx2);flex:none}
.bar-line em{font-style:normal;margin-left:auto;color:var(--tx3);font-variant-numeric:tabular-nums}
.mini-track{flex:1;height:5px;border-radius:var(--r-full);background:rgba(var(--prgb),.12);overflow:hidden}
.mini-track b{display:block;height:100%;width:0;background:var(--p);transition:width 1s var(--eo-cubic)}
.link{color:var(--p)!important}
.fam-strip{display:flex;gap:6px}
.fs{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:var(--r-full);
  font-size:10.5px;color:var(--tx2);background:var(--card);border:1px solid var(--bd);cursor:pointer;
  transition:all var(--d-fast) var(--eo)}
.fs i{font-style:normal;color:var(--tx3);font-size:9.5px}
.fs.is-on{background:rgba(var(--prgb),.12);border-color:var(--p);color:var(--p)}
.lrow{display:flex;align-items:center;font-size:11.5px;padding:7px 2px;border-top:1px dashed var(--bd-s)}
.lrow em{font-style:normal;margin-left:auto;font-size:10px;color:var(--tx3)}
.chip-wrap{display:flex;flex-wrap:wrap;gap:5px}

/* 底栏（果冻滑块） */
.tabbar{position:absolute;left:14px;right:14px;bottom:16px;height:52px;z-index:9}
.tabbar-glass{position:absolute;inset:0;display:flex;gap:2px;padding:0 6px;border-radius:28px;
  background:var(--card);border:1px solid var(--bd);backdrop-filter:blur(24px) saturate(1.5);
  -webkit-backdrop-filter:blur(24px) saturate(1.5);box-shadow:var(--elev);overflow:hidden}
[data-mat~="tabbar"] .tabbar-glass{background:rgba(var(--gh),.68);border-color:rgba(var(--gh),.5)}
[data-mode="dark"][data-mat~="tabbar"] .tabbar-glass{background:rgba(255,253,249,.12)}
.tabbar-glass::before{content:"";position:absolute;inset:0 0 50% 0;border-radius:28px 28px 0 0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,0))}
[data-mode="dark"] .tabbar-glass{background:rgba(var(--gh),.10);border-color:rgba(255,253,249,.2)}
.tab{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  font-size:9px;color:var(--tx3);transition:color var(--d-fast) var(--eo)}
.tab svg{width:19px;height:19px;stroke-width:1.6;transition:transform var(--d-fast) var(--elastic)}
.tab.is-on{color:var(--p);font-weight:700}
.tab.is-on svg{transform:scale(1.12)}
.tab.gap{pointer-events:none}
.lens{position:absolute;z-index:1;top:6px;bottom:6px;width:calc((100% - 12px)/5);left:6px;
  transition:left .35s cubic-bezier(.34,1.56,.64,1);will-change:left}
.lens i{position:absolute;inset:0;border-radius:22px;background:linear-gradient(135deg,rgba(255,255,255,.32),rgba(111,143,95,.12));
  border:1px solid rgba(255,255,255,.4);box-shadow:inset 0 1px 4px rgba(0,0,0,.05),0 1px 6px rgba(var(--prgb),.1)}
[data-mode="dark"] .lens i{background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(var(--prgb),.14));border-color:rgba(255,255,255,.14)}
.fab{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:52px;height:52px;border-radius:50%;z-index:3;
  background:rgba(var(--gh),.72);border:1px solid rgba(var(--gh),.6);backdrop-filter:blur(24px);
  -webkit-backdrop-filter:blur(24px);box-shadow:var(--elev);display:grid;place-items:center;
  transition:transform .15s cubic-bezier(.4,0,.2,1),background .2s var(--eo)}
.fab i{font-style:normal;font-size:24px;line-height:1;color:var(--p);transition:transform .3s var(--elastic)}
.fab:hover{transform:translateX(-50%) scale(1.06)}
.fab:hover i{transform:rotate(90deg)}
.fab:active{transform:translateX(-50%) scale(.95)}
.phone-picker{display:flex;gap:6px}
.pk{height:30px;padding:0 14px;border-radius:var(--r-full);font-size:12.5px;color:var(--tx2);
  background:rgba(var(--gh),.5);border:1px solid var(--bd);transition:all var(--d-fast) var(--eo)}
.pk:hover{transform:translateY(-1px)}
.pk.is-on{background:var(--p);border-color:var(--p);color:var(--on-accent);font-weight:600}

/* AI 弹窗 */
.ai-pop{position:absolute;inset:0;z-index:12;display:grid;align-items:end;pointer-events:none;opacity:0;
  transition:opacity var(--d-enter) var(--eo)}
.ai-pop.is-on{opacity:1;pointer-events:auto}
.ai-pop-mask{position:absolute;inset:0;background:rgba(20,22,18,.32);backdrop-filter:blur(2px)}
.ai-pop-card{position:relative;margin:0 10px 78px;padding:12px 13px 13px;border-radius:24px;
  background:var(--card);border:1px solid var(--bd);box-shadow:var(--elev);
  transform:translateY(18px) scale(.97);transition:transform .36s var(--eo-cubic)}
.ai-pop.is-on .ai-pop-card{transform:none}
.ai-pop-head{display:flex;align-items:center;gap:8px;font-size:13px}
.ai-pop-head i{font-style:normal;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;
  background:var(--card);border:1px solid var(--bd);font-size:12px;color:var(--tx2);cursor:pointer}
.ai-pop-head i:hover{color:var(--p)}
.ai-pop-qs{display:flex;gap:5px;margin:9px 0}
.ai-pop-qs span{font-size:10.5px;padding:3px 9px;border-radius:var(--r-full);background:rgba(var(--prgb),.09);
  border:1px solid var(--bd-s);color:var(--tx2);cursor:pointer;transition:all var(--d-press) var(--eo)}
.ai-pop-qs span:hover{border-color:var(--p);color:var(--p)}
.ai-pop-qs span.is-on{background:var(--p);color:var(--on-accent);border-color:var(--p)}
.ai-pop-input{display:flex;align-items:center;height:34px;padding:0 6px 0 11px;border-radius:12px;
  background:var(--card);border:1px solid var(--bd);font-size:11.5px;color:var(--tx3)}
.ai-pop-input .send{margin-left:auto;width:24px;height:24px;border-radius:8px;display:grid;place-items:center;
  background:var(--p);color:var(--on-accent);font-style:normal;font-size:13px}

/* ── 屏内可点件：都是原生 button，先清默认外观 ── */
.pg button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
/* 只是"画"出来的元素：整块禁掉指针，不给任何可点的暗示 */
[data-inert]{pointer-events:none!important;cursor:default}
.pg [data-inert]{transition:none}
.fpill{font:inherit}
.sp{font:inherit;line-height:1}
.ov-row{width:100%;font:inherit;display:flex;align-items:center;gap:8px}
.fs{font:inherit}
.cap{font:inherit;line-height:1}
.cap:active{transform:scale(.96)}
.cap-tip,.ov-tip{margin-top:8px}

/* 打卡行：到期才给「打卡」键，打完换成对勾 */
.prows{display:flex;flex-direction:column}
.prow .pcheck{display:grid;color:transparent;background:transparent;border:1.4px dashed var(--bd)}
.prow .prow-btn{display:none}
.prow.is-due:not(.is-done) .prow-btn{display:inline-flex}
.prow.is-due:not(.is-done) .pcheck{display:none}
.prow.is-done{background:transparent;box-shadow:none}
.prow.is-done .prow-s{color:var(--ok)}
.prow.is-done .pcheck{color:var(--ok);background:rgba(111,143,95,.16);border:1px solid rgba(111,143,95,.4)}
.prow:active{transform:scale(.99)}
.trow .tbox{color:transparent;background:transparent;border:1.4px solid var(--bd)}
.trow.is-done .tbox{color:var(--on-accent);background:var(--p);border-color:var(--p)}
.trow{width:100%}
.trow:active{transform:scale(.99)}
.qa-act,.sg-chip{width:auto;font:inherit}
.sg-chip{width:100%}
.qa-act:active,.sg-chip:active{transform:scale(.97)}
.cv-mood{font:inherit}
.cv-mood i{transition:background .3s var(--eo)}

/* 封面「今日已清空」：翻转 + 一道掠光扫过 */
.cv-done{position:relative;display:flex;align-items:center;gap:8px;margin-top:13px;padding:9px 10px;
  border-radius:14px;background:rgba(111,143,95,.10);border:1px solid rgba(111,143,95,.28);
  overflow:hidden;animation:pgIn var(--d-enter) var(--eo-cubic) both}
.cv-done[hidden]{display:none}
.cv-done-sheen{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,transparent 20%,rgba(255,253,249,.5) 45%,transparent 70%);
  transform:translateX(-100%);animation:cvSheen 1.5s var(--eo-cubic) .15s 1 both}
@keyframes cvSheen{to{transform:translateX(100%)}}
.cv-done-ck{font-style:normal;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  font-size:11px;color:var(--ok);background:rgba(111,143,95,.18);flex:none}
.cv-done-txt{display:flex;flex-direction:column;line-height:1.35}
.cv-done-txt b{font-size:12.5px}
.cv-done-txt em{font-style:normal;font-size:10px;color:var(--tx3)}
.cv-done-btn{margin-left:auto;font-size:10.5px;font-weight:600;color:var(--p);padding:5px 9px;
  border-radius:var(--r-full);background:rgba(var(--prgb),.1);border:1px solid rgba(var(--prgb),.28)}

/* 物品屏：分页行、批量选择态、批量工具条 */
.page-more{margin:12px 16px 0;font-size:10px;color:var(--tx3);text-align:center}
.item.is-sel{box-shadow:0 0 0 2px var(--p),var(--soft)}
.item.is-sel .item-img::after{content:"✓";position:absolute;right:4px;top:4px;width:15px;height:15px;
  border-radius:50%;display:grid;place-items:center;font-size:9px;color:var(--on-accent);background:var(--p)}
.batch-bar{position:sticky;bottom:0;display:flex;align-items:center;gap:6px;margin:12px 14px 0;
  padding:7px 9px;border-radius:14px;background:var(--card);border:1px solid var(--bd);box-shadow:var(--elev);
  animation:pgIn var(--d-enter) var(--eo-cubic) both}
.batch-bar[hidden]{display:none}
.batch-bar em{font-style:normal;font-size:10.5px;color:var(--tx2);margin-right:auto}
.bb-act{font-size:10.5px;padding:4px 9px;border-radius:9px;background:rgba(var(--prgb),.1);color:var(--p)}
.bb-act--danger{background:rgba(192,68,47,.1);color:var(--danger)}
.bb-x{font-size:11px;color:var(--tx3);padding:4px 7px}

/* 快速记录条：从悬浮键那个位置"长"出来（transform-origin 在右下） */
.qk-bar{position:absolute;left:10px;right:10px;bottom:76px;height:44px;z-index:10;display:flex;
  align-items:center;gap:7px;padding:0 5px 0 9px;border-radius:16px;background:var(--card);
  border:1px solid var(--bd);box-shadow:var(--elev);transform-origin:right bottom;
  animation:qkGrow .34s var(--eo-cubic) both}
.qk-bar[hidden]{display:none}
@keyframes qkGrow{from{transform:scale(.18,.85);opacity:0}to{transform:none;opacity:1}}
.qk-col{display:flex;flex-direction:column;gap:5px;align-self:stretch;justify-content:flex-end}
.qk-col i{font-style:normal;font-size:10px;color:var(--tx3);line-height:1}
.qk-field{flex:1;min-width:0;height:32px;border:0;background:transparent;font:inherit;font-size:11.5px;color:var(--tx)}
.qk-field::placeholder{color:var(--tx3)}
.qk-field:focus{outline:none}
.qk-btn{height:32px;padding:0 12px;border-radius:10px;background:var(--p);color:var(--on-accent);
  font-size:11.5px;font-weight:600;display:grid;place-items:center}

/* ══════ 8. 一屋两问 ══════ */
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.two-card{position:relative;padding:24px 24px 22px;border-radius:var(--r-card);overflow:hidden;
  background:var(--mat);border:1px solid var(--bd-s);box-shadow:var(--inner),var(--soft);
  transition:transform .4s var(--eo-cubic),box-shadow .4s var(--eo)}
.two-card:hover{transform:translateY(-4px);box-shadow:var(--inner),var(--elev)}
.two-num{position:absolute;right:18px;top:8px;font-size:56px;font-weight:700;line-height:1;color:rgba(var(--prgb),.09)}
.two-card h3{font-size:19px;margin-bottom:8px}
.two-card>p{font-size:14.5px;color:var(--tx2);line-height:1.85;max-width:46ch}
.tick{margin-top:14px;display:flex;flex-direction:column;gap:8px}
.tick li{position:relative;padding-left:20px;font-size:13.5px;color:var(--tx2);line-height:1.7}
.tick li::before{content:"";position:absolute;left:0;top:.55em;width:11px;height:6px;border-left:1.7px solid var(--p);
  border-bottom:1.7px solid var(--p);transform:rotate(-45deg)}
.boundary{display:flex;gap:12px;align-items:flex-start;margin-top:18px;padding:16px 20px;border-radius:var(--r-card);
  border:1px dashed var(--bd);background:rgba(var(--prgb),.045)}
.boundary svg{width:20px;height:20px;flex:none;color:var(--p);margin-top:2px}
.boundary p{font-size:14px;color:var(--tx2);line-height:1.8}
.boundary b{color:var(--tx)}

/* ══════ 9. 功能网格 ══════ */
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(292px,1fr));gap:14px}
.feat-grid--2{margin-top:16px}
.feat{padding:18px 18px 16px;border-radius:var(--r-card);background:var(--card);border:1px solid var(--bd-s);
  box-shadow:var(--soft);transition:transform .34s var(--eo-cubic),box-shadow .34s var(--eo),border-color .34s var(--eo)}
.feat:hover{transform:translateY(-4px);box-shadow:var(--elev);border-color:rgba(var(--prgb),.35)}
.feat h4{display:flex;align-items:center;gap:8px;font-size:15.5px;margin-bottom:8px;letter-spacing:-.1px}
.feat-i{display:grid;place-items:center;width:22px;height:22px;flex:none;border-radius:7px;font-style:normal;
  font-size:11px;font-weight:700;color:var(--p);background:rgba(var(--prgb),.11)}
.feat p{font-size:13.5px;color:var(--tx2);line-height:1.8}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:12px;font-size:12px}
.crumbs span,.crumbs b{padding:3px 9px;border-radius:var(--r-full);background:rgba(var(--prgb),.07);border:1px solid var(--bd-s)}
.crumbs b{color:var(--p);border-color:rgba(var(--prgb),.4);background:rgba(var(--prgb),.12);font-weight:600}
.crumbs em{font-style:normal;color:var(--tx3)}
.orphan-demo{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.orphan-demo .sp{cursor:default}
.orphan-note{font-size:11px;color:var(--tx3)}
.alert-tiers{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.alert-tiers .ib{position:static;padding:4px 10px;font-size:11.5px;border-radius:var(--r-full)}
.feat .tiny{margin-top:10px}
.mini-charts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.mc-rank,.mc-stack,.mc-dots,.mc-bars{display:block}
.mc-rank{display:flex;flex-direction:column;gap:5px;justify-content:center}
.mc-rank b{height:6px;border-radius:var(--r-full);width:0;background:rgba(var(--prgb),.55);transition:width 1s var(--eo-cubic)}
.mc-rank b:nth-child(2){background:rgba(var(--prgb),.38)}.mc-rank b:nth-child(3){background:rgba(var(--prgb),.22)}
.mc-stack{display:flex;height:16px;border-radius:6px;overflow:hidden;align-self:center}
.mc-stack b{display:block;width:0;background:var(--c);transition:width 1s var(--eo-cubic)}
.mc-dots{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;align-content:center}
.mc-dots b{display:block;aspect-ratio:1;border-radius:50%;background:rgba(var(--prgb),.16)}
.mc-dots b.on{background:var(--p)}
.mc-bars{display:flex;align-items:flex-end;gap:4px;height:44px}
.mc-bars b{flex:1;height:0;border-radius:3px 3px 1px 1px;background:rgba(var(--prgb),.45);transition:height 1s var(--eo-cubic)}
.mc-bars b:last-child{background:var(--p)}
.in .mc-rank b{width:var(--w)}.in .mc-stack b{width:var(--w)}.in .mc-bars b{height:var(--h)}

/* 自动消耗 */
.auto-consume{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(18px,3.4vw,44px);
  align-items:center;margin-top:22px;padding:clamp(20px,3vw,34px);border-radius:var(--r-card);
  background:var(--mat);border:1px solid var(--bd-s);box-shadow:var(--inner),var(--soft)}
.auto-consume h3{font-size:20px;margin-bottom:8px}
.auto-consume p{font-size:14.5px;color:var(--tx2);line-height:1.85;max-width:52ch}
.ac-demo{display:flex;flex-direction:column;gap:12px}
.ac-item{display:grid;grid-template-columns:66px 1fr;gap:10px;align-items:center;font-size:12.5px}
.ac-item b{font-weight:500}
.ac-track{position:relative;height:8px;border-radius:var(--r-full);background:rgba(var(--prgb),.12);overflow:hidden}
.ac-track i{position:absolute;inset:0 auto 0 0;width:0;background:var(--p);border-radius:inherit;
  transition:width 1.2s var(--eo-cubic)}
.in .ac-track i{width:var(--w)}
.ac-track--off i{background:var(--danger)}
.ac-item em{grid-column:1/-1;font-style:normal;font-size:11px;color:var(--tx3);margin-top:-4px}
.ac-fire{color:var(--warn)!important}

/* ══════ 10. 日历工作台 ══════ */
.cal2{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:16px;align-items:start}
.cal2-card{padding:18px 20px 16px}
.cal2-head{padding-bottom:12px;border-bottom:1px dashed var(--bd)}
.cal2-nav{margin-left:auto;display:flex;gap:6px;align-items:center}
.cal2-nav button{height:26px;border-radius:var(--r-full);border:1px solid var(--bd);background:var(--card);
  color:var(--tx2);font-size:12px;transition:all var(--d-press) var(--eo)}
.cal2-nav button:hover{color:var(--p);border-color:var(--p);transform:translateY(-1px)}
.cal2-toggle{padding:0 10px}
.cal2-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px}
.cal2-grid.wk{grid-auto-flow:column;grid-auto-columns:1fr;grid-template-columns:none}
.cw{font-size:10px;color:var(--tx3);text-align:center;padding-bottom:2px}
.cd{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  height:40px;border-radius:12px;font-size:12px;color:var(--tx2);background:transparent;border:1px solid transparent;
  font-variant-numeric:tabular-nums;transition:all var(--d-fast) var(--eo)}
.cd:hover{background:rgba(var(--prgb),.07);border-color:var(--bd-s)}
.cd.is-out{opacity:.28}
.cd.is-future{opacity:.45}
.cd.is-today{border-color:var(--p);color:var(--p);font-weight:700}
.cd.is-sel{background:var(--p);color:var(--on-accent);font-weight:700;box-shadow:var(--elev);transform:scale(1.04)}
.cd .sig{width:14px;height:3px;border-radius:2px;background:rgba(var(--prgb),.22)}
.cd .sig b{display:block;height:100%;border-radius:inherit;background:var(--p)}
.cd.is-sel .sig{background:rgba(255,253,249,.4)}
.cd.is-sel .sig b{background:var(--on-accent)}
.cd.pulse{animation:cdPulse .5s var(--eo-cubic)}
.cal-week .cd{height:33px;font-size:10.5px;gap:2px}
.cal-week .cd .sig{width:11px}
.cal2-grid.wk{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}
.cal2-grid.wk .cd{height:52px}
.cal2-grid.wk .cw{grid-row:1}
.cal2-grid.wk .cd{grid-row:2}
@keyframes cdPulse{0%{transform:scale(.9)}60%{transform:scale(1.07)}100%{transform:scale(1.04)}}
.cal2-hint{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:11px;color:var(--tx3)}
.sigbar{width:16px;height:3px;border-radius:2px;background:linear-gradient(90deg,var(--p),rgba(var(--prgb),.25))}
.cal2-sum{margin-top:6px;font-size:12px;color:var(--tx2);font-variant-numeric:tabular-nums}
.cal2-side{display:flex;flex-direction:column;gap:0;min-width:0}
.cal2-side .glass-card{padding:16px 18px 18px}
.tl--live{max-height:190px;overflow:hidden auto;padding-right:4px;scrollbar-width:thin}
.composer{display:flex;align-items:center;gap:8px;margin-top:12px;height:40px;padding:0 5px 0 9px;
  border-radius:14px;background:var(--card);border:1px solid var(--bd);box-shadow:var(--soft)}
.comp-cam{font-style:normal;color:var(--tx3);font-size:14px}
.comp-field{flex:1;font-size:12.5px;color:var(--tx3);overflow:hidden;white-space:nowrap}
.comp-field.type{color:var(--tx);border-right:1.5px solid var(--p);white-space:pre}
.comp-btn{height:30px;padding:0 13px;border-radius:10px;background:var(--p);color:var(--on-accent);
  font-size:12px;font-weight:600;display:grid;place-items:center}
.stack--big{height:150px;margin-top:6px;margin-bottom:24px}
.stack--big .ph{width:108px;cursor:pointer}
.moods{display:flex;flex-wrap:wrap;gap:6px}
.mood{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-full);
  font-size:12.5px;color:var(--tx2);background:var(--card);border:1px solid var(--bd);cursor:pointer;
  transition:all var(--d-fast) var(--eo-cubic)}
.mood i{width:8px;height:8px;border-radius:50%;background:var(--mc)}
.mood:hover{transform:translateY(-2px);box-shadow:var(--soft)}
.mood.is-on{background:var(--mc);border-color:var(--mc);color:#fff;font-weight:600}
.mood.is-on i{background:rgba(255,255,255,.9)}

/* ══════ 11. 家庭底座 ══════ */
.fam{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:16px;align-items:start}
.fam-pick,.fam-scope{padding:20px 22px}
.fpick{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px 14px;border-radius:16px;
  background:var(--card);border:1px solid var(--bd);box-shadow:var(--soft);transition:all var(--d-fast) var(--eo)}
.fpick:hover{border-color:var(--p);transform:translateY(-2px)}
.fpick.is-on{border-color:rgba(var(--prgb),.45);box-shadow:var(--soft),0 0 0 3px rgba(var(--prgb),.10)}
.fpick-h{width:26px;height:26px;border-radius:9px;flex:none;background:var(--p);color:var(--on-accent);display:grid;
  place-items:center;font-size:12px;font-style:normal}
.fpick span{display:flex;flex-direction:column;line-height:1.4}
.fpick b{font-size:14.5px}
.fpick em{font-style:normal;font-size:11.5px;color:var(--tx3)}
.fpick .chev{margin-left:auto;font-style:normal;color:var(--tx3);transition:transform .3s var(--eo-cubic)}
.fpick.open .chev{transform:rotate(180deg)}
.fpick-drop{margin-top:8px;display:grid;gap:4px;overflow:hidden;max-height:0;opacity:0;
  transition:max-height .34s var(--eo-cubic),opacity .24s var(--eo)}
.fpick-drop.open{max-height:230px;opacity:1}
.fopt{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;font-size:13.5px;color:var(--tx2);
  border:1px solid transparent;transition:all var(--d-press) var(--eo)}
.fopt:hover{background:rgba(var(--prgb),.06);color:var(--tx)}
.fopt.is-on{background:rgba(var(--prgb),.1);border-color:rgba(var(--prgb),.3);color:var(--tx);font-weight:600}
.fopt i{width:9px;height:9px;border-radius:3px;flex:none;font-style:normal}
.fopt em{font-style:normal;margin-left:auto;font-size:11px;color:var(--tx3)}
.fopt--add .plus{display:grid;place-items:center;width:9px;height:9px;font-size:11px;color:var(--p)}
.fam-scope .fs-head{font-size:13px;color:var(--tx3);padding-bottom:10px}
.fs-body{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fs-col{padding:12px;border-radius:14px;background:var(--card);border:1px solid var(--bd-s)}
.fs-col b{font-size:13px}
.fs-col em{display:block;font-style:normal;font-size:11px;color:var(--tx3);margin-top:8px;font-variant-numeric:tabular-nums}
.fs-bars{display:flex;align-items:flex-end;gap:5px;height:56px;margin-top:8px}
.fs-bars i{flex:1;height:0;border-radius:4px 4px 2px 2px;background:rgba(var(--prgb),.34);transition:height .9s var(--eo-cubic)}
.fs-bars i:first-child{background:var(--p)}
.in .fs-bars i{height:var(--h)}
.fam-scope .tiny{margin-top:12px}

/* ══════ 12. AI 智能体 ══════ */
.agent{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(16px,2.6vw,30px);align-items:start}
.qp{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.qpt{max-width:100%;text-align:left;font-size:12.5px;line-height:1.6;color:var(--tx2);padding:8px 13px;
  border-radius:16px 16px 16px 5px;background:var(--card);border:1px solid var(--bd);
  transition:all var(--d-fast) var(--eo)}
.qpt:hover{transform:translateY(-2px);border-color:var(--p);color:var(--tx)}
.qpt.is-on{background:var(--p);border-color:var(--p);color:var(--on-accent)}
.chat{display:flex;flex-direction:column;gap:10px;padding:18px;border-radius:var(--r-card);
  background:var(--mat);border:1px solid var(--bd-s);box-shadow:var(--inner),var(--soft);min-height:270px}
.bubble{max-width:82%;padding:10px 14px;border-radius:18px;font-size:13.5px;line-height:1.75}
.bubble--ai{align-self:flex-start;background:var(--card);border:1px solid var(--bd);border-bottom-left-radius:6px}
.bubble--me{align-self:flex-end;background:var(--p);color:var(--on-accent);border-bottom-right-radius:6px;
  display:none;animation:pgIn var(--d-enter) var(--eo-cubic) both}
.bubble--me.on{display:block}
.reply{display:flex;flex-direction:column;gap:8px;align-self:stretch}
.rrow{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--tx2);
  animation:pgIn var(--d-enter) var(--eo-cubic) both}
.rrow i{font-style:normal;width:20px;height:20px;border-radius:7px;display:grid;place-items:center;font-size:11px;flex:none}
.r-mem i{background:rgba(78,138,128,.15);color:var(--teal)}
.r-punch i{background:rgba(217,138,43,.15);color:var(--warn)}
.r-item i{background:rgba(var(--prgb),.13);color:var(--p)}
.r-ask i{background:rgba(107,124,160,.15);color:var(--indigo)}
.rrow b{font-weight:500;color:var(--tx)}
.cost{align-self:flex-end;font-size:11px;color:var(--tx3);font-variant-numeric:tabular-nums}
.typing{display:inline-flex;gap:3px;align-items:center}
.typing s{width:5px;height:5px;border-radius:50%;background:var(--tx3);text-decoration:none;
  animation:blink 1.1s ease-in-out infinite}
.typing s:nth-child(2){animation-delay:.15s}.typing s:nth-child(3){animation-delay:.3s}
@keyframes blink{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.cards-title{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.cards-title b{font-size:15px}
.cards-title span{font-size:12px;color:var(--tx3)}
.ac-card{padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--bd-s);
  box-shadow:var(--soft);margin-bottom:8px;transition:transform .3s var(--eo-cubic)}
.ac-card:hover{transform:translateX(4px)}
.ac-tag{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:var(--r-full);color:#fff}
.ac-tag--mem{background:var(--teal)}.ac-tag--punch{background:var(--warn)}.ac-tag--item{background:var(--p)}
.ac-fields{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.ac-fields span{font-size:11.5px;color:var(--tx3);padding:2px 8px;border-radius:7px;background:rgba(var(--prgb),.06)}
.agent-cta{margin-top:12px;padding:12px 14px;border-radius:14px;border:1px dashed rgba(var(--prgb),.4);
  background:rgba(var(--prgb),.05)}
.agent-cta b{display:block;font-size:13.5px;color:var(--p);margin-bottom:2px}
.agent-cta span{font-size:12px;color:var(--tx3)}
.agent-left .tiny{margin-top:10px}

/* ══════ 13. 外观实验室 ══════ */
.theme-bar{padding:20px 22px}
.theme-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:7px 0}
.theme-row[hidden]{display:none}
.theme-lab{font-size:12px;color:var(--tx3);width:34px;flex:none;letter-spacing:.5px}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.sw{position:relative;display:flex;align-items:center;gap:7px;height:32px;padding:0 12px 0 8px;border-radius:var(--r-full);
  border:1px solid var(--bd);background:var(--card);font-size:12.5px;color:var(--tx2);
  transition:all var(--d-fast) var(--eo)}
.sw i{width:13px;height:13px;border-radius:5px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.sw:hover{transform:translateY(-2px);box-shadow:var(--soft)}
.sw.is-on{border-color:var(--p);color:var(--tx);font-weight:600;box-shadow:0 0 0 3px rgba(var(--prgb),.12)}
.seg{display:inline-flex;padding:3px;border-radius:var(--r-full);background:rgba(var(--prgb),.07);border:1px solid var(--bd-s)}
.seg button{height:26px;padding:0 12px;border-radius:var(--r-full);font-size:12.5px;color:var(--tx2);
  transition:all var(--d-fast) var(--eo)}
.seg button:hover{color:var(--tx)}
.seg button.is-on{background:var(--card);color:var(--p);font-weight:600;box-shadow:var(--soft)}
.mat-list{display:flex;flex-wrap:wrap;gap:8px}
.mat-item{display:flex;align-items:center;gap:8px;min-height:34px;padding:4px 13px 4px 7px;border-radius:var(--r-full);
  background:var(--card);border:1px solid var(--bd);font-size:12.5px;color:var(--tx2);
  transition:border-color var(--d-fast) var(--eo),color var(--d-fast) var(--eo),transform var(--d-fast) var(--eo)}
.mat-item:hover{border-color:var(--p);transform:translateY(-1px)}
.mat-item i{position:relative;width:30px;height:18px;border-radius:var(--r-full);flex:none;
  background:rgba(var(--prgb),.16);transition:background var(--d-fast) var(--eo)}
.mat-item i::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;
  background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.22);transition:left .28s var(--elastic)}
.mat-item.on{color:var(--tx);border-color:rgba(var(--prgb),.42)}
.mat-item.on i{background:var(--p)}
.mat-item.on i::after{left:14px}
.mat-item em{font-style:normal;font-size:10.5px;color:var(--tx3)}
.mix-row{padding:10px 0;border-top:1px dashed var(--bd);border-bottom:1px dashed var(--bd);margin-bottom:6px}
.mix-pair{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mix-lab{font-size:12px;color:var(--tx3);margin-left:6px}
.mix-opts{display:flex;gap:6px;flex-wrap:wrap}
.mix-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:var(--r-full);
  font-size:12px;color:var(--tx2);background:var(--card);border:1px solid var(--bd);
  transition:all var(--d-fast) var(--eo)}
.mix-chip i{width:11px;height:11px;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.mix-chip:hover{transform:translateY(-1px);border-color:var(--p)}
.mix-chip.on{border-color:var(--p);color:var(--tx);font-weight:600;box-shadow:0 0 0 3px rgba(var(--prgb),.1)}
.glass-demo{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);gap:16px;margin-top:16px;align-items:start}
.gd-card{padding:20px 22px}
.gd-card p{font-size:13.5px;color:var(--tx2);line-height:1.85}
.gd-notes{display:grid;gap:10px}
.gd-notes>div{padding:14px 16px;border-radius:var(--r-md) var(--r-card) var(--r-md) var(--r-card);
  background:var(--card);border:1px solid var(--bd-s);box-shadow:var(--soft)}
.gd-notes b{display:block;font-size:13px;margin-bottom:3px}
.gd-notes p{font-size:12.5px;color:var(--tx2);line-height:1.8}

/* ══════ 14. 积分与会员 ══════ */
.pts{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr) minmax(0,.9fr);gap:14px;align-items:start}
.pts>div{padding:18px 20px}
.earn-row{display:flex;align-items:baseline;gap:10px;padding:8px 12px;border-radius:12px;margin-bottom:7px;
  background:rgba(var(--prgb),.06);border:1px solid var(--bd-s);transition:transform .3s var(--eo-cubic)}
.earn-row:hover{transform:translateX(4px)}
.earn-row b{font-size:24px;font-weight:700;color:var(--p);font-variant-numeric:tabular-nums}
.earn-row span{font-size:13.5px;color:var(--tx2)}
.pts table{width:100%;border-collapse:collapse;font-size:13px}
.pts caption{text-align:left;font-size:12px;color:var(--tx3);padding-bottom:8px}
.pts th,.pts td{padding:7px 6px;border-bottom:1px dashed var(--bd);text-align:right;font-variant-numeric:tabular-nums}
.pts thead th{font-size:12px;color:var(--tx3);font-weight:500;border-bottom:1px solid var(--bd)}
.pts tbody th{text-align:left;color:var(--tx2);font-weight:500}
.pts td{color:var(--tx)}
.pts tbody tr{transition:background var(--d-press) var(--eo)}
.pts tbody tr:hover{background:rgba(var(--prgb),.05)}
.pts thead th:nth-child(3){color:var(--p)}
.redeem{display:flex;flex-direction:column;gap:7px}
.redeem li{display:flex;align-items:center;font-size:13.5px;padding:8px 12px;border-radius:11px;
  background:var(--card);border:1px solid var(--bd-s);transition:all var(--d-fast) var(--eo)}
.redeem li:hover{border-color:var(--p);transform:translateY(-2px)}
.redeem span{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--p);font-variant-numeric:tabular-nums}
.pts .tiny{margin-top:12px}

/* ══════ 15. 适合谁 ══════ */
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.person{padding:16px 18px;border-radius:var(--r-card);background:var(--card);border:1px solid var(--bd-s);
  box-shadow:var(--soft);transition:transform .34s var(--eo-cubic),box-shadow .34s var(--eo),border-color .34s}
.person:hover{transform:translateY(-4px);box-shadow:var(--elev);border-color:rgba(var(--prgb),.3)}
.person b{display:block;font-size:14.5px;margin-bottom:8px}
.person .pain{font-size:12.5px;color:var(--tx3);line-height:1.7}
.person .pain::before{content:"痛点 · ";color:var(--danger);font-weight:600}
.person .ans{font-size:13px;color:var(--tx2);line-height:1.75;margin-top:6px}
.person .ans::before{content:"对应 · ";color:var(--p);font-weight:600}

/* ══════ 16. 工程与克制 ══════ */
.prin{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:16px;align-items:start}
.prin-list{display:grid;gap:10px}
.prin-item{padding:16px 18px;border-radius:var(--r-card);background:var(--mat);border:1px solid var(--bd-s);
  box-shadow:var(--inner),var(--soft)}
.prin-item b{display:block;font-size:14.5px;margin-bottom:4px}
.prin-item p{font-size:13.5px;color:var(--tx2);line-height:1.8}
.prin-side{padding:18px 20px}
.stat-line{display:flex;align-items:baseline;gap:8px;padding:6px 0;border-bottom:1px dashed var(--bd)}
.stat-line b{font-size:26px;font-weight:700;color:var(--p);font-variant-numeric:tabular-nums;line-height:1.2}
.stat-line span{font-size:12.5px;color:var(--tx2)}

/* ══════ 17. FAQ ══════ */
.faq{display:grid;gap:8px;max-width:900px}
.qa{border-radius:var(--r-lg);background:var(--card);border:1px solid var(--bd-s);overflow:hidden;
  transition:border-color var(--d-fast) var(--eo),box-shadow var(--d-fast) var(--eo)}
.qa:hover{border-color:rgba(var(--prgb),.3)}
.qa[open]{border-color:rgba(var(--prgb),.4);box-shadow:var(--soft)}
.qa summary{list-style:none;position:relative;padding:14px 44px 14px 18px;font-size:14.5px;font-weight:600;cursor:pointer}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:18px;top:50%;width:9px;height:9px;
  border-right:1.7px solid var(--tx3);border-bottom:1.7px solid var(--tx3);
  transform:translateY(-70%) rotate(45deg);transition:transform .3s var(--eo-cubic)}
.qa[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.qa-a{padding:0 18px 15px;font-size:13.5px;color:var(--tx2);line-height:1.85;animation:qaIn .3s var(--eo-cubic)}
.qa-a b{color:var(--tx)}
@keyframes qaIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ══════ 18. 获取 / footer ══════ */
.get{padding-bottom:clamp(48px,7vw,90px)}
.get-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(18px,3vw,40px);
  align-items:center;padding:clamp(22px,3.6vw,44px)}
.get-copy h2{font-size:clamp(22px,2.9vw,32px);line-height:1.35;margin:10px 0 8px}
.get-copy>p{font-size:14.5px;color:var(--tx2)}
.get-act{display:flex;align-items:center;gap:12px;margin-top:18px;flex-wrap:wrap}
.hint{font-size:12.5px;color:var(--tx3);transition:color var(--d-fast)}
.hint.ok{color:var(--ok)}
.get-meta{margin-top:22px;display:grid;gap:4px;font-size:13px}
.get-meta li{display:flex;gap:10px;padding:5px 0;border-top:1px dashed var(--bd)}
.get-meta span{width:56px;flex:none;color:var(--tx3)}
.get-meta b{font-weight:500;font-variant-numeric:tabular-nums}
.qr-slot{display:grid;place-items:center;gap:6px;text-align:center;padding:24px 20px;border-radius:var(--r-card);
  border:1.5px dashed var(--bd);background:rgba(var(--prgb),.04);color:var(--tx2)}
.qr-slot svg{width:30px;height:30px;color:var(--p);stroke-width:1.2}
.qr-slot b{font-size:14px}
.qr-slot span{font-size:11.5px;color:var(--tx3);max-width:26ch;line-height:1.7}

.foot{border-top:1px solid var(--bd);margin-top:20px;background:linear-gradient(var(--bg-hi),var(--bg-tail))}
.foot-in{max-width:var(--maxw);margin:0 auto;padding:26px var(--gutter) 34px;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 26px;align-items:center}
.foot-brand{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.foot-brand b{font-size:14px}
.foot-brand i{font-style:normal;font-size:11.5px;color:var(--tx3);letter-spacing:.3px}
.foot-links{display:flex;gap:16px;font-size:13px;color:var(--tx2)}
.foot-links a{transition:color var(--d-press)}
.foot-links a:hover{color:var(--p)}
.foot-note{grid-column:1/-1;font-size:11.5px;color:var(--tx3);line-height:1.8;max-width:92ch}

.totop{position:fixed;right:calc(var(--gutter) - 6px);bottom:26px;z-index:55;width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;background:var(--card);border:1px solid var(--bd);box-shadow:var(--soft);color:var(--tx2);
  opacity:0;transform:translateY(12px);pointer-events:none;
  transition:all .3s var(--eo-cubic)}
.totop.on{opacity:1;transform:none;pointer-events:auto}
.totop:hover{color:var(--p);border-color:var(--p);transform:translateY(-2px)}
.totop svg{width:18px;height:18px}

/* ══════ 19. 滚动揭示（只在脚本已接管时才压初始态，无 JS 也能读完整页） ══════ */
.js .reveal{opacity:0;transform:translateY(18px);
  transition:opacity .46s var(--eo-cubic) var(--d,0ms),transform .46s var(--eo-cubic) var(--d,0ms)}
.js .reveal.in{opacity:1;transform:none}

/* ══════ 20. 响应式 ══════ */
@media (max-width:1080px){
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:calc(56px + var(--gutter) + 18px)}
  .hero-copy{text-align:left;max-width:620px}
  .two,.cal2,.fam,.agent,.prin,.glass-demo,.auto-consume,.get-card{grid-template-columns:1fr}
  .pts{grid-template-columns:1fr}
  .nav-menu{display:grid}
  .nav-links{position:absolute;top:calc(100% + 10px);left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);
    gap:4px;padding:10px;margin:0;overflow:visible;border-radius:var(--r-card);background:var(--card);
    border:1px solid var(--bd);box-shadow:var(--elev);opacity:0;transform:translateY(-10px) scale(.99);
    pointer-events:none;transition:opacity .22s var(--eo),transform .3s var(--eo-cubic)}
  .nav.is-open .nav-links{opacity:1;transform:none;pointer-events:auto}
  .nav-links a{height:42px;display:grid;place-items:center;font-size:13.5px;background:rgba(var(--prgb),.05)}}
@media (max-width:680px){
  .hero-facts{grid-template-columns:1fr 1fr;gap:12px}
  .nav{left:12px;right:12px}
  .btn-sm{height:32px;font-size:12px}
  .screen{width:308px}
  .phone{width:326px;transform:scale(.92);margin-bottom:-26px}
  .cal2-grid{gap:3px}
  .cd{height:34px;font-size:11px}
  .fs-body{grid-template-columns:1fr}
  .foot-in{grid-template-columns:1fr}
}
@media (max-width:400px){
  .phone{transform:scale(.8);margin-bottom:-60px}
}

/* ══════ 21. 降级与减弱动效 ══════ */
@supports not (backdrop-filter:blur(2px)){
  .nav,.glass-card,.tabbar-glass,.ai-pop-card,.totop,[data-mat~="card"] .glass-card{background:var(--card)}
}
@media (max-width:680px){
  .orb{filter:blur(26px)}
  .grain{display:none}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
    animation-delay:0s!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .reveal{opacity:1;transform:none}
}
