/* ————————————————————————————————
   WM — Wayne Marsh · Ink & Seal
   Dark editorial identity system
———————————————————————————————— */

:root{
  --ink:      #0E0E0E;
  --ink-2:    #161615;
  --ink-3:    #8B8B85;
  --paper:    #EFEFEB;
  --paper-dim:rgba(239,239,235,.55);
  --line:     rgba(239,239,235,.14);
  --seal:     #C6362A; /* 朱砂 cinnabar */
  --serif: 'EB Garamond','Noto Serif SC',serif;
  --sans:  'Inter',-apple-system,'PingFang SC','Microsoft YaHei',sans-serif;
  --cjk:   'Noto Serif SC',serif;
  --pad: clamp(20px, 3.2vw, 44px);
}

*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--sans);
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{ background:var(--seal); color:var(--paper); }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }

/* ——— load choreography ——— */
.rise{ opacity:0; transform:translateY(14px); animation:rise .9s cubic-bezier(.22,1,.36,1) forwards; }
@keyframes rise{ to{ opacity:1; transform:none; } }
.d1{ animation-delay:.15s } .d2{ animation-delay:.3s } .d3{ animation-delay:.45s }
.d4{ animation-delay:.6s } .d5{ animation-delay:.75s } .d6{ animation-delay:.9s }

/* ——— header ——— */
header{
  position:fixed; inset:0 0 auto 0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--pad); height:64px;
  border-bottom:1px solid var(--line);
  background:rgba(14,14,14,.82);
  backdrop-filter:blur(10px);
}
.brandline{ display:flex; align-items:center; gap:14px; }
.brandline img{ height:22px; width:auto; }
.brandline .name{
  font-family:var(--sans); font-size:11px; letter-spacing:.34em;
  text-transform:uppercase; color:var(--paper);
}
nav{ display:flex; align-items:center; gap:clamp(16px,2.4vw,34px); }
nav a{
  font-size:11px; letter-spacing:.22em; text-transform:uppercase;
  color:var(--paper-dim); transition:color .25s;
  position:relative;
}
nav a:hover{ color:var(--paper); }
nav a::after{
  content:""; position:absolute; left:0; bottom:-6px; height:1px; width:0;
  background:var(--seal); transition:width .3s cubic-bezier(.22,1,.36,1);
}
nav a:hover::after{ width:100%; }
.clock{
  font-size:11px; letter-spacing:.18em; color:var(--ink-3);
  font-variant-numeric:tabular-nums; text-transform:uppercase;
}
.clock b{ color:var(--paper-dim); font-weight:400; }
.seal-dot{ width:7px; height:7px; background:var(--seal); display:inline-block; }

/* ——— edge furniture ——— */
.edge-r{
  position:fixed; right:14px; top:50%; transform:translateY(-50%);
  writing-mode:vertical-rl; font-family:var(--cjk);
  font-size:15px; letter-spacing:.55em; color:rgba(239,239,235,.22);
  z-index:40; user-select:none; pointer-events:none;
}
.edge-r em{ font-style:normal; color:rgba(198,54,42,.55); }
.edge-l{
  position:fixed; left:14px; bottom:24px; z-index:40;
  transform:rotate(180deg); writing-mode:vertical-rl;
  font-size:10px; letter-spacing:.3em; text-transform:uppercase;
  color:rgba(239,239,235,.28); user-select:none; pointer-events:none;
}
@media (max-width:900px){ .edge-r,.edge-l{ display:none; } }

