/* ═══════════════════════════════════════════════════════════
   QuarkLab — quarklab.ai
   视觉基准：1970 年代气泡室照相玻璃底片
   近黑底片 · 发丝般的发光径迹 · 蚀刻的 fiducial 十字基准标记
   ═══════════════════════════════════════════════════════════ */

:root{
  /* 底片 */
  --plate:      #08090b;
  --plate-2:    #0b0d10;
  --panel:      #0e1013;
  --panel-2:    #12151a;

  /* 蚀刻线 */
  --line:       rgba(232,244,242,.10);
  --line-soft:  rgba(232,244,242,.055);
  --fiducial:   rgba(232,244,242,.13);

  /* 径迹 */
  --track:      #e8f4f2;   /* 主径迹白 */
  --track-mid:  #9aa6a6;
  --track-dim:  #7d888a;

  /* 味 */
  --charm:      #6ee7d0;   /* c · 主信号色 */
  --charm-dim:  rgba(110,231,208,.42);
  --strange:    #b98bff;   /* s · 次级 */
  --amber:      #e0a86a;   /* 暖，用于 CodePet */

  --serif: ui-serif, Georgia, serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", sans-serif;
  --disp:  "Archivo", "Inter", -apple-system, "PingFang SC", sans-serif;
  --mono:  "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --max: 1180px;
  --gut: 34px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

*{ box-sizing:border-box }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100% }

body{
  margin:0;
  background:var(--plate);
  color:var(--track);
  font-family:var(--sans);
  font-size:16px; line-height:1.72;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

a{ color:inherit; text-decoration:none }
ul,ol{ margin:0; padding:0; list-style:none }
img{ display:block; max-width:100% }
em{ font-style:normal }
button{ font:inherit; color:inherit }

/* 中文态：CJK 需要不同的字距与行高，否则会显得挤 */
html.is-zh body{ line-height:1.85; }
html.is-zh .hero__title,
html.is-zh .sec-title,
html.is-zh .cta__title{ letter-spacing:.005em; line-height:1.22 }
html.is-zh .eyebrow,
html.is-zh .sec-label,
html.is-zh .readout dt{ letter-spacing:.12em }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  padding:12px 20px; background:var(--charm); color:#04100d;
  font-family:var(--mono); font-size:12px;
}
.skip:focus{ left:12px; top:12px }

:focus-visible{ outline:2px solid var(--charm); outline-offset:3px }

/* ═════════════ 底片材质三层 ═════════════
   1 fiducial 十字网格 · 2 胶片颗粒 · 3 生成的划痕灰尘   */

.plate-grid{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='128' height='128'%3E%3Cg stroke='%23e8f4f2' stroke-width='1' opacity='.13'%3E%3Cpath d='M64 58v12M58 64h12'/%3E%3C/g%3E%3C/svg%3E");
  background-size:128px 128px;
  opacity:.62;
  mask-image:radial-gradient(ellipse 120% 90% at 50% 40%, #000 30%, transparent 92%);
  -webkit-mask-image:radial-gradient(ellipse 120% 90% at 50% 40%, #000 30%, transparent 92%);
}

.plate-grain{
  position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.30;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='150' height='150' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");
}

/* 生成的划痕/灰尘层。screen 混合 → 黑色即透明，故素材是黑底亮痕 JPEG。
   图缺失时整层自动无害。 */
.plate-dust{
  position:fixed; inset:0; z-index:9997; pointer-events:none;
  opacity:.20; mix-blend-mode:screen;
  background:url('assets/tex/grain.jpg') repeat center / 620px auto;
}

/* ═════════════ 布局 ═════════════ */

.wrap{ max-width:var(--max); margin:0 auto; padding:0 var(--gut); position:relative; z-index:2 }
.wrap--narrow{ max-width:780px }

.section{ position:relative; padding:150px 0; border-top:1px solid var(--line-soft); isolation:isolate }

/* 区块底片背景：极低透明度，只做氛围 */
.section::before,
.cta::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background-image:var(--bg-plate, none);
  background-size:cover; background-position:center;
  opacity:var(--bg-opacity, .18);
}
/* 底片本身已接近纯黑，压暗层只需在上下做接缝过渡 */
.section::after,
.cta::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, var(--plate) 0%, rgba(8,9,11,.24) 20%, rgba(8,9,11,.24) 80%, var(--plate) 100%);
}

