/* ColabContent — shared site CSS · mobile-first */
:root{
  --ink:#0A0908; --ink-2:#110F0D; --ink-3:#181513;
  --rule:#2D2721; --rule-2:#3D342D;
  --paper:#F5EEE1; --paper-2:#D5CCB9; --paper-3:#A69B8A;
  --brass:#D4B585; --brass-2:#EBCF98; --alert:#E0AC66;
  --ease:cubic-bezier(.22,1,.36,1);
  --gutter:clamp(20px,5vw,64px);
  --measure:1400px;
  --serif:"Fraunces",ui-serif,Georgia,serif;
  --sans:"Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --mono:"DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
html,body{margin:0;padding:0;background:var(--ink);color:var(--paper);}
body{font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;}
@media (max-width:640px){ body{ font-size:16px; line-height:1.7;}}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .85 0 0 0 0 .80 0 0 0 0 .70 0 0 0 .04 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");opacity:.4;mix-blend-mode:overlay;}
main,nav,footer,section,article,aside{position:relative;z-index:2;}
header{position:relative;z-index:75;}
::selection{background:var(--brass);color:var(--ink);}
a{color:inherit;text-decoration:none;}
p{margin:0;color:var(--paper-2);}
img{max-width:100%;display:block;height:auto;}
h1,h2,h3,h4,h5{margin:0;color:var(--paper);font-weight:400;line-height:1.1;}

/* Typography */
.eyebrow{font-family:var(--mono);font-weight:500;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--paper-3);display:inline-flex;align-items:center;gap:14px;}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--brass);}
.container{width:100%;max-width:var(--measure);margin:0 auto;padding:0 var(--gutter);position:relative;}

/* A11y */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:var(--brass);color:var(--ink);padding:12px 20px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;}
.skip:focus{left:24px;top:24px;}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px;}

/* ================= HEADER ================= */
/* Masthead removed entirely — nav is the only header row. */
.masthead{display:none !important;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.82);}}

nav.site{position:fixed;top:0;left:0;right:0;z-index:80;padding:14px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:16px;transition:background .35s var(--ease),border-color .35s var(--ease),padding .35s var(--ease);background:rgba(10,9,8,.9);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--rule);}
@media (min-width:861px){ nav.site{ padding:18px var(--gutter); background:rgba(10,9,8,.55); border-bottom:1px solid var(--rule);} nav.site.scrolled{background:rgba(10,9,8,.88);padding:14px var(--gutter);} }
/* Logo — composed: ampersand mark + wordmark + tagline (per design handoff) */
.logo{display:flex;align-items:center;gap:10px;flex:0 0 auto;text-decoration:none;}
.logo .logo-mark{display:block;width:56px;height:56px;object-fit:contain;flex:none;}
.logo .logo-text{display:flex;flex-direction:column;line-height:.95;}
.logo .logo-wordmark{font-family:"EB Garamond","Cormorant Garamond",Georgia,serif;font-size:32px;font-weight:500;letter-spacing:-.015em;color:var(--paper);line-height:1;}
.logo .logo-wordmark em{font-style:italic;color:var(--brass);font-weight:500;}
.logo .logo-tagline{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--paper);opacity:.72;margin-top:6px;line-height:1;}
.logo .logo-tagline .dot{opacity:.5;margin:0 .15em;}
@media (max-width:720px){
  .logo{gap:9px;}
  .logo .logo-mark{width:48px;height:48px;}
  .logo .logo-wordmark{font-size:27px;}
  .logo .logo-tagline{font-size:8.5px;margin-top:5px;}
}
@media (max-width:420px){
  .logo{gap:8px;}
  .logo .logo-mark{width:42px;height:42px;}
  .logo .logo-wordmark{font-size:24px;}
  .logo .logo-tagline{font-size:8px;letter-spacing:.2em;margin-top:4px;}
}
/* Footer variant: different background — still dark, same treatment */
footer.site .logo{margin-bottom:20px;}
.nav-right{display:flex;align-items:center;gap:12px;}
.nav-cta{font-family:var(--mono);font-size:12px;color:var(--ink);padding:11px 18px;border-radius:2px;background:var(--brass);letter-spacing:.04em;transition:all .25s var(--ease);display:inline-flex;align-items:center;gap:10px;font-weight:500;text-transform:uppercase;white-space:nowrap;}
.nav-cta:hover{background:var(--brass-2);box-shadow:0 12px 32px -10px rgba(212,181,133,.6);}
.nav-cta .arr{font-family:var(--serif);font-size:15px;line-height:1;transition:transform .25s var(--ease);}
.nav-cta:hover .arr{transform:translateX(4px);}
@media (max-width:720px){ .nav-cta{ display:none;} }

