/* ============================================================
   ATAVIA — 智能衣橱 · 编辑感设计系统
   品牌色对齐真实工程 (atavia/design-src)，叠加杂志版式。
   共享于 closet / add-item / garment-detail 三屏。
   ============================================================ */

:root{
  /* 颜色 —— 暖纸底 / 墨 / 陶土红，沿用真实产品 token */
  --bg:#FAFAF8;
  --paper:#F4F2ED;        /* 卡面 / 凹槽 */
  --surface:#FFFFFF;
  --ink:#1C1C1E;
  --ink-2:#3A3A3E;
  --muted:#8A8A8E;
  --faint:#B6B2AA;
  --line:#E7E3DD;
  --line-2:#EFECE6;
  --accent:#C24536;       /* 陶土红 —— 每屏≤2次 */
  --accent-ink:#9A3527;
  --success:#3F8F5B;

  /* 字体 */
  --serif:"Didot","Bodoni 72","Hoefler Text",Georgia,"Songti SC","Noto Serif CJK SC",serif;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","PingFang SC","Helvetica Neue",sans-serif;
  --mono:"SF Mono",ui-monospace,"JetBrains Mono",Menlo,monospace;

  /* 半径 */
  --r-xl:30px; --r-lg:20px; --r-md:14px; --r-sm:10px;

  /* 屏幕画布 9:19.5（真实 iOS 逻辑像素） */
  --dw:390px; --dh:844px;
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
html,body{height:100%;}
body{
  font-family:var(--sans);color:var(--ink);
  background:
    radial-gradient(120% 90% at 50% -10%, #EFEDE8 0%, #E4E1DB 55%, #DAD6CF 100%);
  min-height:100%;
  display:flex;align-items:center;justify-content:center;
  padding:40px 20px;
}
img{display:block;max-width:100%;}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit;}
a{color:inherit;text-decoration:none;}
::selection{background:rgba(194,69,54,.18);}

/* ---------- 满幅屏幕画布（无手机边框，按规格）---------- */
.device{ display:contents; }            /* 旧文件的外框包裹层取消，不再绘制黑边 */
.screen{
  width:var(--dw);height:var(--dh);background:var(--bg);
  border-radius:46px;overflow:hidden;position:relative;flex:none;
  display:flex;flex-direction:column;
  box-shadow:
    0 40px 90px -32px rgba(40,32,28,.45),
    0 14px 36px -22px rgba(0,0,0,.28);
}
.island{                                 /* 仅旧屏沿用；新屏不放，更接近真稿 */
  position:absolute;top:11px;left:50%;transform:translateX(-50%);
  width:120px;height:34px;background:#000;border-radius:20px;z-index:60;
}
.island::after{content:"";position:absolute;right:14px;top:50%;transform:translateY(-50%);
  width:9px;height:9px;border-radius:50%;background:#0E0E12;
  box-shadow:0 0 0 2px #1b1b22, inset 0 0 3px rgba(80,120,160,.7);}

/* 状态栏（JS 注入内容） */
.statusbar{
  height:54px;flex:none;padding:18px 30px 0;
  display:flex;align-items:center;justify-content:space-between;
  font-size:15px;font-weight:600;letter-spacing:.01em;z-index:50;
  color:var(--ink);
}
.statusbar .sb-r{display:flex;align-items:center;gap:6px;}
.statusbar svg{display:block;}

/* 主滚动区 */
.scroll{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;}
.scroll::-webkit-scrollbar{width:0;}

/* Home 指示条 */
.home-ind{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);
  width:134px;height:5px;border-radius:3px;background:#1C1C1E;opacity:.9;z-index:55;}

/* ---------- 排版 ---------- */
.eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.26em;
  text-transform:uppercase;color:var(--accent);}
.kicker{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.display{font-family:var(--serif);font-weight:400;letter-spacing:-.01em;line-height:1.02;}
.title{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.06;letter-spacing:-.01em;}
.h-app{font-size:22px;font-weight:600;letter-spacing:-.01em;}
.h-light{font-size:30px;font-weight:300;line-height:1.12;letter-spacing:-.02em;}
.h-light b{font-weight:600;}
.sub{font-size:13.5px;line-height:1.55;color:var(--muted);}
.meta{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;}
.muted{color:var(--muted);}

/* ---------- 按钮 ---------- */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
  min-height:52px;padding:0 20px;border-radius:var(--r-xl);
  font-size:15px;font-weight:600;letter-spacing:.02em;background:var(--accent);color:#fff;
  transition:transform .12s ease, background .2s;}
.btn:active{transform:translateY(1px) scale(.995);}
.btn:hover{background:var(--accent-ink);}
.btn-dark{background:var(--ink);color:#fff;}
.btn-dark:hover{background:#000;}
.btn-line:hover{border-color:var(--muted);}
.btn-ghost:hover{background:var(--line-2);}
/* 键盘焦点环（无障碍：≥3:1 指示，offset 留底色间隙；鼠标点击不显示） */
:where(a,button,.chip,.tile,.tab,[data-nav],input,select,textarea):focus-visible{
  outline:2.5px solid var(--accent);outline-offset:3px;}
.btn-ghost{background:var(--paper);color:var(--ink);}
.btn-line{background:transparent;border:1.5px solid var(--line);color:var(--ink);}
.btn svg,.btn-line svg{width:18px;height:18px;}
.icon-btn{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--surface);border:1px solid var(--line);color:var(--ink);}
.icon-btn svg{width:20px;height:20px;}

/* ---------- chip / 分段筛选 ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:9px 15px;border-radius:999px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink-2);font-size:13px;font-weight:500;
  transition:.16s;}
.chip:active{transform:scale(.96);}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.chip .dot{width:11px;height:11px;border-radius:50%;border:1px solid rgba(0,0,0,.12);}
.filter-row{display:flex;gap:8px;overflow-x:auto;padding:2px 0;}
.filter-row::-webkit-scrollbar{height:0;}
.seg{display:flex;background:var(--paper);border-radius:12px;padding:3px;gap:2px;}
.seg button{flex:1;padding:8px 0;border-radius:9px;font-size:13px;font-weight:600;color:var(--muted);}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08);}

/* ---------- 衣橱页 ---------- */
.closet-head{padding:6px 22px 0;}
.closet-head .eyebrow{margin-top:4px;}
.closet-top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:10px;}
.closet-top .h-light{margin:0;}
.closet-count{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);padding-bottom:7px;flex:none;font-variant-numeric:tabular-nums;}
.closet-head .seg{margin-top:14px;}
.closet-head .filter-row{margin-top:12px;}
.searchbar{display:flex;align-items:center;gap:10px;background:var(--paper);
  border-radius:var(--r-md);padding:12px 14px;color:var(--muted);font-size:14px;margin-top:14px;}
.searchbar input{flex:1;border:0;background:transparent;font:inherit;color:var(--ink);outline:none;}
.searchbar svg{width:18px;height:18px;flex:none;}
.nudge{margin:16px 22px 4px;display:flex;gap:14px;align-items:center;
  background:linear-gradient(100deg,#fff,var(--paper));
  border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;}
.nudge .ring{width:42px;height:42px;flex:none;}
.nudge h4{font-size:14px;font-weight:600;}
.nudge p{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.4;}

/* 按品类浏览 · AI 封面横滑 */
.cat-browse{margin:16px 0 2px;}
.cat-browse-h{display:flex;align-items:baseline;gap:9px;margin:0 22px 11px;
  font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink);}
.cat-browse-h span{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--muted);text-transform:uppercase;}
.cat-strip{display:flex;gap:11px;overflow-x:auto;padding:0 22px 4px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.cat-strip::-webkit-scrollbar{display:none;}
.cat-card{flex:0 0 98px;text-align:left;color:var(--ink);transition:transform .12s;}
.cat-card:active{transform:scale(.97);}
.cat-cover{display:block;width:98px;aspect-ratio:4/5;border-radius:13px;overflow:hidden;
  background:linear-gradient(160deg,var(--paper),var(--surface));border:1px solid var(--line);transition:box-shadow .15s,border-color .15s;}
.cat-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.cat-card.on .cat-cover{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent);}
.cat-meta{display:flex;align-items:baseline;justify-content:space-between;gap:6px;margin-top:8px;}
.cat-meta b{font-size:12.5px;font-weight:600;letter-spacing:-.01em;}
.cat-meta span{font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;color:var(--muted);flex:none;}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 22px 8px;align-content:start;}
.tile{position:relative;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);
  background:var(--surface);text-align:left;transition:transform .14s ease, box-shadow .2s;}
.tile:active{transform:scale(.97);}
@media (hover:hover){ .tile:hover{transform:translateY(-2px);box-shadow:0 10px 24px -14px rgba(40,30,26,.42);} }
.tile .art{aspect-ratio:.8/1;display:flex;align-items:center;justify-content:center;position:relative;}
.tile .art::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(160deg,rgba(255,255,255,.4),rgba(255,255,255,0) 58%);}
.tile .art svg{width:52%;height:52%;position:relative;z-index:1;}
.tile .cap{padding:8px 9px 10px;background:var(--surface);border-top:1px solid var(--line-2);}
.tile .nm{font-size:11.5px;font-weight:600;line-height:1.25;letter-spacing:-.01em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tile .tg{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--muted);margin-top:3px;}
.tile .fav{position:absolute;top:7px;right:7px;z-index:2;width:22px;height:22px;color:#fff;opacity:.9;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.25));}
.empty{grid-column:1/-1;text-align:center;color:var(--muted);font-size:13px;padding:40px 0;}
/* 切换筛选/类目时，网格错落入场（搜索打字不触发；reduced-motion 关闭） */
@media (prefers-reduced-motion: no-preference){
  .tile.in{animation:tileIn .32s cubic-bezier(.2,0,0,1) backwards;}
}
@keyframes tileIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}

/* ---------- 衣橱 v2 · 中间大图 + 底部分类 ---------- */
#closet2{display:flex;flex-direction:column;}
.cl2-head{flex:none;padding:12px 22px 10px;}
.cl2-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;}
.cl2-count{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);flex:none;font-variant-numeric:tabular-nums;}
.cl2-stage{flex:1;min-height:0;position:relative;margin:0 22px 14px;border-radius:var(--r-xl);overflow:hidden;
  background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 44px -26px rgba(40,30,26,.5);touch-action:pan-y;}
.cl2-coach{position:absolute;inset:0;z-index:5;pointer-events:none;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;color:#fff;text-align:center;
  background:rgba(20,16,14,.42);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:opacity .45s ease;}
