/* ==========================================================================
   annychen.me — Design System
   Aesthetic: warm, magazine, cross-cultural. Soft Clay/Forest radial glows
   over Sand. Cormorant Garamond Italic as the visual subject.
   ========================================================================== */

/* Tokens ------------------------------------------------------------------ */
:root{
  --forest:#2D4A3E;
  --forest-soft:#43614F;
  --clay:#C4704A;
  --clay-soft:#D89274;
  --sand:#F0EAE0;
  --sand-deep:#E5DCCD;
  --sand-deeper:#D9CDB9;
  --paper:#FAF6EE;
  --ink:#1C1C1A;
  --gold:#C9A96E;
  --mist:#5F7A6F;
  --rule:rgba(28,28,26,.10);
  --rule-strong:rgba(28,28,26,.20);

  --ff-display:'Cormorant Garamond','Noto Serif TC',Georgia,serif;
  --ff-body:'DM Sans','Noto Sans TC',-apple-system,BlinkMacSystemFont,sans-serif;
  --ff-mono:'Space Mono','Noto Sans TC',ui-monospace,monospace;

  --col-max:1240px;
  --col-text:680px;
  --col-narrow:560px;

  --pad-x:clamp(24px,5vw,80px);
  --pad-y:clamp(80px,12vw,140px);
}

/* Reset ------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--ff-body);
  background:var(--sand);
  color:var(--ink);
  font-size:16px;
  line-height:1.7;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  position:relative;
  overflow-x:hidden;
  letter-spacing:.005em;
}
body.lang-en{letter-spacing:0}
img,svg{display:block;max-width:100%}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}
a{color:inherit;text-decoration:none}

/* Atmosphere — fixed soft radial glows behind everything ----------------- */
.atmosphere{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  overflow:hidden;
}
.atmosphere::before,
.atmosphere::after{
  content:"";position:absolute;border-radius:50%;
  filter:blur(90px);
  opacity:.55;
  mix-blend-mode:multiply;
}
.atmosphere::before{
  width:70vw;height:70vw;
  top:-20vw;right:-15vw;
  background:radial-gradient(circle at 40% 40%,
    rgba(196,112,74,.55) 0%,
    rgba(196,112,74,.30) 30%,
    rgba(196,112,74,0) 70%);
}
.atmosphere::after{
  width:60vw;height:60vw;
  bottom:-25vw;left:-15vw;
  background:radial-gradient(circle at 50% 50%,
    rgba(45,74,62,.40) 0%,
    rgba(45,74,62,.18) 35%,
    rgba(45,74,62,0) 70%);
}
.atmosphere .glow-3{
  position:absolute;
  width:50vw;height:50vw;
  top:40%;left:30%;
  border-radius:50%;
  filter:blur(120px);
  opacity:.30;
  mix-blend-mode:multiply;
  background:radial-gradient(circle,
    rgba(201,169,110,.50) 0%,
    rgba(201,169,110,0) 65%);
}

/* Stack everything above atmosphere */
.site-nav, main, .site-footer{position:relative;z-index:1}

/* Typography ------------------------------------------------------------- */
.eyebrow{
  font-family:var(--ff-mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--mist);
  font-weight:400;
  display:inline-block;
}
.eyebrow .dot{color:var(--clay);margin:0 6px}

.display-xxl{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(56px,9vw,128px);
  line-height:.95;
  letter-spacing:-.02em;
  color:var(--forest);
}
.display-xl{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(44px,6.5vw,92px);
  line-height:1.0;
  letter-spacing:-.015em;
  color:var(--forest);
}
.display-l{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(34px,4.6vw,64px);
  line-height:1.05;
  letter-spacing:-.01em;
  color:var(--forest);
}
.display-m{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(26px,3.2vw,42px);
  line-height:1.15;
  letter-spacing:-.005em;
  color:var(--forest);
}
.display-s{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(22px,2.4vw,30px);
  line-height:1.25;
  color:var(--forest);
}
/* zh display: not italic but heavier weight via Noto Serif TC */
.lang-zh .display-xxl,
.lang-zh .display-xl,
.lang-zh .display-l,
.lang-zh .display-m,
.lang-zh .display-s{
  font-style:normal;
  font-family:'Noto Serif TC','Cormorant Garamond',serif;
  font-weight:300;
  letter-spacing:.01em;
}
.lang-zh .display-xxl
{font-size:clamp(44px,6.5vw,92px);}

.body-l{font-size:19px;line-height:1.65;color:var(--ink);font-weight:400}
.body{font-size:16px;line-height:1.75;color:var(--ink);font-weight:400}
.body-mu{font-size:16px;line-height:1.75;color:var(--mist);font-weight:400}
.body-s{font-size:14px;line-height:1.7;color:var(--mist);font-weight:400}
.note{font-family:var(--ff-mono);font-size:11px;letter-spacing:.05em;color:var(--mist)}