/* Header phone pill — collapse to compact form on small screens, hide on very narrow viewports.
   Sticky CTA at bottom carries the phone on mobile (<860px) so this stays unobtrusive. */
.nav-phone:hover{border-color:var(--brass)!important;color:var(--paper)!important;}
@media (max-width:720px){
  .nav-phone span:last-child{display:none;}
  .nav-phone{padding:8px 12px!important;margin-right:6px!important;}
}
@media (max-width:420px){ .nav-phone{display:none;} }

.hamburger{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--rule-2);border-radius:2px;cursor:pointer;flex:none;padding:0;color:var(--paper);position:relative;z-index:80;transition:border-color .2s var(--ease),background .2s var(--ease);}
.hamburger:hover,.hamburger:focus-visible{border-color:var(--brass);background:rgba(212,181,133,.08);}
.hamburger span{position:relative;width:20px;height:14px;display:block;pointer-events:none;}
.hamburger span::before,.hamburger span::after{content:"";position:absolute;left:0;right:0;height:1.75px;background:currentColor;transition:transform .3s var(--ease),top .3s var(--ease),bottom .3s var(--ease);}
.hamburger span::before{top:0;}
.hamburger span::after{bottom:0;}
.hamburger[aria-expanded="true"] span::before{top:6px;transform:rotate(45deg);}
.hamburger[aria-expanded="true"] span::after{bottom:6px;transform:rotate(-45deg);}
@media (max-width:1100px){ .hamburger{ display:inline-flex;} }

/* Body scroll-lock when drawer open */
body.drawer-open{overflow:hidden;}

/* Mobile drawer */
.drawer{position:fixed;inset:0;z-index:70;background:rgba(10,9,8,.985);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);visibility:hidden;pointer-events:none;overflow-y:auto;overscroll-behavior:contain;padding:calc(64px + 24px) var(--gutter) 40px;-webkit-overflow-scrolling:touch;}
.drawer.is-open,.drawer[aria-hidden="false"]{visibility:visible;pointer-events:auto;}
.drawer > nav{opacity:0;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .3s var(--ease);}
.drawer.is-open > nav,.drawer[aria-hidden="false"] > nav{opacity:1;transform:translateY(0);}
.drawer nav{display:flex;flex-direction:column;gap:0;max-width:560px;margin:0 auto;}
.drawer .group{border-top:1px solid var(--rule);padding-top:24px;margin-top:24px;}
.drawer .group:first-child{border-top:none;padding-top:0;margin-top:0;}
.drawer .grouplabel{font-family:var(--mono);font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--brass);margin-bottom:12px;font-weight:500;}
.drawer a.main{display:flex;align-items:center;justify-content:space-between;padding:12px 0;font-family:var(--serif);font-weight:300;font-size:22px;letter-spacing:-.015em;color:var(--paper);border-bottom:1px solid var(--rule);transition:color .2s var(--ease),padding-left .2s var(--ease);}
.drawer a.main:hover,.drawer a.main[aria-current="page"]{color:var(--brass);padding-left:6px;}
.drawer a.main::after{content:"→";font-family:var(--serif);font-size:18px;color:var(--paper-3);transition:transform .2s var(--ease),color .2s var(--ease);}
.drawer a.main:hover::after{color:var(--brass);transform:translateX(4px);}
.drawer .cta-block{margin-top:32px;padding-top:32px;border-top:1px solid var(--rule);}
.drawer .cta-block .announce{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--alert);margin-bottom:16px;display:inline-flex;align-items:center;gap:10px;}
.drawer .cta-block .announce::before{content:"";width:7px;height:7px;border-radius:99px;background:var(--alert);box-shadow:0 0 10px var(--alert);animation:pulse 2.2s ease-in-out infinite;}