/* ——— hero ——— */
.hero{
  min-height:100vh;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  padding:120px var(--pad) 80px; position:relative;
}
.kicker{
  font-size:11px; letter-spacing:.42em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:clamp(28px,5vh,56px);
  display:flex; align-items:center; gap:14px;
}
.mark-stage{
  position:relative; width:min(64vw, 760px); cursor:pointer;
}
@media (max-width:700px){ .mark-stage{ width:88vw; } }
.mark-stage img{ width:100%; height:auto; }
.mark-wipe{ clip-path:inset(0 100% 0 0); }
.ydot{
  position:absolute; border-radius:50%;
  aspect-ratio:1; transform:translate(-50%,-50%);
  opacity:0; pointer-events:none;
}
.ydot.a{ background:var(--paper); }
.ydot.b{ background:var(--ink); box-shadow:0 0 0 1px rgba(239,239,235,.28) inset; }
.hero-name{
  margin-top:clamp(30px,6vh,64px);
  font-family:var(--serif); font-weight:400;
  font-size:clamp(26px,4.4vw,52px);
  letter-spacing:.18em; line-height:1;
}
.hero-sub{
  margin-top:18px; font-family:var(--serif);
  font-size:clamp(15px,1.6vw,19px); color:var(--paper-dim);
  letter-spacing:.06em;
}
.hero-sub em{ font-style:normal; color:var(--seal); }
.scroll-cue{
  position:absolute; bottom:26px; left:50%; transform:translateX(-50%);
  font-size:10px; letter-spacing:.4em; text-transform:uppercase; color:var(--ink-3);
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.scroll-cue::after{
  content:""; width:1px; height:34px; background:linear-gradient(var(--ink-3),transparent);
  animation:cue 2.2s ease-in-out infinite;
}
@keyframes cue{ 0%,100%{ opacity:.3 } 50%{ opacity:1 } }

/* ——— quote band ——— */
.quotes{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:clamp(70px,12vh,130px) var(--pad);
  position:relative; min-height:340px;
  display:flex; align-items:center; justify-content:center;
}
.quote{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:0 calc(var(--pad) + 4vw);
  opacity:0; transition:opacity 1.1s ease;
  pointer-events:none;
}
.quote.on{ opacity:1; }
.quote .zh{
  font-family:var(--cjk); font-size:clamp(20px,3vw,34px);
  letter-spacing:.24em; margin-bottom:22px; color:var(--paper);
}
.quote .en{
  font-family:var(--serif); font-size:clamp(15px,1.8vw,20px);
  color:var(--paper-dim); max-width:56ch; line-height:1.65;
}
.quote .who{
  margin-top:26px; font-size:10px; letter-spacing:.4em; text-transform:uppercase;
  color:var(--ink-3);
}
.quote .who i{ font-style:normal; color:var(--seal); }
.q-dots{
  position:absolute; bottom:22px; left:50%; transform:translateX(-50%);
  display:flex; gap:10px;
}
.q-dots span{ width:5px; height:5px; background:var(--ink-3); opacity:.4; transition:.3s; }
.q-dots span.on{ background:var(--seal); opacity:1; }

/* ——— sections ——— */
section.block{ padding:clamp(90px,14vh,160px) var(--pad); }
.grid{
  display:grid; grid-template-columns:repeat(12,1fr);
  gap:0 clamp(16px,2vw,32px); max-width:1360px; margin:0 auto;
}
.sec-num{
  font-size:11px; letter-spacing:.3em; color:var(--seal);
  font-variant-numeric:tabular-nums;
}
.sec-label{
  font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-3);
  margin-top:10px;
}
h2.display{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(40px,6.4vw,84px);
  line-height:.98; letter-spacing:.01em;
}
h2.display .zh{ font-family:var(--cjk); color:var(--ink-3); font-size:.55em; letter-spacing:.3em; display:block; margin-top:14px; }
.body-serif{
  font-family:var(--serif); font-size:clamp(17px,1.9vw,21px);
  line-height:1.75; color:var(--paper-dim);
}
.body-serif strong{ color:var(--paper); font-weight:500; }
.rule{ border:none; border-top:1px solid var(--line); }

/* the way — asymmetric placement */
.col-offset{ grid-column:2 / span 5; }
.col-side{ grid-column:8 / span 4; }
@media (max-width:900px){
  .col-offset{ grid-column:1 / -1; }
  .col-side{ grid-column:1 / -1; margin-top:56px; }
}
.texts-list{ margin-top:44px; }
.texts-list .t{
  display:flex; align-items:baseline; gap:18px;
  padding:20px 0; border-top:1px solid var(--line);
}
.texts-list .t:last-child{ border-bottom:1px solid var(--line); }
.texts-list .zh{ font-family:var(--cjk); font-size:22px; letter-spacing:.14em; min-width:5.5em; }
.texts-list .meta{ font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); }
.texts-list .en{ font-family:var(--serif); font-size:17px; color:var(--paper-dim); margin-top:4px; }