.section--thesis  { --bg-plate:url('assets/plate/thesis.jpg');  --bg-opacity:.62 }
.section--work    { --bg-plate:none }
.section--flavours{ --bg-plate:url('assets/plate/flavors.jpg'); --bg-opacity:.52 }
.section--method  { --bg-plate:url('assets/plate/method.jpg');  --bg-opacity:.40 }
.section--log     { --bg-plate:none }
.cta              { --bg-plate:url('assets/plate/cta.jpg');     --bg-opacity:.85 }

/* 滚动揭示 */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity .85s var(--ease), transform .85s var(--ease) }
.reveal.in{ opacity:1; transform:none }

/* ═════════════ 排版基元 ═════════════ */

.eyebrow{
  font-family:var(--mono); font-size:11px; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase; color:var(--track-dim);
  margin:0 0 34px; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
}
.eyebrow .dot{ width:3px; height:3px; background:var(--charm); border-radius:50%; opacity:.75 }

.sec-head{ max-width:720px; margin:0 0 74px }

.sec-label{
  font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--charm); margin:0 0 22px;
  display:inline-flex; align-items:center; gap:12px;
}
.sec-label__n{
  color:var(--track-dim);
  border:1px solid var(--line); border-radius:1px;
  padding:2px 7px; font-size:10px; letter-spacing:.1em;
}

.sec-title{
  font-family:var(--disp); font-weight:500;
  font-size:clamp(2.05rem, 4.2vw, 3.35rem);
  line-height:1.13; letter-spacing:-.026em; margin:0 0 24px;
}
.sec-title em{ color:var(--charm) }
.sec-title--sm{ font-size:clamp(1.6rem, 2.8vw, 2.1rem) }

.sec-desc{ font-size:16.5px; line-height:1.8; color:var(--track-mid); margin:0; max-width:620px }

.prose{ max-width:660px; margin:0 0 66px }
.prose p{ font-size:17px; line-height:1.85; color:var(--track-mid); margin:0 0 22px }
.prose p:last-child{ margin-bottom:0 }

/* ═════════════ 按钮 ═════════════ */

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:13px 26px; border-radius:1px;
  font-family:var(--mono); font-size:13px; letter-spacing:.04em;
  background:var(--track); color:#06090a; border:1px solid var(--track);
  transition:transform .25s var(--ease), box-shadow .35s var(--ease), background .25s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-1px); box-shadow:0 12px 36px rgba(232,244,242,.12) }
.btn--sm{ padding:8px 16px; font-size:12px }
.btn--lg{ padding:16px 34px; font-size:14px }
.btn--charm{ background:var(--charm); border-color:var(--charm); color:#04100d }
.btn--charm:hover{ box-shadow:0 12px 40px rgba(110,231,208,.26) }

.ghost-link{
  font-family:var(--mono); font-size:13px; letter-spacing:.04em; color:var(--track-mid);
  border-bottom:1px solid var(--line); padding-bottom:3px; transition:.25s;
}
.ghost-link:hover{ color:var(--track); border-color:var(--charm-dim) }

/* ═════════════ NAV ═════════════ */

.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  backdrop-filter:blur(16px) saturate(1.3);
  -webkit-backdrop-filter:blur(16px) saturate(1.3);
  background:linear-gradient(to bottom, rgba(8,9,11,.92), rgba(8,9,11,.55));
  border-bottom:1px solid transparent; transition:border-color .4s;
}
.nav.is-stuck{ border-bottom-color:var(--line-soft) }
.nav__inner{
  max-width:var(--max); margin:0 auto; padding:15px var(--gut);
  display:flex; align-items:center; gap:38px;
}

