/* =========================================================
   Morning Light Medical
   site.css — brand system
   ========================================================= */

:root{
  --ink:#0E1D19;
  --ink-2:#132723;
  --paper:#FAF7F1;
  --paper-2:#F4EFE5;
  --sand:#EDE4D4;
  --cream:#F8F3E9;
  --fg:#12211E;
  --muted:#5F6C66;
  --muted-2:#8A948E;
  --line:rgba(18,33,30,.15);
  --line-soft:rgba(18,33,30,.09);
  --line-l:rgba(248,243,233,.16);
  --brass:#B98A4E;
  --brass-l:#D8B27C;
  --clay:#B9613F;
  --sage:#7E948A;
  --serif:'Newsreader','Songti SC','Noto Serif CJK SC','Source Han Serif SC','SimSun',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei','Noto Sans CJK SC','DengXian',sans-serif;
  --ease:cubic-bezier(.22,.61,.24,1);
  --gut:clamp(20px,4.6vw,68px);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{
  margin:0;background:var(--paper);color:var(--fg);
  font-family:var(--sans);font-size:16.5px;line-height:1.65;
  font-weight:400;letter-spacing:-.004em;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3,h4,p,ol,ul,figure{margin:0}
::selection{background:var(--brass);color:#150C02}

.wrap{max-width:1380px;margin-inline:auto;padding-inline:var(--gut)}
.wrap--narrow{max-width:980px}

/* grain */
.grain{
  position:fixed;inset:0;z-index:900;pointer-events:none;opacity:.032;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='220' height='220' filter='url(%23n)'/></svg>");
  mix-blend-mode:multiply;
}

/* ---------- shared type ---------- */
.eyebrow{
  font-size:10.5px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);display:flex;align-items:center;gap:13px;
}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.45;flex:none}
.eyebrow--light{color:rgba(248,243,233,.5)}
.eyebrow--light::before{opacity:.6}

.h2{
  font-family:var(--serif);font-weight:300;letter-spacing:-.024em;
  font-size:clamp(2.1rem,4.2vw,3.75rem);line-height:1.05;
  margin-top:26px;max-width:17ch;
}
.h2 em{font-style:italic;color:var(--clay)}
.h2--light{color:var(--cream)}
.h2--light em{color:var(--brass-l)}
.dim{color:rgba(248,243,233,.50)}
.muted{color:var(--muted)}
.arw{display:inline-block;transition:transform .5s var(--ease)}

/* CJK: no synthetic italics on display type — colour carries the emphasis */
:lang(zh) .h2 em, :lang(ja) .h2 em,
:lang(zh) .hero__h1 em, :lang(ja) .hero__h1 em,
:lang(zh) .cta__h em, :lang(ja) .cta__h em,
:lang(zh) .pagehead h1 em, :lang(ja) .pagehead h1 em,
:lang(zh) blockquote em, :lang(ja) blockquote em,
:lang(zh) .quote blockquote em, :lang(ja) .quote blockquote em,
:lang(zh) .bound__note em, :lang(ja) .bound__note em{font-style:normal}

/* CJK display faces: one family for the whole line, kana included */
:lang(zh) .hero__h1, :lang(zh) .h2, :lang(zh) .pagehead h1,
:lang(zh) .cta__h, :lang(zh) .quote blockquote, :lang(zh) .brand__name,
:lang(zh) .col h3, :lang(zh) .svc__item h3, :lang(zh) .aud__card h3,
:lang(zh) .prog__step h3, :lang(zh) .card h3, :lang(zh) .pillar h3,
:lang(zh) .faq summary, :lang(zh) .step h3, :lang(zh) .bound__note{
  font-family:'Songti SC','SimSun','Noto Serif SC','Noto Serif CJK SC',serif;
}
:lang(ja) .hero__h1, :lang(ja) .h2, :lang(ja) .pagehead h1,
:lang(ja) .cta__h, :lang(ja) .quote blockquote, :lang(ja) .brand__name,
:lang(ja) .col h3, :lang(ja) .svc__item h3, :lang(ja) .aud__card h3,
:lang(ja) .prog__step h3, :lang(ja) .card h3, :lang(ja) .pillar h3,
:lang(ja) .faq summary, :lang(ja) .step h3, :lang(ja) .bound__note{
  font-family:'Yu Mincho','YuMincho','Hiragino Mincho ProN','Noto Serif JP','SimSun',serif;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:14px;
  padding:15px 27px;border-radius:999px;
  font-size:13.2px;font-weight:500;letter-spacing:.025em;
  transition:background .45s var(--ease),color .45s var(--ease),
             border-color .45s var(--ease),transform .45s var(--ease);
}
.btn .arw{font-size:15px;line-height:1}
.btn:hover .arw{transform:translateX(4px)}
.btn--solid{background:var(--ink);color:var(--cream)}
.btn--solid:hover{background:var(--clay)}
.btn--line{border:1px solid var(--line);color:var(--fg)}
.btn--line:hover{border-color:var(--fg);background:rgba(18,33,30,.04)}
.btn--light{background:var(--cream);color:var(--ink)}
.btn--light:hover{background:var(--brass);color:#1B1003}
.btn--ghost{border:1px solid rgba(248,243,233,.26);color:var(--cream);padding:11px 20px;font-size:12.2px}
.btn--ghost:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.btn--lg{padding:19px 34px;font-size:14.5px}

.link{
  display:inline-flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);
  border-bottom:1px solid var(--line);padding-bottom:6px;
  transition:color .4s var(--ease),border-color .4s var(--ease);
}
.link:hover{color:var(--fg);border-color:var(--fg)}

/* =========================================================
   announcement strip
   ========================================================= */
.strip{
  position:relative;z-index:810;background:var(--ink);color:rgba(248,243,233,.7);
  font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;text-align:center;
  padding:9px 16px;border-bottom:1px solid rgba(248,243,233,.08);
}
.strip b{color:var(--brass-l);font-weight:500}

/* =========================================================
   HEADER
   ========================================================= */
.hdr{
  position:sticky;top:0;left:0;right:0;z-index:800;
  transition:background .5s var(--ease),border-color .5s var(--ease),
             backdrop-filter .5s var(--ease),box-shadow .5s var(--ease);
  border-bottom:1px solid transparent;background:transparent;
}
.hdr__in{
  max-width:1380px;margin-inline:auto;padding:0 var(--gut);
  height:84px;display:flex;align-items:center;gap:44px;
}
.brand{display:flex;align-items:center;gap:13px;color:var(--cream);flex:none}
.brand__mark{width:34px;height:34px;color:var(--brass-l);transition:transform .9s var(--ease)}
.brand:hover .brand__mark{transform:rotate(90deg)}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--serif);font-size:19.5px;letter-spacing:-.005em;font-weight:400}
.brand__sub{font-size:8px;letter-spacing:.36em;text-transform:uppercase;opacity:.55;margin-top:4px}