.pull{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(22px,2.6vw,30px);
  line-height:1.35;
  color:var(--forest);
}
.lang-zh .pull{font-style:normal;font-family:'Noto Serif TC',serif}

/* Layout ----------------------------------------------------------------- */
main{display:block}
/* SPA-era display rules removed for WordPress (line 188-189 in original).
   In WP, every page body gets class="page" automatically, which would hide
   everything if we kept .page{display:none}. */
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.wrap{
  max-width:var(--col-max);
  margin:0 auto;
  padding:0 var(--pad-x);
}
.wrap-narrow{
  max-width:980px;
  margin:0 auto;
  padding:0 var(--pad-x);
}
.section{padding:var(--pad-y) 0}
.section.tight{padding:clamp(56px,8vw,96px) 0}
.section-rule{border-top:1px solid var(--rule)}

.col-text{max-width:var(--col-text)}
.col-narrow{max-width:var(--col-narrow)}

.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,96px)}
.grid-2-uneven{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,6vw,96px)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(28px,4vw,56px)}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,2.5vw,32px)}

.cluster{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.stack-sm > * + *{margin-top:12px}
.stack-md > * + *{margin-top:24px}
.stack-lg > * + *{margin-top:48px}

/* Navigation ------------------------------------------------------------- */
.site-nav{
  position:sticky;top:0;z-index:50;
  padding:24px var(--pad-x);
  display:flex;align-items:center;gap:32px;
  background:rgba(240,234,224,.78);
  backdrop-filter:saturate(140%) blur(16px);
  -webkit-backdrop-filter:saturate(140%) blur(16px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease,padding .3s ease;
}
.site-nav.scrolled{border-bottom-color:var(--rule);padding-top:18px;padding-bottom:18px}
.nav-logo{
  font-family:var(--ff-display);
  font-style:italic;
  font-size:22px;
  font-weight:400;
  color:var(--ink);
  letter-spacing:.01em;
  margin-right:auto;
  cursor:pointer;
  line-height:1;
}
.lang-zh .nav-logo{font-family:'Noto Serif TC',serif;font-style:normal}
.nav-logo .am{color:var(--clay)}

.nav-links{display:flex;gap:6px}
.nav-toggle{display:none;width:40px;height:40px;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:1px solid var(--rule-strong);border-radius:2px;margin-left:8px}
.nav-toggle span{display:block;width:18px;height:1.5px;background:var(--ink);position:relative;transition:transform .25s ease,background .25s ease}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:var(--ink);transition:transform .25s ease,top .25s ease}
.nav-toggle span::before{top:-6px}
.nav-toggle span::after{top:6px}
.nav-toggle.open span{background:transparent}
.nav-toggle.open span::before{top:0;transform:rotate(45deg)}
.nav-toggle.open span::after{top:0;transform:rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:0;right:0;width:min(320px,82vw);height:100vh;background:var(--paper);z-index:60;padding:80px 32px 32px;flex-direction:column;gap:4px;box-shadow:-20px 0 60px -20px rgba(28,28,26,.18);transform:translateX(100%);transition:transform .35s ease}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu .nl{padding:14px 0;font-size:18px;font-family:var(--ff-display);font-style:italic;color:var(--forest);border-bottom:1px solid var(--rule)}
.lang-zh .mobile-menu .nl{font-family:'Noto Serif TC',serif;font-style:normal}
.mobile-menu .nl::after{display:none}
.mobile-menu .lang-tog{margin:24px 0 0;padding:14px 0 0;border-left:none;border-top:1px solid var(--rule);font-size:13px}
.menu-backdrop{display:none;position:fixed;inset:0;background:rgba(28,28,26,.4);z-index:55;opacity:0;transition:opacity .3s ease}
.menu-backdrop.open{opacity:1}
.nl{
  font-size:13px;
  letter-spacing:.02em;
  padding:8px 14px;
  cursor:pointer;
  color:var(--ink);
  position:relative;
  font-weight:400;
  transition:color .2s ease;
  border-radius:2px;
}
.nl:hover{color:var(--forest)}
.nl::after{
  content:"";position:absolute;
  left:14px;right:14px;bottom:4px;
  height:1px;background:var(--forest);
  transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.nl:hover::after{transform:scaleX(1)}
.nl.active{color:var(--forest)}
.nl.active::after{transform:scaleX(1)}

.lang-tog{
  display:flex;align-items:center;gap:2px;
  margin-left:18px;padding-left:18px;
  border-left:1px solid var(--rule);
  font-family:var(--ff-mono);
  font-size:11px;
  letter-spacing:.08em;
}
.lbtn{
  padding:6px 9px;color:var(--mist);
  cursor:pointer;font-family:inherit;font-size:11px;
  transition:color .2s;
  border-radius:2px;
}
.lbtn:hover{color:var(--ink)}
.lbtn.active{color:var(--forest)}
.lang-tog .sep{color:var(--rule-strong);font-size:10px}

/* Buttons ---------------------------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--ff-body);
  font-size:14px;
  font-weight:500;
  letter-spacing:.01em;
  padding:14px 26px;
  cursor:pointer;
  transition:transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease;
  border:1px solid transparent;
  white-space:nowrap;
}
.btn .arr{display:inline-block;transition:transform .25s ease}
.btn:hover .arr{transform:translateX(4px)}

.btn-primary{
  background:var(--forest);color:var(--paper);
}
.btn-primary:hover{background:var(--ink);transform:translateY(-1px)}

.btn-clay{
  background:var(--clay);color:var(--paper);
}
.btn-clay:hover{background:#A85C3A;transform:translateY(-1px)}

.btn-ghost{
  background:transparent;
  color:var(--ink);
  border-color:var(--ink);
}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}

.btn-link{
  display:inline-flex;align-items:center;gap:6px;
  font-family:var(--ff-body);
  font-size:14px;
  font-weight:500;
  color:var(--forest);
  cursor:pointer;
  position:relative;
  padding-bottom:2px;
  letter-spacing:.01em;
}
.btn-link::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:left;
  transition:transform .25s ease;
}
.btn-link:hover::after{transform:scaleX(1)}
.btn-link:hover .arr{transform:translateX(4px)}
.btn-link.sm{font-size:13px}

/* Cards ------------------------------------------------------------------ */
.card{
  background:var(--paper);
  padding:32px;
  border:1px solid var(--rule);
  transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease;
  position:relative;
}
.card:hover{transform:translateY(-2px);box-shadow:0 24px 48px -24px rgba(28,28,26,.18);border-color:var(--rule-strong)}
.card.flat{padding:28px}
.card-clay-edge{border-left:2px solid var(--clay)}

.card-soft{
  background:rgba(250,246,238,.7);
  padding:28px;
  border:1px solid var(--rule);
}

.tag{
  display:inline-block;
  font-family:var(--ff-mono);
  font-size:10px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--forest);
  padding:5px 11px;
  border:1px solid var(--rule-strong);
  border-radius:100px;
  background:transparent;
}
.tag.fill{background:var(--forest);color:var(--paper);border-color:var(--forest)}
.tag.clay{color:var(--clay);border-color:rgba(196,112,74,.4)}

/* Image placeholders (until real photography is dropped in) -------------- */
.img-slot{
  background:linear-gradient(135deg,var(--sand-deep) 0%,var(--sand-deeper) 100%);
  position:relative;
  overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  color:rgba(28,28,26,.35);
  font-family:var(--ff-mono);
  font-size:10px;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.img-slot::before{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(135deg,
    transparent 0,
    transparent 14px,
    rgba(28,28,26,.04) 14px,
    rgba(28,28,26,.04) 15px);
}
.img-slot.warm{background:linear-gradient(135deg,#E8D2BC 0%,#D89274 60%,#C4704A 110%)}
.img-slot.warm::before{opacity:.5}
.img-slot.warm{color:rgba(255,255,255,.7)}

/* Gradient orb (Beatriz Fialho-style soft sun) --------------------------- */
.orb{
  position:absolute;border-radius:50%;
  filter:blur(40px);
  pointer-events:none;
}
.orb.clay{background:radial-gradient(circle at 40% 35%,#E08760 0%,#C4704A 35%,rgba(196,112,74,0) 70%)}
.orb.forest{background:radial-gradient(circle at 50% 50%,#5A7A6B 0%,#2D4A3E 40%,rgba(45,74,62,0) 70%)}
.orb.gold{background:radial-gradient(circle at 50% 50%,#E0C896 0%,#C9A96E 40%,rgba(201,169,110,0) 70%)}

/* Stat row --------------------------------------------------------------- */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(40px,6vw,80px);align-items:start}
.stat{position:relative;padding-top:24px;border-top:1px solid var(--rule-strong)}
.stat-num{
  font-family:var(--ff-display);
  font-style:italic;
  font-weight:300;
  font-size:clamp(72px,10vw,136px);
  line-height:.9;
  color:var(--forest);
  letter-spacing:-.02em;
  margin-bottom:14px;
}
.stat-lbl{font-size:13px;color:var(--mist);line-height:1.5;font-family:var(--ff-mono);letter-spacing:.04em}

/* Path picker (home) ----------------------------------------------------- */
.path{
  display:grid;grid-template-columns:1fr 1fr;
  gap:1px;
  background:var(--rule-strong);
  border:1px solid var(--rule-strong);
}
.path-cell{
  background:rgba(250,246,238,.6);
  padding:clamp(40px,5vw,64px);
  cursor:pointer;
  display:flex;flex-direction:column;
  transition:background .3s ease;
  position:relative;
  min-height:340px;
}
.path-cell:hover{background:var(--paper)}
.path-cell:hover .path-arr{transform:translate(4px,-4px)}
.path-tag{
  font-family:var(--ff-mono);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--clay);margin-bottom:14px;
}
.path-q{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(26px,2.8vw,38px);
  line-height:1.18;color:var(--forest);
  margin-bottom:24px;letter-spacing:-.005em;
}
.lang-zh .path-q{font-family:'Noto Serif TC',serif;font-style:normal}
.path-list{list-style:none;padding:0;margin-bottom:32px;flex-grow:1}
.path-list li{
  font-size:14px;color:var(--ink);
  line-height:1.65;padding:6px 0;
  display:flex;gap:10px;font-weight:400;
}
.path-list li::before{content:"—";color:var(--clay);flex-shrink:0;font-weight:300}
.path-foot{
  display:flex;align-items:center;justify-content:space-between;
  padding-top:20px;border-top:1px solid var(--rule);gap:16px;
}
.path-tool{
  font-family:var(--ff-display);font-style:italic;
  font-size:18px;color:var(--forest);font-weight:400;
}
.lang-zh .path-tool{font-family:'Noto Serif TC',serif;font-style:normal}
.path-meta{font-family:var(--ff-mono);font-size:11px;color:var(--mist);letter-spacing:.04em}
.path-arr{
  position:absolute;top:32px;right:32px;
  width:20px;height:20px;color:var(--forest);
  transition:transform .35s ease;opacity:.7;
}

/* Beliefs ---------------------------------------------------------------- */
.belief{
  padding:36px 32px;
  border-top:1px solid var(--rule-strong);
  position:relative;
  background:transparent;
  transition:background .3s ease;
}
.belief:hover{background:rgba(250,246,238,.5)}
.belief-num{
  font-family:var(--ff-mono);
  font-size:11px;letter-spacing:.18em;
  color:var(--clay);margin-bottom:18px;
}
.belief-claim{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(22px,2.4vw,32px);
  line-height:1.25;color:var(--forest);
  margin-bottom:14px;letter-spacing:-.005em;
}
.lang-zh .belief-claim{font-family:'Noto Serif TC',serif;font-style:normal}
.belief-plain{font-size:15px;color:var(--ink);line-height:1.7;max-width:540px}
.belief.featured{
  background:rgba(201,169,110,.10);
  padding:44px 36px;
  border-top:2px solid var(--gold);
  border-bottom:1px solid var(--rule);
}
.belief.featured .belief-num{color:var(--gold)}
.belief.featured .belief-claim{font-size:clamp(26px,2.8vw,38px)}

/* Cross-cultural observation block --------------------------------------- */
.obs{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-strong);border:1px solid var(--rule-strong)}
.obs-cell{background:var(--paper);padding:clamp(32px,4vw,56px)}
.obs-cell.warm{background:rgba(196,112,74,.06)}
.obs-tag{
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--clay);margin-bottom:18px;
}
.obs-eg{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(24px,2.8vw,36px);
  line-height:1.3;color:var(--forest);letter-spacing:-.005em;
}
.lang-zh .obs-eg{font-family:'Noto Serif TC',serif;font-style:normal}
.obs-conclude{font-size:16px;line-height:1.75;color:var(--ink)}

/* Service card (Services page) ------------------------------------------- */
.service{
  background:var(--paper);
  border:1px solid var(--rule);
  padding:clamp(36px,4vw,56px);
  position:relative;
  transition:box-shadow .3s ease;
}
.service:hover{box-shadow:0 32px 64px -32px rgba(28,28,26,.18)}
.service-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:32px;flex-wrap:wrap;
  padding-bottom:28px;margin-bottom:32px;
  border-bottom:1px solid var(--rule);
}
.service-scenario{
  font-family:var(--ff-mono);font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--clay);margin-bottom:10px;
}
.service-name{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(28px,3vw,44px);line-height:1.05;
  color:var(--forest);letter-spacing:-.01em;
}
.lang-zh .service-name{font-family:'Noto Serif TC',serif;font-style:normal}
.service-price{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(20px,2vw,28px);
  color:var(--forest);white-space:nowrap;
}
.lang-zh .service-price{font-family:'Noto Serif TC',serif;font-style:normal}
.service-price small{font-size:.6em;color:var(--mist)}
.service-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(36px,5vw,72px);align-items:start}

.fit-box{
  background:rgba(45,74,62,.04);
  padding:24px 26px;
  border:1px solid var(--rule);
}
.fit-box h4{
  font-family:var(--ff-mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--forest);
  margin-bottom:14px;font-weight:500;
}
.fit-list{list-style:none;padding:0;margin:0}
.fit-list li{
  font-size:14px;line-height:1.6;color:var(--ink);
  padding:8px 0;display:flex;gap:10px;
  border-bottom:1px solid var(--rule);
}
.fit-list li:last-child{border-bottom:none}
.fit-list li::before{content:"·";color:var(--clay);flex-shrink:0;font-weight:600}

/* The S1 punchline — special treatment per brief */
.punchline{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(22px,2.4vw,30px);
  line-height:1.4;color:var(--forest);
  border-left:3px solid var(--clay);
  padding:8px 0 8px 24px;
  margin:24px 0;
  letter-spacing:-.005em;
}
.lang-zh .punchline{font-family:'Noto Serif TC',serif;font-style:normal;font-weight:400}

/* Pill row (services scenario navigator) --------------------------------- */
.pill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule)}
.pill{
  background:rgba(250,246,238,.5);
  padding:24px 22px;cursor:pointer;
  transition:background .25s;
}
.pill:hover{background:var(--paper)}
.pill .lbl{font-size:13px;color:var(--mist);margin-bottom:6px;line-height:1.4}
.pill .nm{
  font-family:var(--ff-display);font-style:italic;font-weight:400;
  font-size:18px;color:var(--forest);
}
.lang-zh .pill .nm{font-family:'Noto Serif TC',serif;font-style:normal}

/* Article rows ----------------------------------------------------------- */
.art-list{display:block}
.art-row{
  display:grid;
  grid-template-columns:120px 80px 1fr auto;
  gap:32px;
  padding:32px 0;
  border-top:1px solid var(--rule-strong);
  align-items:start;
  cursor:pointer;
  transition:padding .25s ease;
}
.art-row:last-child{border-bottom:1px solid var(--rule-strong)}
.art-row:hover{padding-left:8px}
.art-row:hover .art-title{color:var(--clay)}
.art-thumb{
  height:80px;width:120px;
  background:linear-gradient(135deg,var(--sand-deep),var(--sand-deeper));
  position:relative;overflow:hidden;
}
.art-thumb.warm{background:linear-gradient(135deg,#E8D2BC,#C4704A)}
.art-thumb.cool{background:linear-gradient(135deg,#9DB7AB,#2D4A3E)}
.art-thumb.gold{background:linear-gradient(135deg,#E0C896,#C9A96E)}
.art-date{font-family:var(--ff-mono);font-size:11px;color:var(--mist);letter-spacing:.04em;padding-top:6px}
.art-body{padding-top:2px}
.art-title{
  font-family:var(--ff-display);font-style:italic;font-weight:400;
  font-size:clamp(20px,2vw,26px);
  line-height:1.25;color:var(--forest);
  margin-bottom:8px;letter-spacing:-.005em;
  transition:color .25s ease;
}
.lang-zh .art-title{font-family:'Noto Serif TC',serif;font-style:normal;font-weight:500}
.art-excerpt{font-size:14px;color:var(--mist);line-height:1.65;max-width:540px;margin-bottom:10px}
.art-arr{padding-top:8px;font-size:13px;color:var(--forest);font-family:var(--ff-mono);letter-spacing:.04em}

/* Quiz / health check result mockups ------------------------------------- */
.result-mock{
  background:var(--paper);
  border:1px solid var(--rule-strong);
  padding:32px;position:relative;
  box-shadow:0 32px 64px -32px rgba(28,28,26,.18);
}
.result-mock .ann{
  position:absolute;top:14px;right:14px;
  font-family:var(--ff-mono);font-size:9px;
  letter-spacing:.16em;color:var(--mist);text-transform:uppercase;
}
.result-mock .head{text-align:center;padding-bottom:18px;border-bottom:1px solid var(--rule);margin-bottom:18px}
.result-mock .mix{font-family:var(--ff-mono);font-size:11px;color:var(--mist);letter-spacing:.04em;margin-bottom:8px}
.result-mock .arch{font-family:var(--ff-display);font-style:italic;font-weight:300;font-size:28px;color:var(--forest);line-height:1.1;margin-bottom:6px}
.lang-zh .result-mock .arch{font-family:'Noto Serif TC',serif;font-style:normal}
.result-mock .arch-desc{font-size:13px;color:var(--mist);line-height:1.5}

.bar-row{display:flex;align-items:center;gap:14px;margin-bottom:10px;font-size:12px}
.bar-lbl{min-width:60px;color:var(--ink);font-size:13px}
.bar-track{flex:1;height:4px;background:var(--sand-deeper);border-radius:2px;overflow:hidden}
.bar-fill{height:100%;background:var(--forest);border-radius:2px}
.bar-fill.clay{background:var(--clay)}
.bar-pt{font-family:var(--ff-mono);font-size:11px;color:var(--mist);min-width:32px;text-align:right;letter-spacing:.04em}

.health-score{
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:64px;line-height:1;color:var(--forest);letter-spacing:-.02em;
}
.health-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.health-cell{
  background:rgba(45,74,62,.04);
  padding:14px 16px;border:1px solid var(--rule);
}
.health-cell .h-lbl{font-family:var(--ff-mono);font-size:10px;letter-spacing:.16em;color:var(--mist);text-transform:uppercase;margin-bottom:4px}
.health-cell .h-num{font-family:var(--ff-display);font-style:italic;font-size:24px;color:var(--forest);margin-bottom:6px;line-height:1}
.lang-zh .health-cell .h-num{font-family:'Noto Serif TC',serif;font-style:normal}

/* Tools page workflow card ----------------------------------------------- */
.tool-block{
  display:grid;grid-template-columns:1.1fr 1fr;
  gap:clamp(40px,6vw,96px);align-items:center;
}
.tool-cta-mobile{display:none}
@media(max-width:960px){
  .tool-cta-desktop{display:none}
  .tool-cta-mobile{display:inline-flex;margin-top:24px;align-self:flex-start}
  .tool-block{display:flex;flex-direction:column;align-items:stretch}
  .tool-block .result-mock{order:1}
  .tool-block .tool-cta-mobile{order:2}
}
.tool-stamp{
  display:inline-block;background:var(--forest);color:var(--paper);
  padding:6px 14px;font-family:var(--ff-mono);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;
  margin-bottom:18px;
}

/* Form ------------------------------------------------------------------- */
.form-field{margin-bottom:32px}
.form-lbl{
  font-family:var(--ff-mono);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--mist);display:block;margin-bottom:10px;font-weight:400;
}
.form-input,.form-textarea,.form-select{
  width:100%;
  border:none;border-bottom:1px solid var(--rule-strong);
  background:transparent;
  padding:8px 0;font-family:inherit;font-size:16px;color:var(--ink);
  outline:none;
  transition:border-color .25s ease;
}
.form-input::placeholder,.form-textarea::placeholder{color:rgba(28,28,26,.35)}
.form-input:focus,.form-textarea:focus,.form-select:focus{border-color:var(--forest)}
.form-textarea{min-height:84px;resize:vertical;line-height:1.6}
.form-select{padding-right:24px;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mist) 50%),linear-gradient(135deg,var(--mist) 50%,transparent 50%);background-position:calc(100% - 12px) center,calc(100% - 7px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat}

.radio-row{display:flex;gap:24px;flex-wrap:wrap;padding-top:6px}
.radio-row label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--ink)}
.radio-row input[type="radio"]{accent-color:var(--forest);width:14px;height:14px}

/* TOC for services-full -------------------------------------------------- */
.toc{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--rule-strong);
  border:1px solid var(--rule-strong);
}
.toc-cell{
  background:rgba(250,246,238,.6);padding:24px 22px;
  cursor:pointer;transition:background .25s ease;
}
.toc-cell:hover{background:var(--paper)}
.toc-cell .lbl{font-family:var(--ff-mono);font-size:10px;letter-spacing:.14em;color:var(--mist);text-transform:uppercase;margin-bottom:8px}
.toc-cell .nm{font-family:var(--ff-display);font-style:italic;font-size:20px;color:var(--forest);font-weight:400;line-height:1.15}
.lang-zh .toc-cell .nm{font-family:'Noto Serif TC',serif;font-style:normal;font-weight:500}

/* FAQ -------------------------------------------------------------------- */
.faq{background:rgba(45,74,62,.04);padding:24px 28px;border:1px solid var(--rule);margin-bottom:12px}
.faq-q{font-family:var(--ff-display);font-style:italic;font-weight:400;font-size:18px;color:var(--forest);margin-bottom:8px;letter-spacing:-.005em}
.lang-zh .faq-q{font-family:'Noto Serif TC',serif;font-style:normal;font-weight:500}
.faq-a{font-size:14px;line-height:1.7;color:var(--ink)}

/* Process row ------------------------------------------------------------ */
.process-row{
  display:grid;grid-template-columns:240px 1fr;gap:32px;
  padding:20px 0;border-bottom:1px dashed var(--rule-strong);
}
.process-row:last-child{border-bottom:none}
.process-when{font-family:var(--ff-display);font-style:italic;font-size:18px;color:var(--clay);font-weight:400;line-height:1.3}
.lang-zh .process-when{font-family:'Noto Serif TC',serif;font-style:normal;font-weight:500}
.process-what{font-size:15px;line-height:1.65;color:var(--ink)}

/* Quote / blockquote treatment ------------------------------------------- */
.gold-quote{
  border-left:2px solid var(--gold);
  padding:8px 0 8px 24px;
  font-family:var(--ff-display);font-style:italic;font-weight:300;
  font-size:clamp(20px,2.2vw,26px);
  line-height:1.4;color:var(--ink);
}
.lang-zh .gold-quote{font-family:'Noto Serif TC',serif;font-style:normal}

/* Cases (home) ----------------------------------------------------------- */
.case-card{
  background:var(--paper);border:1px solid var(--rule);
  padding:24px;display:flex;flex-direction:column;gap:18px;
  transition:transform .3s ease,box-shadow .3s ease;
  height:100%;
}
.case-card:hover{transform:translateY(-3px);box-shadow:0 24px 48px -24px rgba(28,28,26,.18)}
.case-thumb{aspect-ratio:4/3;background:linear-gradient(135deg,var(--sand-deep),var(--sand-deeper));position:relative;overflow:hidden}
.case-thumb.warm{background:linear-gradient(135deg,#E8D2BC 0%,#D89274 60%,#C4704A 110%)}
.case-thumb.cool{background:linear-gradient(135deg,#9DB7AB 0%,#5A7A6B 60%,#2D4A3E 110%)}
.case-thumb.gold{background:linear-gradient(135deg,#E0C896 0%,#C9A96E 100%)}
.case-thumb .lbl{position:absolute;left:18px;bottom:14px;color:rgba(255,255,255,.85);font-family:var(--ff-display);font-style:italic;font-size:24px;letter-spacing:-.005em}
.case-name{font-family:var(--ff-display);font-style:italic;font-size:22px;font-weight:400;color:var(--forest)}
.lang-zh .case-name{font-family:'Noto Serif TC',serif;font-style:normal;font-weight:500}

/* LinkedIn card ---------------------------------------------------------- */
.linkedin-card{
  background:var(--paper);border:1px solid var(--rule);padding:28px;
}
.linkedin-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.linkedin-avatar{
  width:52px;height:52px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,#E8D2BC,#C4704A);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-display);font-style:italic;color:white;font-size:22px;
}

/* Footer ----------------------------------------------------------------- */
.site-footer{
  border-top:1px solid var(--rule-strong);
  padding:48px var(--pad-x) 36px;
  margin-top:80px;
}
.footer-grid{
  max-width:var(--col-max);margin:0 auto;
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr;
  gap:48px;align-items:start;margin-bottom:40px;
}
.footer-brand{font-family:var(--ff-display);font-style:italic;font-size:36px;color:var(--forest);line-height:1;margin-bottom:14px;letter-spacing:.005em}
.lang-zh .footer-brand{font-family:'Noto Serif TC',serif;font-style:normal}
.footer-tag{font-size:14px;color:var(--mist);max-width:320px;line-height:1.6}
.footer-col h5{font-family:var(--ff-mono);font-size:11px;letter-spacing:.16em;color:var(--mist);text-transform:uppercase;margin-bottom:14px;font-weight:400}
.footer-col ul{list-style:none}
.footer-col li{padding:5px 0;font-size:14px}
.footer-col a{color:var(--ink);transition:color .2s}
.footer-col a:hover{color:var(--clay)}
.footer-base{
  max-width:var(--col-max);margin:0 auto;
  padding-top:24px;border-top:1px solid var(--rule);
  display:flex;justify-content:space-between;font-size:12px;color:var(--mist);
  font-family:var(--ff-mono);letter-spacing:.04em;
  flex-wrap:wrap;gap:12px;
}

/* Hero specific layouts -------------------------------------------------- */
.home-hero{
  position:relative;
  padding:clamp(80px,12vw,160px) 0 clamp(60px,8vw,120px);
  overflow:hidden;
}
.home-hero .orb{
  width:min(620px,55vw);
  aspect-ratio:1;
  top:8%;right:6%;
  z-index:0;
  opacity:.85;
  filter:blur(60px);
}
.home-hero .hero-content{position:relative;z-index:1;max-width:880px}
.home-hero .display-xxl{margin:18px 0 32px}

.about-hero{
  position:relative;
  padding:clamp(80px,12vw,160px) 0 clamp(60px,8vw,120px);
}
.about-hero .orb{width:min(420px,40vw);aspect-ratio:1}

/* Lang switching --------------------------------------------------------- */
/* Text content is swapped by JS (setLang in main HTML). The body class
   .lang-zh / .lang-en is still used by font-family rules above. */

/* Section header ---------------------------------------------------------- */
.sec-head{margin-bottom:clamp(40px,6vw,80px)}
.sec-head .display-l{margin-top:14px}

/* Reveal on scroll ------------------------------------------------------- */
.reveal{opacity:0;transform:translateY(8px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* Responsive ------------------------------------------------------------- */
@media(max-width:960px){
  .grid-2,.grid-2-uneven,.grid-3,.grid-4,.path,.obs,.service-grid,.tool-block,.toc,.pill-grid,.footer-grid{grid-template-columns:1fr}
  .stat-row{grid-template-columns:1fr;gap:48px}
  .pill-grid,.toc{grid-template-columns:1fr 1fr}
  .nav-links{display:none}
  .nav-toggle{display:inline-flex}
  .mobile-menu{display:flex}
  .menu-backdrop{display:block}
  .site-nav .lang-tog{display:none}
  .site-nav{padding:18px 24px}
  /* Mobile scroll-shrink: when user scrolls past 20px, nav.js adds
     .scrolled, this rule then collapses padding to near-zero so the
     logo can be visually larger while total nav height stays ~52px.
     Plan C — bigger logo, tighter padding. */
  .site-nav,
  .site-nav .nav-logo img,
  .site-nav .nav-logo svg{transition:padding .25s ease, height .25s ease}
  .site-nav.scrolled{padding-top:2px;padding-bottom:2px}
  /* !important needed to override the ACF-driven inline style="height:Xpx"
     on the logo img. Original height comes back when user scrolls to top. */
  .site-nav.scrolled .nav-logo img{height:48px !important}
  .site-nav.scrolled .nav-logo svg{height:28px}
  .tool-block{display:flex;flex-direction:column}
  .tool-block .result-mock{order:2 !important}
  .art-row{grid-template-columns:80px 1fr;gap:18px}
  .art-row .art-thumb{display:none}
  .art-arr{display:none}
  .footer-base{flex-direction:column;align-items:flex-start}
  .process-row{grid-template-columns:1fr;gap:8px}
}
@media(max-width:540px){
  .pill-grid,.toc{grid-template-columns:1fr}
  .stat-num{font-size:64px}
}

/* Footer brand variant — when an image logo is uploaded.
   Inherits the 14px bottom-margin convention of the text version
   so the tagline below it sits at the same vertical rhythm. */
.footer-brand-img {
  display: inline-block;
  margin-bottom: 14px;
  line-height: 1;
}
.footer-brand-img img {
  max-width: 100%;
}

/* ═══ Hero H1 sizing (v1.1.3) ═══
   Desktop: hardcoded 70px (matches original design intent).
   Mobile: bigger min (34px) so the H1 still feels like a headline on
   iPhone SE, scales up on larger phones via 9vw. */
.home-hero .display-xxl {
  font-size: 70px;
  line-height: 1.18;
  letter-spacing: -0.005em;
}
@media (max-width: 960px) {
  .home-hero .display-xxl {
    font-size: clamp(34px, 10vw, 52px);
  }
}
@media (max-width: 480px) {
  /* On narrow phones, let the H1 wrap naturally instead of forcing the
     <br> from the editor to break in awkward spots. */
  .home-hero .display-xxl br {
    display: none;
  }
}

/* ═══ Identity Strip — after Hero, before Path Picker (v1.1.2) ═══
   Editable in WP admin via 全站設定 → Identity Strip.
   Surfaces "Anny Chen | Co-founder @ MidWhite ..." between Hero CTA
   and the rest of the page so visitors meet the credential before
   scrolling into case studies that reference MidWhite.
   Centered layout with display-italic name = signature feel. */
.identity-strip {
  padding: 32px 0;
  border-top: 1px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule-strong);
  margin-top: 0;
}
.identity-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
}
.id-name {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 500;
  font-size: 24px;
  color: var(--forest);
  letter-spacing: 0.01em;
}
.id-sep {
  color: var(--mist);
  opacity: 0.4;
  font-weight: 300;
  font-size: 18px;
}
.id-role {
  font-family: var(--ff-body);
  font-size: 15px;
  color: var(--ink);
  letter-spacing: 0.02em;
}
/* Mobile: stack name on top, hide separator, centered */
@media (max-width: 640px) {
  .identity-strip {
    padding: 24px 0;
  }
  .identity-content {
    flex-direction: column;
    gap: 6px;
    text-align: center;
  }
  .id-sep {
    display: none;
  }
  .id-name {
    font-size: 18px;
  }
  .id-role {
    font-size: 13px;
    line-height: 1.5;
  }
}