.brand{ display:flex; align-items:center; gap:11px }
.brand__mark{ width:22px; height:22px; color:var(--track-dim); flex-shrink:0 }
.brand__mark .q{ transition:fill .5s var(--ease) }
.brand__mark .q--c{ fill:var(--charm) }
.brand__mark .q--s{ fill:var(--strange) }
.brand__mark .q--w{ fill:var(--track) }
.brand:hover .q--c{ fill:var(--strange) }
.brand:hover .q--s{ fill:var(--track) }
.brand:hover .q--w{ fill:var(--charm) }
.brand__word{
  font-family:var(--disp); font-weight:600; font-size:17px; letter-spacing:-.022em;
}

.nav__links{ display:flex; gap:26px; margin-left:auto }
.nav__links a{
  font-family:var(--mono); font-size:12px; letter-spacing:.09em; text-transform:uppercase;
  color:var(--track-dim); transition:color .25s; position:relative; padding:4px 0;
}
.nav__links a:hover{ color:var(--track) }
.nav__links a::after{
  content:""; position:absolute; left:0; right:100%; bottom:0; height:1px;
  background:var(--charm); transition:right .35s var(--ease);
}
.nav__links a:hover::after{ right:0 }

.nav__end{ display:flex; align-items:center; gap:18px }

.lang{
  display:inline-flex; align-items:center; gap:5px;
  background:transparent; border:1px solid var(--line); border-radius:1px;
  padding:6px 11px; cursor:pointer;
  font-family:var(--mono); font-size:11.5px; letter-spacing:.06em;
  transition:border-color .25s;
}
.lang:hover{ border-color:var(--track-dim) }
.lang__opt{ color:var(--track-dim); transition:color .25s }
.lang__opt.is-on{ color:var(--charm) }
.lang__sep{ color:var(--line); }

/* ═════════════ HERO ═════════════ */

.hero{
  position:relative; isolation:isolate;
  min-height:100svh; display:flex; align-items:center;
  padding:150px 0 90px; overflow:hidden;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-3;
  background:url('assets/plate/hero.jpg') no-repeat center / cover;
  opacity:.92;
}
/* 底片左三分之一本就是空黑，所以横向压暗可以很轻 */
.hero::after{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(8,9,11,.82) 0%, rgba(8,9,11,.42) 44%, rgba(8,9,11,0) 100%),
    linear-gradient(180deg, rgba(8,9,11,.85) 0%, transparent 24%, transparent 68%, var(--plate) 100%);
}

/* 实时粒子径迹 canvas，压在底片图之上、压暗层之下 */
.chamber{
  position:absolute; inset:0; z-index:-2;
  width:100%; height:100%; display:block;
}

.hero__inner{ width:100% }

.hero__title{
  font-family:var(--disp); font-weight:500;
  font-size:clamp(2.75rem, 6.8vw, 5.4rem);
  line-height:1.04; letter-spacing:-.036em;
  margin:0 0 30px; max-width:16ch;
  text-shadow:0 4px 60px rgba(8,9,11,.9);
}
.hero__title em{
  color:var(--charm);
  text-shadow:0 0 70px rgba(110,231,208,.35);
}

.hero__sub{
  max-width:560px; margin:0 0 44px;
  font-size:17.5px; line-height:1.82; color:var(--track-mid);
  text-shadow:0 2px 24px rgba(8,9,11,.9);
}

.hero__actions{ display:flex; align-items:center; gap:28px; flex-wrap:wrap; margin-bottom:80px }

/* 数据读数条 */
.readout{
  display:grid; grid-template-columns:repeat(4, minmax(0,1fr));
  gap:0; margin:0; max-width:760px;
  border-top:1px solid var(--line);
}
.readout__cell{ padding:20px 24px 0 0; border-right:1px solid var(--line-soft) }
.readout__cell:last-child{ border-right:0 }
.readout dt{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--track-dim); margin:0 0 8px;
}
.readout__n{
  margin:0; font-family:var(--disp); font-weight:500;
  font-size:30px; letter-spacing:-.03em; color:var(--track); line-height:1.1;
}
.readout__n .unit{ font-size:17px; color:var(--track-dim); letter-spacing:0 }
.readout__n--word{ font-size:19px; color:var(--charm); letter-spacing:-.015em }