.cl2-coach.gone{opacity:0;}
.cl2-coach-hand{width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);animation:zSwipe 1.9s ease-in-out infinite;}
.cl2-coach-hand svg{width:26px;height:26px;}
.cl2-coach-tx{font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:rgba(255,255,255,.92);}
@media (prefers-reduced-motion:reduce){ .cl2-coach-hand{animation:none;} }
.cl2-track{display:flex;height:100%;}
.cl2-track.anim{transition:transform .4s cubic-bezier(.2,.8,.2,1);}
.cl2-slide{flex:0 0 100%;height:100%;position:relative;overflow:hidden;}
.cl2-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .35s ease;}
.cl2-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.cl2-item-nm{font-family:var(--serif);font-size:23px;letter-spacing:-.01em;color:#fff;}
.cl2-item-no{font-family:var(--mono);font-size:14px;font-weight:600;color:rgba(255,255,255,.72);letter-spacing:.02em;margin-right:9px;}
.cl2-item-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;}
.cl2-item-tags span{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:rgba(255,255,255,.92);
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.26);padding:3px 8px;border-radius:999px;}
.cl2-item-sc{font-size:13px;line-height:1.5;color:rgba(255,255,255,.88);margin-top:9px;text-wrap:pretty;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cl2-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,16,14,.8) 0%,rgba(20,16,14,.16) 44%,transparent 66%);}
.cl2-info{position:absolute;left:20px;right:20px;bottom:20px;color:#fff;}
.cl2-k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.82);}
.cl2-h{font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;letter-spacing:-.01em;margin:6px 0 0;}
.cl2-items{font-size:12px;line-height:1.5;color:rgba(255,255,255,.86);margin:9px 0 0;text-wrap:pretty;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cl2-cats{flex:none;display:flex;gap:11px;overflow-x:auto;padding:2px 22px 12px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.cl2-cats::-webkit-scrollbar{display:none;}
/* 操作栏：颜色/季节/场合 筛选按钮（点击弹窗）+ 浏览模式切换 */
.cl2-ops{flex:none;display:flex;align-items:center;gap:8px;padding:0 22px 12px;}
.cl2-facets{flex:1;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.cl2-facets::-webkit-scrollbar{display:none;}
.cl2-fbtn{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;padding:8px 10px 8px 14px;border-radius:999px;
  border:1px solid var(--line);background:var(--surface);color:var(--ink-2);
  font-size:12.5px;font-weight:600;letter-spacing:.01em;white-space:nowrap;transition:background .15s,color .15s,border-color .15s,transform .12s;}
.cl2-fbtn-x{width:14px;height:14px;opacity:.7;}
.cl2-fbtn.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.cl2-fbtn:active{transform:scale(.96);}
.cl2-view{flex:none;width:40px;height:40px;border-radius:11px;border:1px solid var(--line);background:var(--surface);
  color:var(--ink);display:flex;align-items:center;justify-content:center;transition:transform .12s;}
.cl2-view svg{width:20px;height:20px;}
.cl2-view:active{transform:scale(.92);}
/* 筛选取值弹窗 */
.cl2-sheet{position:absolute;inset:0;z-index:200;display:flex;align-items:flex-end;
  background:rgba(20,16,14,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.cl2-sheet[hidden]{display:none;}
.cl2-sheet-card{width:100%;background:var(--bg);border-radius:26px 26px 0 0;
  padding:12px 22px calc(24px + env(safe-area-inset-bottom,0));
  box-shadow:0 -20px 50px -20px rgba(0,0,0,.4);animation:pwUp .32s cubic-bezier(.2,.8,.2,1) both;}
.cl2-grip{display:block;width:38px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 14px;}
.cl2-sheet-h{font-family:var(--serif);font-size:20px;letter-spacing:-.01em;color:var(--ink);margin-bottom:14px;}
.cl2-sheet-opts{display:flex;flex-wrap:wrap;gap:9px;}
.cl2-opt{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:999px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink-2);font-size:13.5px;font-weight:600;letter-spacing:.01em;transition:background .15s,color .15s,border-color .15s,transform .12s;}
.cl2-opt.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.cl2-opt:active{transform:scale(.96);}
.cl2-sw{width:13px;height:13px;border-radius:50%;border:1px solid rgba(0,0,0,.14);flex:none;}
.cl2-opt.on .cl2-sw{border-color:rgba(255,255,255,.55);}
/* 网格浏览模式 — 双列写实照片 */
/* 网格模式：closet2 整体上下滚动；顶部(状态栏+标题+分类+筛选)与底栏吸附固定，仅内容滚动 */
.cl2-grid{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:none;
  grid-template-columns:repeat(2,1fr);gap:16px 13px;padding:6px 22px 20px;align-content:start;}
.cl2-grid::-webkit-scrollbar{display:none;}
#closet2.gridmode .cl2-stage{display:none;}
#closet2.gridmode{overflow-y:auto;-webkit-overflow-scrolling:touch;}
#closet2.gridmode::-webkit-scrollbar{display:none;}
#closet2.gridmode .cl2-fixed{position:sticky;top:0;z-index:30;background:var(--bg);}
#closet2.gridmode .cl2-grid{display:grid;flex:1 0 auto;min-height:auto;overflow:visible;}
#closet2.gridmode .tabbar{position:sticky;bottom:0;z-index:30;}
/* 系统 Home 指示条：原条绝对定位会随内容滚动，网格模式下隐藏，改由吸底 Tab 栏的伪元素绘制，常驻屏底 */
#closet2.gridmode .home-ind{display:none;}
#closet2.gridmode .tabbar::after{content:"";position:absolute;left:50%;bottom:8px;transform:translateX(-50%);
  width:134px;height:5px;border-radius:3px;background:#1C1C1E;opacity:.9;}
.cl2-tile{display:block;border-radius:18px;overflow:hidden;background:var(--surface);
  border:1px solid var(--line);box-shadow:0 3px 14px -9px rgba(40,30,26,.22);
  transition:transform .16s ease,box-shadow .24s ease;}
.cl2-tile:active{transform:scale(.975);}
@media (hover:hover){ .cl2-tile:hover{transform:translateY(-3px);box-shadow:0 16px 32px -18px rgba(40,30,26,.45);} }
.cl2-tile-img{position:relative;width:100%;height:0;padding-bottom:133.33%;overflow:hidden;display:block;
  background:linear-gradient(165deg,color-mix(in srgb,var(--c,#dcd7cf) 8%,#fff),color-mix(in srgb,var(--c,#dcd7cf) 22%,#fff));}
.cl2-tile-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.cl2-tile-cap{display:block;padding:10px 12px 12px;border-top:1px solid var(--line-2);}
.cl2-tile-nm{font-family:var(--serif);font-size:15px;font-weight:600;line-height:1.22;letter-spacing:-.01em;
  color:var(--ink);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;}
.cl2-tile-tg{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;color:var(--muted);margin-top:5px;
  line-height:1.4;white-space:normal;overflow-wrap:anywhere;}
.cl2-empty{grid-column:1/-1;text-align:center;color:var(--muted);font-size:13px;padding:56px 0;}
/* 单品详情底部弹窗 */
.cl2-dt{position:absolute;left:0;right:0;height:100%;z-index:200;display:flex;align-items:flex-end;
  background:rgba(20,16,14,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.cl2-dt[hidden]{display:none;}
.cl2-dt-card{position:relative;width:100%;max-height:90%;display:flex;flex-direction:column;
  background:var(--bg);border-radius:26px 26px 0 0;overflow:hidden;
  box-shadow:0 -20px 50px -20px rgba(0,0,0,.4);animation:pwUp .34s cubic-bezier(.2,.8,.2,1) both;}
.cl2-dt .cl2-grip{margin:10px auto 2px;}
.cl2-dt-close,.ls-close{position:absolute;top:12px;right:14px;z-index:6;width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--ink);
  background:rgba(255,255,255,.66);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .12s;}
.cl2-dt-close svg,.ls-close svg{width:16px;height:16px;}
.cl2-dt-close:active,.ls-close:active{transform:scale(.9);}
.cl2-dt-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.cl2-dt-scroll::-webkit-scrollbar{display:none;}
.cl2-dt-hero{position:relative;height:300px;overflow:hidden;
  background:linear-gradient(168deg,color-mix(in srgb,var(--c,#dcd7cf) 9%,#fff),color-mix(in srgb,var(--c,#dcd7cf) 24%,#fff));}
.cl2-dt-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;
  padding:22px 28px 30px;box-sizing:border-box;filter:drop-shadow(0 16px 26px rgba(28,28,30,.2));}
.cl2-dt-cap{position:absolute;right:20px;bottom:14px;display:flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.cl2-dt-cap .sw{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.15);}
.cl2-dt-body{padding:16px 22px 10px;}
.cl2-dt-name{font-family:var(--serif);font-size:25px;line-height:1.1;letter-spacing:-.01em;color:var(--ink);}
.cl2-dt-sub{margin-top:6px;color:var(--muted);font-size:13px;}
.cl2-dt-foot{flex:none;padding:12px 22px calc(16px + env(safe-area-inset-bottom,0));border-top:1px solid var(--line);background:var(--bg);}
.cl2-cat{flex:0 0 auto;padding:0;display:block;}
.cl2-cat-th{display:block;position:relative;width:72px;aspect-ratio:4/5;border-radius:13px;overflow:hidden;background:var(--paper);
  border:1px solid var(--line);transition:box-shadow .15s,border-color .15s,transform .12s;}
.cl2-cat-th img{width:100%;height:100%;object-fit:cover;display:block;}
.cl2-cat-n{position:absolute;right:5px;bottom:5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  display:flex;align-items:center;justify-content:center;background:rgba(20,16,14,.6);color:#fff;
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.02em;
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.cl2-cat.on .cl2-cat-th{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent);}
.cl2-cat:active .cl2-cat-th{transform:scale(.93);}

/* ---------- 底部导航 ---------- */
/* 底部导航 · 文字编辑式：纯标签，激活态一道从中心向两端展开的陶土红下划线（无图标 / 无 FAB） */
.tabbar{flex:none;display:flex;align-items:stretch;justify-content:space-around;
  padding:12px 14px 30px;background:rgba(250,250,248,.92);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--line);}
.tab{flex:1;display:flex;align-items:center;justify-content:center;min-height:34px;
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;color:var(--muted);transition:color .2s;}
.tab span{position:relative;padding:2px 0;}
.tab span::after{content:"";position:absolute;left:50%;right:50%;bottom:-6px;height:1.5px;
  background:var(--accent);border-radius:2px;
  transition:left .28s cubic-bezier(.2,.8,.2,1),right .28s cubic-bezier(.2,.8,.2,1);}
.tab.on{color:var(--ink);}
.tab.on span::after{left:0;right:0;}
.tab:active{opacity:.55;}
/* 录入 = 居中图标动作（区别于文字导航；激活态变陶土红，无底色） */
.tab-ic{position:relative;}
.tab-ic svg{width:24px;height:24px;transition:transform .12s,color .2s;}
.tab-ic:active svg{transform:scale(.92);}
.tab-ic.on svg{color:var(--accent);}
@media (prefers-reduced-motion: reduce){ .tab span::after{transition:none;} }

/* ---------- 录入 / 拍摄页 ---------- */
.cap-screen{background:#0E0D0C;}
.viewfinder{flex:1;position:relative;overflow:hidden;
  background:radial-gradient(80% 60% at 50% 38%,#262320,#131210 75%);}
.vf-top{position:absolute;top:0;left:0;right:0;padding:14px 20px;display:flex;
  align-items:center;justify-content:space-between;z-index:5;color:#fff;}
.vf-close{width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.35);
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);}
.vf-count{font-family:var(--mono);font-size:13px;letter-spacing:.06em;background:rgba(0,0,0,.4);
  padding:8px 14px;border-radius:999px;backdrop-filter:blur(6px);display:flex;align-items:center;gap:7px;}
.vf-count b{font-size:16px;}
.guide{position:absolute;top:50%;left:50%;transform:translate(-50%,-54%);
  width:60%;aspect-ratio:.7/1;border:2.5px dashed rgba(255,255,255,.45);border-radius:24px;
  transition:border-color .25s, box-shadow .25s;}
.guide.lock{border-color:var(--success);border-style:solid;
  box-shadow:0 0 0 4px rgba(63,143,91,.25),0 0 40px rgba(63,143,91,.35);}
.guide-label{position:absolute;bottom:-26px;left:0;right:0;text-align:center;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6);}
.vf-hint{position:absolute;top:84px;left:50%;transform:translateX(-50%);
  background:rgba(0,0,0,.55);color:#fff;font-size:12.5px;font-weight:500;padding:8px 16px;
  border-radius:999px;backdrop-filter:blur(6px);white-space:nowrap;transition:opacity .25s;}
.flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:8;}
.flash.go{animation:flash .35s ease;}
@keyframes flash{0%{opacity:0}25%{opacity:.55}100%{opacity:0}}

.cap-tray{position:absolute;left:0;right:0;bottom:0;z-index:6;padding:14px 16px 6px;}
.tray-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;min-height:54px;}
.tray-strip::-webkit-scrollbar{height:0;}
.tray-strip .tt{width:44px;height:54px;border-radius:9px;flex:none;border:1.5px solid rgba(255,255,255,.25);
  display:flex;align-items:center;justify-content:center;animation:pop .3s ease;}
.tray-strip .tt svg{width:50%;height:50%;}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.tray-empty{color:rgba(255,255,255,.45);font-size:12px;align-self:center;}

.cat-switch{display:flex;gap:7px;overflow-x:auto;padding:4px 0 12px;}
.cat-switch::-webkit-scrollbar{height:0;}
.cat-switch .cs{padding:7px 13px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;
  background:rgba(255,255,255,.12);color:rgba(255,255,255,.7);}
.cat-switch .cs.on{background:#fff;color:#121110;}
.cap-ctrl{display:flex;align-items:center;justify-content:space-between;padding:6px 26px 30px;}
.cap-ctrl .side{width:70px;color:rgba(255,255,255,.85);font-size:13px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:5px;}
.cap-ctrl .side svg{width:24px;height:24px;}
.cap-ctrl .side.dim{opacity:.4;}
.record{width:76px;height:76px;border-radius:50%;border:4px solid rgba(255,255,255,.85);
  display:flex;align-items:center;justify-content:center;flex:none;}
.record i{width:58px;height:58px;border-radius:50%;background:var(--accent);transition:.22s;}
.record.rec i{width:30px;height:30px;border-radius:9px;}

/* 确认页 */
.confirm{display:none;position:absolute;inset:0;z-index:40;flex-direction:column;background:var(--bg);}
.confirm.on{display:flex;}
.conf-head{padding:60px 22px 12px;}
.conf-list{flex:1;overflow-y:auto;padding:4px 18px 16px;display:flex;flex-direction:column;gap:12px;}
.conf-list::-webkit-scrollbar{width:0;}
.conf-card{display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:12px;}
.conf-card .cc-art{width:74px;height:92px;border-radius:var(--r-sm);flex:none;
  display:flex;align-items:center;justify-content:center;border:1px solid var(--line-2);}
.conf-card .cc-art svg{width:46%;height:46%;}
.cc-body{flex:1;min-width:0;}
.cc-cat{display:flex;align-items:center;gap:8px;margin-bottom:9px;}
select.cat{appearance:none;-webkit-appearance:none;font:inherit;font-size:14px;font-weight:600;
  background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:7px 30px 7px 12px;color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238A8A8E' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;}
.cc-flag{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--accent);text-transform:uppercase;}
.tagwrap{display:flex;flex-wrap:wrap;gap:6px;}
.tag{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;
  background:var(--paper);border:1px solid var(--line);font-size:12px;color:var(--ink-2);font-weight:500;}
.tag .x{color:var(--faint);font-size:14px;line-height:1;margin-left:1px;}
.tag.add{border-style:dashed;color:var(--muted);background:transparent;}
.tag .sw{width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.12);}
.conf-foot{flex:none;padding:14px 20px 30px;border-top:1px solid var(--line);background:var(--bg);}

/* ---------- 单品详情 ---------- */
.dt-top{position:absolute;top:54px;left:0;right:0;padding:10px 18px;display:flex;
  align-items:center;justify-content:space-between;z-index:30;}
.dt-hero{height:360px;display:flex;align-items:center;justify-content:center;position:relative;flex:none;overflow:hidden;
  background:linear-gradient(168deg,color-mix(in srgb,var(--c,#dcd7cf) 9%,#fff),color-mix(in srgb,var(--c,#dcd7cf) 24%,#fff));}
/* 标本台：白色聚光 + 单品落影，让单品成为画面而非占位 */
.dt-hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(56% 46% at 50% 40%, rgba(255,255,255,.5), rgba(255,255,255,0) 72%);}
.dt-hero #dt-icon{position:relative;z-index:0;}
.dt-hero svg{width:150px;height:150px;filter:drop-shadow(0 12px 20px rgba(28,28,30,.16));}
/* 标本台主图：真实单品照，居中悬浮于同色调底，落影增强立体感 */
.dt-photo{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:contain;
  padding:30px 30px 46px;box-sizing:border-box;filter:drop-shadow(0 16px 26px rgba(28,28,30,.2));}
.dt-hero .hk{position:absolute;left:22px;bottom:16px;z-index:2;}
.dt-cap{position:absolute;right:22px;bottom:16px;z-index:2;display:flex;align-items:center;gap:7px;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
.dt-cap .sw{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.15);}
.dt-body{padding:20px 22px 0;}
.dt-name{font-family:var(--serif);font-size:27px;line-height:1.08;letter-spacing:-.01em;}
.dt-meta-row{display:flex;align-items:center;gap:10px;margin-top:8px;color:var(--muted);font-size:13px;}
.sec-label{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  margin:24px 0 12px;display:flex;align-items:center;gap:10px;}
.sec-label::after{content:"";flex:1;height:1px;background:var(--line);}
.attr-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;}
.attr{background:var(--surface);padding:13px 15px;}
.attr .k{font-size:11px;color:var(--muted);}
.attr .v{font-size:15px;font-weight:600;margin-top:3px;display:flex;align-items:center;gap:7px;}
.outfit-strip{display:flex;gap:12px;overflow-x:auto;padding:2px 22px 4px;margin:0 -22px;}
.outfit-strip::-webkit-scrollbar{height:0;}
.outfit-card{width:138px;flex:none;}
.outfit-card .img{width:138px;height:184px;border-radius:var(--r-md);overflow:hidden;background:var(--paper);border:1px solid var(--line);}
.outfit-card .img img{width:100%;height:100%;object-fit:cover;}
.outfit-card .oc-d{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--muted);margin-top:9px;}
.outfit-card .oc-t{font-size:12.5px;font-weight:600;letter-spacing:-.01em;margin-top:3px;}
.outfit-card .oc-s{font-size:11px;color:var(--muted);margin-top:2px;line-height:1.35;}
.dt-actions{display:flex;gap:10px;padding:22px 22px 30px;}
.dt-actions .btn-line{min-height:48px;font-size:14px;}
.danger{color:var(--accent);}

/* ---------- 今日推荐 / 首页 ---------- */
/* 状态 2 不滚动：scroll 纵向 flex，大图吃满剩余高度，其余固定；状态 3（已确定）内容长，仍正常滚动 */
#today .scroll{display:flex;flex-direction:column;}
#today .scroll > *{flex:0 0 auto;}
#today .scroll > .look-hero{flex:1 1 auto;min-height:0;}   /* 大图吃满剩余高度（特异性需高于上一行，否则塌成 0）*/
.tdy-head{padding:13px 22px 0;}
.tdy-ctx{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);
  font-size:11px;letter-spacing:.08em;color:var(--muted);}
.tdy-ctx .w{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);
  background:var(--paper);border:1px solid var(--line);padding:5px 11px;border-radius:999px;}
.tdy-ctx .w svg{width:14px;height:14px;}
/* 今日日程 · AI 推荐依据（时间 + 事项）；确定后隐藏 */
.tdy-sched{display:flex;align-items:center;gap:9px;margin:9px 22px 0;
  font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--ink-2);}
.tdy-sched > svg{width:14px;height:14px;color:var(--muted);flex:none;}
.tdy-sched .sch-ev b{font-weight:600;color:var(--ink);margin-right:4px;}
.tdy-sched .sch-dot{color:var(--line);}
.confirmed .tdy-sched{display:none;}

.look-hero{position:relative;margin:14px 22px 0;border-radius:var(--r-xl);overflow:hidden;
  flex:1 1 auto;min-height:0;background:var(--paper);border:1px solid var(--line);touch-action:pan-y;
  box-shadow:0 20px 46px -26px rgba(40,30,26,.45);}
.look-hero.hero-contain{background:#fff;}
/* 穿搭轮播：可左右滑/点点切换，每次「换一套」追加一张卡 */
.lh-track{display:flex;height:100%;}
.lh-track.anim{transition:transform .42s cubic-bezier(.2,.8,.2,1);}
.lh-slide{flex:0 0 100%;height:100%;position:relative;overflow:hidden;}
.lh-slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:3%;box-sizing:border-box;}
.lh-slide.is-tryon img{object-fit:cover;padding:0;}
/* 指示点（≥2 张才显示）· 图片内右下角，覆盖在渐变上 */
.lh-dots{position:absolute;right:14px;bottom:16px;z-index:3;display:none;gap:6px;align-items:center;}
.lh-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.5);
  box-shadow:0 1px 3px rgba(0,0,0,.3);transition:width .25s,background .25s;}
.lh-dot.on{width:18px;border-radius:3px;background:#fff;}
/* 换装用尽 · 付费底部 sheet */
.paywall{position:absolute;inset:0;z-index:300;display:flex;align-items:flex-end;
  background:rgba(20,16,14,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.paywall[hidden]{display:none;}
.pw-card{width:100%;background:var(--bg);border-radius:26px 26px 0 0;padding:28px 26px 36px;
  text-align:center;box-shadow:0 -20px 50px -20px rgba(0,0,0,.4);animation:pwUp .32s cubic-bezier(.2,.8,.2,1) both;}
.pw-k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);}
.pw-t{font-family:var(--serif);font-size:24px;letter-spacing:-.01em;color:var(--ink);margin-top:10px;}
.pw-s{font-size:14px;line-height:1.55;color:var(--ink-2);margin:8px 0 20px;text-wrap:pretty;}
.pw-card .btn{box-shadow:0 14px 30px -15px rgba(194,69,54,.55);}
.pw-skip{display:block;width:100%;margin-top:12px;padding:10px;font-size:13px;color:var(--muted);letter-spacing:.02em;}
@keyframes pwUp{from{transform:translateY(100%);}to{transform:none;}}
@media (prefers-reduced-motion:reduce){ .pw-card{animation:none;} }
/* 上身 · 选择模特 底部弹窗 */
.model-sheet{position:absolute;inset:0;z-index:300;display:flex;align-items:flex-end;
  background:rgba(20,16,14,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);}
.model-sheet[hidden]{display:none;}
.ms-card{width:100%;background:var(--bg);border-radius:26px 26px 0 0;
  padding:12px 22px calc(18px + env(safe-area-inset-bottom,0));
  box-shadow:0 -20px 50px -20px rgba(0,0,0,.4);animation:pwUp .34s cubic-bezier(.2,.8,.2,1) both;}
.ms-grip{display:block;width:38px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 12px;}
.ms-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;}
.ms-k{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.ms-t{font-family:var(--serif);font-size:21px;letter-spacing:-.01em;color:var(--ink);margin-top:3px;}
.ms-x{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  color:var(--ink-2);display:flex;align-items:center;justify-content:center;transition:transform .12s;}
.ms-x:active{transform:scale(.92);}
.ms-x svg{width:15px;height:15px;}
.ms-sub{font-size:13px;line-height:1.5;color:var(--ink-2);margin:8px 0 13px;}
.ms-grid{display:flex;gap:11px;overflow-x:auto;margin:0 -22px 16px;padding:2px 22px 8px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.ms-grid::-webkit-scrollbar{display:none;}
.ms-card-opt{flex:0 0 152px;display:flex;flex-direction:column;align-items:center;text-align:center;color:var(--ink);}
.ms-ph{position:relative;width:100%;aspect-ratio:3/4;border-radius:13px;overflow:hidden;
  background:linear-gradient(160deg,var(--paper),var(--surface));border:1px solid var(--line);
  transition:border-color .15s,box-shadow .15s;}
.ms-ph > img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;z-index:1;}
/* 自定义卡（拍照 / 上传自己的照片） */
.ms-ph-cst{background:none;border:1.5px dashed var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--muted);transition:border-color .15s,color .15s;}
.ms-ph-cst svg{width:38px;height:38px;}
.ms-custom:active .ms-ph-cst{border-color:var(--ink-2);color:var(--ink-2);transform:none;}
.ms-card-opt.on .ms-ph{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent);}
.ms-tick{position:absolute;top:8px;right:8px;z-index:2;width:22px;height:22px;border-radius:50%;background:var(--accent);
  color:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.6);transition:.18s;
  box-shadow:0 4px 10px -4px rgba(194,69,54,.7);}
.ms-tick svg{width:13px;height:13px;}
.ms-card-opt.on .ms-tick{opacity:1;transform:scale(1);}
.ms-meta{display:flex;align-items:baseline;justify-content:center;gap:6px;margin-top:9px;white-space:nowrap;}
.ms-nm{font-size:13.5px;font-weight:600;letter-spacing:-.01em;color:var(--ink);}
.ms-sp{font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:var(--muted);}
.ms-go{width:100%;margin-top:2px;transition:opacity .2s;}
.ms-go:disabled{opacity:.38;pointer-events:none;box-shadow:none;}
/* 自定义模特子面板 */
.ms-back{flex:none;width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  color:var(--ink-2);display:flex;align-items:center;justify-content:center;transition:transform .12s;}
.ms-back:active{transform:scale(.92);}
.ms-back svg{width:17px;height:17px;}
.ms-back-sp{flex:none;width:32px;height:32px;}
.ms-cst-panel .ms-t{flex:1;text-align:center;}
.ms-cst-shot{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:13px;
  border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);color:var(--ink);
  font-size:14px;font-weight:600;letter-spacing:.01em;transition:transform .12s,background .15s;}
.ms-cst-shot:active{transform:scale(.98);background:var(--paper);}
.ms-cst-shot svg{width:18px;height:18px;color:var(--ink-2);}
.ms-or{display:flex;align-items:center;gap:12px;margin:16px 0 4px;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--muted);}
.ms-or::before,.ms-or::after{content:"";flex:1;height:1px;background:var(--line);}
.ms-field{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);}
.ms-fl{font-size:14px;color:var(--ink);font-weight:500;letter-spacing:-.01em;}
.ms-step{display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;background:var(--surface);overflow:hidden;}
.ms-step-b{width:38px;height:36px;font-size:18px;line-height:1;color:var(--ink);background:none;border:0;display:flex;align-items:center;justify-content:center;transition:background .12s;}
.ms-step-b:active{background:var(--paper);}
.ms-step-v{min-width:62px;text-align:center;font-family:var(--mono);font-size:11px;color:var(--muted);}
.ms-step-v b{font-size:15px;color:var(--ink);font-weight:600;margin-right:2px;}
.ms-tones{display:flex;gap:10px;}
.ms-tone{width:30px;height:30px;border-radius:50%;border:1px solid rgba(0,0,0,.12);transition:transform .12s,box-shadow .15s;}
.ms-tone:active{transform:scale(.92);}
.ms-tone.on{box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px var(--accent);}
#ms-cst-go{width:100%;margin-top:18px;}
@media (prefers-reduced-motion:reduce){ .ms-card{animation:none;} }
.lh-grad{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(20,16,14,.8) 0%,rgba(20,16,14,.2) 44%,rgba(20,16,14,0) 66%);}
/* 进入整套穿搭详情的入口（图片右上角）· 磨砂胶囊 + 文字 + 收进箭头 */
.lh-detail{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:4px;
  height:32px;padding:0 7px 0 13px;border-radius:999px;
  background:rgba(20,16,14,.44);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.22);color:#fff;
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;white-space:nowrap;
  box-shadow:0 6px 16px -8px rgba(0,0,0,.5);transition:transform .14s,background .2s;}
