/* =====================================================================
   SEQUENCE — homepage
   ===================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{line-height:1.6;font-size:16px;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;}
.shell{max-width:var(--shell);margin:0 auto;padding:0 var(--gutter);}
section{position:relative;}
.band{padding:clamp(80px,12vw,160px) 0;}
.band.tight{padding:clamp(64px,9vw,120px) 0;}
.on-card{background:var(--card);}
.dark{background:var(--forest);color:#f4f1e8;}
.dark ::selection{background:var(--mint);color:var(--forest);}

/* section label: the brand dot, sentence case */
.label{display:inline-flex;align-items:center;gap:11px;font-size:clamp(16px,1.3vw,18px);font-weight:600;letter-spacing:.005em;line-height:1.2;
  color:var(--pine);background:var(--accent-soft);padding:10px 20px 10px 15px;border-radius:999px;margin-bottom:30px;}
.label::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--mint);flex:none;}
.label.in::before{animation:ping 1.6s var(--ease) 1;}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(93,179,134,.55)}100%{box-shadow:0 0 0 10px rgba(93,179,134,0)}}
.dark .label,.hero .label{color:var(--mint-soft);background:rgba(93,179,134,.14);}

.display{font-family:var(--serif);font-weight:600;letter-spacing:-.03em;line-height:1.04;
  font-variation-settings:"opsz" 144;}
h2.display{font-size:clamp(34px,5vw,60px);max-width:18ch;}
h2 em,.display em{font-style:italic;font-weight:inherit;}
.lede{font-size:clamp(17px,1.6vw,20px);line-height:1.55;color:var(--ink-soft);max-width:58ch;}
.dark .lede{color:rgba(244,241,232,.74);}
.head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,5vw,80px);align-items:end;margin-bottom:clamp(48px,7vw,88px);}
.head .lede{padding-bottom:6px;}
@media (max-width:860px){.head{grid-template-columns:1fr;align-items:start;}}

.textlink{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;color:var(--pine);
  text-decoration:none;border-bottom:1.5px solid transparent;padding-bottom:2px;transition:border-color .25s,gap .3s var(--ease);}
.textlink:hover{border-color:currentColor;gap:12px;}
.dark .textlink{color:var(--mint-soft);}

/* ======================= HERO ======================= */
.hero{background:var(--forest);color:#f4f1e8;min-height:min(100svh,980px);display:flex;flex-direction:column;
  justify-content:center;margin-top:calc(var(--header-h) * -1);padding:calc(var(--header-h) + clamp(28px,5vw,64px)) 0 clamp(40px,5vw,64px);
  overflow:hidden;isolation:isolate;}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 70% at 85% 30%,rgba(93,179,134,.16),transparent 70%),
             radial-gradient(50% 60% at 0% 100%,rgba(16,56,40,.9),transparent 70%);}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(24px,4vw,64px);align-items:center;}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(42px,5.8vw,84px);line-height:1.02;letter-spacing:-.035em;
  font-variation-settings:"opsz" 144;max-width:14ch;margin-bottom:clamp(24px,2.6vw,34px);}