.nav{display:flex;gap:32px;margin-left:auto}
.nav a{
  font-size:13.4px;color:rgba(248,243,233,.76);position:relative;padding-block:7px;
  transition:color .4s var(--ease);
}
.nav a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);
}
.nav a:hover{color:var(--cream)}
.nav a:hover::after{transform:scaleX(1)}
.hdr__tools{display:flex;align-items:center;gap:14px;flex:none}

/* solid header on scroll */
.hdr.is-solid{
  background:rgba(250,247,241,.94);
  backdrop-filter:blur(18px) saturate(1.3);
  border-bottom-color:var(--line-soft);
}
.hdr.is-solid .brand{color:var(--fg)}
.hdr.is-solid .brand__mark{color:var(--brass)}
.hdr.is-solid .nav a{color:var(--muted)}
.hdr.is-solid .nav a:hover{color:var(--fg)}
.hdr.is-solid .btn--ghost{border-color:var(--line);color:var(--fg)}
.hdr.is-solid .btn--ghost:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.hdr.is-solid .burger{color:var(--fg)}

.burger{display:none;width:36px;height:36px;position:relative;color:var(--cream)}
.burger span{position:absolute;left:7px;right:7px;height:1.3px;background:currentColor;transition:transform .4s var(--ease)}
.burger span:nth-child(1){top:14px}
.burger span:nth-child(2){top:21px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){transform:translateY(-3.5px) rotate(-45deg)}

.mobilenav{
  position:fixed;inset:0;z-index:790;background:var(--ink);
  padding:120px var(--gut) 40px;display:none;flex-direction:column;
}
.mobilenav.is-open{display:flex}
.mobilenav a{
  font-family:var(--serif);font-size:29px;color:var(--cream);font-weight:300;
  padding:14px 0;border-bottom:1px solid var(--line-l);
}
.mobilenav a:last-of-type{border-bottom:0}
.mobilenav .mobile-foot{margin-top:auto;font-size:12px;letter-spacing:.1em;color:rgba(248,243,233,.4);text-transform:uppercase}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;min-height:calc(100svh - 36px);background:var(--ink);color:var(--cream);
  display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;isolation:isolate;margin-top:-84px;padding-top:84px;
}
.hero__sky{position:absolute;inset:0;z-index:-1}
.hero__base{
  position:absolute;inset:0;
  background:linear-gradient(180deg,#07100E 0%,#0A1714 40%,#102019 72%,#14241C 100%);
}
.hero__sun{
  position:absolute;left:-10%;right:-10%;bottom:-2px;height:60%;
  background:
    radial-gradient(58% 104% at 50% 110%,
      rgba(255,222,178,.60) 0%, rgba(248,182,120,.32) 24%,
      rgba(200,124,80,.12) 44%, rgba(10,23,20,0) 66%),
    linear-gradient(180deg,rgba(255,196,134,0) 40%,rgba(255,186,120,.09) 100%);
  filter:blur(14px);
  animation:breathe 18s ease-in-out infinite alternate;
}
.hero__haze{
  position:absolute;left:-10%;right:-10%;bottom:12%;height:34%;
  background:radial-gradient(50% 100% at 50% 100%,rgba(255,196,134,.07),transparent 72%);
  filter:blur(30px);
}
.hero__vignette{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,rgba(2,8,6,.55) 0%,rgba(2,8,6,0) 38%),
    radial-gradient(120% 62% at 50% 0%,rgba(0,0,0,.32),rgba(0,0,0,0) 62%);
}
@keyframes breathe{
  from{opacity:.75;transform:translateX(-50%) translateY(14px) scale(.98)}
  to{opacity:1;transform:translateX(-50%) translateY(-8px) scale(1.05)}
}
.hero__arc{
  position:absolute;left:50%;bottom:-58vw;width:116vw;aspect-ratio:1;
  transform:translateX(-50%);border-radius:50%;
  border:1px solid rgba(247,214,166,.22);
  box-shadow:0 0 120px 40px rgba(247,214,166,.06) inset;
}
.hero__arc--2{bottom:-52vw;width:96vw;border-color:rgba(247,214,166,.12)}
.hero__rays{
  position:absolute;left:50%;bottom:0;width:70vw;height:66%;
  transform:translateX(-50%);
  background:linear-gradient(180deg,rgba(247,214,166,0) 0%,rgba(247,214,166,.045) 70%,rgba(247,214,166,.09) 100%);
  filter:blur(50px);
}
.hero__stars{
  position:absolute;inset:0;opacity:.5;
  background-image:
    radial-gradient(1.2px 1.2px at 16% 20%,rgba(255,255,255,.6),transparent),
    radial-gradient(1px 1px at 76% 14%,rgba(255,255,255,.45),transparent),
    radial-gradient(1.3px 1.3px at 58% 30%,rgba(255,255,255,.32),transparent),
    radial-gradient(1px 1px at 34% 8%,rgba(255,255,255,.4),transparent),
    radial-gradient(1px 1px at 88% 36%,rgba(255,255,255,.3),transparent),
    radial-gradient(1.1px 1.1px at 8% 48%,rgba(255,255,255,.25),transparent),
    radial-gradient(1px 1px at 44% 16%,rgba(255,255,255,.32),transparent);
}