.lh-detail svg{width:14px;height:14px;opacity:.85;}
.lh-detail:active{transform:scale(.96);}
/* 换一套 · 重新搭配加载态（编辑感：衬线文案 + 极细陶土红扫线） */
.lh-loading{position:absolute;inset:0;z-index:5;border-radius:inherit;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;
  background:rgba(250,250,248,.82);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);}
.lh-loading[hidden]{display:none;}
.lh-loading .ld-tx{font-family:var(--serif);font-size:19px;letter-spacing:.02em;color:var(--ink);}
.lh-loading .ld-bar{width:84px;height:2px;border-radius:2px;background:rgba(40,30,26,.1);overflow:hidden;}
.lh-loading .ld-bar > i{display:block;height:100%;width:42%;border-radius:2px;background:var(--accent);
  animation:ldSlide 1.05s ease-in-out infinite;}
@keyframes ldSlide{0%{transform:translateX(-110%);}100%{transform:translateX(255%);}}
@media (prefers-reduced-motion:reduce){ .lh-loading .ld-bar > i{animation:none;width:100%;} }
.lh-meta{position:absolute;left:18px;right:18px;bottom:16px;color:#fff;}
.lh-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82);}
.lh-title{font-family:var(--serif);font-size:25px;line-height:1.08;letter-spacing:-.01em;margin-top:6px;}
.lh-items{display:flex;gap:7px;margin-top:13px;}
.lh-items .it{width:38px;height:38px;border-radius:11px;flex:none;display:flex;align-items:center;justify-content:center;
  background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 4px 12px -6px rgba(0,0,0,.4);}