/* principles */
.principles{ max-width:1360px; margin:clamp(50px,7vh,80px) auto 0; }
.principle{
  display:grid; grid-template-columns:repeat(12,1fr);
  gap:0 clamp(16px,2vw,32px);
  align-items:baseline;
  padding:clamp(26px,4vh,42px) 0;
  border-top:1px solid var(--line);
  transition:background .35s;
}
.principle:last-child{ border-bottom:1px solid var(--line); }
.principle .rn{
  grid-column:1 / span 2;
  font-family:var(--serif); font-size:clamp(38px,4.6vw,64px);
  color:var(--ink-3); line-height:1; transition:color .35s;
}
.principle .zh{
  grid-column:3 / span 3;
  font-family:var(--cjk); font-size:clamp(19px,2vw,26px); letter-spacing:.18em;
}
.principle .en{
  grid-column:6 / span 6;
  font-family:var(--serif); font-size:clamp(15px,1.6vw,19px);
  color:var(--paper-dim); line-height:1.6;
}
.principle .en b{ color:var(--paper); font-weight:500; display:block; margin-bottom:4px; }
.principle:hover .rn{ color:var(--seal); }
@media (max-width:900px){
  .principle{ grid-template-columns:repeat(6,1fr); row-gap:12px; }
  .principle .rn{ grid-column:1 / span 1; }
  .principle .zh{ grid-column:2 / span 5; }
  .principle .en{ grid-column:2 / span 5; }
}

/* footer */
footer{
  border-top:1px solid var(--line);
  padding:clamp(60px,9vh,100px) var(--pad) 110px;
  display:flex; justify-content:space-between; align-items:flex-end; gap:32px;
  flex-wrap:wrap;
}
.chop{
  width:64px; height:64px; background:var(--seal);
  display:flex; align-items:center; justify-content:center;
  font-family:var(--cjk); font-size:34px; color:var(--paper);
  user-select:none;
}
.foot-meta{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-3); line-height:2.1; }
.foot-meta a{ color:var(--paper-dim); border-bottom:1px solid var(--line); transition:.25s; }
.foot-meta a:hover{ color:var(--paper); border-color:var(--seal); }

/* ———————————————— brand board ———————————————— */
.board-hero{ padding:160px var(--pad) 60px; }
.board-hero h1{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(44px,7vw,92px); line-height:.98;
}
.board-hero .sub{ margin-top:22px; font-size:11px; letter-spacing:.34em; text-transform:uppercase; color:var(--ink-3); }
.bsec{ padding:clamp(60px,9vh,110px) var(--pad); border-top:1px solid var(--line); }
.bsec > .grid{ align-items:start; }
.spec{ grid-column:1 / span 3; position:sticky; top:100px; }
.spec .sec-num{ display:block; }
.spec h3{
  font-family:var(--serif); font-weight:400; font-size:clamp(24px,2.6vw,34px);
  margin-top:12px; line-height:1.1;
}
.spec p{ margin-top:16px; font-size:13px; line-height:1.7; color:var(--ink-3); max-width:30ch; }
.content{ grid-column:5 / span 8; }
@media (max-width:900px){
  .spec{ grid-column:1/-1; position:static; margin-bottom:40px; }
  .content{ grid-column:1/-1; }
}

/* logo specimens */
.specimen{ border:1px solid var(--line); padding:clamp(30px,5vw,60px); display:flex; align-items:center; justify-content:center; }
.specimen.dark{ background:var(--ink); }
.specimen.light{ background:var(--paper); }
.specimen + .specimen{ border-top:none; }
.specimen img{ width:min(100%,520px); }
.spec-cap{
  display:flex; justify-content:space-between; padding:14px 2px;
  font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-3);
}
.duo{ display:grid; grid-template-columns:1fr 1fr; }
.duo .specimen img{ width:min(72%,200px); }
@media (max-width:700px){ .duo{ grid-template-columns:1fr; } }

