/* ====== Tokens ====== */
:root {
  --color-bg:#f7f4ee; --color-surface:#fffdf9; --color-text:#1d1b18; --color-muted:#6b665d; --color-border:#e3ddd1; --color-soft:#efeadf;
  --color-focus:#1f5fbf; --color-backdrop:#1d1b1866;
  --accent:#1d1b18;
  --c-medsci:#0f7a72; --c-medsci-soft:#d5ece8;
  --c-buzz:#d2553a;   --c-buzz-soft:#f7ddd4;
  --c-t3:#b8860b;     --c-t3-soft:#f4e7c4;
  --c-keyword-soft:#e4e0f5; --c-keyword:#5b4bb7;
  --font-body:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  --font-display:"Instrument Serif","Songti SC","STSong",Georgia,serif;
  --text-xs:.78rem; --text-sm:.9rem; --text-base:1rem; --text-md:1.15rem; --text-lg:1.35rem; --text-xl:1.8rem; --text-title:clamp(3rem,9vw,5.5rem); --text-metric:clamp(3.2rem,8vw,5rem);
  --space-0:0; --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.5rem; --space-6:2rem; --space-7:3.5rem; --space-8:5rem;
  --leading:1.8; --leading-heading:1.25; --page-width:70rem; --dialog-width:30rem; --detail-width:48rem;
  --page-gutter:1rem; --radius:14px; --radius-sm:999px; --border:1px solid var(--color-border);
  --shadow:0 1px 2px #0000000a,0 8px 24px -12px #0000001f;
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
}
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="light"]) {
    --color-bg:#151412; --color-surface:#1d1c19; --color-text:#ece7dd; --color-muted:#a39d91; --color-border:#34312b; --color-soft:#26241f;
    --c-medsci:#4fc3b6; --c-medsci-soft:#173a36; --c-buzz:#f08a6f; --c-buzz-soft:#3d221b; --c-t3:#e2b44a; --c-t3-soft:#3a2f14;
    --c-keyword:#a99cf0; --c-keyword-soft:#2a2547; --accent:#ece7dd; --color-focus:#7fb0ff;
  }
}
:root[data-theme="dark"] {
  --color-bg:#151412; --color-surface:#1d1c19; --color-text:#ece7dd; --color-muted:#a39d91; --color-border:#34312b; --color-soft:#26241f;
  --c-medsci:#4fc3b6; --c-medsci-soft:#173a36; --c-buzz:#f08a6f; --c-buzz-soft:#3d221b; --c-t3:#e2b44a; --c-t3-soft:#3a2f14;
  --c-keyword:#a99cf0; --c-keyword-soft:#2a2547; --accent:#ece7dd; --color-focus:#7fb0ff;
}
@media (min-width:40rem) { :root { --page-gutter:1.5rem; } }

/* ====== Base ====== */
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font:var(--text-base)/var(--leading) var(--font-body); background:var(--color-bg); color:var(--color-text); -webkit-font-smoothing:antialiased; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { line-height:var(--leading-heading); letter-spacing:-.01em; }
h2 { font-size:var(--text-xl); } h3 { font-size:var(--text-lg); }
a { color:inherit; text-underline-offset:.22em; text-decoration-thickness:1px; }
a:hover { text-decoration-thickness:2px; }
button { font:inherit; color:inherit; cursor:pointer; }
a:focus-visible,button:focus-visible { outline:2px solid var(--color-focus); outline-offset:3px; border-radius:4px; }
img { max-width:100%; height:auto; display:block; }
.container { width:min(calc(100% - var(--page-gutter) * 2),var(--page-width)); margin-inline:auto; }
.skip { position:absolute; top:-10rem; background:var(--color-surface); padding:var(--space-3); }
.skip:focus { top:var(--space-2); }
.muted,.cv-placeholder { color:var(--color-muted); }
.eyebrow { font-size:var(--text-xs); letter-spacing:.08em; text-transform:uppercase; color:var(--color-muted); margin-bottom:var(--space-2); }

/* ====== Header / footer ====== */
.site-header,.site-footer,.section-heading,.dialog-heading { display:flex; justify-content:space-between; align-items:center; gap:var(--space-4); }
.site-header { padding-block:var(--space-5); }
.wordmark { font-family:var(--font-display); font-size:1.5rem; text-decoration:none; line-height:1; }
.wordmark span { font-family:var(--font-body); font-size:var(--text-xs); color:var(--color-muted); margin-left:.4em; }
nav { display:flex; flex-wrap:wrap; gap:var(--space-2); font-size:var(--text-sm); }
nav a { text-decoration:none; padding:.3rem .8rem; border-radius:var(--radius-sm); border:var(--border); background:var(--color-surface); }
nav a:hover { border-color:var(--color-text); }
.site-footer { border-top:var(--border); padding-block:var(--space-5); margin-top:var(--space-7); color:var(--color-muted); font-size:var(--text-sm); }

/* ====== Identity ====== */
.identity { padding-top:var(--space-7); }
.identity h1 { font-family:var(--font-display); font-weight:400; font-size:var(--text-title); line-height:.95; letter-spacing:-.02em; }
.identity h1 span { display:block; font-family:var(--font-body); font-size:var(--text-md); color:var(--color-muted); letter-spacing:.3em; margin-top:var(--space-3); }
.intro { font-size:clamp(1.05rem,2.2vw,1.3rem); line-height:2; margin-top:var(--space-6); max-width:42em; }
.view-intro { margin-top:var(--space-4); color:var(--color-muted); max-width:42em; }