.lh-items .it svg{width:58%;height:58%;}

.tdy-note{margin:14px 22px 0;padding-top:11px;border-top:1px solid var(--line);}
.tdy-note-lb{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.tdy-reason{margin:0;font-size:14px;line-height:1.6;color:var(--ink-2);text-wrap:pretty;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
  min-height:4.8em;}

.tdy-acts{display:flex;gap:10px;padding:14px 22px 0;}
.tdy-act{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;
  font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ink-2);}
.tdy-act .b{width:54px;height:54px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;color:var(--ink);transition:transform .12s;}
.tdy-act .b svg{width:23px;height:23px;}
.tdy-act:active .b{transform:scale(.93);}
.tdy-act:disabled{opacity:.4;pointer-events:none;}
/* 状态 3 · 今日穿着已确定（同页切换，默认隐藏，.confirmed 时显示） */
.lh-badge{display:none;position:absolute;top:14px;left:14px;z-index:3;align-items:center;gap:5px;
  padding:6px 11px 6px 9px;border-radius:999px;color:#fff;
  background:rgba(20,16,14,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.22);font-family:var(--mono);font-size:10px;letter-spacing:.14em;}
.lh-badge svg{width:13px;height:13px;}
.confirmed .lh-badge{display:inline-flex;}
.tdy-confirm{display:none;align-items:center;gap:7px;margin:14px 22px 0;
  font-size:13px;letter-spacing:.01em;color:var(--ink-2);}
.tdy-confirm svg{width:15px;height:15px;flex:none;color:var(--accent);}
.confirmed .tdy-confirm{display:flex;}
.confirmed .lh-dots{display:none!important;}
/* 状态 3 内容首页：隐藏推荐视图，显示「已定条 + 功能 + 时尚内容」 */
.confirmed .look-hero,.confirmed .tdy-note,.confirmed .tdy-acts{display:none;}
#done-view{display:none;}
.confirmed #done-view{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;}   /* 整屏铺满，大图卡堆吃掉剩余高度，不滚动 */
.confirmed .tdy-head{display:none;}   /* 日期天气并入下方已定卡，不再单列在顶部 */
.done-bar{display:flex;flex-direction:column;margin:16px 22px 0;padding:12px 13px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 10px 26px -18px rgba(40,30,26,.4);}
.done-wx{padding-bottom:11px;border-bottom:1px solid var(--line);}
.done-main{display:flex;align-items:center;gap:12px;padding-top:11px;}
.done-bar img{width:46px;height:58px;border-radius:10px;object-fit:cover;flex:none;background:var(--paper);border:1px solid var(--line);}
.done-bar-tx{flex:1;min-width:0;}
.done-k{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--accent);}
.done-k svg{width:12px;height:12px;}
.done-t{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-top:3px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.done-redo{flex:none;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--ink-2);
  padding:8px 13px;border:1px solid var(--line);border-radius:999px;background:var(--bg);transition:transform .12s;}
.done-redo:active{transform:scale(.96);}
.func-row{display:flex;gap:10px;margin:14px 22px 0;}
.func{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px 4px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  font-size:11px;font-weight:600;letter-spacing:0;color:var(--ink);white-space:nowrap;transition:transform .12s,background .15s;}
.func:active{transform:scale(.97);background:var(--paper);}
.func .fi{width:23px;height:23px;color:var(--ink);}
.func .fi svg{width:100%;height:100%;}
/* 时尚资讯 · 大图杂志卡堆（左滑喜欢 / 右滑跳过） */
.feed-head{display:flex;align-items:center;gap:11px;margin:14px 22px 10px;}
.feed-head .fh-t{font-family:var(--serif);font-size:19px;letter-spacing:-.01em;color:var(--ink);}
.feed-head .fh-k{font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.feed-head::after{content:"";flex:1;height:1px;background:var(--line);}
.zine-deck{position:relative;margin:0 22px;flex:1 1 auto;min-height:150px;}
.zine-card{position:absolute;inset:0;border-radius:var(--r-xl);overflow:hidden;background:var(--paper);
  border:1px solid var(--line);box-shadow:0 18px 44px -22px rgba(40,30,26,.5);
  will-change:transform;touch-action:pan-y;-webkit-user-select:none;user-select:none;cursor:grab;}
.zine-card.behind{transform:scale(.94) translateY(14px);}
.zine-card.top:active{cursor:grabbing;}
.zine-card.go{pointer-events:none;}
.zine-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.zc-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,16,14,.84) 0%,rgba(20,16,14,.18) 48%,transparent 70%);}
.zc-tx{position:absolute;left:20px;right:20px;bottom:22px;display:flex;flex-direction:column;color:#fff;}
.zc-k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.82);}
.zc-h{font-family:var(--serif);font-size:26px;line-height:1.14;letter-spacing:-.01em;margin-top:8px;}
.zc-meta{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:rgba(255,255,255,.72);margin-top:12px;}
.zc-meta svg{width:12px;height:12px;flex:none;}
/* 拖拽时浮现的「喜欢 / 跳过」印章 */
.zc-stamp{position:absolute;top:20px;font-family:var(--mono);font-size:17px;font-weight:700;letter-spacing:.16em;
  padding:6px 15px;border:2.5px solid;border-radius:10px;opacity:0;pointer-events:none;color:#fff;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);}
.zc-like{left:18px;border-color:var(--accent);background:rgba(194,69,54,.34);transform:rotate(-13deg);}
.zc-skip{right:18px;border-color:rgba(255,255,255,.88);background:rgba(20,16,14,.28);transform:rotate(13deg);}
/* 看完后的空态 */
.zine-empty{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:7px;
  text-align:center;font-family:var(--serif);font-size:18px;color:var(--ink-2);
  background:var(--surface);border-radius:var(--r-xl);border:1px dashed var(--line);}
.zine-empty.on{display:flex;}
.zine-empty span{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);}
/* 首次操作引导 · 覆盖在卡堆上，首次滑动后淡出 */
.zine-coach{position:absolute;inset:0;z-index:6;pointer-events:none;border-radius:var(--r-xl);overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;text-align:center;color:#fff;
  background:rgba(20,16,14,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:opacity .45s ease;}
.zine-coach.gone{opacity:0;}
.zcc-hand{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.32);animation:zSwipe 1.9s ease-in-out infinite;}
.zcc-hand svg{width:26px;height:26px;}
@keyframes zSwipe{0%,100%{transform:translateX(-22px);}50%{transform:translateX(22px);}}
.zcc-cap{font-family:var(--serif);font-size:19px;letter-spacing:.01em;}
.zcc-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;color:rgba(255,255,255,.78);}
@media (prefers-reduced-motion:reduce){ .zine-card{transition:none!important;} .zcc-hand{animation:none;} }

/* ===== 穿搭详情 · 全屏推入 sheet ===== */
/* 穿搭详情 · 底部弹窗（遮罩淡入 + 卡片上滑） */
.look-sheet{position:absolute;inset:0;z-index:200;display:flex;align-items:flex-end;
  background:rgba(20,16,14,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
  opacity:0;visibility:hidden;transition:opacity .32s ease,visibility 0s linear .32s;}
.look-sheet.open{opacity:1;visibility:visible;transition:opacity .32s ease,visibility 0s;}
.ls-card{position:relative;width:100%;max-height:90%;display:flex;flex-direction:column;background:var(--bg);
  border-radius:26px 26px 0 0;overflow:hidden;box-shadow:0 -20px 50px -20px rgba(0,0,0,.4);
  transform:translateY(100%);transition:transform .38s cubic-bezier(.2,.8,.2,1);}
.look-sheet.open .ls-card{transform:none;}
.ls-grip{display:block;width:38px;height:4px;border-radius:2px;background:var(--line);margin:10px auto 2px;}
.ls-bar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 16px 12px;border-bottom:1px solid var(--line);background:var(--bg);}
.ls-bar-t{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);}
.ls-back,.ls-fav{flex:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--line);background:var(--surface);color:var(--ink);transition:transform .12s,color .2s,border-color .2s;}
.ls-back:active,.ls-fav:active{transform:scale(.92);}
.ls-back svg,.ls-fav svg{width:18px;height:18px;}
.ls-fav.on{color:var(--accent);border-color:var(--accent);}
.ls-fav.on svg{fill:var(--accent);}
.ls-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;}
.ls-hero{margin:16px 22px 0;aspect-ratio:4/5;border-radius:var(--r-xl);overflow:hidden;
  background:#fff;border:1px solid var(--line);box-shadow:0 18px 44px -24px rgba(40,30,26,.45);}
.ls-hero img{width:100%;height:100%;object-fit:contain;padding:4%;box-sizing:border-box;}
.ls-head{margin:18px 22px 0;}
.ls-k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);}
.ls-title{font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.12;letter-spacing:-.01em;color:var(--ink);margin:7px 0 0;}
.ls-meta{display:flex;gap:16px;margin-top:11px;font-family:var(--mono);font-size:11px;letter-spacing:.02em;color:var(--ink-2);}
.ls-meta span{display:inline-flex;align-items:center;gap:5px;}
.ls-meta svg{width:13px;height:13px;color:var(--muted);}
.ls-reason{margin:14px 22px 0;font-size:14px;line-height:1.65;color:var(--ink-2);text-wrap:pretty;}
.ls-sec{display:flex;align-items:center;gap:10px;margin:26px 22px 12px;
  font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.ls-sec::after{content:"";flex:1;height:1px;background:var(--line);}
.ls-items{display:flex;flex-direction:column;margin:0 22px;}
.ls-item{display:flex;align-items:center;gap:13px;padding:12px 0;border-top:1px solid var(--line);text-align:left;color:var(--ink);transition:opacity .15s;}
.ls-items .ls-item:first-child{border-top:none;}
.ls-item:active{opacity:.55;}
.ls-ic{flex:none;width:44px;height:44px;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.05);}
.ls-ic img{width:100%;height:100%;object-fit:cover;display:block;}
.ls-ic svg{width:54%;height:54%;}
.ls-it-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ls-it-n{font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.ls-it-c{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);}
.ls-it-go{width:18px;height:18px;color:var(--line);flex:none;}
.ls-tips{margin:0 22px;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
.ls-tips li{position:relative;padding-left:17px;font-size:13px;line-height:1.55;color:var(--ink-2);text-wrap:pretty;}
.ls-tips li::before{content:"";position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--muted);}
.ls-foot{flex:none;padding:12px 22px calc(18px + env(safe-area-inset-bottom,0));border-top:1px solid var(--line);background:var(--bg);}
.ls-foot .btn{width:100%;}
@media (prefers-reduced-motion:reduce){ .look-sheet,.ls-card{transition:visibility 0s;} }