/* clear space */
.clearspace{ border:1px solid var(--line); padding:clamp(30px,5vw,60px); }
.cs-inner{ position:relative; display:inline-block; }
.cs-inner img{ width:min(100%,520px); }
.cs-frame{
  position:absolute; inset:-9%;
  border:1px dashed rgba(198,54,42,.6);
}
.cs-frame i{
  position:absolute; top:-22px; left:0; font-style:normal;
  font-size:10px; letter-spacing:.2em; color:var(--seal); text-transform:uppercase;
}
.donts{ margin-top:34px; display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); }
.donts div{ background:var(--ink); padding:22px; font-size:12.5px; line-height:1.6; color:var(--paper-dim); }
.donts b{ display:block; color:var(--seal); font-size:10px; letter-spacing:.26em; text-transform:uppercase; margin-bottom:8px; font-weight:500; }
@media (max-width:700px){ .donts{ grid-template-columns:1fr; } }

/* colour */
.swatches{ border:1px solid var(--line); }
.sw{
  display:grid; grid-template-columns:120px 1fr auto; align-items:center;
  gap:24px; padding:26px clamp(20px,3vw,40px);
  border-bottom:1px solid var(--line);
}
.sw:last-child{ border-bottom:none; }
.sw .chip{ height:64px; border:1px solid var(--line); }
.sw .nm{ font-family:var(--serif); font-size:22px; }
.sw .nm .zh{ font-family:var(--cjk); color:var(--ink-3); margin-left:12px; font-size:16px; letter-spacing:.2em; }
.sw .use{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-3); margin-top:6px; }
.sw .hex{ font-size:12px; letter-spacing:.14em; color:var(--paper-dim); font-variant-numeric:tabular-nums; cursor:pointer; }
.sw .hex:hover{ color:var(--seal); }
.ratio-bar{ display:flex; height:10px; margin-top:28px; border:1px solid var(--line); }
.ratio-bar i:nth-child(1){ flex:70; background:var(--ink-2); }
.ratio-bar i:nth-child(2){ flex:25; background:var(--paper); }
.ratio-bar i:nth-child(3){ flex:5;  background:var(--seal); }
.ratio-cap{ display:flex; justify-content:space-between; margin-top:10px; font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-3); }

/* type specimens */
.type-row{ border:1px solid var(--line); border-bottom:none; padding:clamp(26px,4vw,46px); }
.type-row:last-of-type{ border-bottom:1px solid var(--line); }
.type-row .tag{ font-size:10px; letter-spacing:.3em; text-transform:uppercase; color:var(--seal); margin-bottom:18px; }
.type-garamond{ font-family:var(--serif); font-size:clamp(30px,4.6vw,58px); line-height:1.05; }
.type-inter{ font-family:var(--sans); font-size:clamp(16px,2vw,22px); letter-spacing:.02em; color:var(--paper-dim); }
.type-cjk{ font-family:var(--cjk); font-size:clamp(26px,4vw,46px); letter-spacing:.22em; }
.type-note{ margin-top:16px; font-size:12px; color:var(--ink-3); letter-spacing:.06em; }

/* motion demo */
.motion-demo{ border:1px solid var(--line); padding:clamp(30px,5vw,60px); text-align:center; }
.motion-demo .mark-stage{ margin:0 auto; width:min(100%,460px); }
.replay{
  margin-top:30px; display:inline-block; background:none; cursor:pointer;
  border:1px solid var(--line); color:var(--paper-dim);
  font-family:var(--sans); font-size:10px; letter-spacing:.34em; text-transform:uppercase;
  padding:14px 30px; transition:.3s;
}
.replay:hover{ border-color:var(--seal); color:var(--paper); }

/* assets list */
.assets-list{ border:1px solid var(--line); }
.assets-list a{
  display:flex; justify-content:space-between; align-items:center;
  padding:18px clamp(20px,3vw,36px);
  border-bottom:1px solid var(--line);
  font-size:12px; letter-spacing:.14em; color:var(--paper-dim);
  transition:.25s;
}
.assets-list a:last-child{ border-bottom:none; }
.assets-list a:hover{ color:var(--paper); background:var(--ink-2); }
.assets-list a span{ font-size:10px; letter-spacing:.26em; color:var(--ink-3); text-transform:uppercase; }