/* ================= BUTTONS ================= */
.btn{display:inline-flex;align-items:center;gap:14px;font-family:var(--mono);font-size:13px;letter-spacing:.04em;padding:18px 26px;border-radius:2px;cursor:pointer;border:1px solid transparent;transition:all .3s var(--ease);white-space:nowrap;font-weight:500;text-transform:uppercase;min-height:48px;}
.btn .arrow{display:inline-block;transition:transform .3s var(--ease);font-family:var(--serif);font-weight:300;font-size:18px;line-height:1;}
.btn:hover .arrow{transform:translateX(5px);}
.btn-primary{background:var(--brass);color:var(--ink);box-shadow:0 10px 30px -10px rgba(200,168,118,.35);}
.btn-primary:hover{background:var(--brass-2);box-shadow:0 22px 60px -12px rgba(200,168,118,.55);transform:translateY(-1px);}
.btn-lg{padding:22px 32px;font-size:14px;}
.btn-ghost{color:var(--paper);background:transparent;border:1px solid var(--rule-2);}
.btn-ghost:hover{border-color:var(--paper-2);background:rgba(243,236,223,.03);}
@media (max-width:480px){ .btn,.btn-lg{ width:100%; justify-content:center;} .btn-row{ flex-direction:column; width:100%;} }
.btn-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}

/* ================= SECTION SHELL ================= */
.section{padding:clamp(80px,13vw,180px) 0;border-top:1px solid var(--rule);}
.section-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:clamp(32px,5vw,64px);margin-bottom:clamp(48px,8vw,96px);}
@media (max-width:900px){ .section-head{ grid-template-columns:1fr; gap:24px; margin-bottom:48px;}}
.section-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(36px,5.6vw,80px);line-height:1;letter-spacing:-.035em;max-width:14ch;color:var(--paper);margin-top:24px;}
.section-head h2 em{font-style:italic;color:var(--brass);}
.section-head .side{display:flex;flex-direction:column;gap:20px;justify-content:flex-end;padding-bottom:8px;}
.section-head .side p{font-size:17px;max-width:46ch;line-height:1.6;}
.section-head .side .pill{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--paper-3);padding-top:4px;}
.section-head .side .pill::before{content:"";width:22px;height:1px;background:var(--brass);}

/* ================= PAGE HERO (non-home) ================= */
.page-hero{padding:calc(64px + 40px) 0 clamp(60px,10vw,120px);border-bottom:1px solid var(--rule);position:relative;overflow:hidden;}
@media (min-width:861px){ .page-hero{ padding-top:calc(72px + 60px);} }
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 80% 20%,rgba(200,168,118,.08),transparent 70%);pointer-events:none;}
.page-hero .crumb{font-family:var(--mono);font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--paper-3);margin-bottom:28px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.page-hero .crumb a{color:var(--paper-2);}
.page-hero .crumb a:hover{color:var(--paper);}
.page-hero .crumb .sep{color:var(--rule-2);}
.page-hero .crumb .curr{color:var(--brass);}
.page-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,7vw,108px);line-height:.98;letter-spacing:-.035em;max-width:18ch;color:var(--paper);}
.page-hero h1 em{font-style:italic;color:var(--brass);}
.page-hero .lede{margin-top:28px;font-family:var(--serif);font-weight:300;font-size:clamp(18px,1.6vw,24px);line-height:1.5;color:var(--paper-2);max-width:54ch;}
.page-hero .lede em{font-style:italic;color:var(--paper);}
.page-hero .meta{margin-top:36px;padding-top:24px;border-top:1px solid var(--rule);display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px 32px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--paper-3);}
.page-hero .meta .v{display:block;color:var(--paper);font-family:var(--serif);font-style:italic;font-size:18px;margin-top:6px;letter-spacing:0;text-transform:none;}

/* ================= PROSE ================= */
.prose{font-family:var(--serif);font-weight:400;font-size:clamp(17px,1.2vw,20px);line-height:1.7;color:var(--paper-2);max-width:64ch;}
.prose p{margin:0 0 1.3em;}
.prose p:last-child{margin-bottom:0;}
.prose strong{color:var(--paper);font-weight:500;}
.prose em{color:var(--paper);font-style:italic;}
.prose h2{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.5vw,44px);line-height:1.1;letter-spacing:-.025em;margin:2em 0 .6em;color:var(--paper);}
.prose h2 em{font-style:italic;color:var(--brass);}
.prose h3{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.4vw,28px);line-height:1.2;margin:1.6em 0 .5em;color:var(--paper);}
.prose ul,.prose ol{margin:0 0 1.3em;padding-left:1.2em;}
.prose li{margin-bottom:.5em;}
.prose blockquote{border-left:2px solid var(--brass);padding:.3em 0 .3em 1.4em;margin:1.5em 0;font-style:italic;color:var(--paper);font-size:1.1em;}
.prose code{font-family:var(--mono);font-size:.9em;background:rgba(255,255,255,.04);padding:.15em .4em;border-radius:2px;color:var(--brass-2);}
.prose a{color:var(--brass);border-bottom:1px solid var(--rule-2);transition:border-color .2s var(--ease);}
.prose a:hover{border-color:var(--brass);}