.hero h1 em{font-style:italic;font-weight:inherit;transition:color 1.2s var(--ease),opacity 1.2s var(--ease);}
.hero h1 .x{color:#f4f1e8;}
.hero h1 .g{color:var(--mint);}
.hero.resolved h1 .x{opacity:.5;}
.hero .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em;}
.hero .w > span{display:inline-block;}
.hero-sub{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:rgba(244,241,232,.76);max-width:50ch;margin-bottom:36px;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;}
.hero .button.line{border-color:rgba(244,241,232,.28);color:#f4f1e8;}
.hero .button.line:hover{border-color:#f4f1e8;}

.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:clamp(44px,6vw,80px);
  padding-top:28px;border-top:1px solid rgba(244,241,232,.14);}
.facts div{font-size:15px;line-height:1.4;color:rgba(244,241,232,.72);}
.facts b{display:block;font-family:var(--serif);font-weight:600;font-size:clamp(32px,3.4vw,46px);letter-spacing:-.02em;
  color:#f4f1e8;line-height:1;margin-bottom:10px;font-variant-numeric:tabular-nums;}
@media (max-width:760px){.facts{grid-template-columns:1fr 1fr;gap:28px 18px;}}

/* the sequence orbit */
.orbit{position:relative;width:100%;aspect-ratio:1;max-width:560px;justify-self:end;}
.orbit svg{width:100%;height:100%;overflow:visible;}
.orbit .ring{fill:none;stroke:rgba(155,220,188,.16);stroke-width:1;}
.orbit .track{fill:none;stroke:rgba(155,220,188,.38);stroke-width:1.2;}
.orbit .trail{fill:none;stroke:var(--mint);stroke-width:2;stroke-linecap:round;}
.orbit .node{fill:var(--forest);stroke:rgba(155,220,188,.5);stroke-width:1.5;transition:fill .5s,stroke .5s;}
.orbit .node.lit{fill:var(--mint);stroke:var(--mint);}
.orbit .nlabel{font-family:var(--sans);font-size:26px;font-weight:500;fill:rgba(244,241,232,.5);transition:fill .5s;}
.orbit .nlabel.lit{fill:#f4f1e8;}
.orbit .runner{fill:var(--mint);filter:drop-shadow(0 0 12px rgba(93,179,134,.8));transition:fill .7s ease,filter .7s ease;}
.hero.resolved .orbit .runner{fill:var(--loud);filter:drop-shadow(0 0 14px rgba(245,184,61,.75));}
.hero.resolved .orbit .node.govern{fill:var(--loud);stroke:var(--loud);}
.orbit .S{font-family:var(--serif);font-weight:300;font-size:210px;fill:rgba(244,241,232,.07);letter-spacing:-.04em;}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;}
  .orbit{position:absolute;right:-28%;top:6%;width:88vw;max-width:none;opacity:.55;z-index:-1;pointer-events:none;}
  .orbit .nlabel,.orbit .S{display:none;}
}

.scroll-cue{position:absolute;left:50%;bottom:22px;width:1px;height:44px;background:rgba(244,241,232,.18);overflow:hidden;}
.scroll-cue::after{content:"";position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--mint);animation:cue 2.4s var(--ease) infinite;}
@keyframes cue{0%{top:-50%}60%,100%{top:110%}}
@media (max-width:760px){.scroll-cue{display:none;}}

/* ======================= INTRO ======================= */
.intro-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);}
.intro .big{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.4vw,44px);line-height:1.18;letter-spacing:-.02em;
  font-variation-settings:"opsz" 96;}
.intro .big em{font-style:italic;color:var(--pine);}
.intro p.body{font-size:17px;line-height:1.7;color:var(--ink-soft);margin-bottom:22px;max-width:60ch;}
.pillars{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;list-style:none;}
.pillars li{font-size:14px;font-weight:500;padding:9px 16px;border:1px solid var(--line);border-radius:999px;color:var(--ink);background:var(--card);}
@media (max-width:860px){.intro-grid{grid-template-columns:1fr;}}

/* ======================= THESIS ======================= */
.thesis{font-family:var(--serif);font-weight:500;font-size:clamp(32px,5.2vw,72px);line-height:1.1;letter-spacing:-.03em;
  max-width:20ch;font-variation-settings:"opsz" 144;}
.thesis .tw{transition:opacity .25s linear;}
.thesis em{font-style:italic;color:var(--mint);}
.thesis-sub{margin-top:36px;max-width:52ch;}

/* ======================= FAILURES ======================= */
.fails{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(32px,5vw,80px);}
.fails li{border-top:1px solid var(--line);padding:30px 0 34px;position:relative;}
.fails li::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--ink);
  transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease);}
.fails li:hover::before{transform:scaleX(1);}
.fails h3{font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.2vw,28px);line-height:1.2;letter-spacing:-.015em;margin-bottom:10px;}
.fails p{color:var(--ink-soft);font-size:16px;max-width:46ch;}
@media (max-width:760px){.fails{grid-template-columns:1fr;}}