.hero__in{width:100%;max-width:1380px;margin-inline:auto;padding:0 var(--gut) clamp(48px,6.4vh,86px)}
.hero__meta{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,243,233,.5);
  padding-bottom:clamp(28px,5.5vh,58px);
}
.hero__meta-sep{width:18px;height:1px;background:currentColor;opacity:.35}
.dot{
  width:5px;height:5px;border-radius:50%;background:var(--brass-l);
  box-shadow:0 0 0 4px rgba(216,178,124,.14);animation:pulse 3.6s ease-in-out infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 3px rgba(216,178,124,.12)}50%{box-shadow:0 0 0 9px rgba(216,178,124,0)}}

.hero__h1{
  font-family:var(--serif);font-weight:300;
  font-size:clamp(3.1rem,8.2vw,8.2rem);
  line-height:.93;letter-spacing:-.03em;color:var(--cream);
}
.hero__h1 .ln{display:block;overflow:hidden;padding-bottom:.045em;margin-bottom:-.045em}
.hero__h1 .ln>span{display:block;transform:translateY(105%);animation:rise 1.2s var(--ease) forwards}
.hero__h1 .ln:nth-child(1)>span{animation-delay:.1s}
.hero__h1 .ln:nth-child(2)>span{animation-delay:.2s}
@keyframes rise{to{transform:translateY(0)}}
.hero__h1 em{font-style:italic;color:var(--brass-l)}

.hero__foot{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:44px;align-items:end;
  margin-top:clamp(30px,5vh,54px);padding-top:30px;border-top:1px solid var(--line-l);
  opacity:0;animation:fadeIn 1.3s var(--ease) .65s forwards;
}
@keyframes fadeIn{to{opacity:1}}
.hero__lede{max-width:56ch;font-size:15.5px;line-height:1.7;color:rgba(248,243,233,.7)}
.hero__acts{display:flex;gap:12px;flex-wrap:wrap}
.hero__acts .btn--line{border-color:rgba(248,243,233,.26);color:var(--cream)}
.hero__acts .btn--line:hover{border-color:var(--cream);background:rgba(248,243,233,.07)}
.hero__scroll{
  position:absolute;right:var(--gut);bottom:clamp(48px,6.4vh,86px);
  display:flex;align-items:center;gap:11px;writing-mode:vertical-rl;
  font-size:9px;letter-spacing:.32em;text-transform:uppercase;color:rgba(248,243,233,.38);
}
.hero__scroll i{display:block;width:1px;height:54px;background:linear-gradient(180deg,rgba(248,243,233,.45),transparent)}

/* =========================================================
   SECTIONS
   ========================================================= */
.sect{padding-block:clamp(86px,11vw,162px);position:relative}
.sect--paper{background:var(--paper)}
.sect--paper2{background:var(--paper-2)}
.sect--sand{background:var(--sand)}
.sect--ink{background:var(--ink);color:var(--cream)}
.sect__hd{max-width:1040px}
.sect__hd--row{
  max-width:none;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.6fr);
  gap:clamp(28px,5vw,84px);align-items:end;margin-bottom:clamp(46px,6vw,86px);
}
.sect__aside{font-size:14.4px;line-height:1.72;color:var(--muted);max-width:38ch;padding-bottom:6px}
.sect--ink .sect__aside{color:rgba(248,243,233,.55)}

/* ---------- problem / three columns ---------- */
.cols3{
  display:grid;grid-template-columns:repeat(3,1fr);
  margin-top:clamp(52px,7vw,92px);border-top:1px solid var(--line);
}
.col{border-right:1px solid var(--line-soft);padding:34px clamp(18px,2.6vw,44px) 0 0}
.col:last-child{border-right:0}
.col__num{font-size:10.5px;letter-spacing:.24em;color:var(--clay);font-variant-numeric:tabular-nums;margin-bottom:28px}
.col h3{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,1.75vw,1.58rem);
  letter-spacing:-.014em;line-height:1.2;margin-bottom:12px;
}
.col p{font-size:14.2px;line-height:1.74;color:var(--muted);max-width:34ch}