/* ================= CARD/LIST ROW (reusable) ================= */
.row-list{border-top:1px solid var(--rule);}
.row-item{display:grid;grid-template-columns:60px minmax(0,1fr) minmax(0,1.6fr) 180px;gap:48px;padding:36px 0;border-bottom:1px solid var(--rule);align-items:baseline;position:relative;transition:background .4s var(--ease);}
.row-item::after{content:"";position:absolute;left:0;top:0;width:0;height:1px;background:var(--brass);transition:width .9s var(--ease);}
.row-item:hover::after{width:100%;}
.row-item:hover{background:linear-gradient(90deg,rgba(200,168,118,.03),transparent 80%);}
.row-item:hover .row-title em{color:var(--brass);}
.row-item .n{font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--paper-3);}
.row-title{font-family:var(--serif);font-weight:300;font-size:clamp(24px,3vw,38px);line-height:1.05;letter-spacing:-.02em;color:var(--paper);}
.row-title em{font-style:italic;color:var(--paper-2);transition:color .3s var(--ease);}
.row-desc{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--paper-2);max-width:58ch;}
.row-desc strong{color:var(--paper);font-weight:500;}
.row-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);text-align:right;line-height:1.5;}
.row-tag .sm{display:block;color:var(--paper-3);margin-top:4px;}
@media (max-width:900px){ .row-item{ grid-template-columns:32px 1fr; gap:16px; padding:28px 0;} .row-desc,.row-tag{ grid-column:2;} .row-tag{ text-align:left;} .row-title{ font-size:24px;} }

/* ================= CTA BAND ================= */
.cta-band{padding:clamp(80px,13vw,160px) 0;border-top:1px solid var(--rule);position:relative;overflow:hidden;text-align:center;}
.cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 70% at 50% 100%,rgba(200,168,118,.14),transparent 70%);pointer-events:none;}
.cta-band h2{font-family:var(--serif);font-weight:300;font-size:clamp(36px,6vw,84px);line-height:1;letter-spacing:-.035em;max-width:18ch;margin:0 auto 24px;}
.cta-band h2 em{font-style:italic;color:var(--brass);}
.cta-band p{max-width:520px;margin:0 auto 36px;font-size:17px;}
.cta-band .btn-row{justify-content:center;}

/* ================= FOOTER ================= */
footer.site{padding:clamp(64px,10vw,100px) var(--gutter) 40px;border-top:1px solid var(--rule);background:#070605;color:var(--paper-3);font-family:var(--mono);font-size:12px;}
.foot-grid{max-width:var(--measure);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,.8fr));gap:48px;padding-bottom:64px;}
@media (max-width:1040px){ .foot-grid{ grid-template-columns:1fr 1fr 1fr; gap:40px;}}
@media (max-width:720px){ .foot-grid{ grid-template-columns:1fr 1fr; gap:32px;}}
@media (max-width:420px){ .foot-grid{ grid-template-columns:1fr;}}
.foot-brand .lg{display:inline-flex;margin-bottom:20px;line-height:0;}
.foot-brand .lg img{display:block;width:220px;height:auto;}
.foot-brand p{color:var(--paper-2);font-family:var(--serif);font-size:14px;line-height:1.65;max-width:36ch;margin-bottom:24px;}
.foot-brand .loc{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--paper-3);}
.foot-brand .loc .city{color:var(--paper-2);display:block;margin-top:6px;}
.foot-col h5{font-family:var(--mono);font-size:10.5px;color:var(--paper-3);letter-spacing:.24em;text-transform:uppercase;margin:0 0 20px;font-weight:500;}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.foot-col a{color:var(--paper-2);font-family:var(--mono);font-size:12.5px;}
.foot-col a:hover{color:var(--paper);}
.foot-base{max-width:var(--measure);margin:0 auto;border-top:1px solid var(--rule);padding-top:28px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-family:var(--mono);font-size:10.5px;color:var(--paper-3);letter-spacing:.2em;text-transform:uppercase;}
.foot-word{text-align:center;font-family:var(--serif);font-weight:300;font-style:italic;font-size:clamp(60px,16vw,200px);line-height:.9;letter-spacing:-.04em;padding:64px 0 32px;background:linear-gradient(180deg,rgba(200,168,118,.22),rgba(200,168,118,0));-webkit-background-clip:text;background-clip:text;color:transparent;user-select:none;}