/* ===== 就穿这套 · 确定转场（盖章 → 揭示首页） ===== */
.confirm-fx{position:absolute;inset:0;z-index:260;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:24px;background:var(--paper);
  opacity:0;visibility:hidden;transition:opacity .42s ease,visibility 0s linear .42s;}
.confirm-fx.play{opacity:1;visibility:visible;transition:opacity .3s ease;}
.confirm-fx.out{opacity:0;transition:opacity .44s ease;}
.cfx-card{position:relative;width:186px;aspect-ratio:4/5;
  transform:scale(.82) translateY(16px);opacity:0;}
.confirm-fx.play .cfx-card{animation:cfxCard .56s cubic-bezier(.2,.85,.25,1) .06s both;}
.cfx-card img{width:100%;height:100%;object-fit:cover;border-radius:18px;background:#fff;
  border:1px solid var(--line);box-shadow:0 26px 54px -24px rgba(40,30,26,.55);}
@keyframes cfxCard{to{transform:none;opacity:1;}}
.cfx-seal{position:absolute;right:-13px;bottom:-13px;width:52px;height:52px;border-radius:50%;
  background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 12px 26px -8px rgba(194,69,54,.7);transform:scale(0);}
.confirm-fx.play .cfx-seal{animation:cfxSeal .52s cubic-bezier(.2,1.45,.4,1) .44s both;}
.cfx-seal svg{width:25px;height:25px;}
.cfx-seal path{stroke-dasharray:30;stroke-dashoffset:30;}
.confirm-fx.play .cfx-seal path{animation:cfxCheck .4s ease .66s both;}
@keyframes cfxSeal{0%{transform:scale(0) rotate(-20deg);}62%{transform:scale(1.12) rotate(5deg);}100%{transform:scale(1) rotate(0);}}
@keyframes cfxCheck{to{stroke-dashoffset:0;}}
.cfx-tx{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;
  opacity:0;transform:translateY(10px);}
.confirm-fx.play .cfx-tx{animation:cfxText .5s ease .56s both;}
@keyframes cfxText{to{opacity:1;transform:none;}}
.cfx-k{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);}
.cfx-t{font-family:var(--serif);font-size:25px;letter-spacing:-.01em;color:var(--ink);}
.cfx-sub{font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted);}
/* 已确定首页 · 入场（元素依次升入，场景渐次成形）
   用 backwards 填充：仅延迟期保持隐藏态，动画结束后交还基础样式，
   不会把 transform:none 永久固定（否则会压住 .func:active 的按压缩放） */
.confirmed .done-bar,
.confirmed .func,
.confirmed .feed-head,
.confirmed .zine-deck{animation:doneRise .52s cubic-bezier(.2,.82,.24,1) backwards;}
.confirmed .done-bar{animation-delay:.06s;}
.confirmed .func-row .func:nth-child(1){animation-delay:.15s;}
.confirmed .func-row .func:nth-child(2){animation-delay:.20s;}
.confirmed .func-row .func:nth-child(3){animation-delay:.25s;}
.confirmed .func-row .func:nth-child(4){animation-delay:.30s;}
.confirmed .feed-head{animation-delay:.33s;}
.confirmed .zine-deck{animation-delay:.40s;}
@keyframes doneRise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){
  .confirm-fx,.confirm-fx *{animation:none!important;transition:opacity .2s ease!important;}
  .confirmed .done-bar,.confirmed .func,.confirmed .feed-head,.confirmed .zine-deck{animation:none!important;}
}
/* ===== 今日页面 · 空衣橱（冷启动） ===== */
#today-empty .scroll{display:flex;flex-direction:column;}
.ew-stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:0 34px;}
.ew-art{width:142px;height:114px;color:var(--ink);margin-bottom:24px;
  animation:ewRise .56s cubic-bezier(.2,.8,.2,1) .05s backwards;}
.ew-art svg{width:100%;height:100%;}
.ew-k{font-family:var(--mono);font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);
  animation:ewRise .5s ease .15s backwards;}
.ew-h{font-family:var(--serif);font-weight:400;font-size:32px;line-height:1.08;letter-spacing:-.02em;color:var(--ink);
  margin:11px 0 0;animation:ewRise .5s ease .21s backwards;}
.ew-p{font-size:14px;line-height:1.55;color:var(--muted);margin:10px 0 0;text-wrap:pretty;
  animation:ewRise .5s ease .28s backwards;}
.ew-foot{flex:none;padding:0 22px 14px;animation:ewRise .5s ease .36s backwards;}
.ew-cta{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:16px;
  border-radius:var(--r-lg);background:var(--accent);color:#fff;border:0;
  font-size:15px;font-weight:600;letter-spacing:.02em;
  box-shadow:0 16px 32px -16px rgba(194,69,54,.6);transition:transform .14s;}
.ew-cta:active{transform:scale(.98);}
.ew-cta svg{width:19px;height:19px;}
.ew-alt{display:block;width:100%;text-align:center;margin-top:13px;padding:6px;
  font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--muted);}
.ew-alt u{text-decoration:none;color:var(--ink-2);border-bottom:1px solid var(--line);padding-bottom:1px;}
/* 先逛逛 · 时尚年鉴（空衣橱时的内容去处，横滑封面） */
.ew-browse{flex:none;padding:14px 0 14px;border-top:1px solid var(--line);
  animation:ewRise .5s ease .44s backwards;}
.ewb-head{display:flex;align-items:baseline;gap:10px;margin:0 22px 11px;}
.ewb-head .ewb-t{font-family:var(--serif);font-size:17px;letter-spacing:-.01em;color:var(--ink);}
.ewb-head .ewb-k{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.ewb-strip{display:flex;gap:11px;overflow-x:auto;padding:0 22px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.ewb-strip::-webkit-scrollbar{display:none;}
.ewb-card{flex:0 0 92px;color:var(--ink);transition:transform .12s;}
.ewb-card:active{transform:scale(.97);}
.ewb-card img{width:92px;aspect-ratio:3/4;object-fit:cover;border-radius:12px;display:block;
  background:var(--paper);border:1px solid var(--line);}
.ewb-cap{display:block;margin-top:7px;font-size:11px;line-height:1.3;letter-spacing:-.01em;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
@keyframes ewRise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){ .ew-art,.ew-k,.ew-h,.ew-p,.ew-foot,.ew-browse{animation:none!important;} }

/* 封面故事 · 图片杂志大图 */
.mag-cover{display:block;position:relative;margin:18px 22px 0;border-radius:var(--r-xl);overflow:hidden;
  aspect-ratio:3/4;background:var(--paper);box-shadow:0 16px 40px -22px rgba(40,30,26,.45);transition:transform .12s;}
.mag-cover:active{transform:scale(.99);}
.mag-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.mag-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,16,14,.82) 0%,rgba(20,16,14,.15) 50%,transparent 72%);}
.mag-tx{position:absolute;left:20px;right:20px;bottom:20px;display:flex;flex-direction:column;color:#fff;}
.mag-k{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.82);}
.mag-h{font-family:var(--serif);font-size:27px;line-height:1.12;letter-spacing:-.01em;margin-top:8px;}
.mag-more{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#fff;opacity:.9;margin-top:12px;}
/* 明星 / 博主同款 · 横向条 */
.star-strip{display:flex;gap:12px;overflow-x:auto;padding:0 22px 2px;scrollbar-width:none;}
.star-strip::-webkit-scrollbar{display:none;}
.star-card{flex:0 0 132px;text-align:left;color:var(--ink);transition:transform .12s;}
.star-card:active{transform:scale(.98);}
.star-img{display:block;width:132px;aspect-ratio:3/4;border-radius:var(--r-md);overflow:hidden;background:var(--paper);border:1px solid var(--line);}
.star-img img{width:100%;height:100%;object-fit:cover;}
.star-name{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.04em;font-weight:600;color:var(--ink);margin-top:8px;}
.star-t{display:block;font-size:12px;color:var(--ink-2);margin-top:2px;letter-spacing:-.01em;}
.star-go{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;color:var(--ink-2);margin-top:5px;}
.tdy-act.primary{color:var(--ink);}
.tdy-act.primary .b{background:var(--accent);border-color:var(--accent);color:#fff;
  box-shadow:0 8px 18px -8px rgba(194,69,54,.7);}

.alt-head{display:flex;align-items:center;gap:10px;margin:28px 22px 0;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
.alt-head::after{content:"";flex:1;height:1px;background:var(--line);}
.alt-strip{display:flex;gap:12px;overflow-x:auto;padding:12px 22px 2px;}
.alt-strip::-webkit-scrollbar{height:0;}
.alt-card{width:128px;flex:none;text-align:left;transition:transform .12s;}
.alt-card:active{transform:scale(.98);}
.alt-card .ac-img{display:block;width:128px;height:160px;border-radius:var(--r-md);overflow:hidden;
  background:var(--paper);border:1px solid var(--line);}
.alt-card .ac-img img{width:100%;height:100%;object-fit:cover;}
.alt-card .ac-t{display:block;font-size:13px;font-weight:600;margin-top:8px;letter-spacing:-.01em;}
.alt-card .ac-o{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px;}

.quick-row{display:flex;gap:12px;padding:22px 22px 0;}
.quick-tile{flex:1;display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:14px;color:var(--ink);transition:transform .12s,background .15s;}
.quick-tile:active{transform:scale(.985);background:var(--paper);}
.quick-tile svg{width:22px;height:22px;flex:none;}
.quick-tile .qt{display:block;font-size:13px;font-weight:600;letter-spacing:-.01em;}
.quick-tile .qs{display:block;font-size:11px;color:var(--muted);margin-top:2px;}

/* ---------- 底部弹层 / toast ---------- */
.sheet-mask{position:absolute;inset:0;background:rgba(20,16,14,.4);opacity:0;pointer-events:none;
  transition:opacity .25s;z-index:80;}
.sheet-mask.on{opacity:1;pointer-events:auto;}
.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--surface);
  border-radius:24px 24px 0 0;padding:10px 22px 30px;transform:translateY(102%);transition:transform .3s cubic-bezier(.2,.8,.2,1);z-index:81;}
.sheet.on{transform:translateY(0);}
.sheet .grab{width:38px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 14px;}
.sheet h3{font-size:17px;font-weight:600;margin-bottom:4px;}
.sheet .opt{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;}
.toast{position:absolute;left:50%;bottom:96px;transform:translate(-50%,20px);
  background:var(--ink);color:#fff;font-size:13px;font-weight:500;padding:12px 20px;border-radius:14px;
  opacity:0;pointer-events:none;transition:.28s;z-index:90;display:flex;align-items:center;gap:9px;white-space:nowrap;
  box-shadow:0 12px 30px -10px rgba(0,0,0,.5);}
.toast.on{opacity:1;transform:translate(-50%,0);}
.toast svg{width:17px;height:17px;color:#7BD49A;}

/* ============================================================
   启动页 / Onboarding 引导
   ============================================================ */
.brand-mark{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.24em;
  text-transform:uppercase;color:var(--accent);}

/* 00 启动页 —— 图形标 + Didot 衬线字标的时装屋锁定，安静的奢侈感 */
.launch{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;}
.app-icon{width:118px;height:118px;border-radius:28px;overflow:hidden;
  border:1px solid var(--line);}
.app-icon img{width:100%;height:100%;object-fit:cover;}
.launch-word{margin-top:34px;font-family:var(--serif);font-size:30px;font-weight:400;
  letter-spacing:.24em;text-indent:.24em;text-transform:uppercase;color:var(--accent);}
.launch-rule{width:34px;height:1px;background:var(--line);margin-top:20px;}
.launch-sub{position:absolute;bottom:56px;left:0;right:0;text-align:center;
  font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--muted);}
.launch-hint{position:absolute;bottom:30px;left:0;right:0;text-align:center;
  font-size:10px;letter-spacing:.22em;color:var(--faint);}