/* ---------- services ---------- */
.svc{
  display:grid;grid-template-columns:repeat(2,1fr);
  border-top:1px solid var(--line);border-left:1px solid var(--line-soft);
  margin-top:clamp(44px,5.4vw,72px);
}
.svc__item{
  position:relative;padding:clamp(30px,3.4vw,52px);border-right:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);display:flex;flex-direction:column;
  min-height:clamp(250px,24vw,320px);transition:background .6s var(--ease);overflow:hidden;
}
.svc__item::before{
  content:"";position:absolute;inset:0;background:var(--paper);
  transform:translateY(101%);transition:transform .7s var(--ease);z-index:0;
}
.svc__item:hover::before{transform:none}
.svc__icon{width:44px;height:44px;color:var(--brass);position:relative;z-index:1;transition:transform .8s var(--ease)}
.svc__item:hover .svc__icon{transform:translateY(-3px) rotate(-6deg)}
.svc__item h3{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.35rem,2vw,1.72rem);
  letter-spacing:-.016em;line-height:1.16;margin-top:auto;position:relative;z-index:1;
}
.svc__item p{font-size:14px;line-height:1.72;color:var(--muted);margin-top:12px;max-width:40ch;position:relative;z-index:1}
.svc__n{
  position:absolute;top:clamp(26px,3vw,44px);right:clamp(26px,3vw,44px);
  font-size:10px;letter-spacing:.22em;color:var(--muted-2);z-index:1;
}
.svc--plain .svc__item{min-height:0;padding-block:clamp(26px,2.8vw,38px)}
.svc--plain .svc__item h3{margin-top:0}

/* ---------- boundaries ---------- */
.bound{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,5vw,90px);margin-top:clamp(48px,6vw,80px)}
.bound__col h3{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.15rem,1.55vw,1.35rem);
  letter-spacing:-.012em;margin-bottom:26px;padding-bottom:16px;
  border-bottom:1px solid var(--line-l);color:var(--cream);
}
.bound__list{list-style:none;padding:0;display:flex;flex-direction:column}
.bound__list li{
  display:flex;gap:16px;align-items:flex-start;padding:13px 0;
  font-size:14.4px;line-height:1.6;color:rgba(248,243,233,.72);
  border-bottom:1px solid rgba(248,243,233,.07);
}
.bound__list li:last-child{border-bottom:0}
.bound__mark{
  flex:none;width:18px;height:18px;margin-top:2px;color:var(--brass-l);
}
.bound__list--no .bound__mark{color:rgba(248,243,233,.3)}
.bound__note{
  margin-top:clamp(40px,5vw,64px);padding-top:28px;border-top:1px solid var(--line-l);
  font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.6rem);line-height:1.42;
  color:rgba(248,243,233,.9);max-width:44ch;font-weight:300;letter-spacing:-.014em;
}
.bound__note em{font-style:italic;color:var(--brass-l)}

/* ---------- programme timeline ---------- */
.prog{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin-top:clamp(48px,6vw,78px);border-top:1px solid var(--line);
}
.prog__step{padding:32px clamp(18px,2.6vw,38px) 0 0;border-right:1px solid var(--line-soft)}
.prog__step:last-child{border-right:0}
.prog__wk{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--clay);margin-bottom:22px}
.prog__step h3{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.3rem,1.8vw,1.56rem);
  letter-spacing:-.014em;line-height:1.2;margin-bottom:12px;
}
.prog__step p{font-size:14px;line-height:1.72;color:var(--muted);max-width:32ch}
.prog__bar{
  height:1px;background:var(--line);margin-top:clamp(40px,5vw,56px);position:relative;
}
.prog__bar i{
  position:absolute;left:0;top:-1px;height:3px;width:0;background:var(--brass);
  transition:width 1.6s var(--ease);
}
.prog__bar.in i{width:100%}

/* ---------- audience ---------- */
.aud{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px);margin-top:clamp(44px,5.4vw,72px)}
.aud__card{
  border:1px solid var(--line);padding:clamp(26px,3vw,40px);
  display:flex;flex-direction:column;min-height:clamp(260px,26vw,330px);
  transition:border-color .5s var(--ease),background .5s var(--ease),transform .5s var(--ease);
  background:transparent;
}
.aud__card:hover{border-color:var(--fg);transform:translateY(-4px);background:#fff}
.aud__label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.aud__card h3{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.4rem,2.1vw,1.8rem);
  letter-spacing:-.018em;line-height:1.14;margin-top:26px;
}
.aud__card p{font-size:14px;line-height:1.72;color:var(--muted);margin-top:14px;max-width:32ch}
.aud__list{list-style:none;padding:0;margin-top:auto;padding-top:24px;display:flex;flex-direction:column;gap:7px}
.aud__list li{font-size:12.8px;color:var(--muted);display:flex;gap:9px;align-items:center}
.aud__list li::before{content:"";width:12px;height:1px;background:var(--brass);flex:none}