/* ================= STICKY MOBILE CTA ================= */
.sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:40;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));background:rgba(10,9,8,.95);backdrop-filter:blur(14px);border-top:1px solid var(--rule);display:none;gap:10px;align-items:center;justify-content:space-between;}
.sticky-cta .sc-info{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--paper-3);line-height:1.3;}
.sticky-cta .sc-info em{color:var(--alert);font-style:normal;}
.sticky-cta .btn{padding:14px 20px;font-size:12px;min-height:44px;}
@media (max-width:860px){ .sticky-cta{ display:flex;} body{ padding-bottom:80px;} }

/* ================= MARQUEE ================= */
.marquee{padding:48px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:rgba(0,0,0,.25);overflow:hidden;position:relative;}
.marquee .label{text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--paper-3);margin-bottom:32px;padding:0 var(--gutter);}
.marquee .label em{font-style:italic;color:var(--paper-2);font-family:var(--serif);letter-spacing:0;text-transform:none;font-size:13px;}
.marquee-track{display:flex;gap:60px;animation:scroll-x 50s linear infinite;width:max-content;padding:0 30px;}
@keyframes scroll-x{to{transform:translateX(-50%);}}
.logo-item{display:inline-flex;align-items:center;gap:12px;flex:none;font-family:var(--serif);font-weight:400;font-size:clamp(20px,2vw,26px);color:var(--paper-2);letter-spacing:-.01em;opacity:.7;white-space:nowrap;}
.logo-item .mk{width:16px;height:16px;border:1px solid var(--paper-3);display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:9px;border-radius:2px;}
.logo-item .sm{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper-3);}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:100px;z-index:2;pointer-events:none;}
.marquee::before{left:0;background:linear-gradient(90deg,var(--ink),transparent);}
.marquee::after{right:0;background:linear-gradient(-90deg,var(--ink),transparent);}

/* ================= REVEAL ================= */
[data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
[data-reveal].in{opacity:1;transform:translateY(0);}
[data-reveal-group]>*{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
[data-reveal-group].in>*{opacity:1;transform:translateY(0);}
[data-reveal-group].in>*:nth-child(1){transition-delay:.02s;}
[data-reveal-group].in>*:nth-child(2){transition-delay:.1s;}
[data-reveal-group].in>*:nth-child(3){transition-delay:.18s;}
[data-reveal-group].in>*:nth-child(4){transition-delay:.26s;}
[data-reveal-group].in>*:nth-child(5){transition-delay:.34s;}
[data-reveal-group].in>*:nth-child(6){transition-delay:.42s;}
[data-reveal-group].in>*:nth-child(7){transition-delay:.5s;}
[data-reveal-group].in>*:nth-child(8){transition-delay:.58s;}

/* ================= DETAILS / ACCORDION ================= */
details{transition:background .35s var(--ease);}
details > summary{position:relative;user-select:none;}
details > summary::-webkit-details-marker{display:none;}
details > summary span:last-child{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--rule-2);border-radius:50%;font-size:18px !important;line-height:1;transition:transform .35s var(--ease),border-color .35s var(--ease),background .35s var(--ease);}
details[open] > summary span:last-child{transform:rotate(45deg);border-color:var(--brass);background:rgba(212,181,133,.08);}
details:hover > summary span:last-child{border-color:var(--brass);}
details[open] > *:not(summary){animation:accordion-open .45s var(--ease);}
@keyframes accordion-open{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}

/* ================= HOVER + MICRO-INTERACTIONS ================= */
/* Framed card lift on hover (for case-study links, solution features) */
a.framed{transition:transform .45s var(--ease),border-color .45s var(--ease),background .45s var(--ease);}
a.framed:hover{transform:translateY(-3px);border-color:var(--rule-2);background:linear-gradient(180deg,rgba(24,21,19,.7),rgba(10,9,8,.35));}
a.framed::before,a.framed::after{transition:width .5s var(--ease),height .5s var(--ease),border-color .5s var(--ease);}
a.framed:hover::before,a.framed:hover::after{width:56px;height:56px;border-color:var(--brass-2);}

/* Feature tile hover glow */
a.feat{transition:background .4s var(--ease);position:relative;overflow:hidden;}
a.feat::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);}
a.feat:hover{background:rgba(212,181,133,.04);}
a.feat:hover::after{transform:scaleX(1);}
a.feat:hover h3 em{color:var(--brass-2);}