/* ======================= SERVICES ======================= */
.services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(28px,4vw,56px);}
.svc{border-top:1px solid var(--line);padding:30px 0 40px;position:relative;}
.svc::before{content:"";position:absolute;left:0;top:-1px;height:2px;width:36px;background:var(--mint);transition:width .6s var(--ease);}
.svc:hover::before{width:100%;}
.svc h3{font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.2;letter-spacing:-.015em;margin-bottom:12px;}
.svc p{font-size:15.5px;color:var(--ink-soft);line-height:1.6;}
.after{margin-top:28px;font-size:15px;color:var(--muted);}
.after a{color:var(--pine);font-weight:600;}
@media (max-width:980px){.services{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.services{grid-template-columns:1fr;}}

/* ======================= RECENT WORK ======================= */
.cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.case{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:32px 30px;display:flex;flex-direction:column;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .4s;}
.case:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--pine) 30%,var(--line));}
.case .meta{font-size:13.5px;font-weight:500;color:var(--pine);margin-bottom:20px;}
.case h3{font-family:var(--serif);font-weight:600;font-size:23px;line-height:1.22;letter-spacing:-.015em;margin-bottom:14px;}
.case p{font-size:15px;color:var(--ink-soft);line-height:1.62;}
@media (max-width:980px){.cases{grid-template-columns:1fr;}}

/* ======================= THE WORK ======================= */
.series-list{list-style:none;border-bottom:1px solid var(--line);}
.series-list a{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:28px;align-items:center;padding:30px 4px;border-top:1px solid var(--line);
  text-decoration:none;color:var(--ink);transition:background-color .4s,padding .5s var(--ease);}
.series-list a:hover{background:var(--card);padding-left:18px;padding-right:18px;}
.series-list .sn{font-size:14px;font-weight:500;color:var(--muted);}
.series-list h3{font-family:var(--serif);font-weight:600;font-size:clamp(24px,2.8vw,34px);letter-spacing:-.02em;line-height:1.15;}
.series-list p{font-size:15px;color:var(--ink-soft);margin-top:6px;max-width:62ch;}
.series-list .go{width:46px;height:46px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;
  transition:background-color .35s,border-color .35s,transform .45s var(--ease);}
.series-list a:hover .go{background:var(--ink);border-color:var(--ink);color:var(--paper);transform:rotate(-45deg);}
@media (max-width:760px){.series-list a{grid-template-columns:1fr auto;}.series-list .sn{grid-column:1/-1;}}

.latest{margin-top:56px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.latest:empty{display:none;}
.latest a{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:var(--radius);background:var(--card);border:1px solid var(--line-soft);
  text-decoration:none;color:var(--ink);transition:transform .45s var(--ease),box-shadow .45s var(--ease);}
.latest a:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.latest .ls{font-size:13px;color:var(--pine);font-weight:500;}
.latest .lt{font-family:var(--serif);font-weight:600;font-size:20px;line-height:1.25;letter-spacing:-.01em;}
@media (max-width:860px){.latest{grid-template-columns:1fr;}}
.work-ctas{margin-top:36px;display:flex;flex-wrap:wrap;gap:12px;align-items:center;}

.quote{margin-top:clamp(72px,10vw,128px);display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,3vw,40px);max-width:980px;}
.quote .qm{font-family:var(--serif);font-size:clamp(80px,10vw,140px);line-height:.7;color:var(--mint);font-weight:300;}
.quote blockquote{font-family:var(--serif);font-weight:400;font-size:clamp(24px,2.8vw,36px);line-height:1.3;letter-spacing:-.015em;}
.quote figcaption{margin-top:22px;font-size:14.5px;color:var(--muted);max-width:60ch;}

/* ======================= DIAGNOSTICS ======================= */
.diag-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.diag{position:relative;display:flex;flex-direction:column;padding:32px 30px 30px;border-radius:var(--radius);
  background:var(--forest-2);border:1px solid rgba(155,220,188,.14);color:#f4f1e8;text-decoration:none;overflow:hidden;
  transition:transform .5s var(--ease),border-color .4s,background-color .4s;}