/* ———————————————— The Tao of Wayne — plan v1.1 additions ———————————————— */

/* ——— Gate: fixed verse-one inscription ——— */
.verse-gate{
  max-width:1360px; margin:0 auto;
  padding:clamp(90px,14vh,160px) var(--pad);
  display:flex; flex-direction:column; align-items:center; text-align:center;
  border-top:1px solid var(--line);
}
.verse-gate .sec-num{ font-size:15px; letter-spacing:.42em; }
.verse-body{ margin-top:clamp(30px,5vh,52px); }
.verse-text{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(24px,3.4vw,44px); line-height:1.35;
  letter-spacing:.01em; color:var(--paper);
  max-width:26ch;
}
.verse-meta{
  margin-top:26px; font-size:10px; letter-spacing:.4em;
  text-transform:uppercase; color:var(--ink-3);
}
/* visible placeholder marking — removed when Wayne's words land */
.draft-slot{
  color:var(--ink-3); font-style:italic;
}

/* ——— stub pages (incremental build — replaced page by page) ——— */
.stub{
  min-height:78vh; display:flex; flex-direction:column;
  justify-content:center; align-items:center; text-align:center;
  padding:140px var(--pad) 80px;
}
.stub .zh-mark{
  font-family:var(--cjk); font-size:clamp(40px,7vw,84px);
  letter-spacing:.3em; color:var(--paper); line-height:1;
}
.stub h1{
  margin-top:26px; font-family:var(--serif); font-weight:400;
  font-size:clamp(30px,4.6vw,56px); line-height:1.05; letter-spacing:.02em;
}
.stub .stub-note{
  margin-top:22px; font-family:var(--serif); font-style:italic;
  font-size:clamp(15px,1.7vw,19px); color:var(--ink-3); max-width:44ch; line-height:1.7;
}
.stub .stub-meta{
  margin-top:34px; font-size:10px; letter-spacing:.4em;
  text-transform:uppercase; color:var(--ink-3);
}

/* ———————————————— The Tao 經 — reading mode (increment 2) ———————————————— */

nav a.on{ color:var(--paper); }
nav a.on::after{ width:100%; }

.verse-meta a{ color:var(--paper-dim); border-bottom:1px solid var(--line); transition:.25s; }
.verse-meta a:hover{ color:var(--paper); border-color:var(--seal); }

/* intro */
.tao-intro{
  padding:clamp(150px,22vh,220px) var(--pad) clamp(60px,9vh,110px);
  text-align:center;
}
.tao-intro .sec-num{ font-size:13px; letter-spacing:.42em; }
.tao-intro h1{
  margin-top:22px; font-family:var(--serif); font-weight:400;
  font-size:clamp(44px,7vw,92px); line-height:.98;
}
.tao-intro .sub{
  margin-top:24px; font-size:11px; letter-spacing:.34em;
  text-transform:uppercase; color:var(--ink-3);
}

/* one movement per screen */
.verse-screen{
  min-height:100vh;
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  text-align:center; padding:110px var(--pad);
  position:relative;
}
.verse-screen + .verse-screen{ border-top:1px solid var(--line); }
.verse-screen .mv{
  font-size:10px; letter-spacing:.42em; text-transform:uppercase;
  color:var(--ink-3); margin-bottom:clamp(30px,5vh,54px);
}
.verse-screen .sec-num{ font-size:15px; letter-spacing:.42em; margin-bottom:clamp(26px,4vh,44px); }
.verse-title{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(36px,5.6vw,72px); line-height:1.05; max-width:20ch;
}
.verse-lines{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(24px,3.3vw,42px); line-height:1.55;
  color:var(--paper); max-width:30ch;
}
.verse-lines .dim{ color:var(--paper-dim); }
.verse-close-line{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(28px,4vw,52px); line-height:1.2; color:var(--paper);
  margin-top:clamp(34px,6vh,60px);
}