/* ---------- quote ---------- */
.quote{
  display:block;max-width:min(100%,940px);
}
.quote__mark{
  font-family:var(--serif);font-size:clamp(4rem,7vw,6.5rem);line-height:.55;
  color:var(--brass-l);opacity:.55;margin-bottom:.28em;user-select:none;
}
.quote blockquote{
  font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,3.3vw,2.75rem);
  line-height:1.28;letter-spacing:-.022em;margin:0;max-width:22ch;
}
.quote blockquote em{font-style:italic;color:var(--clay)}
.quote__by{
  margin-top:32px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;gap:12px;
}
.quote__by::before{content:"";width:24px;height:1px;background:currentColor;opacity:.5}

/* ---------- faq ---------- */
.faq{margin-top:clamp(40px,5vw,64px);border-top:1px solid var(--line);max-width:min(100%,960px)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  list-style:none;cursor:pointer;padding:26px 0;
  display:flex;align-items:flex-start;gap:24px;justify-content:space-between;
  font-family:var(--serif);font-size:clamp(1.12rem,1.6vw,1.35rem);
  letter-spacing:-.012em;line-height:1.35;transition:color .4s var(--ease);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--clay)}
.faq summary i{
  flex:none;width:22px;height:22px;position:relative;margin-top:4px;
  transition:transform .45s var(--ease);color:var(--brass);
}
.faq summary i::before,.faq summary i::after{
  content:"";position:absolute;left:0;right:0;top:50%;height:1.2px;background:currentColor;
  transform:translateY(-50%);
}
.faq summary i::after{transform:translateY(-50%) rotate(90deg);transition:transform .45s var(--ease),opacity .3s}
.faq details[open] summary i::after{transform:translateY(-50%) rotate(0);opacity:0}
.faq details p{
  font-size:14.6px;line-height:1.78;color:var(--muted);
  max-width:70ch;padding:0 0 30px 0;margin-top:-6px;
}

/* ---------- CTA ---------- */
.cta{position:relative;background:var(--ink);color:var(--cream);padding-block:clamp(96px,13vw,180px);overflow:hidden}
.cta__glow{
  position:absolute;left:50%;bottom:-10%;width:130vw;height:52%;transform:translateX(-50%);
  background:radial-gradient(48% 100% at 50% 100%,
    rgba(226,168,112,.22) 0%, rgba(200,140,90,.07) 44%, rgba(14,29,25,0) 74%);
  filter:blur(44px);pointer-events:none;
}
.cta__in{position:relative}
.cta__h{margin-top:28px;max-width:22ch;font-size:clamp(2.4rem,5.4vw,4.8rem)}
.cta__h em{color:var(--brass-l)}
.cta__row{display:flex;align-items:center;gap:34px;flex-wrap:wrap;margin-top:clamp(36px,4.6vw,58px)}
.cta__small{font-size:12.5px;letter-spacing:.04em;color:rgba(248,243,233,.55)}
.cta__small a{color:rgba(248,243,233,.72);border-bottom:1px solid rgba(248,243,233,.25);padding-bottom:2px}
.cta__small a:hover{color:var(--cream);border-color:var(--cream)}

