:root{
  --ink:#2b2b29; --char:#3f3f3c; --muted:#8a8578; --line:#d9d5c9;
  --stone:#ece9e0; --stone-2:#f4f2eb; --paper:#faf9f5;
  --gold:#a8842f; --gold-soft:#b89a52;
  --ease:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:'Inter',-apple-system,Arial,sans-serif;color:var(--char);background:var(--paper);
     line-height:1.7;font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
h1,h2,h3{font-family:'Source Serif Pro',Georgia,serif;color:var(--ink);font-weight:600;line-height:1.14;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.wrap{max-width:1080px;margin:0 auto;padding:0 32px;}
.eyebrow{font-weight:400;font-size:11px;letter-spacing:3.5px;text-transform:uppercase;color:var(--gold);display:block;}

.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.js .rv.in{opacity:1;transform:none;}
.rv-d1{transition-delay:.07s}.rv-d2{transition-delay:.14s}.rv-d3{transition-delay:.21s}

/* header */
header{position:sticky;top:0;z-index:90;background:rgba(250,249,245,.94);backdrop-filter:blur(14px);
       border-bottom:1px solid var(--line);}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;}
.logo{font-family:'Source Serif Pro',serif;font-size:24px;font-weight:600;letter-spacing:.5px;
      display:inline-flex;align-items:center;flex-wrap:wrap;color:var(--ink);}
.logo .flower{width:.62em;height:.62em;margin:0 4px;display:inline-block;}
.logo .sub{flex-basis:100%;font-family:'Helvetica Neue',Arial,sans-serif;font-size:9px;letter-spacing:5px;
           color:var(--muted);font-weight:400;margin-top:-2px;}
nav ul{display:flex;gap:30px;list-style:none;align-items:center;}
nav a{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--char);position:relative;padding:4px 0;}
nav a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .4s var(--ease);}
@media(hover:hover) and (pointer:fine){nav a:hover::after{width:100%;} nav a:hover{color:var(--gold);}}
.nav-cta{border:1px solid var(--ink);padding:10px 20px;}
.nav-cta::after{display:none;}
@media(hover:hover) and (pointer:fine){.nav-cta:hover{background:var(--gold);border-color:var(--gold);color:#faf9f5;}}
.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px;z-index:95;}
.menu-btn span{display:block;width:23px;height:1.5px;background:var(--ink);margin:5px 0;transition:.35s var(--ease);}
body.navopen .menu-btn span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
body.navopen .menu-btn span:nth-child(2){opacity:0;}
body.navopen .menu-btn span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

/* page hero */
.phero{position:relative;overflow:hidden;background:var(--ink);padding:clamp(84px,11vw,140px) 0 clamp(70px,9vw,110px);}
.phero .bg{position:absolute;inset:0;background-size:cover;background-position:center;
  filter:saturate(.45) brightness(.52) contrast(1.05);animation:kb 30s ease-in-out infinite alternate;}
@keyframes kb{from{transform:scale(1.04)}to{transform:scale(1.13)}}
.phero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(20,20,19,.88) 0%,rgba(20,20,19,.60) 60%,rgba(20,20,19,.42) 100%);}
.phero .wrap{position:relative;z-index:2;}
.phero .crumb{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:rgba(250,249,245,.55);margin-bottom:22px;}
@media(hover:hover) and (pointer:fine){.phero .crumb a:hover{color:var(--gold-soft);}}
.phero h1{color:#faf9f5;font-size:clamp(1.9rem,4vw,3.1rem);letter-spacing:-.015em;max-width:20ch;}
.phero p{color:rgba(250,249,245,.8);margin-top:22px;max-width:56ch;font-size:1.02rem;}
.phero .acts{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap;}

.btn{display:inline-block;font-size:12px;letter-spacing:2px;text-transform:uppercase;padding:16px 36px;
     border:1px solid var(--ink);color:var(--ink);background:transparent;cursor:pointer;
     transition:all .38s var(--ease);font-family:'Inter',sans-serif;}
@media(hover:hover) and (pointer:fine){.btn:hover{background:var(--ink);color:var(--paper);}}
.btn-gold{background:var(--gold);border-color:var(--gold);color:#faf9f5;}
@media(hover:hover) and (pointer:fine){.btn-gold:hover{background:#8f6f26;border-color:#8f6f26;}}
.btn-ghost{border-color:rgba(250,249,245,.5);color:#faf9f5;}
@media(hover:hover) and (pointer:fine){.btn-ghost:hover{background:#faf9f5;border-color:#faf9f5;color:var(--ink);}}

section{padding:clamp(64px,8vw,100px) 0;}
.lead{font-size:1.1rem;color:var(--char);max-width:62ch;}
.lead + p{margin-top:18px;max-width:62ch;color:var(--muted);}

h2.sh{font-size:clamp(1.5rem,2.8vw,2.1rem);margin-top:14px;letter-spacing:-.015em;}
.shead{margin-bottom:38px;}

/* chips */
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:26px;}
.chips span{font-size:.82rem;border:1px solid var(--line);padding:9px 16px;color:var(--char);
  transition:.35s var(--ease);}
@media(hover:hover) and (pointer:fine){.chips span:hover{background:var(--ink);border-color:var(--ink);color:var(--paper);}}

/* quote */
.qband{background:var(--ink);color:#e9e6dd;}
.qband blockquote{font-family:'Source Serif Pro',serif;font-style:italic;font-size:clamp(1.15rem,2.2vw,1.6rem);
  color:#faf9f5;line-height:1.55;max-width:48ch;}
.qband .attr{margin-top:24px;font-size:.83rem;color:#b4afa2;}
.qband .attr strong{display:block;color:#e9e6dd;font-weight:500;font-style:normal;}

/* steps compact */
.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:10px;}
.mini div{border-top:1px solid var(--line);padding-top:18px;}
.mini .n{font-family:'Source Serif Pro',serif;color:var(--gold);font-size:.8rem;letter-spacing:2px;text-transform:uppercase;}
.mini strong{display:block;font-family:'Source Serif Pro',serif;font-weight:600;color:var(--ink);font-size:1.05rem;margin:6px 0 5px;}
.mini p{font-size:.87rem;color:var(--muted);}

/* related */
.rel{background:var(--stone-2);}
.relgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);}
.relgrid a{background:var(--stone-2);padding:26px 24px;transition:background .4s var(--ease);}
@media(hover:hover) and (pointer:fine){.relgrid a:hover{background:var(--ink);}}
@media(hover:hover) and (pointer:fine){.relgrid a:hover h3,.relgrid a:hover p,.relgrid a:hover .ar{color:#faf9f5;}}
.relgrid h3{font-size:1.08rem;transition:color .4s;}
.relgrid p{font-size:.85rem;color:var(--muted);margin-top:8px;transition:color .4s;}
.relgrid .ar{color:var(--gold);margin-top:16px;display:inline-block;font-size:1rem;transition:color .4s;}

/* cta */
.cta{background:var(--ink);text-align:center;}
.cta h2{color:#faf9f5;font-size:clamp(1.7rem,3.4vw,2.6rem);max-width:20ch;margin:16px auto 0;}
.cta p{color:rgba(233,230,221,.75);max-width:50ch;margin:20px auto 0;}
.cta .acts{margin-top:32px;display:flex;justify-content:center;gap:14px;flex-wrap:wrap;}

/* form */
form{background:var(--stone-2);border:1px solid var(--line);padding:40px 36px;max-width:640px;}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.field{display:flex;flex-direction:column;}
.field.full{grid-column:1/-1;}
label{font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:9px;}
input,textarea{font-family:'Inter',sans-serif;font-size:.97rem;padding:11px 0;border:none;
  border-bottom:1px solid var(--line);background:transparent;color:var(--ink);transition:border-color .35s;}
input:focus,textarea:focus{outline:none;border-bottom-color:var(--gold);}
textarea{resize:vertical;min-height:92px;}
.submit{margin-top:32px;}
.submit .btn{width:100%;}
.cmeta{margin-top:6px;border-top:1px solid var(--line);}
.cmeta div{padding:16px 0;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:baseline;}
.cmeta .k{font-size:.66rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);min-width:76px;}
.cmeta .v{font-size:.92rem;}
.li-mark{height:auto;opacity:.78;transition:opacity .35s var(--ease);}
@media(hover:hover) and (pointer:fine){a:hover .li-mark{opacity:1;}}

/* footer */
footer{background:var(--ink);color:#b4afa2;padding:60px 0 30px;}
footer .logo{color:#faf9f5;} footer .logo .sub{color:rgba(250,249,245,.55);}
.fcols{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:40px;}
.fcols h4{font-size:.68rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold-soft);margin-bottom:16px;font-weight:400;font-family:'Inter',sans-serif;}
.fcols ul{list-style:none;}
.fcols li{margin-bottom:9px;}
.fcols a{font-size:.85rem;color:#b4afa2;}
@media(hover:hover) and (pointer:fine){.fcols a:hover{color:var(--gold-soft);}}
.faddr{font-size:.83rem;line-height:1.85;margin-top:18px;}
.fcopy{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.11);
  font-size:.74rem;color:#8a8578;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}

@media(max-width:900px){
  .mini{grid-template-columns:1fr;}
  .mini{gap:20px;}
  .fcols{grid-template-columns:1fr;gap:32px;}
}
@media(max-width:760px){
  .wrap{padding:0 22px;}
  .menu-btn{display:block;}
  .nav{height:64px;}
  .logo{font-size:22px;}
  /* comfortable tap targets */
  .chips span{padding:11px 16px;}
  .btn{padding:16px 30px;width:100%;text-align:center;}
  .phero .acts{flex-direction:column;align-items:stretch;}
  .cta .acts{flex-direction:column;align-items:stretch;}
  .phero h1{font-size:clamp(1.65rem,7vw,2.2rem);max-width:none;}
  .phero{padding:64px 0 54px;}
  .iband{height:230px;}
  header{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none;}
  nav ul{position:fixed;top:0;left:0;right:0;bottom:0;height:100vh;height:100dvh;
    background:var(--paper);flex-direction:column;justify-content:center;align-items:center;
    gap:26px;transform:translateY(-100%);transition:transform .5s var(--ease);
    z-index:94;overflow-y:auto;overscroll-behavior:contain;padding:80px 22px 40px;}
  body.navopen{overflow:hidden;}
  .menu-btn{position:relative;z-index:96;}
  body.navopen nav ul{transform:none;}
  nav a{font-size:1.05rem;letter-spacing:2px;}
  .fgrid{grid-template-columns:1fr;gap:20px;}
  form{padding:28px 22px;}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important;}
  .js .rv{opacity:1;transform:none;}
}


/* ---------- full-bleed photo band (no text) ---------- */
.iband{position:relative;height:clamp(300px,44vh,480px);overflow:hidden;background:var(--ink);}
.iband .ib{position:absolute;inset:0;background-size:cover;background-position:center 50%;
  filter:saturate(.5) contrast(1.03) brightness(.86);
  animation:kb 36s ease-in-out infinite alternate;will-change:transform;}
.iband::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,20,19,.22) 0%,rgba(20,20,19,.06) 45%,rgba(20,20,19,.30) 100%);}

@media(max-width:900px){
}

/* ---------- statement cards (About) ---------- */
.gcards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);}
.gcard{background:var(--paper);padding:32px 28px;}
.gcard h3{font-size:1.12rem;margin-bottom:16px;}
.gcard ul{list-style:none;}
.gcard li{font-size:.88rem;color:var(--muted);padding:7px 0 7px 17px;position:relative;line-height:1.55;}
.gcard li::before{content:"";position:absolute;left:0;top:16px;width:6px;height:1px;background:var(--gold);}
@media(max-width:900px){.gcards{grid-template-columns:1fr;}}

/* ---------- roles: side tabs on desktop, accordion on mobile ---------- */
.roles{background:var(--stone-2);}
.rtabs{display:grid;grid-template-columns:330px 1fr;
       /* exactly one row per group. If the panel is taller than the button stack
          the extra height is shared equally across the rows, so the left column
          always fills the box and the rows stay identical to each other. */
       grid-template-rows:repeat(var(--n,6),1fr);
       border:1px solid var(--line);background:var(--paper);position:relative;}
.rtabs::before{content:"";position:absolute;left:330px;top:0;bottom:0;width:1px;
       background:var(--line);pointer-events:none;}
.rgroup{display:contents;}
.rtabs button{grid-column:1;width:100%;text-align:left;cursor:pointer;
  display:flex;align-items:center;gap:14px;background:transparent;border:none;min-height:56px;
  border-bottom:1px solid var(--line);padding:15px 22px;font-family:'Inter',sans-serif;
  font-size:.88rem;font-weight:400;color:var(--char);letter-spacing:.2px;position:relative;
  transition:background .35s var(--ease),color .35s var(--ease),padding-left .35s var(--ease);}
.rtabs .rgroup:last-child button{border-bottom:none;}
.rtabs button::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;
  background:var(--gold);transform:scaleY(0);transition:transform .35s var(--ease);}
@media(hover:hover) and (pointer:fine){
  .rtabs button:hover{background:var(--stone-2);padding-left:26px;}
  }
.rtabs button.on{background:var(--ink);color:var(--paper);padding-left:26px;}
.rtabs button.on::before{transform:scaleY(1);}
.cnt{margin-left:auto;color:var(--gold);opacity:0;transform:translateX(-6px);
  transition:opacity .35s var(--ease),transform .35s var(--ease);font-size:.95rem;line-height:1.2;}
.cnt::before{content:"\2192";}
.rtabs button.on .cnt{opacity:1;transform:none;color:var(--gold-soft);}
.rtab-panel{grid-column:2;grid-row:1 / -1;padding:34px 36px;display:none;}
.rtab-panel.on{display:block;animation:fadeIn .45s var(--ease);}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.rtab-panel h3{font-size:1.25rem;margin-bottom:18px;}
.rtab-panel ul{list-style:none;columns:2 250px;column-gap:46px;}
.rtab-panel li{font-size:.93rem;color:var(--char);padding:8px 0 8px 18px;position:relative;
  break-inside:avoid;line-height:1.62;}
.rtab-panel li::before{content:"";position:absolute;left:0;top:17px;width:6px;height:1px;background:var(--gold);}

@media(max-width:900px){
  /* accordion: each group stacks, panel sits directly under its own heading */
  .rtabs{display:block;grid-template-rows:none;}
  .rtabs::before{display:none;}
  .rgroup{display:block;}
  .rtabs button{min-height:56px;padding:16px 20px;font-size:.95rem;}
  .rtabs button.on{background:var(--ink);color:var(--paper);padding-left:20px;}
  .rtabs button.on .cnt{color:var(--gold-soft);}
  .rtabs .rgroup:last-child button{border-bottom:1px solid var(--line);}
  .rtabs .rgroup:last-child .rtab-panel.on + *,
  .rtabs .rgroup:last-child button.on{border-bottom:none;}
  .cnt{opacity:1;transform:none;font-size:1.5rem;line-height:1;color:var(--gold);
       font-weight:300;flex:none;}
  .cnt::before{content:"+";}
  .rtabs button.on .cnt::before{content:"\2212";}
  .rtab-panel{grid-column:auto;grid-row:auto;padding:20px 20px 26px;
    border-bottom:1px solid var(--line);background:var(--stone-2);}
  .rtab-panel h3{display:none;}
  .rtab-panel ul{columns:1;}
  .rtab-panel li{font-size:.92rem;}
}

/* ---------- insight article ---------- */
.art{max-width:720px;margin:0 auto;padding:0 32px;}
.art-meta{font-size:.74rem;letter-spacing:2px;text-transform:uppercase;color:var(--muted);
  margin-bottom:22px;display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.art-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--gold);}
.art h1{font-size:clamp(1.9rem,4.2vw,3rem);letter-spacing:-.02em;}
.art .standfirst{font-family:'Source Serif Pro',serif;font-size:clamp(1.1rem,2vw,1.35rem);
  color:var(--char);line-height:1.55;margin-top:24px;}
.art-body{margin-top:46px;}
.art-body p{margin-bottom:22px;font-size:1.04rem;line-height:1.78;}
.art-body h2{font-size:clamp(1.3rem,2.4vw,1.7rem);margin:44px 0 18px;}
.art-body ul{list-style:none;margin:0 0 24px;}
.art-body li{position:relative;padding:8px 0 8px 22px;font-size:1.02rem;line-height:1.7;}
.art-body li::before{content:"";position:absolute;left:0;top:19px;width:8px;height:1px;background:var(--gold);}
.pull{border-left:2px solid var(--gold);padding:6px 0 6px 26px;margin:34px 0;
  font-family:'Source Serif Pro',serif;font-style:italic;font-size:clamp(1.15rem,2.2vw,1.45rem);
  color:var(--ink);line-height:1.5;}
.pull cite{display:block;font-style:normal;font-family:'Inter',sans-serif;font-size:.78rem;
  letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin-top:14px;}
.source{background:var(--stone-2);border:1px solid var(--line);padding:24px 26px;margin:40px 0;}
.source .lbl{font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--gold);}
.source p{margin:10px 0 0;font-size:.95rem;color:var(--char);}
.source a{color:var(--ink);border-bottom:1px solid var(--gold);}
.byline{display:flex;gap:18px;align-items:flex-start;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);padding:26px 0;margin:44px 0;}
.byline .mark{width:40px;height:40px;flex:none;}
.byline strong{display:block;font-family:'Source Serif Pro',serif;font-size:1.05rem;color:var(--ink);}
.byline span{font-size:.88rem;color:var(--muted);}
@media(max-width:760px){.art{padding:0 22px;}}