/* 编排式开场：图标落定 → 字标字距由宽收拢 → 细线展开 → 副标淡入（尊重 reduced-motion） */
@media (prefers-reduced-motion: no-preference){
  .launch .app-icon{animation:lhIcon .7s cubic-bezier(.2,.7,.2,1) .05s both;}
  .launch-word{animation:lhWord 1s cubic-bezier(.2,0,0,1) .38s both;}
  .launch-rule{transform-origin:center;animation:lhRule .7s cubic-bezier(.2,0,0,1) .9s both;}
  .launch-sub{animation:lhFade .8s ease .98s both;}
  .launch-hint{opacity:0;animation:lhHintIn .8s ease 1.5s forwards, lhHintPulse 2.8s ease 2.3s infinite;}
}
@keyframes lhIcon{from{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:none}}
@keyframes lhWord{from{opacity:0;letter-spacing:.52em;transform:translateY(4px)}to{opacity:1;letter-spacing:.24em;transform:none}}
@keyframes lhRule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes lhFade{from{opacity:0}to{opacity:1}}
@keyframes lhHintIn{from{opacity:0}to{opacity:.45}}
@keyframes lhHintPulse{0%,100%{opacity:.28}50%{opacity:.55}}

/* 引导通用 */
.onb{flex:1;display:flex;flex-direction:column;padding:14px 0 0;}
.onb-title{font-size:25px;font-weight:300;line-height:1.3;letter-spacing:.005em;margin-top:22px;color:var(--ink-2);padding:0 30px;}
.onb-title b{display:block;font-family:var(--serif);font-size:36px;font-weight:500;line-height:1.14;letter-spacing:-.005em;color:var(--ink);margin-top:5px;}
.onb-sub{font-size:15px;line-height:1.5;color:var(--ink-2);margin-top:13px;letter-spacing:.005em;padding:0 30px;}
/* 缩小居中：按可用高度收窄、水平居中的竖向浮动卡（保持 720/1254 比例不裁切） */
.media-card{flex:1 1 0;min-height:0;width:auto;max-width:100%;aspect-ratio:720/1254;align-self:center;margin:18px auto 0;
  border-radius:34px;overflow:hidden;background:var(--paper);position:relative;
  box-shadow:0 12px 32px -22px rgba(40,30,26,.38),inset 0 0 0 1px rgba(40,30,26,.05);}
.media-card>img,.media-card>video{width:100%;height:100%;object-fit:cover;position:relative;z-index:1;}
/* 媒体卡加载/错误兜底：图未就位或失败时显示静默占位，不露破图 */
.media-fallback{position:absolute;inset:0;z-index:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:12px;color:var(--faint);
  background:linear-gradient(160deg,#fff,var(--paper));}
.media-fallback svg{width:54px;height:54px;}
.media-fallback span{font-size:12px;letter-spacing:.04em;color:var(--muted);}
.media-card .cap-over{position:absolute;left:0;right:0;bottom:0;padding:22px 22px 20px;
  background:linear-gradient(to top,rgba(20,16,14,.6),transparent);color:#fff;}
.media-card .cap-over .t{font-size:15px;font-weight:600;}
.media-card .cap-over .s{font-size:12px;opacity:.8;margin-top:2px;}
.onb-foot{flex:none;padding:24px 30px 38px;}
.onb-foot .btn{box-shadow:0 14px 30px -15px rgba(194,69,54,.55);}
.onb-foot .btn:active{box-shadow:0 8px 18px -12px rgba(194,69,54,.5);}
.dots{display:flex;gap:7px;align-items:center;justify-content:center;}
.dot{width:7px;height:7px;border-radius:50%;background:var(--line);transition:.2s;}
.dot.on{width:22px;border-radius:4px;background:var(--accent);}
/* 第四个指示器：箭头形（异形），标识下一步；末屏变陶土红并轻推示意 */
.dot-go{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:6px;
  padding:0;border:0;background:none;color:var(--muted);cursor:pointer;
  transition:color .22s,transform .18s;-webkit-tap-highlight-color:transparent;}
.dot-go svg{width:15px;height:15px;display:block;}
.dot-go.ready{color:var(--accent);}
.dot-go:active{transform:scale(.86);}
@media (prefers-reduced-motion: no-preference){
  .dot-go.ready{animation:dotNudge 1.5s ease-in-out infinite;}
}
@keyframes dotNudge{0%,100%{transform:translateX(0);}50%{transform:translateX(3px);}}

/* 引导入场：标题 → 媒体 → 底部 依次淡入上浮（尊重 prefers-reduced-motion） */
@media (prefers-reduced-motion: no-preference){
  .onb .onb-title{animation:onbRise .55s cubic-bezier(.2,0,0,1) .06s both;}
  .onb .onb-sub{animation:onbRise .55s cubic-bezier(.2,0,0,1) .10s both;}
  .onb .media-card{animation:onbRise .6s cubic-bezier(.2,0,0,1) .14s both;}
  .onb .onb-foot{animation:onbRise .55s cubic-bezier(.2,0,0,1) .24s both;}
}
@keyframes onbRise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}

/* 引导轮播：左右滑切换（手势 / 页码点 / 方向键 / 继续键） */
.carousel{flex:1;overflow:hidden;position:relative;min-height:0;touch-action:pan-y;cursor:grab;}
.carousel:active{cursor:grabbing;}
.track{display:flex;height:100%;}
.track.anim{transition:transform .42s cubic-bezier(.2,0,0,1);}
.cslide{flex:0 0 100%;height:100%;display:flex;flex-direction:column;min-width:0;}
@media (prefers-reduced-motion: reduce){ .track.anim{transition:none;} }

/* ============================================================
   首页 / 启动页（index.html）—— 杂志封面 + 目录，非设备框
   ============================================================ */
.cover-body{display:block;background:var(--bg);align-items:stretch;padding:0;}
.cover-wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,5vw,64px);}
.cover-top{display:flex;align-items:center;justify-content:space-between;
  padding:26px 0 22px;border-bottom:1px solid var(--ink);}
.wordmark{font-family:var(--serif);font-size:clamp(26px,3.4vw,40px);letter-spacing:.04em;font-weight:400;}
.cover-top .meta{font-size:11px;}
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(24px,5vw,72px);
  align-items:center;padding:clamp(36px,7vw,86px) 0;}
.hero-eyebrow{margin-bottom:22px;}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(42px,7.6vw,92px);
  line-height:.98;letter-spacing:-.02em;}
.hero h1 em{font-style:italic;color:var(--accent);}
.hero p{font-size:clamp(15px,1.5vw,18px);line-height:1.6;color:var(--ink-2);max-width:42ch;margin-top:26px;}
.hero .stat-row{display:flex;gap:34px;margin-top:34px;flex-wrap:wrap;}
.hero .stat .n{font-family:var(--serif);font-size:34px;}
.hero .stat .l{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:2px;}
.hero-art{aspect-ratio:.82/1;border-radius:18px;overflow:hidden;background:var(--paper);
  position:relative;box-shadow:0 40px 80px -34px rgba(40,30,26,.5);}
.hero-art img{width:100%;height:100%;object-fit:cover;}
.hero-art .tagcard{position:absolute;left:16px;bottom:16px;right:16px;
  background:rgba(250,250,248,.92);backdrop-filter:blur(8px);border-radius:14px;padding:13px 16px;
  display:flex;align-items:center;justify-content:space-between;}
.hero-art .tagcard .t{font-size:13px;font-weight:600;}
.hero-art .tagcard .s{font-size:11px;color:var(--muted);margin-top:2px;}

.contents{border-top:1px solid var(--ink);padding:30px 0 14px;}
.contents .ce{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:22px;}
.idx{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2.5vw,30px);}
.idx-card{display:block;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--surface);
  transition:transform .2s ease, box-shadow .2s;}
.idx-card:hover{transform:translateY(-4px);box-shadow:0 26px 50px -28px rgba(40,30,26,.4);}
.idx-art{aspect-ratio:5/4;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line);position:relative;}
.idx-art svg{width:62px;height:62px;}
.idx-no{position:absolute;top:14px;left:16px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--muted);}
.idx-b{padding:18px 18px 20px;}
.idx-b h3{font-family:var(--serif);font-size:22px;font-weight:400;}
.idx-b p{font-size:13px;color:var(--muted);line-height:1.5;margin-top:7px;}
.idx-b .go{margin-top:14px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;transition:color .2s,gap .2s;}
.idx-card:hover .go{color:var(--accent);gap:11px;}
.cover-foot{border-top:1px solid var(--line);margin-top:44px;padding:22px 0 40px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:11px;color:var(--muted);}

@media (max-width:760px){
  .hero{grid-template-columns:1fr;gap:30px;}
  .hero-art{order:-1;max-height:46vh;}
  .idx{grid-template-columns:1fr;}
}

/* 屏幕画布在小视口缩放，避免溢出 */
@media (max-height:900px){ .screen{transform:scale(.94);} }
@media (max-height:820px){ .screen{transform:scale(.86);} }
@media (max-height:740px){ .screen{transform:scale(.78);} }

/* ============================================================
   风格画像滑卡（02-风格画像）—— Tinder 式左右滑卡片游戏
   ============================================================ */
.sp-head{padding:12px 24px 0;flex:none;}
.sp-hrow{display:flex;align-items:center;justify-content:space-between;position:relative;height:22px;}
.sp-step{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);}
.sp-htitle{position:absolute;left:0;right:0;text-align:center;font-size:14px;font-weight:600;}
.sp-prog{display:flex;gap:5px;margin-top:14px;}
.sp-prog i{flex:1;height:3px;border-radius:2px;background:var(--line);transition:background .25s;}
.sp-prog i.done{background:#C9C4BB;}
.sp-prog i.cur{background:var(--accent);}

.sp-stage{flex:1;position:relative;display:flex;align-items:center;justify-content:center;padding:16px 26px;min-height:0;}
.sp-deck{position:relative;width:100%;max-width:320px;aspect-ratio:3/4;max-height:100%;}
.sp-card{position:absolute;inset:0;border-radius:26px;overflow:hidden;background:var(--paper);border:1px solid var(--line);}
.sp-card.bg2{transform:translate(10px,16px) scale(.93);opacity:.45;z-index:0;}
.sp-card.bg1{transform:translate(5px,8px) scale(.965);opacity:.8;z-index:1;}
.sp-card.top{z-index:2;cursor:grab;touch-action:pan-y;will-change:transform;}
.sp-card.top:active{cursor:grabbing;}
.sp-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 26%,#fff),color-mix(in srgb,var(--tint) 58%,#fff));
  color:color-mix(in srgb,var(--tint) 72%,#564b43);}
.sp-ph svg{width:44%;height:44%;opacity:.45;}
.sp-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}
.sp-grad{position:absolute;left:0;right:0;bottom:0;height:58%;z-index:2;
  background:linear-gradient(to top,rgba(20,16,14,.72),rgba(20,16,14,.12) 58%,transparent);}
.sp-meta{position:absolute;left:0;right:0;bottom:0;padding:22px;z-index:3;color:#fff;}
.sp-mlabel{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;opacity:.72;}
.sp-mname{font-family:var(--serif);font-size:26px;line-height:1.05;margin-top:5px;}
.sp-mdesc{font-size:12.5px;opacity:.78;margin-top:5px;}
.sp-stamp{position:absolute;top:24px;font-family:var(--mono);font-size:17px;letter-spacing:.14em;
  padding:5px 13px;border-radius:10px;border:2.5px solid;z-index:4;opacity:0;}
.sp-stamp.like{right:20px;transform:rotate(11deg);color:#46996A;border-color:#46996A;background:rgba(255,255,255,.85);}
.sp-stamp.nope{left:20px;transform:rotate(-11deg);color:#fff;border-color:#fff;}

.sp-foot{flex:none;padding:6px 24px 30px;min-height:120px;display:flex;flex-direction:column;justify-content:center;}
.sp-likebar{display:flex;align-items:center;justify-content:center;gap:26px;}
.sp-skip{display:flex;flex-direction:column;align-items:center;gap:7px;color:var(--muted);font-size:12px;}
.sp-skip .b{width:64px;height:64px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2);transition:transform .14s cubic-bezier(.2,.8,.2,1),background .2s,border-color .2s,color .2s;}
.sp-skip .b svg{width:26px;height:26px;}
.sp-likecol{display:flex;flex-direction:column;align-items:center;gap:7px;}
.sp-like{width:64px;height:64px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;color:var(--ink-2);transition:transform .14s cubic-bezier(.2,.8,.2,1),background .2s,border-color .2s,color .2s;}
.sp-like:active{transform:scale(.94);}
.sp-like svg{width:26px;height:26px;}
.sp-likecol .cap{font-size:12px;font-weight:500;color:var(--muted);}

.sp-q .qt{font-size:14px;font-weight:600;text-align:center;margin-bottom:12px;}
.sp-q .qchips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;}
.sp-sliders input[type=range]{flex:1;accent-color:var(--accent);}
.sp-srow{display:flex;align-items:center;gap:12px;margin:9px 0;}
.sp-srow .l{width:44px;font-size:13px;color:var(--ink-2);}
.sp-srow .v{width:42px;text-align:right;font-family:var(--mono);font-size:12px;color:var(--muted);}
.sp-timerow{display:flex;align-items:center;justify-content:space-between;background:var(--paper);
  border:1px solid var(--line);border-radius:14px;padding:13px 16px;margin-bottom:14px;}
.sp-timerow .tlabel{font-size:13px;color:var(--ink-2);}
.sp-timerow .tval{font-family:var(--mono);font-size:18px;font-weight:600;letter-spacing:.04em;}
.sp-timectl{display:flex;align-items:center;gap:14px;}
.sp-timectl button{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  font-size:18px;line-height:1;color:var(--ink);display:flex;align-items:center;justify-content:center;}

/* 结果页 · 你的风格（编辑感档案版式） */
.sp-result{display:none;flex:1;min-height:0;flex-direction:column;}
.sp-result.on{display:flex;}
.sp-rscroll{flex:1;overflow-y:auto;padding:8px 26px 6px;}
.sp-rscroll::-webkit-scrollbar{width:0;}

.rz-mast{display:flex;align-items:baseline;justify-content:space-between;
  padding-bottom:12px;border-bottom:1px solid var(--ink);}

.rz-hero{padding:24px 0 22px;border-bottom:1px solid var(--line);}
.rz-name{font-family:var(--serif);font-weight:400;font-size:46px;line-height:1.02;
  letter-spacing:-.015em;color:var(--ink);}
.rz-en{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);margin-top:11px;}
.rz-lead{font-family:var(--serif);font-size:16px;line-height:1.55;color:var(--ink-2);
  margin-top:16px;letter-spacing:.005em;}

.rz-kw{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;}
.rz-kw .k{font-size:12.5px;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);
  padding:6px 13px;border-radius:999px;letter-spacing:.02em;}