/* 公司名：彩色马克笔高亮 + 可点击 */
.entity { --hl:var(--c-medsci-soft); --ink:var(--c-medsci);
  display:inline; padding:0 .25em; margin:0 .05em; border:0; border-radius:4px; font-weight:600; color:var(--ink);
  background:linear-gradient(transparent 55%,var(--hl) 55%); transition:background-size .2s, box-shadow .2s;
  box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.entity::after { content:"↗"; font-size:.7em; margin-left:.15em; opacity:.6; }
.entity:hover { background:var(--hl); }
.entity[data-entity="buzz"] { --hl:var(--c-buzz-soft); --ink:var(--c-buzz); }
.entity[data-entity="t3"]   { --hl:var(--c-t3-soft);   --ink:var(--c-t3); }
.keyword { font-weight:600; color:var(--c-keyword); background:linear-gradient(transparent 60%,var(--c-keyword-soft) 60%); padding:0 .15em; }

/* ====== Sections ====== */
.section { margin-top:var(--space-8); }
.section > h2, .section-heading h2 { font-family:var(--font-display); font-weight:400; font-size:clamp(2rem,5vw,2.8rem); }
.section > h2 { margin-bottom:var(--space-5); }
.section-heading { margin-bottom:var(--space-5); align-items:baseline; }

/* ====== Metrics ====== */
.metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); gap:var(--space-4); margin-top:var(--space-7); }
.metrics { grid-auto-rows:auto; }
.metrics .metric-item { display:grid; grid-row:span 4; grid-template-rows:subgrid; row-gap:0; align-content:start; background:var(--color-surface); border:var(--border); border-radius:var(--radius); padding:var(--space-5) var(--space-5) var(--space-5); box-shadow:var(--shadow); }
.metric-number { font-family:var(--font-display); font-size:var(--text-metric); line-height:1; font-weight:400; letter-spacing:-.02em; }
.metric { display:inline-block; transform-origin:50% 85%; cursor:pointer; user-select:none; }
.metric.is-bounce { animation:metric-bounce .6s var(--ease-spring); }
@keyframes metric-bounce { 0%{transform:scale(1)} 35%{transform:scale(1.18) translateY(-4px)} 65%{transform:scale(.96)} 100%{transform:scale(1)} }
.metric-item > p:not(.metric-number) { font-size:var(--text-sm); margin-top:var(--space-3); }
.metric-item > p.muted { margin-top:var(--space-1); }
.metric-period:empty { margin:0; }
.metrics .metric-bar { align-self:end; }
.metric-bar { position:relative; height:8px; margin-top:var(--space-4); border-radius:999px; background:var(--color-soft); overflow:visible; }
.metric-fill { position:absolute; inset:0 auto 0 0; width:var(--p,0%); max-width:100%; border-radius:inherit; background:var(--accent); transition:width 1.1s cubic-bezier(.2,.8,.2,1); }
.metric-bar[data-over] .metric-fill { background:linear-gradient(90deg,var(--accent) 0 calc(100% - 6px),var(--c-buzz) 0); }
.metric-target { position:absolute; top:-4px; bottom:-4px; left:calc(100% / var(--scale,1)); width:2px; background:var(--color-muted); border-radius:2px; }
.case-metrics { display:flex; flex-wrap:wrap; gap:var(--space-5); margin-top:var(--space-4); }
.case-metrics .metric-number { font-size:2.2rem; }
.case-metrics .metric-item > p:not(.metric-number) { margin-top:var(--space-1); font-size:var(--text-xs); color:var(--color-muted); }

/* ====== Capability map ====== */
.capability-list { display:grid; gap:0; border-top:1px solid var(--color-text); }
.capability-row { display:grid; grid-template-columns:14rem 1fr 1.4fr; gap:var(--space-5); border-bottom:var(--border); padding-block:var(--space-5); align-items:start; }
.capability-row h3 { font-size:var(--text-md); display:flex; gap:var(--space-3); align-items:baseline; }
.cap-index { font-family:var(--font-display); font-weight:400; font-size:1.3rem; color:var(--color-muted); }
.capability-row > p { color:var(--color-muted); font-size:var(--text-sm); }
.capability-row ul { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:var(--space-2); font-size:var(--text-sm); }
.capability-row li a { display:inline-block; text-decoration:none; padding:.2rem .7rem; border-radius:var(--radius-sm); border:var(--border); background:var(--color-surface); line-height:1.6; }
.capability-row li a:hover { border-color:var(--color-text); }
.cap-description { display:grid; gap:var(--space-3); }
.capability-row .cap-keywords { gap:var(--space-1) var(--space-2); font-size:var(--text-xs); }
.cap-keywords li { padding:.15rem .6rem; border-radius:6px; background:var(--c-keyword-soft); color:var(--c-keyword); font-weight:600; letter-spacing:.01em; line-height:1.7; }
.capability-row h3 { flex-wrap:nowrap; }