/* Prose link underline draw-in */
.prose a{position:relative;color:var(--brass);text-decoration:none;background-image:linear-gradient(var(--brass),var(--brass));background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;transition:background-size .45s var(--ease);border-bottom:none;}
.prose a:hover{background-size:100% 1px;}

/* Button: subtle press feedback */
.btn{transform:translateZ(0);}
.btn:active{transform:translateY(1px);transition-duration:.05s;}
.btn-primary{position:relative;overflow:hidden;}
.btn-primary::before{content:"";position:absolute;top:0;left:-80%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);transition:left .8s var(--ease);pointer-events:none;}
.btn-primary:hover::before{left:120%;}

/* Marquee logo items — subtle fade on hover */
.marquee-track{animation:scroll-x 60s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.logo-item{transition:opacity .3s var(--ease),color .3s var(--ease);}
.logo-item:hover{opacity:1;color:var(--paper);}

/* Trust-strip stat entrance + hover */
[data-counter]{transition:color .3s var(--ease);}

/* Row list — arrow draw-in */
.row-item{position:relative;}
.row-item::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:right;transition:transform .6s var(--ease);}
.row-item:hover::before{transform:scaleX(1);transform-origin:left;}

/* Nav scroll-state subtle elevation */
nav.site.scrolled{box-shadow:0 8px 32px -12px rgba(0,0,0,.6);}

/* Hero constellation canvas fade-in */
#hero-bg{opacity:0;animation:hero-fade-in 1.6s var(--ease) .2s forwards;}
@keyframes hero-fade-in{to{opacity:1;}}

/* Page-hero headline: slight char-reveal via fade */
.page-hero h1{animation:page-hero-rise 1.1s var(--ease) both;}
.page-hero .lede{animation:page-hero-rise 1.1s var(--ease) .15s both;}
.page-hero .meta{animation:page-hero-rise 1.1s var(--ease) .3s both;}
@keyframes page-hero-rise{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}

/* Crumb: subtle slide on page load */
.page-hero .crumb{animation:crumb-fade .9s var(--ease) both;}
@keyframes crumb-fade{from{opacity:0;transform:translateX(-8px);}to{opacity:1;transform:translateX(0);}}

/* Eyebrow: line draw-in */
.eyebrow::before{transition:width .5s var(--ease);}
[data-reveal].in .eyebrow::before,
[data-reveal-group].in .eyebrow::before{animation:eyebrow-draw .7s var(--ease) both;}
@keyframes eyebrow-draw{from{width:0;}to{width:24px;}}

/* Footer wordmark ambient shimmer */
.foot-word{background-size:200% 100%;animation:foot-shimmer 9s ease-in-out infinite;}
@keyframes foot-shimmer{0%,100%{background-position:0% 50%;}50%{background-position:100% 50%;}}

/* Ampersand mark subtle pulse on logo hover */
.logo:hover .logo-mark{transform:scale(1.05);}
.logo .logo-mark{transition:transform .5s var(--ease);}
.logo:hover .logo-wordmark em{color:var(--brass-2);}
.logo .logo-wordmark em{transition:color .3s var(--ease);}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}.marquee-track{animation:none;}}

/* Framed boxes */
.framed{border:1px solid var(--rule-2);background:linear-gradient(180deg,rgba(24,21,19,.55),rgba(10,9,8,.25));position:relative;padding:clamp(28px,4vw,56px);}
.framed::before{content:"";position:absolute;top:-1px;left:-1px;width:42px;height:42px;border-top:1px solid var(--brass);border-left:1px solid var(--brass);}
.framed::after{content:"";position:absolute;bottom:-1px;right:-1px;width:42px;height:42px;border-bottom:1px solid var(--brass);border-right:1px solid var(--brass);}

/* Feature grid */
.feat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);}
.feat-grid .feat{background:var(--ink);padding:clamp(24px,3vw,40px);}
.feat h3{font-family:var(--serif);font-weight:300;font-size:22px;line-height:1.2;letter-spacing:-.015em;margin-bottom:12px;}
.feat h3 em{font-style:italic;color:var(--brass);}
.feat p{font-size:15px;line-height:1.6;}
.feat .num{font-family:var(--serif);font-style:italic;font-weight:300;color:var(--brass);font-size:14px;margin-bottom:18px;display:block;}