.diag:hover{transform:translateY(-5px);border-color:rgba(155,220,188,.45);background:#124130;}
.diag.primary{background:#f4f1e8;color:#0f1d17;border-color:transparent;}
.diag.primary:hover{background:#fff;}
.diag .when{font-size:13.5px;font-weight:500;color:var(--mint-soft);margin-bottom:28px;}
.diag.primary .when{color:var(--pine);}
.diag h3{font-family:var(--serif);font-weight:600;font-size:28px;line-height:1.12;letter-spacing:-.02em;margin-bottom:12px;}
.diag p{font-size:15px;line-height:1.6;color:rgba(244,241,232,.72);margin-bottom:28px;flex:1;}
.diag.primary p{color:var(--ink-soft);}
.diag .cta{font-weight:600;font-size:15px;display:inline-flex;gap:8px;align-items:center;}
.diag .cta .arr{transition:transform .35s var(--ease);}
.diag:hover .cta .arr{transform:translateX(5px);}
@media (max-width:980px){.diag-grid{grid-template-columns:1fr;}}
.diag-more{margin-top:28px;}

.briefing{margin-top:clamp(56px,7vw,88px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;
  padding:clamp(28px,4vw,44px);border-radius:24px;border:1px solid rgba(155,220,188,.2);
  background:linear-gradient(120deg,rgba(93,179,134,.12),rgba(93,179,134,0) 60%);}
.briefing .label{margin-bottom:14px;}
.briefing h3{font-family:var(--serif);font-weight:600;font-size:clamp(26px,3vw,36px);letter-spacing:-.02em;line-height:1.12;margin-bottom:12px;}
.briefing p{color:rgba(244,241,232,.72);max-width:62ch;font-size:15.5px;}
@media (max-width:860px){.briefing{grid-template-columns:1fr;}}

/* ======================= ABOUT ======================= */
.about-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(36px,6vw,96px);align-items:start;}
.portrait{position:sticky;top:calc(var(--header-h) + 32px);}
.portrait .frame{border-radius:24px;overflow:hidden;aspect-ratio:4/5;background:var(--line-soft);}
.portrait img{width:100%;height:100%;object-fit:cover;}
.portrait figcaption{margin-top:18px;}
.portrait figcaption b{display:block;font-family:var(--serif);font-weight:600;font-size:22px;letter-spacing:-.01em;}
.portrait figcaption span{font-size:14.5px;color:var(--muted);}
.about-lead{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3vw,38px);line-height:1.22;letter-spacing:-.02em;margin-bottom:32px;}
.about-lead em{font-style:italic;color:var(--pine);}
.bio p{font-size:16.5px;line-height:1.72;color:var(--ink-soft);margin-bottom:18px;max-width:64ch;}
.bio p.small{font-size:14.5px;color:var(--muted);}
.creds{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:34px 0 30px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.creds div{background:var(--paper);padding:22px;}
.creds b{display:block;font-family:var(--serif);font-weight:600;font-size:20px;letter-spacing:-.01em;margin-bottom:4px;}
.creds span{font-size:14px;color:var(--muted);line-height:1.45;}
.creds a{color:var(--pine);font-weight:600;}
@media (max-width:860px){.about-grid{grid-template-columns:1fr;}.portrait{position:static;max-width:340px;}}
@media (max-width:520px){.creds{grid-template-columns:1fr;}}

/* ======================= FIT ======================= */
.fit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.fit article{padding:34px 30px;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);}
.fit article.me{background:var(--forest);color:#f4f1e8;border-color:transparent;}
.fit .who{font-size:14px;font-weight:600;color:var(--pine);margin-bottom:18px;}
.fit .me .who{color:var(--mint-soft);}
.fit h3{font-family:var(--serif);font-weight:600;font-size:26px;letter-spacing:-.015em;line-height:1.15;margin-bottom:14px;}
.fit p{font-size:15.5px;line-height:1.62;color:var(--ink-soft);}
.fit .me p{color:rgba(244,241,232,.76);}
.fit p a{color:var(--pine);font-weight:600;}
@media (max-width:980px){.fit{grid-template-columns:1fr;}}

/* ======================= OFFER ======================= */
.ladder{list-style:none;border-top:1px solid var(--line);}
.rung{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto);gap:28px;align-items:center;padding:28px 6px;border-bottom:1px solid var(--line);
  transition:background-color .4s,padding .5s var(--ease);}
.rung:hover{background:var(--card);padding-left:20px;padding-right:20px;}
.rung h3{font-family:var(--serif);font-weight:600;font-size:clamp(22px,2.2vw,28px);letter-spacing:-.015em;line-height:1.2;display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;}
.rung .tag{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:0;padding:5px 11px;border-radius:999px;background:var(--accent-soft);color:var(--pine);}
.rung p{font-size:15px;color:var(--ink-soft);margin-top:8px;max-width:64ch;}
.rung .price{text-align:right;font-family:var(--serif);font-weight:600;font-size:clamp(24px,2.4vw,32px);letter-spacing:-.02em;line-height:1.05;white-space:nowrap;}
.rung .price small{display:block;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0;margin-top:6px;}
.rung.feat{background:var(--forest);color:#f4f1e8;border-radius:var(--radius);border-bottom-color:transparent;padding:32px 28px;margin:10px 0;}
.rung.feat:hover{padding:32px 28px;background:var(--forest-2);}
.rung.feat p{color:rgba(244,241,232,.76);}
.rung.feat .tag{background:var(--loud);color:#0f1d17;}
.rung.feat .price small{color:rgba(244,241,232,.6);}
.offer-note{margin-top:30px;font-size:15px;color:var(--ink-soft);max-width:66ch;}
.offer-note a{color:var(--pine);font-weight:600;}
@media (max-width:700px){.rung{grid-template-columns:1fr;gap:12px;}.rung .price{text-align:left;}}

/* ======================= CONTACT ======================= */
.contact{overflow:hidden;isolation:isolate;text-align:left;}
.contact .orbits{position:absolute;right:-12%;top:50%;width:min(80vw,900px);transform:translateY(-50%);z-index:-1;opacity:.9;pointer-events:none;}
.contact .orbits circle{fill:none;stroke:rgba(155,220,188,.14);}
.contact h2{font-family:var(--serif);font-weight:600;font-size:clamp(40px,7vw,96px);line-height:1;letter-spacing:-.035em;max-width:13ch;margin-bottom:28px;}
.contact h2 em{font-style:italic;color:var(--mint);}
.contact .lede{margin-bottom:40px;}
.contact .note{margin-top:28px;font-size:14px;color:rgba(244,241,232,.6);}
.contact .note a{color:var(--mint-soft);}

/* ======================= FOOTER ======================= */
.site-footer{background:var(--forest);color:rgba(244,241,232,.72);padding:clamp(48px,7vw,88px) 0 40px;border-top:1px solid rgba(155,220,188,.1);}
.ft-top{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,.7fr));gap:40px;padding-bottom:56px;}
.ft-top .logo{color:#f4f1e8;font-size:clamp(22px,1.8vw,26px);font-weight:600;letter-spacing:-.02em;}
.ft-top p{margin-top:20px;font-size:15px;max-width:40ch;}
.ft-top a{color:var(--mint-soft);text-decoration:none;}
.ft-col h4{font-size:13.5px;font-weight:600;color:#f4f1e8;margin-bottom:16px;}
.ft-col ul{list-style:none;display:grid;gap:10px;}
.ft-col a{color:rgba(244,241,232,.72);font-size:15px;transition:color .2s;}
.ft-col a:hover{color:#fff;}
.ft-legal{border-top:1px solid rgba(244,241,232,.12);padding-top:28px;font-size:12.5px;line-height:1.6;color:rgba(244,241,232,.5);max-width:100ch;}
@media (max-width:860px){.ft-top{grid-template-columns:1fr 1fr;}.ft-top > div:first-child{grid-column:1/-1;}}

/* ======================= MOTION START STATES =======================
   Only applied when site.js has confirmed Motion is running (html.js-motion).
   If anything fails, html.motion-off (or no class at all) shows everything. */
.js-motion [data-reveal],.js-motion [data-stagger] > *{opacity:0;}
.js-motion .hero h1:not(.split){visibility:hidden;}
.js-motion .hero .w > span{transform:translateY(105%);}
.js-motion .hero [data-hero-fade]{opacity:0;}
.js-motion .orbit .ring,.js-motion .orbit .track,.js-motion .orbit .trail{stroke-dasharray:1;stroke-dashoffset:1;}
.js-motion .orbit .runner,.js-motion .orbit .node,.js-motion .orbit .nlabel{opacity:0;}
.js-motion .portrait .frame{clip-path:inset(100% 0 0 0 round 24px);}
.motion-off [data-reveal],.motion-off [data-stagger] > *,.motion-off .hero [data-hero-fade],.motion-off .orbit *{opacity:1!important;}
.motion-off .orbit .ring,.motion-off .orbit .track,.motion-off .orbit .trail{stroke-dashoffset:0!important;}
.motion-off .hero h1{visibility:visible!important;}
.motion-off .hero .w > span{transform:none!important;}
.motion-off .portrait .frame{clip-path:none!important;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .scroll-cue::after{animation:none;}
}

/* ======================= HERO BYLINE ======================= */
.byline{display:flex;align-items:center;gap:14px;margin-top:30px;}
.byline img{width:52px;height:52px;border-radius:50%;object-fit:cover;object-position:50% 18%;border:2px solid rgba(155,220,188,.5);flex:none;}
.byline span{font-size:14.5px;color:rgba(244,241,232,.74);line-height:1.35;}
.byline b{display:block;color:#f4f1e8;font-size:16px;font-weight:600;}

/* ======================= TRUST ======================= */
.trust{background:var(--card);border-bottom:1px solid var(--line);padding:clamp(28px,4vw,40px) 0;}
.commit{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px 28px;}
.commit li{display:flex;align-items:flex-start;gap:12px;font-size:15px;font-weight:600;line-height:1.35;color:var(--ink);}
.commit svg{flex:none;color:var(--pine);margin-top:1px;}
.recog{list-style:none;display:flex;flex-wrap:wrap;gap:10px 40px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line-soft);}
.recog li{font-size:14.5px;color:var(--muted);}
.recog b{color:var(--ink);font-weight:600;}
.recog a{color:inherit;text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:1px;transition:border-color .2s,color .2s;}
.recog a:hover{color:var(--ink);border-color:var(--pine);}
@media (max-width:1100px){.commit{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:640px){.commit{grid-template-columns:1fr;gap:14px;}.recog{flex-direction:column;gap:10px;}}

/* ======================= WHERE TO START ======================= */
.role-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;}
.role{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px 20px;display:flex;flex-direction:column;
  transition:border-color .3s,box-shadow .4s var(--ease),transform .4s var(--ease);}
.role:hover{border-color:color-mix(in srgb,var(--pine) 40%,var(--line));box-shadow:var(--shadow);transform:translateY(-3px);}
.role h3{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding-bottom:16px;border-bottom:1px solid var(--line-soft);}
.role .abbr{font-family:var(--serif);font-weight:600;font-size:36px;letter-spacing:-.02em;line-height:1;color:var(--ink);}
.role .full{font-size:14.5px;font-weight:500;color:var(--muted);}
.role ul{list-style:none;}
.role li + li{border-top:1px solid var(--line-soft);}
.role a{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:11px 0;font-size:15px;font-weight:500;line-height:1.4;color:var(--ink);text-decoration:none;}
.role a::after{content:"→";color:var(--pine);flex:none;transition:transform .3s var(--ease);}
.role a:hover{color:var(--pine);}
.role a:hover::after{transform:translateX(4px);}
@media (max-width:1100px){.role-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:600px){.role-grid{grid-template-columns:1fr;}}

/* ======================= METHOD FIGURE ======================= */
.exhibit{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(18px,2.6vw,30px);box-shadow:var(--shadow);}
.ex-cap{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:15.5px;font-weight:600;color:var(--ink);margin-bottom:20px;}
.ex-tag{font-size:12.5px;font-weight:600;color:var(--paper);background:var(--ink);padding:4px 10px;border-radius:6px;}
.ex-rail{position:relative;height:3px;background:var(--line);border-radius:3px;margin-bottom:16px;overflow:hidden;}
.ex-fill{position:absolute;inset:0;background:var(--mint);transform-origin:left;}
.ex-grid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.ex-col{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--card);}
.ex-col:last-child{border-right:0;}
.ex-head{background:var(--forest);color:#f4f1e8;padding:20px 22px;transition:background-color .5s ease,color .5s ease;}
.ex-n{display:block;font-size:13px;font-weight:600;color:var(--mint-soft);margin-bottom:8px;font-variant-numeric:tabular-nums;transition:color .5s ease;}
.ex-head h3{font-family:var(--serif);font-weight:600;font-size:clamp(26px,2.4vw,32px);letter-spacing:-.02em;line-height:1;}
.ex-q{font-family:var(--serif);font-style:italic;font-size:17px;line-height:1.45;color:var(--ink-soft);padding:20px 22px;border-bottom:1px solid var(--line);min-height:7.4em;}
.ex-list{list-style:none;}
.ex-list li{padding:14px 22px;font-size:15px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--line-soft);display:flex;gap:11px;align-items:baseline;}
.ex-list li:last-child{border-bottom:0;}
.ex-list li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--mint);flex:none;transform:translateY(-1px);}
.ex-foot{margin-top:32px;display:flex;flex-wrap:wrap;gap:20px 40px;align-items:center;justify-content:space-between;}
.ex-foot p{font-size:16px;color:var(--ink-soft);max-width:72ch;}
.ex-foot b{color:var(--ink);}
@media (max-width:980px){
  .ex-grid{grid-template-columns:1fr 1fr;}
  .ex-col:nth-child(2){border-right:0;}
  .ex-col:nth-child(-n+2){border-bottom:1px solid var(--line);}
  .ex-q{min-height:0;}
}
@media (max-width:560px){
  .ex-grid{grid-template-columns:1fr;}
  .ex-col{border-right:0!important;border-bottom:1px solid var(--line);}
  .ex-col:last-child{border-bottom:0;}
}

/* ======================= DIAGNOSTIC RESULT PREVIEWS ======================= */
.pv{display:block;margin-bottom:26px;min-height:104px;}
.pv small{display:block;font-size:12.5px;font-weight:600;color:var(--mint-soft);margin-bottom:12px;}
.diag.primary .pv small{color:var(--pine);}
.pv-top{display:flex;align-items:center;gap:14px;margin-bottom:14px;}
.pv-top small{margin-bottom:4px;}
.pv-ring{position:relative;width:58px;height:58px;flex:none;}
.pv-ring svg{width:100%;height:100%;transform:rotate(-90deg);}
.pv-ring .trk{fill:none;stroke:var(--line);stroke-width:4;}
.pv-ring .val{fill:none;stroke:var(--pine);stroke-width:4;stroke-linecap:round;stroke-dasharray:100 100;stroke-dashoffset:calc(100 - var(--v));
  transition:stroke-dashoffset 1.2s var(--ease);}
.pv-ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-weight:600;font-size:19px;color:var(--ink);}
.pv-tier{font-family:var(--serif);font-weight:600;font-size:22px;line-height:1.1;color:var(--ink);}
.pv-tier small{font-family:var(--sans);}
.pv-bars{display:flex;align-items:flex-end;gap:4px;height:42px;}
.pv-bars i{flex:1;height:var(--h);border-radius:2px 2px 0 0;transform-origin:bottom;}
.pv-heat .hm-row{display:grid;grid-template-columns:96px repeat(12,minmax(0,1fr));gap:3px;align-items:center;margin-bottom:3px;}
.pv-heat em{font-style:normal;font-size:11.5px;color:rgba(244,241,232,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pv-heat i{height:11px;border-radius:2px;}
.pv-ai .pl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:center;margin-bottom:9px;}
.pv-ai em{font-style:normal;font-size:12.5px;color:rgba(244,241,232,.76);}
.pv-ai i{display:block;height:9px;border-radius:5px;width:var(--h);transform-origin:left;}
/* levels: strong / mid / weak — on the light card and on the dark cards */
.diag.primary .pv i.s{background:#0e6b52;} .diag.primary .pv i.m{background:#b45309;} .diag.primary .pv i.w{background:#9a3327;}
.diag:not(.primary) .pv i.s{background:#5db386;} .diag:not(.primary) .pv i.m{background:#d98b3a;} .diag:not(.primary) .pv i.w{background:#d47a6c;}
.diag-trust{list-style:none;display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:28px;}
.diag-trust li{display:flex;gap:10px;align-items:center;font-size:15px;color:rgba(244,241,232,.84);}
.diag-trust svg{color:var(--mint);flex:none;}
@media (max-width:420px){.pv-ai .pl{grid-template-columns:120px minmax(0,1fr);}.pv-heat .hm-row{grid-template-columns:78px repeat(12,minmax(0,1fr));}}

/* ======================= WHAT YOU RECEIVE ======================= */
.receive-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,96px);align-items:center;}
.receive-list{list-style:none;counter-reset:r;margin:30px 0 24px;border-top:1px solid var(--line);}
.receive-list li{counter-increment:r;display:flex;gap:18px;align-items:baseline;padding:15px 0;border-bottom:1px solid var(--line);font-size:17px;}
.receive-list li::before{content:counter(r);font-family:var(--serif);font-weight:600;color:var(--pine);font-size:19px;min-width:16px;}
.receive-list b{font-weight:600;}
.specimen{font-size:14px;line-height:1.5;color:var(--ink-soft);background:var(--accent-soft);border-radius:12px;padding:12px 16px;margin-bottom:28px;}
.specimen b{color:var(--ink);}
.stack{position:relative;width:100%;max-width:580px;aspect-ratio:1/1.08;justify-self:center;}
.stack .pg{position:absolute;width:58%;height:auto;border-radius:6px;background:#fff;
  box-shadow:0 34px 64px -26px rgba(11,42,31,.5),0 2px 6px rgba(11,42,31,.1);
  transition:left 1s var(--ease),top 1s var(--ease),transform 1s var(--ease);}
.stack .pg1{left:21%;top:2%;transform:rotate(0deg);z-index:3;}
.stack .pg2{left:0;top:12%;transform:rotate(-6deg);z-index:2;}
.stack .pg3{left:42%;top:12%;transform:rotate(6deg);z-index:1;}
.js-motion .stack:not(.open) .pg{left:21%;top:8%;transform:rotate(0deg);}
@media (max-width:900px){.receive-grid{grid-template-columns:1fr;}.stack{max-width:440px;}}

/* ======================= CONTACT: PERSON + NEXT STEPS ======================= */
.contact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(40px,6vw,88px);align-items:center;}
.contact h2{font-size:clamp(38px,5.2vw,72px)!important;}
.next{background:rgba(244,241,232,.05);border:1px solid rgba(155,220,188,.2);border-radius:22px;padding:clamp(24px,3vw,36px);}
.person{display:flex;gap:16px;align-items:center;padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid rgba(244,241,232,.12);}
.person img{width:64px;height:64px;border-radius:50%;object-fit:cover;object-position:50% 18%;border:2px solid rgba(155,220,188,.5);flex:none;}
.person span{font-size:14.5px;color:rgba(244,241,232,.74);line-height:1.5;}
.person b{display:block;color:#f4f1e8;font-size:17px;font-weight:600;}
.person a{color:var(--mint-soft);}
.next h3{font-family:var(--serif);font-weight:600;font-size:22px;letter-spacing:-.01em;margin-bottom:16px;color:#f4f1e8;}
.next ol{list-style:none;counter-reset:n;display:grid;gap:14px;}
.next li{counter-increment:n;position:relative;padding-left:40px;font-size:15px;line-height:1.5;color:rgba(244,241,232,.8);}
.next li::before{content:counter(n);position:absolute;left:0;top:-1px;width:26px;height:26px;border-radius:50%;background:var(--mint);color:#0b2a1f;
  font-weight:700;font-size:13px;display:grid;place-items:center;}
.next li b{color:#f4f1e8;}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr;}}

/* ======================= CALM MOTION START STATES ======================= */
.js-motion .ex-col:not(.on) .ex-head{background:var(--accent-soft);color:var(--ink);}
.js-motion .ex-col:not(.on) .ex-n{color:var(--pine);}
.js-motion .ex-fill{transform:scaleX(0);}
.js-motion .pv:not(.in) .pv-ring .val{stroke-dashoffset:100;}
.js-motion .pv-bars i,.js-motion .pv-ai i{transform:scale(1,.04);}
.js-motion .pv-ai i{transform:scale(.02,1);}
.js-motion .pv-heat i{opacity:0;}
.motion-off .pv-bars i,.motion-off .pv-ai i{transform:none!important;}
.motion-off .pv-heat i{opacity:1!important;}
@media (max-width:900px){.orbit .node,.orbit .runner{display:none;}}

/* balanced title wrapping; spacing for stacked title + lede */
h2.display,.hero h1,.contact h2{text-wrap:balance;}
.receive-copy h2{margin-bottom:22px;}
.motion-off .ex-head,.motion-off .ex-n,.motion-off .stack .pg,.motion-off .pv-ring .val{transition:none!important;}