.rz-sec{margin-top:24px;}
.rz-label{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--muted);margin-bottom:11px;}
.rz-pal{display:flex;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);}
.rz-pal .sw{flex:1;height:48px;}
.rz-pal .sw + .sw{box-shadow:inset 1px 0 0 rgba(255,255,255,.22);}
.rz-tone{margin-top:9px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--muted);}

.rz-spec{border-top:1px solid var(--line);}
.rz-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:13px 0;border-bottom:1px solid var(--line);}
.rz-row .rk{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--muted);flex:none;}
.rz-row .rv{font-size:14px;color:var(--ink);text-align:right;letter-spacing:.01em;}

.rz-also{display:flex;align-items:center;gap:12px;margin-top:22px;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;}
.rz-also .al{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);flex:none;}
.rz-also .av{font-family:var(--serif);font-size:18px;color:var(--ink);letter-spacing:-.01em;}

.sp-rfoot{flex:none;padding:14px 26px 30px;}

/* AI 分析中 · 风格档案生成 loading */
.sp-loading{display:none;flex:1;min-height:0;flex-direction:column;align-items:center;justify-content:center;padding:0 44px;}
.sp-loading.on{display:flex;}
.ld-wrap{width:100%;max-width:300px;display:flex;flex-direction:column;align-items:center;}
.ld-orb{position:relative;width:84px;height:84px;display:flex;align-items:center;justify-content:center;}
.ld-orb svg{position:absolute;inset:0;width:100%;height:100%;}
.ld-orb .ld-track{fill:none;stroke:var(--line);stroke-width:2;}
.ld-orb .ld-arc{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;
  stroke-dasharray:132;stroke-dashoffset:99;transform-origin:center;animation:ldSpin 1.05s linear infinite;}
.ld-mark{width:44px;height:44px;border-radius:12px;object-fit:cover;display:block;}
.ld-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:26px;}
.ld-title{font-family:var(--serif);font-weight:400;font-size:25px;letter-spacing:-.01em;color:var(--ink);margin-top:10px;text-align:center;}
.ld-steps{list-style:none;margin:30px 0 0;padding:0;width:100%;display:flex;flex-direction:column;gap:15px;}
.ld-step{display:flex;align-items:center;gap:12px;font-size:13.5px;color:var(--faint);letter-spacing:.01em;transition:color .3s;}
.ld-step.active{color:var(--ink-2);}
.ld-step.done{color:var(--ink);}
.ld-dot{position:relative;width:18px;height:18px;flex:none;border-radius:50%;border:1.5px solid var(--line);
  box-sizing:border-box;transition:background .25s,border-color .25s;}
.ld-step.active .ld-dot{border-color:var(--accent);}
.ld-step.active .ld-dot::after{content:"";position:absolute;inset:0;margin:auto;width:6px;height:6px;
  border-radius:50%;background:var(--accent);animation:ldPulse .9s ease-in-out infinite;}
.ld-step.done .ld-dot{background:var(--accent);border-color:var(--accent);}
.ld-step.done .ld-dot::after{content:"";position:absolute;left:5.5px;top:2.5px;width:4px;height:8px;
  border:solid #fff;border-width:0 1.6px 1.6px 0;transform:rotate(43deg);}
.ld-bar{width:100%;height:2px;border-radius:2px;background:var(--line);overflow:hidden;margin-top:34px;}
.ld-bar > i{display:block;height:100%;width:0;background:var(--accent);border-radius:2px;
  transition:width .5s cubic-bezier(.3,.8,.3,1);}
@keyframes ldSpin{to{transform:rotate(360deg);}}
@keyframes ldPulse{0%,100%{transform:scale(.7);opacity:.55;}50%{transform:scale(1);opacity:1;}}
@media (prefers-reduced-motion: reduce){
  .ld-orb .ld-arc{animation:none;}
  .ld-step.active .ld-dot::after{animation:none;}
  .ld-bar > i{transition:none;}
}

@media (prefers-reduced-motion: no-preference){
  .sp-result.on .rz-hero,.sp-result.on .rz-kw,.sp-result.on .rz-sec,
  .sp-result.on .rz-also{animation:rzUp .52s cubic-bezier(.2,.8,.2,1) both;}
  .sp-result.on .rz-kw{animation-delay:.05s;}
  .sp-result.on .rz-sec:nth-of-type(2){animation-delay:.10s;}
  .sp-result.on .rz-sec:nth-of-type(3){animation-delay:.16s;}
  .sp-result.on .rz-also{animation-delay:.22s;}
}
@keyframes rzUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}

/* 风格画像 · 弹窗表单（场合占比 / 出门时间 / 穿衣偏向） */
.sheet .grab{cursor:grab;touch-action:none;width:42px;height:5px;}
.sheet .grab:active{cursor:grabbing;}
.sheet .qs-title{font-family:var(--serif);font-size:23px;font-weight:500;letter-spacing:-.01em;
  line-height:1.15;text-align:center;color:var(--ink);margin:2px 0 0;touch-action:none;}
.sheet .qs-sub{font-size:12.5px;color:var(--muted);text-align:center;line-height:1.45;
  margin:7px auto 0;max-width:30ch;letter-spacing:.01em;touch-action:none;}
.sheet .qs-ok{margin-top:22px;}

/* 占比堆叠条 */
.qs-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;margin:20px 0 18px;
  background:var(--line);box-shadow:inset 0 0 0 1px rgba(0,0,0,.03);}
.qs-bar i{display:block;height:100%;transition:width .28s cubic-bezier(.2,.8,.2,1);}
.qs-bar i + i{box-shadow:inset 1px 0 0 rgba(255,255,255,.5);}

/* 占比滑杆行（覆盖默认 .sp-srow） */
.sheet .sp-srow{gap:14px;margin:13px 0;}
.sheet .sp-srow .l{display:flex;align-items:center;gap:8px;width:auto;min-width:62px;
  font-size:14px;color:var(--ink);font-weight:500;}
.sheet .sp-srow .sw{width:11px;height:11px;border-radius:50%;flex:none;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
.sheet .sp-srow input[type=range]{flex:1;accent-color:var(--accent);min-width:0;}
.sheet .sp-srow .v{width:46px;text-align:right;font-family:var(--mono);font-size:12.5px;
  color:var(--ink-2);font-weight:600;letter-spacing:.02em;}

/* 出门时间步进器 */
.qs-time{display:flex;align-items:center;justify-content:center;gap:26px;margin:26px 0 6px;}
.qs-time .tval{font-family:var(--serif);font-size:44px;font-weight:500;letter-spacing:.01em;
  line-height:1;min-width:140px;text-align:center;color:var(--ink);font-variant-numeric:tabular-nums;}
.qs-step{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--line);background:var(--surface);
  font-size:24px;line-height:1;color:var(--ink);display:flex;align-items:center;justify-content:center;
  transition:transform .12s,border-color .2s,opacity .2s;}
.qs-step:active{transform:scale(.93);}
.qs-step[disabled]{opacity:.32;pointer-events:none;}

/* 穿衣偏向 · 单选行 */
.qs-opts{display:flex;flex-direction:column;gap:10px;margin:20px 0 4px;}
.qs-opt{display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:15px 18px;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--surface);
  font-size:15px;font-weight:500;color:var(--ink);text-align:left;
  transition:border-color .18s,background .18s,transform .12s;}
.qs-opt:active{transform:scale(.985);}
.qs-opt[aria-pressed=true]{border-color:var(--ink);background:var(--paper);}
.qs-opt .tick{width:20px;height:20px;color:var(--accent);opacity:0;transform:scale(.7);
  transition:opacity .18s,transform .18s;flex:none;}
.qs-opt[aria-pressed=true] .tick{opacity:1;transform:scale(1);}
@media (prefers-reduced-motion: reduce){
  .qs-bar i,.qs-step,.qs-opt,.qs-opt .tick{transition:none;}
}

/* 末尾问卷面板（所有问题集中一屏） */
.sp-quiz{display:none;flex:1;min-height:0;flex-direction:column;}
.sp-quiz.on{display:flex;}
.qz-scroll{flex:1;overflow-y:auto;padding:8px 26px 10px;}
.qz-scroll::-webkit-scrollbar{width:0;}
.qz-q{margin-top:24px;}
.qz-q:first-of-type{margin-top:20px;}
.qz-h{display:flex;align-items:baseline;gap:11px;font-family:var(--serif);font-size:21px;font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:0 0 14px;}
.qz-i{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--muted);}
.sp-quiz .sp-srow{display:flex;align-items:center;gap:14px;margin:13px 0;}
.sp-quiz .sp-srow .l{display:flex;align-items:center;gap:8px;width:auto;min-width:62px;font-size:14px;color:var(--ink);font-weight:500;}
.sp-quiz .sp-srow .sw{width:11px;height:11px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
.sp-quiz .sp-srow input[type=range]{flex:1;accent-color:var(--accent);min-width:0;}
.sp-quiz .sp-srow .v{width:46px;text-align:right;font-family:var(--mono);font-size:12.5px;color:var(--ink-2);font-weight:600;letter-spacing:.02em;}
.sp-quiz .qs-time{margin:18px 0 4px;}
/* 上班时间 · 时刻 + 推送时刻读出 */
.qt-note{font-size:11.5px;line-height:1.5;color:var(--muted);text-align:center;
  letter-spacing:.01em;margin:13px 0 2px;font-variant-numeric:tabular-nums;}
/* 穿衣偏向 · 水平三选项（图 + 文） */
.qz-gender{display:flex;gap:10px;margin-top:2px;}
.qz-gopt{flex:1;min-width:0;display:flex;flex-direction:column;gap:9px;text-align:center;background:none;border:0;padding:0;cursor:pointer;}
.qz-gopt .im{position:relative;display:block;aspect-ratio:3/4;border-radius:var(--r-md);overflow:hidden;
  background:var(--paper);border:1.5px solid var(--line);transition:border-color .18s,box-shadow .18s,transform .12s;}
.qz-gopt .im img{width:100%;height:100%;object-fit:cover;display:block;}
.qz-gopt:active .im{transform:scale(.98);}
.qz-gopt .lb{font-size:12.5px;color:var(--ink-2);letter-spacing:.01em;transition:color .18s;}
.qz-gopt[aria-pressed=true] .im{border-color:var(--accent);box-shadow:0 0 0 1.5px var(--accent);}
.qz-gopt[aria-pressed=true] .lb{color:var(--ink);font-weight:600;}
.qz-gopt .chk{position:absolute;top:7px;right:7px;width:22px;height:22px;border-radius:50%;
  background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;
  opacity:0;transform:scale(.6);transition:opacity .18s,transform .18s;box-shadow:0 2px 8px -2px rgba(194,69,54,.6);}
.qz-gopt .chk svg{width:13px;height:13px;}
.qz-gopt[aria-pressed=true] .chk{opacity:1;transform:scale(1);}

/* 场合占比 · 融合可拖动条（拖分隔点在相邻两类间重分配，每项 ≥10%） */
.occ-split{position:relative;display:flex;height:66px;border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--line);margin-top:6px;touch-action:pan-y;user-select:none;-webkit-user-select:none;
  box-shadow:0 8px 22px -16px rgba(40,30,26,.4);}