/* index */
.tao-index{
  padding:clamp(80px,12vh,140px) var(--pad) clamp(100px,15vh,170px);
  border-top:1px solid var(--line);
}
.tao-index-head{ max-width:1360px; margin:0 auto clamp(40px,6vh,64px); }
.tao-index-head .sec-label{ margin-top:10px; }
.vrows{ max-width:1360px; margin:0 auto; }
.vrow{
  display:grid; grid-template-columns:repeat(12,1fr);
  gap:0 clamp(16px,2vw,32px); align-items:baseline;
  padding:clamp(26px,4vh,42px) 0;
  border-top:1px solid var(--line);
}
.vrow:last-child{ border-bottom:1px solid var(--line); }
.vrow .vn{
  grid-column:1 / span 2;
  font-family:var(--serif); font-size:clamp(38px,4.6vw,64px);
  color:var(--ink-3); line-height:1; transition:color .35s;
}
.vrow:hover .vn{ color:var(--seal); }
.vrow .vt{
  grid-column:3 / span 5;
  font-family:var(--serif); font-size:clamp(19px,2vw,26px); color:var(--paper);
}
.vrow .vt .mv-list{ display:block; margin-top:8px; font-family:var(--sans); font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-3); }
.vrow .vm{
  grid-column:9 / span 4; text-align:right;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3);
}
@media (max-width:900px){
  .vrow{ grid-template-columns:repeat(6,1fr); row-gap:10px; }
  .vrow .vn{ grid-column:1 / span 1; }
  .vrow .vt{ grid-column:2 / span 5; }
  .vrow .vm{ grid-column:2 / span 5; text-align:left; }
}

/* ———————————————— Field Notes 記 (increment 3) ———————————————— */

/* intro */
.notes-intro{
  padding:clamp(150px,22vh,220px) var(--pad) clamp(60px,9vh,110px);
}
.notes-intro-inner{ max-width:1360px; margin:0 auto; }
.notes-intro .sec-num{ font-size:13px; letter-spacing:.42em; }
.notes-intro h1{
  margin-top:22px; font-family:var(--serif); font-weight:400;
  font-size:clamp(44px,7vw,92px); line-height:.98;
}
.notes-intro .sub{
  margin-top:24px; font-family:var(--serif); font-style:italic;
  font-size:clamp(15px,1.7vw,19px); color:var(--ink-3); max-width:52ch; line-height:1.7;
}

/* lens filters */
.lens-bar{
  position:sticky; top:64px; z-index:30;
  display:flex; flex-wrap:wrap; gap:clamp(18px,3vw,40px);
  padding:18px var(--pad);
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  background:rgba(14,14,14,.82); backdrop-filter:blur(10px);
}
.lens{
  background:none; border:none; cursor:pointer; padding:4px 0;
  font-family:var(--sans); font-size:11px; letter-spacing:.26em;
  text-transform:uppercase; color:var(--ink-3); transition:color .25s;
  display:flex; align-items:baseline; gap:10px;
}
.lens .z{ font-family:var(--cjk); font-size:15px; letter-spacing:0; }
.lens:hover{ color:var(--paper); }
.lens.on{ color:var(--paper); }
.lens.on .z{ color:var(--seal); }

/* stream rows */
.stream{ max-width:1360px; margin:0 auto; padding:0 var(--pad) clamp(100px,15vh,170px); }
.nrow{
  display:grid; grid-template-columns:repeat(12,1fr);
  gap:0 clamp(16px,2vw,32px); align-items:baseline;
  padding:clamp(26px,4vh,42px) 0;
  border-top:1px solid var(--line);
}
.stream .nrow:last-of-type{ border-bottom:1px solid var(--line); }
.nrow .nn{
  grid-column:1 / span 2;
  font-family:var(--serif); font-size:clamp(38px,4.6vw,64px);
  color:var(--ink-3); line-height:1; transition:color .35s;
}
a.nrow:hover .nn{ color:var(--seal); }
.nrow .nt{
  grid-column:3 / span 6;
  font-family:var(--serif); font-size:clamp(19px,2vw,26px); color:var(--paper);
}
.nrow .nf{ display:flex; align-items:baseline; gap:10px; }
.nrow .nf .z{ font-family:var(--cjk); font-size:19px; color:var(--paper); }
.nrow .nf .l{
  font-size:10px; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-3);
}
.nrow .nd{
  grid-column:10 / span 3; text-align:right;
  font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3);
  font-variant-numeric:tabular-nums;
}
@media (max-width:900px){
  .nrow{ grid-template-columns:repeat(6,1fr); row-gap:10px; }
  .nrow .nn{ grid-column:1 / span 1; }
  .nrow .nt{ grid-column:2 / span 5; }
  .nrow .nf{ grid-column:2 / span 3; }
  .nrow .nd{ grid-column:5 / span 2; text-align:right; }
}