.plate-id{
  position:absolute; left:var(--gut); bottom:26px; z-index:2;
  font-family:var(--mono); font-size:10px; letter-spacing:.24em;
  color:var(--track-dim); opacity:.5;
}

/* ═════════════ THESIS · 三分栏 ═════════════ */

.split{ display:grid; grid-template-columns:repeat(3, 1fr); gap:0; border-top:1px solid var(--line) }
.split__cell{ padding:28px 30px 30px 0; border-right:1px solid var(--line-soft) }
.split__cell:last-child{ border-right:0; padding-right:0 }
.split__cell:not(:first-child){ padding-left:30px }

.split__head{
  font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase;
  color:var(--track-dim); margin:0 0 20px;
}
.split__cell li{
  font-family:var(--disp); font-weight:500; font-size:20px; letter-spacing:-.02em;
  padding:9px 0; color:var(--track);
}
.split__cell--mid li{ color:var(--charm) }
.split__cell--none li{ color:var(--track-dim); text-decoration:line-through; text-decoration-color:rgba(232,244,242,.22) }

/* ═════════════ WORK · 作品栅格 ═════════════ */

.grid{ display:grid; grid-template-columns:repeat(2, 1fr); gap:24px }

.card{
  position:relative;
  border:1px solid var(--line);
  background:linear-gradient(180deg, var(--panel-2), var(--panel));
  border-radius:2px; overflow:hidden;
  transition:border-color .4s var(--ease), transform .4s var(--ease);
}
.card__link{ display:block; height:100% }
.card--live:hover{ border-color:var(--charm-dim); transform:translateY(-3px) }

.card__plate{
  position:relative; aspect-ratio:16/9; overflow:hidden;
  background:var(--plate-2); border-bottom:1px solid var(--line-soft);
}
.card__plate img{
  width:100%; height:100%; object-fit:cover;
  opacity:.9; transition:opacity .6s var(--ease), transform 1.2s var(--ease);
}
.card__plate--coffee img{ object-position:center 48% }
.card__plate--guliguli{ background:#dff3ff }
.card__plate--guliguli img{ object-position:center }
.card--live:hover .card__plate img{ opacity:1; transform:scale(1.035) }
.card__plate::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(11,13,16,.85) 100%);
}
.card__n{
  position:absolute; top:14px; left:16px; z-index:2;
  font-family:var(--mono); font-size:10.5px; letter-spacing:.2em;
  color:var(--track-mid); padding:3px 8px;
  border:1px solid rgba(232,244,242,.18);
  background:rgba(8,9,11,.55); backdrop-filter:blur(6px);
}

.card__body{ padding:24px 26px 26px }
.card__top{ display:flex; align-items:center; gap:14px; margin-bottom:14px; flex-wrap:wrap }
.card__name{
  font-family:var(--disp); font-weight:600; font-size:23px;
  letter-spacing:-.028em; margin:0;
}

.chip{
  font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  padding:3px 9px; border-radius:1px; border:1px solid currentColor; opacity:.9;
}
.chip--dev  { color:var(--charm) }
.chip--proto{ color:var(--strange) }

.card__line{ margin:0 0 20px; font-size:15px; line-height:1.75; color:var(--track-mid) }

.tags{ display:flex; flex-wrap:wrap; gap:7px; margin:0 0 22px }
.tags li{
  font-family:var(--mono); font-size:10.5px; letter-spacing:.06em;
  color:var(--track-dim); padding:3px 9px;
  border:1px solid var(--line-soft); border-radius:1px;
}