/* ---------- footer ---------- */
.ftr{background:var(--ink);color:var(--cream);padding-top:clamp(56px,7vw,80px);padding-bottom:36px;border-top:1px solid var(--line-l)}
.ftr__top{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,2.15fr);gap:clamp(40px,6vw,94px);padding-bottom:60px}
.ftr__brand .brand{color:var(--cream)}
.ftr__blurb{font-size:13px;line-height:1.72;color:rgba(248,243,233,.45);max-width:28ch;margin-top:22px}
.ftr__cols{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.ftr__hd{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:rgba(248,243,233,.34);margin-bottom:18px}
.ftr__col a{display:block;font-size:13.2px;color:rgba(248,243,233,.66);padding:5px 0;transition:color .3s}
.ftr__col a:hover{color:var(--cream)}
.ftr__legal{
  display:flex;justify-content:space-between;gap:44px;align-items:flex-start;
  border-top:1px solid var(--line-l);padding-top:26px;
}
.ftr__legal p{font-size:11.4px;color:rgba(248,243,233,.34);letter-spacing:.015em}
.ftr__disc{max-width:76ch;line-height:1.7}

/* ---------- language picker ---------- */
.langpick{position:relative;display:flex;align-items:center}
.langpick__btn{
  display:inline-flex;align-items:center;gap:8px;color:var(--cream);
  font-size:12px;letter-spacing:.08em;padding:9px 2px;
  transition:opacity .3s var(--ease);
}
.langpick__btn:hover{opacity:.72}
.langpick__btn svg{width:15px;height:15px;opacity:.65}
.hdr.is-solid .langpick__btn{color:var(--fg)}
.langpick__menu{
  position:absolute;top:calc(100% + 16px);right:0;min-width:178px;z-index:30;
  background:var(--paper);border:1px solid var(--line-soft);
  box-shadow:0 26px 60px -28px rgba(6,18,25,.45);
  padding:7px;opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .35s var(--ease),transform .35s var(--ease),visibility .35s;
}
.langpick.is-open .langpick__menu{opacity:1;visibility:visible;transform:none}
.langpick__menu button{
  display:block;width:100%;text-align:left;padding:10px 13px;font-size:13.5px;
  color:var(--muted);border-radius:2px;transition:background .25s,color .25s;
}
.langpick__menu button:hover{background:var(--paper-2);color:var(--fg)}
.langpick__menu button.is-on{color:var(--clay)}
.mnav-langs{display:flex;flex-wrap:wrap;gap:7px;margin-top:30px}
.mnav-langs button{
  font-size:12.5px;color:rgba(248,243,233,.62);border:1px solid var(--line-l);
  padding:8px 14px;border-radius:999px;transition:all .25s;
}
.mnav-langs button.is-on{background:var(--cream);color:var(--ink);border-color:var(--cream)}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(20px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.rv.in{opacity:1;transform:none}

/* =========================================================
   INNER PAGES
   ========================================================= */
.pagehead{
  background:var(--ink);color:var(--cream);padding-top:calc(84px + clamp(60px,9vw,120px));
  padding-bottom:clamp(56px,8vw,100px);position:relative;overflow:hidden;margin-top:-84px;
}
.pagehead__glow{
  position:absolute;left:50%;bottom:-70%;width:120vw;height:120%;transform:translateX(-50%);
  background:radial-gradient(45% 55% at 50% 50%,rgba(216,158,104,.26),transparent 70%);
  filter:blur(40px);pointer-events:none;
}
.pagehead h1{
  font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,5.6vw,4.9rem);
  line-height:1.02;letter-spacing:-.028em;margin-top:24px;max-width:20ch;
}
.pagehead h1 em{font-style:italic;color:var(--brass-l)}
.pagehead p{
  max-width:58ch;margin-top:26px;font-size:15.5px;line-height:1.72;color:rgba(248,243,233,.65);
}
.pagehead .eyebrow{color:rgba(248,243,233,.5)}

.prose{max-width:74ch}
.prose h2{
  font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,2.6vw,2.3rem);
  letter-spacing:-.018em;line-height:1.16;margin:clamp(44px,5vw,64px) 0 18px;
}
.prose h2:first-child{margin-top:0}
.prose h3{
  font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:.01em;
  margin:32px 0 10px;color:var(--fg);
}
.prose p{font-size:15px;line-height:1.8;color:#33433D;margin-bottom:16px}
.prose ul{padding-left:20px;margin-bottom:16px}
.prose li{font-size:15px;line-height:1.8;color:#33433D;margin-bottom:8px}
.prose a{border-bottom:1px solid var(--line);transition:border-color .3s}
.prose a:hover{border-color:var(--fg)}
.prose .lede{font-family:var(--serif);font-size:clamp(1.2rem,1.9vw,1.5rem);line-height:1.5;color:var(--fg);font-weight:300;letter-spacing:-.012em}
.legal-note{
  font-size:12.5px;line-height:1.7;color:var(--muted);
  border-left:2px solid var(--brass);padding:10px 0 10px 16px;
  margin-bottom:30px !important;max-width:64ch;
}

/* contact */
.contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,100px)}
.cform{display:flex;flex-direction:column;gap:22px}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.field input,.field select,.field textarea{
  font:inherit;font-size:15px;color:var(--fg);background:transparent;
  border:0;border-bottom:1px solid var(--line);padding:10px 0;border-radius:0;
  transition:border-color .4s var(--ease);width:100%;
}
.field textarea{resize:vertical;min-height:110px;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--fg)}
.field input::placeholder,.field textarea::placeholder{color:var(--muted-2)}
.cform .btn{align-self:flex-start;margin-top:10px}
.cform__note{font-size:12px;line-height:1.7;color:var(--muted);max-width:46ch}
.contact__aside p{font-size:15px;line-height:1.78;color:#33433D;margin-bottom:22px}
.contact__block{margin-top:32px;padding-top:26px;border-top:1px solid var(--line)}
.contact__block .k{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.contact__block .v{font-family:var(--serif);font-size:1.3rem;letter-spacing:-.01em}
.contact__block .v a{border-bottom:1px solid var(--line)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1180px){
  .nav{gap:24px}
  .nav a{font-size:12.8px}
  .ftr__top{grid-template-columns:1fr}
  .quote{grid-template-columns:1fr}
  .quote__mark{display:none}
}
@media (max-width:980px){
  .nav,.hdr__cta{display:none}
  .burger{display:block}
  .hdr__tools{margin-left:auto}
  .hdr .burger{color:var(--cream)}
  .hdr.is-solid .burger{color:var(--fg)}
  .svc{grid-template-columns:1fr}
  .aud{grid-template-columns:1fr}
  .contact{grid-template-columns:1fr}
  .sect__hd--row{grid-template-columns:1fr}
  .ftr__cols{grid-template-columns:1fr 1fr;gap:34px 24px}
  .hero__scroll{display:none}
}
@media (max-width:720px){
  body{font-size:16px}
  .strip{font-size:9.5px;letter-spacing:.05em;padding:8px 14px;line-height:1.5}
  .hero__foot{grid-template-columns:1fr;gap:26px;align-items:start}
  .hero__meta{gap:10px;font-size:9.2px;letter-spacing:.13em}
  .hero__meta-sep,.hero__meta .meta-loc{display:none}
  .hero__acts{flex-direction:column;align-items:stretch;gap:10px}
  .hero__acts .btn{justify-content:space-between}
  .cols3{grid-template-columns:1fr}
  .col{border-right:0;border-bottom:1px solid var(--line-soft);padding:26px 0}
  .col:last-child{border-bottom:0}
  .bound{grid-template-columns:1fr;gap:34px}
  .prog{grid-template-columns:1fr}
  .prog__step{border-right:0;border-bottom:1px solid var(--line-soft);padding:26px 0}
  .prog__step:last-child{border-bottom:0}
  .ftr__legal{flex-direction:column;gap:14px}
  .cta__row{gap:20px}
  .btn--lg{width:100%;justify-content:space-between}
  .svc__item{min-height:auto;padding:30px 24px}
  .bound__note{font-size:1.1rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  .rv{opacity:1;transform:none}
  .hero__h1 .ln>span{transform:none}
  .hero__foot{opacity:1}
  .hero__sun{animation:none}
}

/* =========================================================
   PREMIUM PASS v2 — refine numerals, motion, depth
   ========================================================= */

/* --- 1. index numerals: give them air and a rule --------- */
.col__num,.pillar__num{
  display:flex;align-items:center;gap:14px;
  font-size:10.5px;letter-spacing:.18em;font-variant-numeric:tabular-nums;
  margin-bottom:36px;color:var(--clay);
}
.col__num::after,.pillar__num::after{
  content:"";width:38px;height:1px;flex:none;background:currentColor;opacity:.32;
}
.area__idx,.svc__n{font-variant-numeric:tabular-nums;letter-spacing:.2em}
.aud__label{word-spacing:.42em;letter-spacing:.16em;line-height:1.5}
.prog__wk{letter-spacing:.2em;margin-bottom:26px}

/* --- 2. header condenses on scroll ----------------------- */
.hdr__in{transition:height .5s var(--ease)}
.hdr.is-solid .hdr__in{height:68px}

/* --- 3. heading reveal: a wipe, not a slide -------------- */
.h2.rv{
  opacity:1;transform:none;
  clip-path:inset(0 0 102% 0);
  transition:clip-path 1.15s cubic-bezier(.16,1,.3,1);
}
.h2.rv.in{clip-path:inset(-8% -4% -8% -4%)}

/* --- 4. buttons: fill sweeps up from the base ------------ */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;
  transform:translateY(101%);transition:transform .55s var(--ease);
}
.btn--solid::before{background:var(--clay)}
.btn--light::before{background:var(--brass)}
.btn:hover::before{transform:none}
.btn--line::before,.btn--ghost::before{display:none}

/* --- 5. cards lift --------------------------------------- */
.aud__card{transition:border-color .5s var(--ease),background .5s var(--ease),
           transform .55s var(--ease),box-shadow .55s var(--ease)}
.aud__card:hover{
  transform:translateY(-6px);
  box-shadow:0 34px 64px -46px rgba(6,18,25,.5);
}
.card__art{transition:box-shadow .6s var(--ease)}
.card:hover .card__art{box-shadow:0 30px 60px -40px rgba(6,18,25,.45)}

/* --- 6. hero: a slow sheen across the sky ---------------- */
.hero__sheen{
  position:absolute;inset:-30% -20%;pointer-events:none;
  background:linear-gradient(104deg,transparent 42%,rgba(255,226,186,.055) 50%,transparent 58%);
  animation:sheen 16s linear infinite;
}
@keyframes sheen{from{transform:translateX(-22%)}to{transform:translateX(22%)}}

/* --- 7. reading progress hairline ------------------------ */
.readbar{
  position:fixed;top:0;left:0;right:0;height:2px;z-index:1000;pointer-events:none;
  background:transparent;
}
.readbar i{
  display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:0 50%;
  background:linear-gradient(90deg,var(--brass),var(--clay));
  opacity:.9;
}

/* --- 8. finer hairlines between light sections ----------- */
.sect--paper2{border-top:1px solid var(--line-soft)}

/* --- 9. body measure ------------------------------------- */
.col p,.svc__item p,.aud__card p,.prog__step p{letter-spacing:-.002em}

@media (prefers-reduced-motion:reduce){
  .hero__sheen{display:none}
  .h2.rv{clip-path:none;opacity:1}
}

/* CJK: pull quotes need a wider measure than 22ch */
:lang(zh) .quote blockquote, :lang(ja) .quote blockquote{max-width:17em}

/* =========================================================
   IMAGERY
   ========================================================= */
.band{position:relative;overflow:hidden;background:var(--ink);line-height:0}
.band img{
  width:100%;height:clamp(300px,44vw,600px);object-fit:cover;
  filter:saturate(.94) contrast(1.02);
}
.band::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(9,21,18,.55) 0%,rgba(9,21,18,0) 22%,
             rgba(9,21,18,0) 78%,rgba(9,21,18,.45) 100%);
}