/* empty state */
.stream-empty{
  padding:clamp(60px,10vh,120px) 0;
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
}
.stream-empty p{
  font-family:var(--serif); font-style:italic;
  font-size:clamp(16px,1.8vw,20px); color:var(--ink-3); line-height:1.8; max-width:56ch;
}
.stream-empty .factors{
  margin-top:34px; font-size:11px; letter-spacing:.3em;
  text-transform:uppercase; color:var(--ink-3);
}
.stream-empty .factors .z{ font-family:var(--cjk); letter-spacing:.18em; color:var(--paper-dim); }

/* ——— note page template ——— */
.note{ max-width:820px; margin:0 auto; padding:clamp(150px,22vh,220px) var(--pad) clamp(100px,15vh,170px); }
.note-meta{ display:flex; align-items:baseline; gap:18px; }
.note-meta .nn{
  font-family:var(--serif); font-size:clamp(30px,3.6vw,48px); color:var(--seal); line-height:1;
}
.note-meta .nf .z{ font-family:var(--cjk); font-size:19px; }
.note-meta .nd{
  margin-left:auto; font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-3); font-variant-numeric:tabular-nums;
}
.note h1{
  margin-top:clamp(28px,5vh,48px);
  font-family:var(--serif); font-weight:400;
  font-size:clamp(34px,5vw,58px); line-height:1.08;
}
.note-body{ margin-top:clamp(36px,6vh,60px); }
.note-body p{
  font-family:var(--serif); font-size:clamp(17px,1.9vw,21px);
  line-height:1.8; color:var(--paper-dim);
}
.note-body p + p{ margin-top:1.4em; }
.note-body p strong{ color:var(--paper); font-weight:500; }
/* reserved embed slot — invisible until a note carries media.
   Usage: paste a YouTube/Vimeo/podcast iframe inside .embed-slot. */
.embed-slot{ margin-top:clamp(36px,6vh,60px); border-top:1px solid var(--line); padding-top:clamp(28px,4vh,44px); }
.embed-slot iframe{ width:100%; aspect-ratio:16/9; border:0; display:block; }
.embed-slot audio{ width:100%; display:block; }
.note-nav{
  margin-top:clamp(70px,10vh,120px); padding-top:26px;
  border-top:1px solid var(--line);
  display:flex; justify-content:space-between; gap:24px;
  font-size:11px; letter-spacing:.26em; text-transform:uppercase;
}
.note-nav a{ color:var(--ink-3); transition:color .25s; }
.note-nav a:hover{ color:var(--paper); }
.note-nav .dim{ color:var(--ink-3); opacity:.5; }

/* ———————————————— The Door 扉 ———————————————— */
.door-rows{ max-width:1360px; margin:0 auto; padding:0 var(--pad) clamp(100px,15vh,170px); }
.drow{
  display:grid; grid-template-columns:repeat(12,1fr);
  gap:0 clamp(16px,2vw,32px); align-items:baseline;
  padding:clamp(30px,5vh,48px) 0; border-top:1px solid var(--line);
}
.drow:last-child{ border-bottom:1px solid var(--line); }
.drow .dk{
  grid-column:1 / span 3;
  font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--ink-3);
}
.drow .dv{
  grid-column:4 / span 9;
  font-family:var(--serif); font-size:clamp(19px,2.2vw,28px); color:var(--paper);
}
.drow .dv a{ border-bottom:1px solid var(--line); transition:.25s; }
.drow .dv a:hover{ color:var(--paper); border-color:var(--seal); }
.drow .dv .note-sm{ display:block; margin-top:8px; font-family:var(--sans); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-3); }
@media (max-width:900px){
  .drow{ grid-template-columns:repeat(6,1fr); row-gap:10px; }
  .drow .dk{ grid-column:1 / span 6; }
  .drow .dv{ grid-column:1 / span 6; }
}
/* coffee slot — reserved, invisible until activated (plan §4: The Door) */
.coffee-slot{ display:none; }