.card__url{
  margin:0; padding-top:16px; border-top:1px solid var(--line-soft);
  font-family:var(--mono); font-size:11.5px; letter-spacing:.05em;
  color:var(--charm); display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.card__go{ transition:transform .35s var(--ease) }
.card--live:hover .card__go{ transform:translateX(5px) }

/* ═════════════ SIX FLAVOURS ═════════════ */

.pull{
  margin:0 0 76px; padding:34px 0 34px 34px;
  border-left:2px solid var(--charm-dim);
  max-width:820px;
}
.pull p{
  margin:0; font-family:var(--disp); font-weight:400;
  font-size:clamp(1.15rem, 2.1vw, 1.55rem); line-height:1.55; letter-spacing:-.018em;
  color:var(--track);
}
.pull em{ color:var(--charm); font-style:italic; font-family:var(--serif) }

.flavours{ display:grid; grid-template-columns:repeat(2, 1fr); gap:1px; background:var(--line-soft) }

.flav{
  display:flex; gap:22px; align-items:flex-start;
  padding:32px 30px; background:var(--plate);
  transition:background .45s var(--ease);
}
.flav:hover{ background:var(--panel) }

.flav__sym{
  flex-shrink:0; width:46px; height:46px; border-radius:50%;
  display:grid; place-items:center;
  font-family:var(--disp); font-weight:500; font-size:21px;
  border:1px solid var(--line);
  color:var(--track-dim);
  transition:color .45s var(--ease), border-color .45s var(--ease), box-shadow .45s var(--ease);
}
.flav:hover .flav__sym{ box-shadow:0 0 0 5px rgba(232,244,242,.03) }
.flav--up:hover     .flav__sym{ color:var(--track);   border-color:rgba(232,244,242,.4) }
.flav--down:hover   .flav__sym{ color:var(--track);   border-color:rgba(232,244,242,.4) }
.flav--charm .flav__sym{ color:var(--charm); border-color:var(--charm-dim) }
.flav--strange .flav__sym{ color:var(--strange); border-color:rgba(185,139,255,.42) }
.flav--top:hover    .flav__sym{ color:var(--amber);  border-color:rgba(224,168,106,.42) }
.flav--bottom:hover .flav__sym{ color:var(--track);  border-color:rgba(232,244,242,.4) }

.flav__name{ margin:0 0 10px; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap }
.flav__en{
  font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--track-dim);
}
.flav__rule{
  font-family:var(--disp); font-weight:500; font-size:19px;
  letter-spacing:-.024em; color:var(--track);
}
.flav__note{ margin:0; font-size:14.5px; line-height:1.75; color:var(--track-mid) }

/* ═════════════ METHOD · 船员名单 ═════════════ */

.manifest{ border-top:1px solid var(--line) }

.manifest__head{
  display:grid; grid-template-columns:minmax(180px,.9fr) 2fr; gap:30px;
  padding:14px 0; border-bottom:1px solid var(--line-soft);
  font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
  color:var(--track-dim);
}

.crew{
  display:grid; grid-template-columns:minmax(180px,.9fr) 2fr; gap:30px;
  padding:22px 0; border-bottom:1px solid var(--line-soft);
  transition:background .4s var(--ease);
}
.crew:hover{ background:rgba(232,244,242,.017) }

.crew__role{
  margin:0; font-family:var(--disp); font-weight:500; font-size:18px;
  letter-spacing:-.022em; color:var(--track);
}
.crew__by{ margin:0; display:flex; align-items:baseline; gap:16px; flex-wrap:wrap }

.who{
  flex-shrink:0; min-width:112px;
  font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase;
}
.who--human{ color:var(--charm) }
.who--model{ color:var(--strange) }
.who--both { color:var(--amber) }
.who--none { color:var(--track-dim) }

.crew__note{ font-size:14.5px; line-height:1.7; color:var(--track-mid) }

/* ═════════════ LAB LOG ═════════════ */

.log{ border-top:1px solid var(--line-soft) }
.log li{
  display:grid; grid-template-columns:118px 1fr; gap:26px;
  padding:20px 0; border-bottom:1px solid var(--line-soft);
}
.log time{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.06em;
  color:var(--track-dim); padding-top:3px;
}
.log p{ margin:0; font-size:15.5px; line-height:1.72; color:var(--track-mid) }

/* ═════════════ CTA ═════════════ */

.cta{ position:relative; isolation:isolate; padding:170px 0; text-align:center; border-top:1px solid var(--line-soft) }