.occ-split .seg{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;overflow:hidden;cursor:pointer;transition:background .18s;}
.occ-split .seg:nth-child(1){color:#fff;}
.occ-split .seg:nth-child(2),.occ-split .seg:nth-child(3){color:var(--ink);}
.occ-split .oc-lab{font-family:var(--mono);font-size:9px;letter-spacing:.18em;opacity:.78;white-space:nowrap;}
.occ-split .oc-pct{font-family:var(--serif);font-size:23px;font-weight:500;line-height:1;letter-spacing:.01em;font-variant-numeric:tabular-nums;}
.occ-split .oc-pct i{font-family:var(--mono);font-style:normal;font-size:9px;font-weight:600;margin-left:2px;opacity:.65;}
.occ-split .seg:nth-child(1) .oc-lab,.occ-split .seg:nth-child(1) .oc-pct{text-shadow:0 1px 2px rgba(0,0,0,.22);}
.occ-split .seg.narrow .oc-lab{display:none;}
.occ-split .seg.tiny .oc-pct{font-size:16px;}
/* 点击置为不可用：灰底、删除线标签、无投影 */
.occ-split .seg.off{color:var(--muted);}
.occ-split .seg.off .oc-lab{text-decoration:line-through;}
.occ-split .seg.off .oc-pct,.occ-split .seg.off .oc-lab{text-shadow:none;}
.occ-split .hdl{position:absolute;top:0;bottom:0;width:30px;transform:translateX(-50%);z-index:2;cursor:ew-resize;touch-action:none;}
.occ-split .hdl::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1.5px;transform:translateX(-50%);background:rgba(255,255,255,.9);}
.occ-split .hdl::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:16px;height:16px;border-radius:50%;background:#fff;
  box-shadow:0 2px 7px rgba(40,30,26,.3),0 0 0 1px rgba(0,0,0,.06);transition:transform .14s,box-shadow .14s;}
.occ-split .hdl:active::after{transform:translate(-50%,-50%) scale(1.14);}
.occ-split .hdl:focus-visible{outline:none;}
.occ-split .hdl:focus-visible::after{box-shadow:0 2px 7px rgba(40,30,26,.3),0 0 0 2px var(--accent);}
.occ-hint{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);margin-top:11px;}
@media (prefers-reduced-motion: reduce){ .occ-split .hdl::after{transition:none;} }
@media (prefers-reduced-motion: reduce){ .qz-gopt .im,.qz-gopt .chk,.qz-gopt .lb{transition:none;} }
@media (prefers-reduced-motion: no-preference){
  .sp-quiz.on .qz-q{animation:rzUp .5s cubic-bezier(.2,.8,.2,1) both;}
  .sp-quiz.on .qz-q:nth-of-type(2){animation-delay:.07s;}
  .sp-quiz.on .qz-q:nth-of-type(3){animation-delay:.14s;}
}

/* ---------- 搭配 · Lookbook 画廊 ---------- */
#outfits{display:flex;flex-direction:column;}
.of-head{flex:none;padding:14px 22px 4px;}
.of-htop{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:6px;}
.of-count{flex:none;font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--muted);font-variant-numeric:tabular-nums;}
.of-sub{margin-top:7px;font-size:13px;line-height:1.5;color:var(--muted);}
.of-filters{flex:none;display:flex;gap:8px;overflow-x:auto;padding:12px 22px 12px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.of-filters::-webkit-scrollbar{display:none;}
.of-filters-top{padding-top:16px;}
.of-chip{flex:0 0 auto;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);
  font-size:12.5px;font-weight:600;letter-spacing:.01em;color:var(--ink-2);white-space:nowrap;
  transition:background .15s,color .15s,border-color .15s,transform .12s;}
.of-chip:active{transform:scale(.96);}
.of-chip.on{background:var(--ink);border-color:var(--ink);color:#fff;}
.of-grid{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
  display:grid;grid-template-columns:repeat(2,1fr);gap:14px;padding:4px 22px 18px;align-content:start;}
.of-grid::-webkit-scrollbar{display:none;}
.of-card{position:relative;border-radius:18px;overflow:hidden;width:100%;height:0;padding-bottom:133.33%;background:var(--paper);
  border:1px solid var(--line);box-shadow:0 3px 14px -9px rgba(40,30,26,.22);
  transition:transform .16s ease,box-shadow .24s ease;}
.of-card:active{transform:scale(.975);}
@media (hover:hover){ .of-card:hover{transform:translateY(-3px);box-shadow:0 16px 32px -18px rgba(40,30,26,.45);} }
.of-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.of-grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(20,16,14,.82) 0%,rgba(20,16,14,.16) 46%,transparent 72%);}
.of-fav{position:absolute;top:9px;right:9px;z-index:2;width:19px;height:19px;color:#fff;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45));}
.of-info{position:absolute;left:13px;right:13px;bottom:12px;z-index:2;color:#fff;}
.of-k{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.85);}
.of-t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
  font-family:var(--serif);font-size:16.5px;line-height:1.18;letter-spacing:-.01em;}
.of-n{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:rgba(255,255,255,.8);margin-top:5px;}
.of-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:56px 16px;}
.of-empty-t{display:block;font-family:var(--serif);font-size:18px;letter-spacing:-.01em;color:var(--ink);}
.of-empty-s{display:block;font-size:13px;line-height:1.5;margin-top:7px;}
@media (prefers-reduced-motion:reduce){ .of-card,.of-chip{transition:none;} .of-card:hover,.of-card:active{transform:none;} }

/* ---------- 我的 · Account ---------- */
#me{display:flex;flex-direction:column;}
.me-head{flex:none;padding:14px 22px 2px;}
.me-head .title{margin-top:6px;}
.me-profile{display:flex;align-items:center;gap:14px;padding:14px 22px 18px;}
.me-ava{flex:none;width:54px;height:54px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--paper);border:1px solid var(--line);font-family:var(--serif);font-size:24px;color:var(--ink);}
.me-id{flex:1;min-width:0;}
.me-name{font-family:var(--serif);font-size:21px;letter-spacing:-.01em;color:var(--ink);}
.me-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;color:var(--muted);margin-top:4px;text-transform:uppercase;}
.me-tier{flex:none;align-self:flex-start;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.12em;
  color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:4px 10px;}
.me-stats{display:flex;margin:0 22px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface);}
.me-stat{flex:1;text-align:center;padding:13px 6px;border-left:1px solid var(--line-2);}
.me-stat:first-child{border-left:0;}
.me-stat b{display:block;font-family:var(--mono);font-size:20px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
.me-stat span{display:block;font-size:11px;color:var(--muted);margin-top:4px;}
.me-quota{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:10px 22px 0;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.03em;color:var(--muted);}
.me-quota-k{flex:none;text-transform:uppercase;letter-spacing:.1em;}
.me-quota-v{text-align:right;}
.me-quota-v b{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums;}
/* 会员卡 · 唯一深色块 + 唯一陶土红 CTA */
.me-pro{margin:18px 22px 6px;background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:18px 18px 15px;
  box-shadow:0 18px 40px -22px rgba(28,28,30,.6);}
.me-pro-row{display:flex;align-items:center;justify-content:space-between;gap:10px;}
.me-pro-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;color:rgba(255,255,255,.7);}
.me-pro-trial{flex:none;font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.04em;color:var(--ink);background:#fff;border-radius:999px;padding:3px 9px;}
.me-pro-t{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.16;letter-spacing:-.01em;margin:12px 0 0;}
.me-pro-benes{list-style:none;margin:13px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;}
.me-pro-benes li{position:relative;padding-left:22px;font-size:13.5px;color:rgba(255,255,255,.9);line-height:1.4;}
.me-pro-benes li::before{content:"";position:absolute;left:2px;top:6px;width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);}
.me-pro .btn{margin-top:16px;}
.me-pro-foot{font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:rgba(255,255,255,.55);margin-top:11px;text-align:center;text-wrap:pretty;}
.me-card{display:flex;align-items:center;gap:13px;margin:0 22px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:13px 15px;color:var(--ink);transition:background .15s;}
.me-card:active{background:var(--paper);}
.me-chev{flex:none;width:17px;height:17px;color:var(--line);}
.me-style-tx{flex:1;min-width:0;}
.me-style-t{font-size:15px;font-weight:600;letter-spacing:-.01em;}
.me-style-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.me-style-chips span{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:3px 8px;}
.me-model-ph{flex:none;width:46px;height:46px;border-radius:11px;overflow:hidden;background:var(--paper);}
/* 风格画像卡缩略：风格色板（默认无 persona 形象，用配色档案表示风格） */
.me-pal-ph{flex:none;width:46px;height:46px;border-radius:11px;overflow:hidden;border:1px solid var(--line);
  display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,1fr);}
.me-pal-ph i{display:block;}
.me-model-ph img{width:100%;height:100%;object-fit:cover;display:block;}
.me-model-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.me-model-tx b{font-size:14.5px;font-weight:600;}
.me-model-tx span{font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--muted);}
.me-model-act{flex:none;font-size:12.5px;font-weight:600;color:var(--ink-2);}
.me-list{margin:0 22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;}
.me-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;
  padding:14px 15px;border-top:1px solid var(--line-2);color:var(--ink);font-size:14.5px;transition:background .15s;}
.me-row:first-child{border-top:0;}
.me-row:active{background:var(--paper);}
.me-row-v{font-size:13px;color:var(--muted);font-family:var(--mono);letter-spacing:.02em;}
.me-switch{flex:none;width:42px;height:25px;border-radius:999px;background:var(--line);position:relative;transition:background .2s;cursor:pointer;}
.me-switch span{position:absolute;top:3px;left:3px;width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.22);transition:transform .2s;}
.me-switch.on{background:var(--ink);}
.me-switch.on span{transform:translateX(17px);}
.me-ver{text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);padding:20px 0 6px;}
/* 我的页 sec-label 直接位于无内边距的 .scroll 下，补回与卡片一致的 22px 左右边距 */
#me .sec-label{margin-left:22px;margin-right:22px;}
/* 风格画像结果卡在弹窗内复用 .rz-* —— 用容器补回 sp-rscroll 的左右留白 */
.spr-pad{padding:4px 26px 14px;}
/* 风格形象生成模块（空 / 生成中 / 结果 三态） */
.spr-persona{position:relative;width:100%;height:0;padding-bottom:120%;border-radius:16px;overflow:hidden;
  background:var(--paper);border:1px solid var(--line);margin-top:12px;}
.spr-persona-empty,.spr-persona-load{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;text-align:center;padding:0 30px;}
.spr-persona-empty svg{width:38px;height:38px;color:var(--ink-2);opacity:.45;margin-bottom:14px;}
.spr-persona-empty p{font-size:13px;line-height:1.65;color:var(--muted);text-wrap:pretty;}
.spr-persona-load{gap:14px;color:var(--muted);}
.spr-persona-bar{width:140px;height:4px;border-radius:2px;background:var(--line);overflow:hidden;}
.spr-persona-bar i{display:block;width:40%;height:100%;background:var(--ink);border-radius:2px;animation:sprLoad 1.1s ease-in-out infinite;}
@keyframes sprLoad{from{transform:translateX(-120%)}to{transform:translateX(360%)}}
.spr-persona-tx{font-family:var(--mono);font-size:11px;letter-spacing:.06em;}
.spr-persona-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
/* 风格画像底栏：重新测试 + 生成形象 并排，生成占大 */
.spr-foot{display:flex;gap:10px;}
.spr-foot .btn{flex:1;width:auto;padding:0 14px;white-space:nowrap;}
.spr-foot #spr-gen{flex:1.7;}
.spr-persona-note{font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--muted);text-align:center;margin-top:10px;}
@media (prefers-reduced-motion:reduce){ .spr-persona-bar i{animation:none;width:100%;} }
@media (prefers-reduced-motion:reduce){ .me-switch,.me-switch span{transition:none;} }

/* 今日（首页）品牌头：LOGO eyebrow + 页面名，统一各页头部 */
.tdy-brand{padding:14px 22px 10px;}
.tdy-brand .title{margin-top:6px;}