/* ============================================================= */
/* ================ MOBILE-FIRST OVERHAUL ====================== */
/* ============================================================= */
/* Everything below targets the phone experience. All inline 2-col
   grids across the site are collapsed to 1 col here with attribute
   selectors, so pages don't need to be re-authored individually. */

@media (max-width:760px){
  :root{ --gutter:20px; }

  /* Collapse every inline 2-col grid to a single column.
     Matches the fractional patterns we use across pages. */
  [style*="grid-template-columns:minmax(0,.7fr)"],
  [style*="grid-template-columns:minmax(0,.8fr)"],
  [style*="grid-template-columns:minmax(0,.85fr)"],
  [style*="grid-template-columns:minmax(0,.9fr)"],
  [style*="grid-template-columns:minmax(0,1.2fr)"],
  [style*="grid-template-columns:minmax(0,1.3fr)"],
  [style*="grid-template-columns:minmax(0,1.4fr)"]{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  /* Also catch the form 2-col pairs and the principals grid. */
  [style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr !important;
    gap:16px !important;
  }
  /* Course teaser inside .framed */
  .framed[style*="grid-template-columns:minmax(0,1.2fr)"]{
    padding:32px 22px !important;
  }

  /* ---- HERO (home) ---- */
  .hero{
    min-height:auto !important;
    padding:calc(64px + 56px) 0 72px !important;
    align-items:flex-start !important;
  }
  .hero h1{
    font-size:clamp(38px,11vw,56px) !important;
    line-height:1 !important;
    letter-spacing:-.025em !important;
    max-width:none !important;
  }
  .hero p,
  .hero [style*="font-size:clamp(18px,1.7vw,26px)"]{
    font-size:16px !important;
    line-height:1.55 !important;
  }
  .hero aside.framed{
    padding:28px 22px !important;
  }
  .hero aside.framed h2{
    font-size:20px !important;
  }
  /* Kill the hero top meta-row wrap going tight */
  .hero .container > div:first-child{
    margin-bottom:32px !important;
    font-size:10px !important;
    letter-spacing:.2em !important;
  }

  /* ---- SECTIONS ---- */
  .section{ padding:64px 0 !important; }
  .section-head{ margin-bottom:36px !important; }
  .section-head h2{
    font-size:34px !important;
    letter-spacing:-.025em !important;
    line-height:1.02 !important;
    margin-top:16px !important;
    max-width:none !important;
  }

  /* ---- PAGE HERO (sub-pages) ---- */
  .page-hero{ padding:calc(64px + 48px) 0 56px !important; }
  .page-hero h1{
    font-size:clamp(40px,11vw,60px) !important;
    line-height:1 !important;
    letter-spacing:-.025em !important;
    max-width:none !important;
  }
  .page-hero .lede{
    font-size:17px !important;
    line-height:1.5 !important;
    margin-top:22px !important;
  }
  .page-hero .meta{
    grid-template-columns:1fr 1fr !important;
    gap:18px !important;
    margin-top:28px !important;
    padding-top:20px !important;
  }
  .page-hero .meta .v{ font-size:15px !important; }
  .page-hero .crumb{ margin-bottom:20px !important; font-size:10px !important; }

  /* ---- FRAMED CARDS ---- */
  .framed{ padding:28px 22px !important; }
  .framed::before, .framed::after{ width:22px !important; height:22px !important; }

  /* Inline framed cards that force big inline padding */
  article.framed[style*="padding:clamp(32px,4vw,56px)"],
  article.framed[style*="padding:clamp(40px,7vw,100px)"],
  a.framed[style*="padding:clamp(32px,4vw,56px)"]{
    padding:28px 22px !important;
  }
  /* Big italic numerals inside framed case cards */
  .framed [style*="font-size:clamp(44px,5vw,68px)"],
  .framed [style*="font-size:clamp(40px,5vw,64px)"]{
    font-size:44px !important;
  }
  .framed h3[style*="font-size:22px"]{ font-size:20px !important; }

  /* ---- FEATURE GRID (industries, process) ---- */
  .feat-grid{ grid-template-columns:1fr !important; }
  .feat{ padding:28px 22px !important; }

  /* Process strip ordered list grid */
  ol[style*="grid-template-columns:repeat(auto-fit,minmax(220px,1fr))"]{
    grid-template-columns:1fr !important;
  }
  ol[style*="grid-template-columns:repeat(auto-fit,minmax(220px,1fr))"] > li{
    padding:26px 22px !important;
  }

  /* Trust strip + stat grids */
  [style*="grid-template-columns:repeat(auto-fit,minmax(180px,1fr))"],
  [style*="grid-template-columns:repeat(auto-fit,minmax(260px,1fr))"],
  [style*="grid-template-columns:repeat(auto-fit,minmax(280px,1fr))"],
  [style*="grid-template-columns:repeat(auto-fit,minmax(320px,1fr))"]{
    grid-template-columns:1fr !important;
  }

  /* ---- ROW LIST (already responsive but tighten) ---- */
  .row-item{ padding:22px 0 !important; }
  .row-title{ font-size:22px !important; }
  .row-desc{ font-size:15px !important; }

  /* ---- CTA BAND ---- */
  .cta-band{ padding:64px 0 !important; }
  .cta-band h2{
    font-size:36px !important;
    line-height:1.02 !important;
    letter-spacing:-.025em !important;
  }
  .cta-band p{ font-size:16px !important; }

  /* ---- BUTTONS ---- */
  .btn, .btn-lg{ padding:16px 22px !important; font-size:13px !important; }

  /* ---- FOOTER ---- */
  footer.site{ padding:56px var(--gutter) 32px !important; }
  .foot-word{
    font-size:clamp(54px,19vw,96px) !important;
    padding:40px 0 20px !important;
  }
  .foot-base{
    flex-direction:column !important;
    gap:10px !important;
    padding-top:22px !important;
  }

  /* ---- MARQUEE ---- */
  .marquee{ padding:32px 0 !important; }
  .marquee .label{ margin-bottom:22px !important; }
  .marquee-track{ gap:36px !important; }
  .logo-item{ font-size:20px !important; }

  /* ---- SECTION HEAD ITALIC PULLQUOTES (philosophy, etc) ---- */
  [style*="font-size:clamp(22px,2.2vw,32px)"],
  [style*="font-size:clamp(22px,2vw,28px)"]{
    font-size:19px !important;
    line-height:1.3 !important;
  }
  /* Sub-heads & case-study mini-heads */
  [style*="font-size:clamp(32px,5vw,56px)"],
  [style*="font-size:clamp(32px,5vw,60px)"],
  [style*="font-size:clamp(36px,5.6vw,80px)"],
  [style*="font-size:clamp(36px,6vw,84px)"]{
    font-size:32px !important;
    line-height:1.05 !important;
    letter-spacing:-.02em !important;
  }
  /* Body copy clamps that were tuned for desktop */
  [style*="font-size:clamp(18px,1.6vw,24px)"],
  [style*="font-size:clamp(18px,1.7vw,26px)"]{
    font-size:16px !important;
    line-height:1.55 !important;
  }
  /* The big italic drop-cap numerals */
  [style*="font-size:clamp(40px,5vw,64px)"]{
    font-size:40px !important;
  }

  /* ---- NAV ---- */
  nav.site{ padding:12px var(--gutter) !important; }
  .logo{ font-size:16px !important; }
  .logo .mk{ width:22px !important; height:22px !important; }

  /* ---- STICKY CTA refinement ---- */
  .sticky-cta{ padding:10px 16px calc(10px + env(safe-area-inset-bottom)) !important; }
  .sticky-cta .sc-info{ font-size:9.5px !important; letter-spacing:.14em !important; }
  .sticky-cta .btn{ padding:12px 16px !important; font-size:11px !important; }

  /* Prose tightening */
  .prose{ font-size:16px !important; line-height:1.65 !important; }
  .prose h2{ font-size:28px !important; }
  .prose h3{ font-size:21px !important; }

  /* ---- DRAWER scaling ---- */
  .drawer a.main{ font-size:24px !important; padding:12px 0 !important; }
  .drawer a.main::after{ font-size:18px !important; }

  /* Noise overlay is overkill on small screens — soften it */
  body::before{ opacity:.22 !important; }

  /* Anything using huge image/aside box-shadow can be calmer */
  .btn-primary{ box-shadow:0 6px 20px -8px rgba(200,168,118,.35) !important; }
}

/* Very small phones — one more pass */
@media (max-width:400px){
  :root{ --gutter:16px; }
  .hero h1{ font-size:34px !important; }
  .page-hero h1{ font-size:36px !important; }
  .section-head h2{ font-size:30px !important; }
  .cta-band h2{ font-size:32px !important; }
  .page-hero .meta{ grid-template-columns:1fr !important; }
  .btn, .btn-lg{ padding:14px 18px !important; font-size:12px !important; }
  .logo .sm{ display:none; }
}