.cta__title{
  font-family:var(--disp); font-weight:500;
  font-size:clamp(2.2rem, 5.2vw, 4rem); line-height:1.06; letter-spacing:-.034em;
  margin:0 0 28px;
}
.cta__title em{ color:var(--charm) }
.cta__sub{ max-width:600px; margin:0 auto 48px; font-size:16.5px; line-height:1.85; color:var(--track-mid) }

.cta__actions{ display:flex; flex-direction:column; align-items:center; gap:26px }
.cta__links{ display:flex; gap:26px }

/* ═════════════ FOOTER ═════════════ */

.foot{ padding:52px 0 58px; border-top:1px solid var(--line-soft) }
.foot__inner{ display:flex; align-items:flex-end; gap:40px; flex-wrap:wrap }
.foot__left{ margin-right:auto }
.foot__word{
  margin:0 0 6px; font-family:var(--disp); font-weight:600; font-size:17px; letter-spacing:-.022em;
}
.foot__note{ margin:0; font-size:13.5px; color:var(--track-dim) }
.foot__nav{ display:flex; gap:22px }
.foot__nav a{
  font-family:var(--mono); font-size:11.5px; letter-spacing:.1em; text-transform:uppercase;
  color:var(--track-dim); transition:color .25s;
}
.foot__nav a:hover{ color:var(--track) }
.foot__plate{
  margin:0; width:100%; padding-top:26px; border-top:1px solid var(--line-soft);
  font-family:var(--mono); font-size:10px; letter-spacing:.22em; color:var(--track-dim);
}

/* ═════════════ 断点 ═════════════ */

@media (max-width:1024px){
  .flavours{ grid-template-columns:1fr }
  .readout{ grid-template-columns:repeat(2,1fr) }
  .readout__cell{ padding:18px 20px 18px 0; border-bottom:1px solid var(--line-soft) }
  .readout__cell:nth-child(2n){ border-right:0 }
  .readout__cell:nth-last-child(-n+2){ border-bottom:0 }
}

@media (max-width:900px){
  :root{ --gut:24px }
  .nav__links{ display:none }
  .nav__end{ margin-left:auto }
  .section{ padding:100px 0 }
  .sec-head{ margin-bottom:52px }
  .hero{ min-height:auto; padding:130px 0 80px }
  .hero__title{ max-width:none }
  .grid{ grid-template-columns:1fr }
  .split{ grid-template-columns:1fr }
  .split__cell{ padding:24px 0; border-right:0; border-bottom:1px solid var(--line-soft) }
  .split__cell:not(:first-child){ padding-left:0 }
  .split__cell:last-child{ border-bottom:0 }
  .manifest__head{ display:none }
  .crew{ grid-template-columns:1fr; gap:12px }
  .cta{ padding:120px 0 }
  .plate-id{ display:none }
}

@media (max-width:560px){
  body{ font-size:15.5px }
  .hero__actions{ flex-direction:column; align-items:flex-start; gap:20px; margin-bottom:60px }
  .btn--lg{ width:100%; }
  .readout{ grid-template-columns:1fr }
  .readout__cell{ border-right:0 }
  .readout__cell:nth-last-child(-n+2){ border-bottom:1px solid var(--line-soft) }
  .readout__cell:last-child{ border-bottom:0 }
  .flav{ padding:26px 0; gap:16px }
  .flav__sym{ width:38px; height:38px; font-size:18px }
  .pull{ padding:24px 0 24px 22px; margin-bottom:52px }
  .log li{ grid-template-columns:1fr; gap:6px }
  .card__body{ padding:20px }
  .cta__links{ gap:20px }
  .foot__inner{ flex-direction:column; align-items:flex-start; gap:26px }
}

/* ═════════════ 无障碍 ═════════════ */

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  .reveal{ opacity:1; transform:none; transition:none }
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important }
}

@media print{
  .plate-grid,.plate-grain,.plate-dust,.chamber,.nav{ display:none }
  body{ background:#fff; color:#000 }
}