/* ====== Case cards ====== */
.card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr)); gap:var(--space-4); }
.case-card { --ink:var(--c-medsci); position:relative; display:flex; flex-direction:column; padding:var(--space-5); background:var(--color-surface); border:var(--border); border-radius:var(--radius); min-width:0; box-shadow:var(--shadow); transition:transform .2s, box-shadow .2s; }
.case-card::before { content:""; position:absolute; left:var(--space-5); top:0; width:2.5rem; height:4px; border-radius:0 0 4px 4px; background:var(--ink); }
.case-card[data-employer="buzz"] { --ink:var(--c-buzz); }
.case-card[data-employer="t3"] { --ink:var(--c-t3); }
.case-card:hover { transform:translateY(-2px); box-shadow:0 2px 4px #0000000d,0 16px 32px -16px #00000033; }
.case-card .eyebrow { color:var(--ink); font-weight:600; }
.case-card h3 { font-size:var(--text-md); margin-bottom:var(--space-3); }
.case-card h3 a { text-decoration:none; }
.case-card h3 a::after { content:""; position:absolute; inset:0; border-radius:inherit; }
.case-card p { overflow-wrap:anywhere; font-size:var(--text-sm); }
.tags { display:flex; flex-wrap:wrap; gap:var(--space-2); list-style:none; padding:0; margin:auto 0 0; padding-top:var(--space-4); }
.tags li { font-size:var(--text-xs); padding:.1rem .6rem; border-radius:var(--radius-sm); background:var(--color-soft); }
.tags + p.muted { font-size:var(--text-xs); margin-top:var(--space-2); }
.case-link { font-size:var(--text-sm); margin-top:var(--space-3); font-weight:600; color:var(--ink); text-decoration:none; }
.library-grid { margin-top:var(--space-6); }
.section > h1 { font-family:var(--font-display); font-weight:400; font-size:clamp(2.6rem,7vw,4rem); }

/* ====== AI 实践 / contact ====== */
.independent-builds > p { padding:var(--space-6); border:1.5px dashed var(--color-border); border-radius:var(--radius); color:var(--color-muted); text-align:center; }
.contact { padding:var(--space-6); background:var(--color-text); color:var(--color-bg); border-radius:var(--radius); }
.contact h2 { color:inherit; }
.contact p { margin-top:var(--space-2); overflow-wrap:anywhere; font-size:var(--text-md); }
.contact .cv-placeholder { color:inherit; opacity:.6; font-size:var(--text-sm); }

/* ====== Case detail ====== */
.case-detail { --ink:var(--c-medsci); --hl:var(--c-medsci-soft); max-width:var(--detail-width); margin-inline:auto; padding-block:var(--space-6); }
.case-detail[data-employer="buzz"] { --ink:var(--c-buzz); --hl:var(--c-buzz-soft); }
.case-detail[data-employer="t3"] { --ink:var(--c-t3); --hl:var(--c-t3-soft); }
.back { display:inline-block; margin-bottom:var(--space-5); font-size:var(--text-sm); text-decoration:none; color:var(--color-muted); }
.back:hover { color:var(--color-text); }
.case-heading { position:relative; padding:var(--space-6); margin-bottom:var(--space-6); background:var(--color-surface); border:var(--border); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.case-heading::before { content:""; position:absolute; inset:0 0 auto 0; height:6px; background:var(--ink); }
.case-heading .eyebrow { color:var(--ink); font-weight:600; }
.case-heading h1 { font-family:var(--font-display); font-weight:400; font-size:clamp(2.1rem,6vw,3.2rem); }
.lead { font-size:var(--text-md); margin-top:var(--space-4); line-height:1.9; }
.case-sections { position:relative; display:grid; gap:var(--space-2); padding-left:var(--space-6); }
.case-sections::before { content:""; position:absolute; left:.55rem; top:.6rem; bottom:.6rem; width:2px; background:linear-gradient(var(--ink),var(--color-border)); border-radius:2px; }
.case-section { position:relative; padding-block:var(--space-3) var(--space-4); }
.case-section h2 { display:flex; align-items:baseline; gap:var(--space-2); font-size:var(--text-sm); font-weight:600; color:var(--ink); margin-bottom:var(--space-2); }
.step-index { font-family:var(--font-display); font-weight:400; font-size:1.25rem; color:var(--color-muted); }
.case-sections .case-section::before { content:""; position:absolute; left:calc(-1 * var(--space-6) + .2rem); top:1.05rem; width:.8rem; height:.8rem; border-radius:50%; background:var(--color-bg); border:2px solid var(--ink); }
.case-section[data-section="action"] { padding:var(--space-4) var(--space-5); background:var(--color-surface); border:var(--border); border-radius:var(--radius); }
.case-section[data-section="action"]::before { background:var(--ink); }
.case-section[data-section="outcome"] { margin-top:var(--space-5); padding:var(--space-5) var(--space-6); border-radius:var(--radius); background:var(--hl); }
.case-section[data-section="outcome"] h2 { font-size:var(--text-xs); letter-spacing:.12em; }
.case-section[data-section="outcome"] p { font-size:var(--text-lg); line-height:1.6; font-weight:600; }
.hl-num { background:linear-gradient(transparent 58%,var(--hl) 58%); color:inherit; font-weight:700; padding:0 .1em; }
.hl-client { background:none; color:var(--ink); font-weight:600; }
.case-section[data-section="outcome"] .hl-num { background:linear-gradient(transparent 58%,var(--color-surface) 58%); }
.publication { margin-block:var(--space-6); }
.publication > p { margin-block:var(--space-4); }
.publication img { border-radius:var(--radius); border:var(--border); }
figcaption { font-size:var(--text-xs); color:var(--color-muted); margin-top:var(--space-2); }
.detail-foot { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:var(--space-4); margin-top:var(--space-7); padding-top:var(--space-5); border-top:var(--border); }
.detail-contact, .nav-contact { border:0; border-radius:var(--radius-sm); }
.detail-contact { padding:.6rem 1.2rem; background:var(--color-text); color:var(--color-bg); font-weight:600; font-size:var(--text-sm); }
.detail-contact:hover { opacity:.85; }
.next-case { text-decoration:none; text-align:right; font-size:var(--text-sm); max-width:28rem; }
.next-case span { display:block; font-size:var(--text-xs); color:var(--color-muted); }
.nav-contact { padding:.3rem .8rem; background:var(--color-text); color:var(--color-bg); font-size:var(--text-sm); }

/* ====== Contact card ====== */
dialog.contact-card { --ink:var(--color-text); --hl:var(--color-soft); }
.contact-lines { list-style:none; margin:var(--space-4) var(--space-5); padding:0; display:grid; gap:var(--space-2); }
.contact-lines li { display:grid; grid-template-columns:3rem 1fr auto; align-items:center; gap:var(--space-3); padding:var(--space-3); border:var(--border); border-radius:10px; font-size:var(--text-sm); }
.contact-lines span { color:var(--color-muted); font-size:var(--text-xs); }
.contact-lines a { overflow-wrap:anywhere; text-decoration:none; font-weight:600; }
.copy { border:var(--border); background:var(--color-surface); border-radius:var(--radius-sm); padding:.15rem .7rem; font-size:var(--text-xs); }
.copy[data-copied] { background:var(--c-medsci-soft); border-color:var(--c-medsci); color:var(--c-medsci); }
dialog > p.contact-cv { margin:0 var(--space-5) var(--space-5); font-size:var(--text-sm); }
dialog.contact-card > p.muted { font-size:var(--text-sm); }

/* ====== Entity dialog ====== */
dialog { --ink:var(--c-medsci); --hl:var(--c-medsci-soft); width:min(calc(100% - var(--page-gutter) * 2),var(--dialog-width)); max-height:85vh; overflow:auto; border:0; border-radius:var(--radius); padding:0; background:var(--color-surface); color:var(--color-text); box-shadow:0 24px 64px -16px #0000004d; }
dialog[data-entity="buzz"] { --ink:var(--c-buzz); --hl:var(--c-buzz-soft); }
dialog[data-entity="t3"] { --ink:var(--c-t3); --hl:var(--c-t3-soft); }
dialog[open] { animation:dialog-in .28s var(--ease-spring); }
@keyframes dialog-in { from { opacity:0; transform:translateY(8px) scale(.97); } to { opacity:1; transform:none; } }
dialog::backdrop { background:var(--color-backdrop); backdrop-filter:blur(3px); }
.dialog-heading { align-items:flex-start; padding:var(--space-5); background:var(--hl); }
dialog h2 { font-size:var(--text-lg); color:var(--ink); }
dialog small { display:block; font-size:var(--text-sm); color:var(--color-text); opacity:.7; font-weight:400; margin-top:var(--space-1); }
.dialog-close { border:0; background:var(--color-surface); width:2rem; height:2rem; border-radius:50%; font-size:0; position:relative; flex-shrink:0; }
.dialog-close::before { content:"×"; font-size:1.3rem; line-height:2rem; }
dialog > p, dialog > dl, dialog > a { margin-inline:var(--space-5); }
dialog > p { margin-top:var(--space-4); }
dl { display:grid; grid-template-columns:5rem 1fr; gap:var(--space-2); margin-block:var(--space-4); font-size:var(--text-sm); }
dt { color:var(--color-muted); } dd { margin:0; }
dialog > a { display:inline-block; margin-bottom:var(--space-5); padding:.45rem 1rem; border-radius:var(--radius-sm); background:var(--ink); color:#fff; text-decoration:none; font-size:var(--text-sm); font-weight:600; }

/* ====== Responsive ====== */
@media (max-width:52rem) { .capability-row { grid-template-columns:1fr; gap:var(--space-2); } }
@media (max-width:36rem) {
  .site-header { flex-direction:column; align-items:flex-start; }
  .case-section { grid-template-columns:1fr; gap:var(--space-2); }
  .identity { padding-top:var(--space-5); }
  .section { margin-top:var(--space-7); }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* 色条图注 */
.employer-legend { display:flex; flex-wrap:wrap; gap:var(--space-4); list-style:none; padding:0; margin:0 0 var(--space-4); font-size:var(--text-xs); color:var(--color-muted); }
.employer-legend li { display:flex; align-items:center; gap:var(--space-2); }
.employer-legend li::before { content:""; width:1.25rem; height:4px; border-radius:2px; background:var(--c-medsci); }
.employer-legend li[data-employer="buzz"]::before { background:var(--c-buzz); }
.employer-legend li[data-employer="t3"]::before { background:var(--c-t3); }
.library-grid { margin-top:var(--space-4); }

/* ====== 数字可视化 v2 ====== */
.metric-viz { margin-top:var(--space-5); align-self:end; }
.viz-track { margin-top:0; position:relative; height:12px; border-radius:999px; background:var(--color-soft); }
.viz-track .metric-fill { position:absolute; inset:0 auto 0 0; width:var(--p,0%); border-radius:inherit; background:var(--accent); transition:width 1.1s cubic-bezier(.2,.8,.2,1); }
.viz-over { padding-top:1.4rem; }
.viz-over .metric-target { position:absolute; top:-6px; bottom:-6px; left:calc(100% / var(--scale,1)); width:2px; background:var(--color-text); }
.viz-over .metric-target em { position:absolute; bottom:calc(100% + 4px); left:50%; transform:translateX(-50%); white-space:nowrap; font-style:normal; font-size:var(--text-xs); color:var(--color-muted); }
.viz-over .metric-bar[data-over]::after { content:""; position:absolute; top:0; bottom:0; left:calc(100% / var(--scale,1)); right:0; border-radius:0 999px 999px 0; background:var(--c-buzz); }
.viz-over-tag { position:absolute; right:0; top:calc(100% + 6px); font-size:var(--text-xs); font-weight:700; color:var(--c-buzz); }
.viz-compare { display:grid; gap:var(--space-2); }
.viz-row { display:grid; grid-template-columns:2.6rem 1fr 2.6rem; align-items:center; gap:var(--space-2); }
.viz-label { font-size:var(--text-xs); color:var(--color-muted); }
.viz-base { display:block; height:12px; width:calc(var(--w,28.6) * 1%); border-radius:999px; background:var(--color-muted); opacity:.5; }
.viz-target { box-shadow:inset 0 0 0 1.5px var(--color-text); background:transparent; }
.viz-mark { position:absolute; right:.5rem; top:50%; transform:translateY(-50%); font-size:.68rem; font-weight:600; color:var(--color-muted); }
.viz-x { font-family:var(--font-display); font-size:1.2rem; color:var(--c-buzz); }

/* ====== AI 实践 ====== */
.independent-builds > .builds-intro { padding:0; border:0; text-align:left; margin:calc(-1 * var(--space-3)) 0 var(--space-5); max-width:40em; }
.build-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,26rem),1fr)); gap:var(--space-4); }
.build-card { --ink:var(--c-keyword); --hl:var(--c-keyword-soft); position:relative; display:flex; flex-direction:column; gap:var(--space-3); padding:var(--space-5); background:var(--color-surface); border:var(--border); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; }
.build-card::before { content:""; position:absolute; inset:0 0 auto 0; height:4px; background:linear-gradient(90deg,var(--ink),var(--c-medsci)); }
.build-card .eyebrow { display:flex; justify-content:space-between; gap:var(--space-2); color:var(--ink); font-weight:600; margin:0; }
.build-tool { padding:0 .55rem; border-radius:var(--radius-sm); background:var(--hl); letter-spacing:.04em; }
.build-card h3 { font-size:var(--text-lg); }
.build-body { grid-template-columns:3rem 1fr; margin:0; gap:var(--space-2) var(--space-3); }
.build-body dd { line-height:1.75; }
.build-flow { list-style:none; margin:0; padding:var(--space-3); display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); background:var(--color-soft); border-radius:10px; counter-reset:step; font-size:var(--text-xs); }
.build-flow li { counter-increment:step; display:flex; align-items:center; gap:.35rem; padding:.2rem .6rem; border-radius:6px; background:var(--color-surface); border:var(--border); }
.build-flow li::before { content:counter(step); font-family:var(--font-display); font-size:.95rem; color:var(--ink); }
.build-flow li:not(:last-child)::after { content:"→"; margin-left:.35rem; margin-right:-.6rem; color:var(--color-muted); transform:translateX(.6rem); }
.build-flow li:nth-child(3), .build-flow li:nth-child(5) { border-color:var(--ink); }
.build-result { font-size:var(--text-sm); font-weight:600; }
.build-result span { display:inline-block; margin-right:var(--space-2); font-size:var(--text-xs); color:var(--ink); letter-spacing:.1em; }
.build-tags { margin:auto 0 0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:var(--space-1) var(--space-2); font-size:var(--text-xs); }