.aud__card{--pad:clamp(24px,2.6vw,36px);padding:var(--pad);overflow:hidden;position:relative}
.aud__img{
  display:block;width:calc(100% + var(--pad) * 2);
  margin:calc(var(--pad) * -1) calc(var(--pad) * -1) 0;
  aspect-ratio:16/10;object-fit:cover;
  filter:saturate(.92) contrast(1.02);
  transition:transform 1.2s var(--ease),filter .6s var(--ease);
}
.aud__card:hover .aud__img{transform:scale(1.035);filter:saturate(1) contrast(1.04)}
.aud__card .aud__label{margin-top:calc(var(--pad) + 2px)}

@media (max-width:720px){
  .band img{height:clamp(220px,60vw,320px)}
}

/* flex items refuse to shrink below intrinsic size — release the image */
.aud__img{flex:0 0 auto;min-width:0;max-width:none}

/* the width/height attributes map to CSS — let the ratio govern */
.aud__img{height:auto}

/* cards: image edge-to-edge, text in its own padded body */
.aud__card{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:0}
.aud__img{
  width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;display:block;
  margin:0;max-width:none;flex:0 0 auto;
}
.aud__body{display:flex;flex-direction:column;flex:1;padding:clamp(24px,2.6vw,36px)}
.aud__body .aud__label{margin-top:0}
.aud__body .aud__list{margin-top:auto;padding-top:26px}