/* ———————————————— choreography pass (increment 4) ———————————————— */

/* one-time rise on scroll — the system's rise language, applied on intersection */
.sr{ opacity:0; transform:translateY(14px);
  transition:opacity .9s cubic-bezier(.22,1,.36,1), transform .9s cubic-bezier(.22,1,.36,1); }
.sr.in{ opacity:1; transform:none; }

/* reduced motion — stillness honoured literally */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .rise{ animation:none; opacity:1; transform:none; }
  .sr{ opacity:1; transform:none; transition:none; }
  .scroll-cue::after{ animation:none; }
  .quote{ transition:none; }
  nav a::after, .nrow .nn, .vrow .vn{ transition:none; }
}

/* small screens — keep the header breathing */
@media (max-width:760px){
  .clock{ display:none; }
  .brandline .name{ display:none; }
  nav{ gap:16px; }
  nav a{ font-size:10px; letter-spacing:.16em; }
}

/* 404 */
.lost{ min-height:100vh; display:flex; flex-direction:column;
  justify-content:center; align-items:center; text-align:center; padding:120px var(--pad); }
.lost .zh-mark{
  font-family:var(--cjk); font-size:clamp(60px,10vw,120px);
  letter-spacing:.3em; color:var(--paper); line-height:1;
}
.lost h1{
  margin-top:28px; font-family:var(--serif); font-weight:400;
  font-size:clamp(28px,4vw,48px); line-height:1.1;
}
.lost p{
  margin-top:20px; font-family:var(--serif); font-style:italic;
  font-size:clamp(15px,1.7vw,19px); color:var(--ink-3);
}
.lost a{
  margin-top:38px; display:inline-block;
  font-size:11px; letter-spacing:.34em; text-transform:uppercase;
  color:var(--paper-dim); border-bottom:1px solid var(--line);
  padding-bottom:6px; transition:.25s;
}
.lost a:hover{ color:var(--paper); border-color:var(--seal); }

/* ———————————————— media facade (increment 5) ———————————————— */
/* Click-to-load embed: nothing from Google/Vimeo/etc. loads until asked. */
.embed-slot iframe{ width:100%; aspect-ratio:16/9; border:0; display:block; background:var(--ink); }
.media-facade{
  position:relative; width:100%; aspect-ratio:16/9; cursor:pointer;
  background:var(--ink-2); border:none; padding:0; display:block;
  font-family:inherit;
}
.media-facade img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; }
.media-facade .mf-centre{
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:18px;
}
.media-facade .mf-glyph{
  font-family:var(--cjk); font-size:clamp(30px,4vw,44px); color:var(--paper);
  letter-spacing:.2em; transition:color .3s;
}
.media-facade .mf-label{
  font-size:10px; letter-spacing:.34em; text-transform:uppercase;
  color:var(--paper-dim); transition:color .3s;
}
.media-facade .mf-note{
  position:absolute; bottom:16px; left:0; right:0; text-align:center;
  font-size:9px; letter-spacing:.26em; text-transform:uppercase; color:var(--ink-3);
}
.media-facade::after{
  content:""; position:absolute; inset:0;
  border:1px solid var(--line); pointer-events:none; transition:border-color .3s;
}
.media-facade:hover::after, .media-facade:focus-visible::after{ border-color:var(--seal); }
.media-facade:hover .mf-glyph{ color:var(--seal); }
.media-facade:hover .mf-label{ color:var(--paper); }
.media-facade:focus-visible{ outline:none; }