/* =====================================================
   D 药盒主题（2026-11-08）
   ===================================================== */
:root { --foil-a:#d9dbdc; --foil-b:#eef0f1; --foil-c:#c4c7c9; --foil-ink:#5f6568; --font-cn-serif:"Noto Serif SC","Songti SC","STSong",serif; }
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){ --foil-a:#3a3d3f; --foil-b:#4a4d50; --foil-c:#2f3133; --foil-ink:#b9bec1; } }
:root[data-theme="dark"]{ --foil-a:#3a3d3f; --foil-b:#4a4d50; --foil-c:#2f3133; --foil-ink:#b9bec1; }

/* 首屏：药盒 */
.identity { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(1.5rem,5vw,4rem); align-items:center; padding-top:var(--space-6); }
.pillbox { position:relative; padding:1.5rem 3.2rem 2.5rem 0; }
.box-front { position:relative; background:var(--color-surface); border:var(--border); border-radius:6px; padding:1.4rem 1.6rem 4.2rem; box-shadow:0 34px 50px -30px #0005, 0 2px 0 #fff inset; transform:perspective(1200px) rotateY(-7deg); transform-origin:left center; transition:transform .5s var(--ease-spring); }
.pillbox:hover .box-front { transform:perspective(1200px) rotateY(-2deg) translateY(-4px); }
.box-side { position:absolute; top:2.2rem; right:.9rem; bottom:3rem; width:2.6rem; background:var(--color-soft); border:var(--border); border-left:0; border-radius:0 4px 4px 0; transform:skewY(-12deg); transform-origin:left top; writing-mode:vertical-rl; font-size:var(--text-xs); letter-spacing:.2em; color:var(--color-muted); display:flex; align-items:center; justify-content:center; overflow:hidden; white-space:nowrap; }
.box-rx { position:absolute; top:1.1rem; right:1.2rem; font-size:.68rem; letter-spacing:.14em; border:1px solid var(--color-text); padding:0 .45rem; }
.box-cat { padding-right:4.6rem; font-size:var(--text-xs); letter-spacing:.16em; text-transform:uppercase; color:var(--color-muted); }
.identity h1 { font-family:var(--font-display); font-weight:400; font-size:clamp(2.6rem,6vw,4.2rem); line-height:1; letter-spacing:-.02em; margin-top:.4rem; }
.identity h1 .pian { display:inline; letter-spacing:0; margin-top:0; color:var(--color-text); font-family:var(--font-cn-serif); font-weight:700; font-size:.62em; margin-left:.15em; vertical-align:.12em; }
.identity h1 .cn-name { display:block; font-family:var(--font-body); font-size:var(--text-sm); letter-spacing:.35em; color:var(--color-muted); margin-top:.7rem; }
.box-spec { display:grid; grid-template-columns:auto 1fr; gap:.1rem .6rem; margin:1rem 0 0; font-size:var(--text-xs); color:var(--color-muted); }
.box-spec dt { color:var(--color-text); font-weight:600; }
.box-band { position:absolute; left:0; right:0; bottom:0; height:2.6rem; display:flex; border-radius:0 0 6px 6px; overflow:hidden; }
.box-band i { flex:1; background:var(--c-medsci); }
.box-band i[data-employer="buzz"] { flex:.7; background:var(--c-buzz); }
.box-band i[data-employer="t3"] { flex:.45; background:var(--c-t3); }
.positioning { font-family:var(--font-cn-serif); font-weight:600; font-size:clamp(1.35rem,2.6vw,1.9rem); line-height:1.6; }
.identity .intro { font-size:var(--text-base); line-height:1.95; margin-top:var(--space-4); color:var(--color-muted); }
.identity .intro .entity, .identity .intro .keyword { font-size:inherit; }

/* 案例卡 = 铝箔泡罩 */
.card-grid { gap:var(--space-5) var(--space-4); padding:var(--space-5); border-radius:22px; background:linear-gradient(135deg,var(--foil-a),var(--foil-b) 40%,var(--foil-c) 72%,var(--foil-b)); box-shadow:inset 0 0 0 1px #ffffff80, 0 24px 44px -32px #0006; }
.case-card { background:var(--color-surface); border:0; border-radius:16px; padding-top:var(--space-4); box-shadow:0 1px 0 #ffffffb0 inset, 0 10px 22px -18px #0006; }
.case-card::before { content:none; }
.blister { height:4.4rem; margin:0 0 var(--space-3); border-radius:2.4rem; display:grid; place-items:center; background:radial-gradient(ellipse at 50% 30%,#ffffffd0,#ffffff30 70%), var(--color-soft); box-shadow:inset 0 2px 6px #fff, inset 0 -5px 10px #0000001a; }
.capsule { position:relative; display:flex; width:7rem; height:2.4rem; border-radius:1.2rem; overflow:hidden; box-shadow:0 6px 12px -6px #0006; transition:transform .35s var(--ease-spring); }
.capsule i { flex:1; } .capsule i:first-child { background:var(--ink); } .case-card { --ink:var(--c-medsci); } .capsule i:last-child { background:#fbfaf6; }
.capsule::after { content:""; position:absolute; left:.9rem; top:.38rem; width:4.6rem; height:.42rem; border-radius:.3rem; background:#ffffff70; }
.case-card:hover .capsule { transform:translateY(-5px) rotate(-5deg); }
.case-card.is-popping .capsule { animation:capsule-pop .5s forwards; }
.case-card.is-popping .blister { box-shadow:inset 0 3px 8px #00000030; }
@keyframes capsule-pop { 40% { transform:translateY(-22px) scale(1.08) rotate(-9deg); } 100% { transform:translateY(-54px) scale(.9) rotate(-16deg); opacity:0; } }
.case-card .eyebrow { color:var(--ink); }
.employer-legend li::before { width:1.4rem; height:.7rem; border-radius:.35rem; }

/* 详情页 = 说明书 */
.case-heading { border-radius:4px; padding-top:var(--space-5); }
.case-heading::before { height:4px; }
.insert-title { text-align:center; font-family:var(--font-cn-serif); font-weight:700; letter-spacing:.4em; font-size:var(--text-md); padding-bottom:var(--space-3); margin-bottom:var(--space-4); border-bottom:1.5px solid var(--color-text); }
.case-section h2 { font-family:var(--font-cn-serif); color:var(--color-text); font-size:var(--text-base); }
.case-section h2 small { font-family:var(--font-body); font-weight:400; font-size:var(--text-xs); color:var(--color-muted); margin-left:.3rem; }
.case-section[data-section="outcome"] h2 { letter-spacing:0; }

/* 联系 = 处方笺 */
.contact { background:var(--color-surface); color:var(--color-text); border:var(--border); border-radius:4px; max-width:34rem; padding:var(--space-6); box-shadow:0 24px 44px -34px #0006; background-image:repeating-linear-gradient(transparent 0 2.2rem, var(--color-border) 2.2rem calc(2.2rem + 1px)); background-position:0 6.4rem; }
.rx-head { display:flex; gap:var(--space-4); align-items:center; border-bottom:1.5px solid var(--color-text); padding-bottom:var(--space-3); }
.rx-mark { font-family:var(--font-display); font-style:italic; font-size:3.4rem; line-height:1; }
.contact h2 { font-size:var(--text-lg); font-family:var(--font-cn-serif); }
.rx-who { font-size:var(--text-sm); color:var(--color-muted); margin:0; }
.rx-lines { list-style:none; margin:var(--space-3) 0 0; padding:0; }
.rx-lines li { display:grid; grid-template-columns:3rem 1fr; line-height:2.2rem; font-size:var(--text-md); }
.rx-lines span { font-size:var(--text-xs); color:var(--color-muted); }
.contact .cv-placeholder { color:var(--color-muted); opacity:1; font-size:var(--text-sm); }
.rx-sign { text-align:right; font-size:var(--text-xs); letter-spacing:.2em; color:var(--color-muted); margin-top:var(--space-3); }
dialog.contact-card .dialog-heading::before { content:"Rp."; font-family:var(--font-display); font-style:italic; font-size:2.2rem; line-height:1; margin-right:var(--space-3); }
dialog.contact-card .dialog-heading { justify-content:flex-start; } dialog.contact-card .dialog-close { margin-left:auto; }

@media (max-width:48rem) { .identity { grid-template-columns:1fr; } .pillbox { padding-right:2.6rem; } }

/* ===== 我能做什么 = 成分表 ===== */
.overview .capability-list { border-top:0; background:var(--color-surface); border:var(--border); border-radius:4px; padding:var(--space-2) var(--space-6) var(--space-3); box-shadow:0 24px 44px -36px #0006; }
.insert-note { font-family:var(--font-cn-serif); font-weight:600; font-size:var(--text-sm); padding:var(--space-4) 0 var(--space-3); border-bottom:1.5px solid var(--color-text); }
.cap-label { font-size:.7rem; letter-spacing:.18em; color:var(--color-muted); margin-bottom:var(--space-1); }
.capability-row:last-child { border-bottom:0; }
.cap-index.tablet { display:inline-grid; place-items:center; flex:0 0 auto; width:2.4rem; height:2.4rem; border-radius:50%; font-size:1rem; color:var(--color-text); background:radial-gradient(circle at 35% 30%,#fff,var(--color-soft) 70%); box-shadow:inset 0 -2px 4px #0000001f, 0 3px 6px -3px #0005; position:relative; }
.cap-index.tablet::after { content:""; position:absolute; left:20%; right:20%; top:50%; height:1px; background:#00000018; }
.capability-row h3 { align-items:center; }
.capability-row .cap-evidence li a { position:relative; padding-left:1.9rem; border-radius:999px; }
.capability-row .cap-evidence li a::before { content:""; position:absolute; left:.55rem; top:50%; width:.95rem; height:.5rem; margin-top:-.25rem; border-radius:.25rem; background:linear-gradient(90deg,var(--c-medsci) 50%,#fbfaf6 50%); box-shadow:0 0 0 .5px #0003; }
.capability-row .cap-evidence li a[data-employer="buzz"]::before { background:linear-gradient(90deg,var(--c-buzz) 50%,#fbfaf6 50%); }
.capability-row .cap-evidence li a[data-employer="t3"]::before { background:linear-gradient(90deg,var(--c-t3) 50%,#fbfaf6 50%); }

/* ===== AI 实践 = 制剂工艺 ===== */
.build-card { border-radius:4px; }
.build-card::before { height:4px; background:var(--c-keyword); }
.build-flow { background:linear-gradient(135deg,var(--foil-a),var(--foil-b) 45%,var(--foil-c) 75%,var(--foil-b)); border-radius:14px; padding:var(--space-3) var(--space-3); gap:var(--space-3) var(--space-4); box-shadow:inset 0 0 0 1px #ffffff80; }
.build-flow li { border:0; border-radius:999px; padding:.35rem .9rem .35rem .45rem; background:radial-gradient(ellipse at 50% 25%,#fff,var(--color-surface) 70%); box-shadow:inset 0 -2px 4px #0000001a, 0 3px 6px -4px #0006; }
.build-flow li::before { display:inline-grid; place-items:center; width:1.35rem; height:1.35rem; border-radius:50%; background:var(--color-soft); font-size:.8rem; }
.build-flow li[data-qc] { box-shadow:inset 0 0 0 1.5px var(--ink), 0 3px 6px -4px #0006; }
.build-flow li[data-qc]::before { content:"QC"; width:auto; padding:0 .35rem; border-radius:999px; background:var(--ink); color:#fff; font-family:var(--font-body); font-size:.62rem; letter-spacing:.06em; }
.build-flow li:nth-child(3), .build-flow li:nth-child(5) { border-color:transparent; }
.build-result { border-top:1px dashed var(--color-border); padding-top:var(--space-3); }
.build-result span { border:1.5px solid var(--ink); padding:0 .4rem; border-radius:3px; transform:rotate(-3deg); }
@media (max-width:36rem) { .overview .capability-list { padding:var(--space-1) var(--space-4) var(--space-3); } }
.independent-builds > p.eyebrow { padding:0; border:0; text-align:left; margin-bottom:var(--space-2); }

/* ===== 详情页 v3：附件 + 说明书（与样稿 D 一致） ===== */
.case-detail { max-width:var(--page-width); }
.insert-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.45fr); gap:clamp(1.5rem,4vw,3rem); align-items:start; }
.attach { position:sticky; top:var(--space-5); background:var(--color-surface); border:var(--border); border-radius:6px; padding:var(--space-4); transform:rotate(-1.2deg); box-shadow:0 22px 40px -28px #0006; }
.attach-label { font-size:var(--text-xs); letter-spacing:.18em; color:var(--color-muted); margin-bottom:var(--space-3); }
.attach-spec { display:grid; grid-template-columns:3rem 1fr; gap:var(--space-2) var(--space-3); margin:0; padding:var(--space-4); border:1.5px dashed var(--color-border); border-radius:4px; font-size:var(--text-sm); background:repeating-linear-gradient(45deg,transparent 0 10px,var(--color-soft) 10px 11px); }
.attach-spec dt { color:var(--color-muted); font-size:var(--text-xs); padding-top:.15rem; }
.attach-img img { border-radius:4px; border:var(--border); }
.attach-img figcaption { font-size:var(--text-xs); }
.attach-capsule { display:flex; justify-content:flex-end; margin-top:var(--space-4); }
.attach-capsule .capsule { transform:rotate(-12deg); }
.insert-paper { background:var(--color-surface); border:var(--border); padding:clamp(1.5rem,4vw,2.6rem) clamp(1.2rem,4vw,2.8rem); box-shadow:0 30px 50px -36px #0006; background-image:linear-gradient(90deg,transparent calc(50% - .5px),#0000000a 50%,transparent calc(50% + .5px)); }
.insert-paper .case-heading { background:none; border:0; box-shadow:none; padding:0; margin-bottom:var(--space-4); overflow:visible; }
.insert-paper .case-heading::before { content:none; }
.insert-paper .insert-title { border:0; padding:0; margin:0; font-size:clamp(1.3rem,2.6vw,1.6rem); }
.insert-sub { text-align:center; font-size:var(--text-xs); color:var(--color-muted); border-bottom:1.5px solid var(--color-text); padding:var(--space-1) 0 var(--space-3); margin-bottom:var(--space-5); }
.insert-paper .case-heading .eyebrow { font-family:var(--font-cn-serif); letter-spacing:0; text-transform:none; font-size:var(--text-base); color:var(--color-text); font-weight:700; }
.insert-paper .case-heading .eyebrow::first-letter { letter-spacing:0; }
.insert-paper .case-heading h1 { font-size:clamp(1.8rem,4vw,2.5rem); margin-top:var(--space-1); }
.insert-paper .case-sections { padding-left:0; gap:0; }
.insert-paper .case-sections::before, .insert-paper .case-sections .case-section::before { content:none; }
.insert-paper .case-section { padding:var(--space-3) 0; border:0; background:none; border-radius:0; margin:0; }
.insert-paper .case-section h2 { margin-bottom:var(--space-1); }
.insert-paper .case-section[data-section="action"] { padding:var(--space-3) 0; border:0; background:none; }
.insert-paper .case-section[data-section="outcome"] { margin-top:var(--space-2); padding:var(--space-3) var(--space-4); background:var(--hl); border-left:3px solid var(--ink); }
.insert-paper .case-section[data-section="outcome"] p { font-size:var(--text-md); }
.insert-warn { font-size:var(--text-xs); color:var(--color-muted); border-top:1px dashed var(--color-border); margin-top:var(--space-5); padding-top:var(--space-3); }
@media (max-width:48rem) { .insert-layout { grid-template-columns:1fr; } .attach { position:static; transform:none; } }

/* ===== 关键数字 = 检验报告单 ===== */
.metrics.report { display:block; background:var(--color-surface); border:var(--border); border-radius:4px; padding:var(--space-5) var(--space-6); box-shadow:0 24px 44px -36px #0006; }
.report-head { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:var(--space-3); border-bottom:1.5px solid var(--color-text); padding-bottom:var(--space-3); }
.report-title { font-family:var(--font-cn-serif); font-weight:700; letter-spacing:.4em; font-size:var(--text-md); }
.report-meta { display:flex; flex-wrap:wrap; gap:var(--space-1) var(--space-4); margin:0; font-size:var(--text-xs); }
.report-meta dt { color:var(--color-muted); } .report-meta dd { margin:0 0 0 calc(-1 * var(--space-3)); }
.report-body { display:grid; grid-template-columns:repeat(auto-fit,minmax(16rem,1fr)); gap:0 var(--space-6); }
.metrics.report .metric-item { display:grid; grid-row:span 5; grid-template-rows:subgrid; background:none; border:0; box-shadow:none; border-radius:0; padding:var(--space-5) 0 var(--space-4); border-bottom:1px dashed var(--color-border); }
.ref-range { display:flex; gap:var(--space-2); align-items:baseline; font-size:var(--text-xs) !important; margin-top:var(--space-2) !important; }
.ref-range span { color:var(--color-muted); }
.ref-range b { color:var(--c-buzz); font-size:var(--text-sm); }
.report-foot { font-size:var(--text-xs); color:var(--color-muted); padding-top:var(--space-3); text-align:right; }
@media (max-width:36rem) { .metrics.report { padding:var(--space-4); } }

/* ===== 其他经历 = 散装片剂 ===== */
.entries-note { margin:calc(-1 * var(--space-3)) 0 var(--space-5); font-size:var(--text-sm); }
.entry-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr)); gap:var(--space-3); }
.entry { --ink:var(--c-medsci); position:relative; display:grid; grid-template-columns:2.6rem 1fr; gap:.2rem var(--space-3); align-items:start; padding:var(--space-4); padding-right:5.4rem; background:var(--color-surface); border:var(--border); border-radius:14px; }
.entry[data-employer="buzz"] { --ink:var(--c-buzz); } .entry[data-employer="t3"] { --ink:var(--c-t3); }
.entry::before { content:""; grid-row:span 2; width:2.4rem; height:2.4rem; border-radius:50%; background:radial-gradient(circle at 35% 30%,#ffffff90,transparent 55%), var(--ink); box-shadow:inset 0 -3px 5px #00000030, 0 3px 6px -3px #0006; }
.entry h3 { font-size:var(--text-base); line-height:1.5; }
.entry p { font-size:var(--text-sm); color:var(--color-muted); grid-column:2; }
.entry > span { position:absolute; top:var(--space-4); right:var(--space-4); font-size:.68rem; letter-spacing:.08em; padding:0 .4rem; border:1.5px solid var(--color-muted); color:var(--color-muted); border-radius:3px; transform:rotate(4deg); white-space:nowrap; }

/* 首屏照片：贴在说明书旁的证件照 */
.portrait { position:relative; width:7.5rem; margin:0 0 var(--space-4); padding:.4rem .4rem 1.4rem; background:var(--color-surface); border:var(--border); box-shadow:0 14px 26px -18px #0006; transform:rotate(2.5deg); }
.portrait img { aspect-ratio:3/4; object-fit:cover; filter:saturate(.85); }
.portrait::before { content:""; position:absolute; top:-.7rem; left:50%; width:2.6rem; height:1.1rem; margin-left:-1.3rem; background:#e8dfc9cc; transform:rotate(-4deg); }
@media (max-width:48rem) { .portrait { width:6rem; } }
.attach-more { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-2); margin-top:var(--space-2); }
.attach-more img { aspect-ratio:4/3; object-fit:cover; border-radius:3px; border:var(--border); }
.attach-img a { display:block; }
dialog.lightbox { width:min(96vw,1400px); max-height:94vh; padding:var(--space-3); background:var(--color-surface); }
dialog.lightbox img { width:100%; max-height:calc(94vh - 5rem); object-fit:contain; cursor:zoom-out; }
dialog.lightbox .dialog-close { position:absolute; top:var(--space-2); right:var(--space-2); z-index:1; box-shadow:0 2px 8px #0003; }
.lightbox-caption { font-size:var(--text-xs); color:var(--color-muted); margin:var(--space-2) 0 0; text-align:center; }
.attach-img a { cursor:zoom-in; }
.build-shot { margin:0; border:var(--border); border-radius:6px; overflow:hidden; background:var(--color-soft); }
.build-shot img { width:100%; aspect-ratio:16/7; object-fit:cover; object-position:top; }

/* 2026-11-09：80% 改为气泡标签，不再挤在条内 */
.viz-compare .viz-row:last-child { margin-top:1.6rem; }
.viz-target .viz-mark { right:auto; top:auto; bottom:calc(100% + 7px); left:var(--p,0%); transform:translateX(-50%); padding:.1rem .5rem; border-radius:999px; background:var(--accent); color:var(--color-surface); font-size:.7rem; white-space:nowrap; transition:left 1.1s cubic-bezier(.2,.8,.2,1); }
.viz-target .viz-mark::after { content:""; position:absolute; left:50%; top:100%; margin-left:-4px; border:4px solid transparent; border-top-color:var(--accent); }

/* 2026-11-09：能力行改为两栏，留白更多 */
.capability-row { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:var(--space-3) var(--space-7); padding-block:var(--space-6); }
.capability-row h3 { grid-column:1; }
.capability-row .cap-description { grid-column:1; grid-row:2; gap:var(--space-2); }
.capability-row .cap-description .cap-label { display:none; }
.capability-row .cap-description .muted { font-size:var(--text-sm); line-height:1.8; }
.capability-row .cap-description .cap-keywords { margin-top:var(--space-2); }
.capability-row .cap-evidence { grid-column:2; grid-row:1 / span 2; align-self:center; }
.capability-row .cap-evidence ul { flex-direction:column; align-items:flex-start; gap:var(--space-2); }
@media (max-width:52rem) { .capability-row { grid-template-columns:1fr; } .capability-row .cap-evidence { grid-column:1; grid-row:auto; } }
.cap-mark { color:var(--color-text); font-weight:600; background:linear-gradient(transparent 60%,var(--c-medsci-soft) 60%); padding:0 .1em; }

/* 能力侧重地图（XY 轴） */
.cap-map { margin:var(--space-4) 0 var(--space-5); padding:var(--space-4); border-bottom:1px dashed var(--color-border); }
.cap-map svg { width:100%; height:auto; display:block; max-width:760px; margin:0 auto; overflow:visible; }
.cap-map .ax { stroke:var(--color-text); stroke-width:1.5; }
.cap-map .ax-head { fill:var(--color-text); }
.cap-map .grid { stroke:var(--color-border); stroke-dasharray:3 4; }
.cap-map .ax-label { font:600 14px var(--font-body); fill:var(--color-text); }
.cap-map .zone { fill:var(--c-medsci-soft); opacity:.55; }
.cap-map .dir circle { fill:var(--color-surface); stroke:var(--color-muted); stroke-width:1.5; }
.cap-map .dir text { font:600 13px var(--font-body); fill:var(--color-muted); }
.cap-map .dir text.en { font-weight:400; font-size:11px; }
.cap-map .mine circle { fill:var(--color-surface); stroke:var(--c-medsci); stroke-width:2; filter:drop-shadow(0 3px 4px #0003); transition:transform .2s; transform-box:fill-box; transform-origin:center; }
.cap-map .mine text { font:400 15px var(--font-display); fill:var(--c-medsci); }
.cap-map a:hover .mine circle { transform:scale(1.15); }
.cap-map figcaption { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:.3rem; font-size:var(--text-xs); color:var(--color-muted); margin-top:var(--space-2); }
.lg-dot,.lg-tab,.lg-zone { display:inline-block; width:.8rem; height:.8rem; border-radius:50%; margin-left:.6rem; }
.lg-dot { border:1.5px solid var(--color-muted); } .lg-tab { border:2px solid var(--c-medsci); } .lg-zone { border-radius:3px; background:var(--c-medsci-soft); }
/* 成分表表头 */
.cap-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:var(--space-7); padding:var(--space-2) 0; font-size:.7rem; letter-spacing:.2em; color:var(--color-muted); border-bottom:1px solid var(--color-border); }
.cap-head span:nth-child(2) { display:none; }
@media (max-width:52rem) { .cap-head { display:none; } }