/* grid columns must be allowed to be narrower than the image's intrinsic width */
.aud{grid-template-columns:repeat(3,minmax(0,1fr))}
.aud__img{max-width:100%}
@media (max-width:980px){.aud{grid-template-columns:minmax(0,1fr)}}

/* =========================================================
   COLUMN RULES v3 — the divider sits in the middle of the gap,
   never against the text
   ========================================================= */
.cols3{
  --colgap:clamp(34px,4.4vw,76px);
  column-gap:var(--colgap);
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.cols3 .col{
  border-right:0;
  padding:34px 0 0;
  position:relative;
}
.cols3 .col + .col::before{
  content:"";position:absolute;top:0;bottom:0;left:calc(var(--colgap) / -2);
  width:1px;background:var(--line-soft);pointer-events:none;
}

.prog{
  --colgap:clamp(34px,4.4vw,76px);
  column-gap:var(--colgap);
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.prog .prog__step{border-right:0;padding:32px 0 0;position:relative}
.prog .prog__step + .prog__step::before{
  content:"";position:absolute;top:0;bottom:0;left:calc(var(--colgap) / -2);
  width:1px;background:var(--line-soft);pointer-events:none;
}

@media (max-width:720px){
  .cols3,.prog{grid-template-columns:minmax(0,1fr);column-gap:0}
  .cols3 .col + .col::before,.prog .prog__step + .prog__step::before{display:none}
  .cols3 .col,.prog .prog__step{border-bottom:1px solid var(--line-soft);padding:26px 0}
}

/* CJK headings need a wider measure: 17ch ≈ 8.5 glyphs in Chinese */
:lang(zh) .h2,:lang(ja) .h2{max-width:13.5em}
:lang(zh) .sect__hd .h2,:lang(ja) .sect__hd .h2{max-width:13.5em}

/* founder portrait */
.founder{
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.8fr);
  gap:clamp(34px,5vw,88px);align-items:start;
}
.founder__fig{margin:0}
.founder__fig img{
  width:100%;aspect-ratio:4/5;object-fit:cover;display:block;
  filter:saturate(.94) contrast(1.02);
}
@media (max-width:900px){.founder{grid-template-columns:minmax(0,1fr)}}

/* =========================================================
   HERO PHOTOGRAPH
   ========================================================= */
.hero--photo .hero__sun,
.hero--photo .hero__arc,
.hero--photo .hero__rays,
.hero--photo .hero__haze,
.hero--photo .hero__sheen,
.hero--photo .hero__stars{display:none}

.hero__photo{position:absolute;inset:0;overflow:hidden}
.hero__photo img{
  width:100%;height:100%;object-fit:cover;object-position:50% 40%;
  transform:scale(1.015);
}
.hero__scrim{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg,
      rgba(6,17,21,.78) 0%, rgba(6,17,21,.30) 22%, rgba(6,17,21,.06) 42%,
      rgba(6,17,21,.42) 64%, rgba(6,17,21,.86) 84%, rgba(6,17,21,.96) 100%),
    linear-gradient(96deg, rgba(6,17,21,.62) 0%, rgba(6,17,21,.18) 42%, rgba(6,17,21,0) 68%);
}
.hero--photo .hero__base{background:#061115}
@media (max-width:720px){
  .hero__photo img{object-position:56% 42%}
  .hero__scrim{background:
    linear-gradient(180deg,rgba(6,17,21,.72) 0%,rgba(6,17,21,.28) 26%,rgba(6,17,21,.55) 62%,rgba(6,17,21,.94) 100%);}
}

/* hero scrim: hold the type, keep the sky */
.hero__scrim{
  background:
    linear-gradient(180deg,
      rgba(6,17,21,.80) 0%, rgba(6,17,21,.34) 19%, rgba(6,17,21,.16) 36%,
      rgba(6,17,21,.50) 58%, rgba(6,17,21,.88) 80%, rgba(6,17,21,.97) 100%),
    linear-gradient(96deg, rgba(6,17,21,.66) 0%, rgba(6,17,21,.20) 44%, rgba(6,17,21,0) 70%);
}

/* legibility over the photograph */
.hero--photo .hero__meta{color:rgba(248,243,233,.74)}
.hero--photo .hero__lede{color:rgba(248,243,233,.80)}
.hero--photo .hero__meta,
.hero--photo .hero__h1{text-shadow:0 1px 24px rgba(4,12,14,.45)}
