:root{
  --bg:#f6f3ec; --bg2:#efeadf; --ink:#0f1a2a; --muted:#5a6270; --line:rgba(15,26,42,.13);
  --accent:#96671d; --gold:#c9a063; --gold-hi:#e2bd7c; --dark:#0f1a2a; --dark2:#0a1320;
  --card:#fbf9f4; --dot:15,26,42;
  --serif:"Instrument Serif", "Iowan Old Style", Georgia, serif;
  --sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pad:clamp(22px, 5.5vw, 88px); --max:1280px;
  --ease:cubic-bezier(.2,.7,.1,1); --spring:cubic-bezier(.34,1.56,.64,1);
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#0b1422; --bg2:#0f1a2b; --ink:#ece6da; --muted:#9aa3b2; --line:rgba(236,230,218,.12);
    --accent:#d6aa5f; --card:#101c2e; --dot:236,230,218; --dark:#060c16; --dark2:#04080f}
}
@font-face{font-family:"Instrument Serif";src:url(fonts/InstrumentSerif-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url(fonts/InstrumentSerif-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/Inter-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url(fonts/Inter-Medium.woff2) format("woff2");font-weight:500;font-display:swap}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:clip;transition:background .4s}
h1,h2,h3,p,ul,ol,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit}
em{font-style:italic;color:var(--accent)}
::selection{background:var(--gold);color:#0f1a2a}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:12px;background:var(--ink);color:var(--bg);padding:10px 16px;z-index:99;text-decoration:none}
.skip:focus{left:12px}

/* progress + cursor */
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:50;pointer-events:none}
.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--gold-hi));transform-origin:0 50%;transform:scaleX(var(--p,0))}
.cursor{display:none}
@media (hover:hover) and (pointer:fine){
  .js .cursor{display:block;position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;border:1px solid var(--accent);border-radius:50%;
    pointer-events:none;z-index:60;opacity:0;transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),background .3s,opacity .3s,border-color .3s;mix-blend-mode:normal}
  .js .cursor.on{opacity:.7}
  .js .cursor.big{width:64px;height:64px;margin:-32px 0 0 -32px;background:rgba(201,160,99,.14);border-color:transparent}
}

/* nav */
.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:calc(14px + env(safe-area-inset-top)) var(--pad) 14px;background:transparent;
  border-bottom:1px solid transparent;transition:border-color .3s,background .3s}
.nav.scrolled{border-bottom-color:var(--line);background:color-mix(in srgb,var(--bg) 78%,transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(16px);backdrop-filter:saturate(1.4) blur(16px)}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none}
.brand-mark{font:400 28px/1 var(--serif);letter-spacing:-.01em}
.brand-mark.small{font-size:22px}
.brand-sub{font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.nav-links{display:flex;gap:36px}
.nav-links a{font:500 14px/1 var(--sans);text-decoration:none;color:var(--muted);position:relative;transition:color .2s}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav-links a:hover{color:var(--ink)}
.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-cta{font:500 14px/1 var(--sans);text-decoration:none;padding:11px 18px;border:1px solid var(--ink);border-radius:999px;display:inline-block;transition:background .3s,color .3s}
.nav-cta:hover{background:var(--ink);color:var(--bg)}
@media (max-width:760px){.nav-links{display:none}.brand-sub{display:none}.nav-cta{padding:10px 16px}}

/* buttons */
.magnetic{display:inline-block;will-change:transform}
.magnetic>span{display:inline-block;transition:transform .2s ease-out}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:999px;
  font:500 15px/1 var(--sans);text-decoration:none;overflow:hidden;isolation:isolate;transition:color .35s,border-color .35s,box-shadow .35s}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .5s var(--ease)}
.btn:hover::before,.btn:focus-visible::before{transform:none}
.btn-arrow{display:inline-block;margin-left:6px;transition:transform .35s var(--ease)}
.btn:hover .btn-arrow{transform:translateX(4px)}
.btn-solid{background:var(--ink);color:var(--bg)}
.btn-solid::before{background:var(--accent)}
.btn-solid:hover{color:#fff;box-shadow:0 12px 34px -12px rgba(150,103,29,.6)}
.btn-ghost{border:1px solid var(--line);color:var(--ink);background:color-mix(in srgb,var(--bg) 60%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.btn-ghost::before{background:var(--ink)}
.btn-ghost:hover{color:var(--bg);border-color:var(--ink)}
.btn-gold{background:linear-gradient(120deg,var(--gold),var(--gold-hi),var(--gold));background-size:200% 100%;color:#0f1a2a;animation:sheen 5s linear infinite}
.btn-gold::before{background:#f6f3ec}
.btn-lg{min-height:60px;padding:0 34px;font-size:17px}
@keyframes sheen{to{background-position:-200% 0}}

/* hero */
.hero{position:relative;min-height:calc(100svh - 64px);display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,8vh,120px) var(--pad) 120px;max-width:none;overflow:hidden;margin-top:-64px;padding-top:calc(64px + clamp(40px,10vh,140px))}
.field{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero-glow{position:absolute;left:0;top:0;width:min(70vw,620px);aspect-ratio:1;margin:calc(min(70vw,620px) / -2) 0 0 calc(min(70vw,620px) / -2);border-radius:50%;
  background:radial-gradient(circle,rgba(201,160,99,.28),rgba(201,160,99,0) 62%);filter:blur(10px);z-index:0;pointer-events:none;transform:translate3d(50vw,40vh,0);will-change:transform}
.hero-inner{position:relative;z-index:1;max-width:var(--max);width:100%;margin:0 auto}
.eyebrow{font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-bottom:clamp(22px,4vh,40px);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--accent)}
.display{font:400 clamp(54px,11.5vw,168px)/.92 var(--serif);letter-spacing:-.025em}
.line{display:block;overflow:hidden;padding-bottom:.08em}
.reveal-line{display:block}
.js .reveal-line{transform:translateY(105%);transition:transform 1.2s var(--ease)}
.js .line:nth-child(2) .reveal-line{transition-delay:.12s}
.loaded .reveal-line{transform:none}
.hero-em{background:linear-gradient(100deg,var(--accent) 20%,var(--gold-hi) 45%,var(--accent) 70%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s ease-in-out infinite;padding-right:.06em}
@keyframes shimmer{0%,100%{background-position:100% 0}50%{background-position:0 0}}
.hero-foot{margin-top:clamp(28px,5vh,56px);display:grid;grid-template-columns:minmax(0,560px) auto;gap:32px;align-items:end;justify-content:space-between}
.lede{font-size:clamp(17px,1.35vw,19px);color:var(--muted);max-width:560px}
.lede strong{color:var(--ink);font-weight:500}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.scroll-cue{position:absolute;left:50%;bottom:26px;width:1px;height:54px;background:var(--line);overflow:hidden;z-index:1}
.scroll-cue span{position:absolute;left:0;top:-40%;width:1px;height:40%;background:var(--accent);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{to{top:110%}}
@media (max-width:860px){.hero-foot{grid-template-columns:1fr}}
@media (max-width:520px){.hero-ctas .btn{flex:1 1 100%}.scroll-cue{display:none}.hero{padding-bottom:64px}.display{font-size:clamp(54px,16vw,72px)}.eyebrow{letter-spacing:.12em;font-size:11px}.pin-on .step{min-height:300px}}

/* marquee */
.marquee{display:flex;overflow:hidden;border-block:1px solid var(--line);padding:22px 0;user-select:none;
  -webkit-mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee-track{display:flex;flex-shrink:0;min-width:100%;justify-content:space-around;gap:0;animation:marquee 26s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee li{font:400 clamp(26px,3.4vw,44px)/1 var(--serif);white-space:nowrap;padding:0 clamp(20px,3vw,44px);display:flex;align-items:center;gap:clamp(20px,3vw,44px)}
.marquee li::after{content:"\2726";font-size:.45em;color:var(--accent)}
.marquee li:nth-child(even){font-style:italic;color:var(--accent)}
@keyframes marquee{to{transform:translateX(-100%)}}

/* sections */
section{padding:clamp(80px,13vw,180px) var(--pad);max-width:calc(var(--max) + 2 * var(--pad));margin:0 auto}
.label{font:500 12px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:12px}
.label::before{content:"";width:28px;height:1px;background:var(--accent)}
.section-head{display:grid;gap:22px;margin-bottom:clamp(44px,7vw,90px)}
.section-title{font:400 clamp(38px,5.6vw,80px)/1.02 var(--serif);letter-spacing:-.02em;max-width:16ch}
.section-note{color:var(--muted);max-width:520px}

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

/* ===== bento ===== */
.bento-wrap{padding-top:clamp(56px,8vw,120px);padding-bottom:clamp(64px,9vw,140px)}
.bento{display:grid;gap:clamp(10px,1.1vw,16px);grid-template-columns:repeat(6,minmax(0,1fr));
  grid-template-areas:
   "intro intro intro intro s1 s1"
   "c1 c1 c2 c2 s1 s1"
   "c3 c3 c3 c4 c4 c4"
   "svc svc svc svc s2 s2"
   "svc svc svc svc tech tech"
   "appr appr appr appr appr appr"
   "fdr fdr fdr fdr cta cta"}
.t-intro{grid-area:intro}.t-c1{grid-area:c1}.t-c2{grid-area:c2}.t-c3{grid-area:c3}.t-c4{grid-area:c4}
.t-s1{grid-area:s1}.t-s2{grid-area:s2}.t-svc{grid-area:svc}.t-tech{grid-area:tech}.t-appr{grid-area:appr}.t-fdr{grid-area:fdr}.t-cta{grid-area:cta}

.tile{position:relative;padding:clamp(22px,2.6vw,38px);border:1px solid var(--line);border-radius:clamp(22px,2.2vw,30px);background:var(--card);
  overflow:hidden;isolation:isolate;outline:none;scroll-margin-top:90px;min-width:0;
  transition:border-color .45s,box-shadow .55s var(--ease),transform .6s var(--ease),opacity 1s var(--ease),background-color .4s}
.tile::before{content:"";position:absolute;inset:0;z-index:-1;opacity:0;transition:opacity .5s;pointer-events:none;
  background:radial-gradient(520px circle at var(--mx,50%) var(--my,30%),rgba(201,160,99,.20),transparent 60%)}
.tile::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(260px circle at var(--mx,50%) var(--my,30%),var(--gold-hi),transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.tile:hover::before,.tile:focus-visible::before,.tile.active::before,.tile:focus-within::before{opacity:1}
.tile:hover::after,.tile:focus-visible::after,.tile.active::after{opacity:1}
.tile:hover,.tile:focus-visible,.tile.active{border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 34px 70px -38px rgba(15,26,42,.45),0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}
@media (hover:hover) and (pointer:fine){.js .tile.reveal.in:hover{transform:translateY(-6px)}}
.js .tile.reveal{transform:translateY(34px) scale(.975)}
.js .tile.reveal.in{transform:none}

.tile .label{margin-bottom:clamp(18px,2vw,26px)}
.tile-title{font:400 clamp(32px,3.3vw,50px)/1.02 var(--serif);letter-spacing:-.02em}
.note{color:var(--muted);font-size:clamp(15px,1.1vw,16px);margin-top:14px;max-width:46ch}

/* intro tile (dark) */
.tile-dark{background:var(--dark);color:#f6f3ec;border-color:transparent}
.tile-dark .label{color:rgba(246,243,236,.6)}
.tile-dark em{color:var(--gold-hi)}
.t-intro{display:flex;flex-direction:column;justify-content:space-between;min-height:clamp(260px,24vw,340px)}
.intro-title{font:400 clamp(36px,4.4vw,68px)/1 var(--serif);letter-spacing:-.025em;max-width:15ch;position:relative;z-index:1}
.intro-dots{position:absolute;inset:0;z-index:-1;opacity:.55;pointer-events:none;
  background-image:radial-gradient(rgba(246,243,236,.13) 1px,transparent 1.2px);background-size:22px 22px;
  -webkit-mask:radial-gradient(ellipse at 85% 20%,#000,transparent 70%);mask:radial-gradient(ellipse at 85% 20%,#000,transparent 70%)}
.t-intro::before{background:radial-gradient(520px circle at var(--mx,80%) var(--my,20%),rgba(201,160,99,.26),transparent 60%)}
.t-intro.in::before{opacity:.7}

/* challenge tiles */
.t-chal{display:flex;flex-direction:column;justify-content:flex-end;min-height:clamp(220px,20vw,280px);padding-top:clamp(80px,8vw,110px)}
.tile-n{position:absolute;top:clamp(16px,2vw,26px);left:clamp(22px,2.6vw,38px);font:400 clamp(48px,5vw,76px)/1 var(--serif);color:transparent;
  -webkit-text-stroke:1px color-mix(in srgb,var(--ink) 30%,transparent);transition:color .5s,-webkit-text-stroke-color .5s,text-shadow .5s,transform .6s var(--spring)}
.t-chal h3{font:400 clamp(24px,2.1vw,32px)/1.08 var(--serif);letter-spacing:0;font-kerning:normal;margin-bottom:10px;max-width:18ch}
.t-chal p{color:var(--muted);font-size:clamp(15px,1.05vw,16px);max-width:40ch}
.t-chal:hover .tile-n,.t-chal:focus-visible .tile-n,.t-chal.active .tile-n{color:var(--gold);-webkit-text-stroke-color:transparent;text-shadow:0 0 28px rgba(226,189,124,.55);transform:scale(1.06)}

/* stats */
.t-stat{display:flex;flex-direction:column}
.t-s1{justify-content:flex-start}
.stat-num{font:400 clamp(64px,7.4vw,118px)/.9 var(--serif);letter-spacing:-.035em;display:flex;align-items:baseline;gap:.08em;margin:auto 0 14px;font-variant-numeric:tabular-nums}
.t-s2 .stat-num{font-size:clamp(56px,5.6vw,88px);margin-top:0}
.stat-arrow{color:var(--accent);font-size:.55em;transform:translateY(-.15em);display:inline-block}
.plus{color:var(--accent)}
.t-stat h3{font:500 13px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:12px}
.t-stat p{color:var(--muted);font-size:15px}
.t-stat:hover .stat-num,.t-stat.active .stat-num{text-shadow:0 0 40px rgba(226,189,124,.35)}

.mgr{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:clamp(6px,.8vw,10px);max-width:300px;margin-bottom:22px}
.mgr i{aspect-ratio:1;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);transition:background .5s var(--ease),transform .5s var(--spring),box-shadow .5s;transition-delay:calc((var(--i) - 6) * 70ms + 400ms)}
.mgr i:nth-child(-n+6){background:var(--ink);border-color:var(--ink);transition-delay:0s}
.t-s1.in .mgr i:nth-child(n+7){background:var(--gold);border-color:var(--gold);transform:scale(1.08);box-shadow:0 0 12px rgba(226,189,124,.45)}
.t-s1:hover .mgr i:nth-child(n+7),.t-s1.active .mgr i:nth-child(n+7){transform:scale(1.18)}

/* services */
.t-svc{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.3fr);gap:clamp(24px,3vw,48px);align-items:start}
.services{border-top:1px solid var(--line)}
.services details{border-bottom:1px solid var(--line)}
.services summary{list-style:none;display:grid;grid-template-columns:34px 1fr 22px;align-items:center;gap:10px;padding:15px 2px;cursor:pointer;border-radius:8px}
.services summary::-webkit-details-marker{display:none}
.services .n{font:500 12px/1 var(--sans);color:var(--accent);letter-spacing:.08em}
.services h3{font:400 clamp(19px,1.5vw,22px)/1.2 var(--serif);transition:color .3s,transform .4s var(--ease)}
.services summary:hover h3{color:var(--accent);transform:translateX(4px)}
.plus-ic{position:relative;width:14px;height:14px;justify-self:end}
.plus-ic::before,.plus-ic::after{content:"";position:absolute;left:0;top:50%;width:14px;height:1.5px;background:currentColor;transition:transform .4s var(--ease)}
.plus-ic::after{transform:rotate(90deg)}
details[open] .plus-ic::after{transform:rotate(0)}
details[open] .plus-ic{color:var(--accent)}
.services details p{color:var(--muted);font-size:15px;padding:0 24px 18px 46px;max-width:52ch}
.js details[open] p{animation:drop .5s var(--ease)}
@keyframes drop{from{opacity:0;transform:translateY(-6px)}}

/* tech */
.t-tech{display:flex;flex-direction:column;justify-content:flex-end;min-height:220px}
.tech-grid{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.6;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:28px 28px;
  -webkit-mask:linear-gradient(180deg,#000,transparent 70%);mask:linear-gradient(180deg,#000,transparent 70%)}
.t-tech .note{font-size:15px}

/* approach */
.t-appr{background:var(--bg2);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:clamp(24px,4vw,64px);align-items:end}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,22px);position:relative;padding-top:34px}
.steps::before{content:"";position:absolute;left:6px;right:6px;top:6px;height:1px;background:var(--line)}
.steps::after{content:"";position:absolute;left:6px;right:6px;top:6px;height:1px;background:linear-gradient(90deg,var(--accent),var(--gold-hi));transform:scaleX(0);transform-origin:left;transition:transform 1.8s var(--ease) .3s}
.t-appr.in .steps::after{transform:scaleX(1)}
.step{position:relative;padding:18px 16px 16px;border-radius:18px;border:1px solid transparent;transition:background .4s,border-color .4s,transform .5s var(--ease);cursor:default}
.step::before{content:"";position:absolute;left:0;top:-34px;width:13px;height:13px;border-radius:50%;background:var(--bg2);border:1px solid var(--accent);transition:background .4s,box-shadow .4s}
.step-n{font:italic 400 18px/1 var(--serif);color:var(--accent);display:block;margin-bottom:12px}
.step h3{font:400 clamp(26px,2.4vw,36px)/1 var(--serif);margin-bottom:10px}
.step p{color:var(--muted);font-size:15px}
.step.lit{background:var(--card);border-color:color-mix(in srgb,var(--accent) 35%,transparent);transform:translateY(-4px)}
.step.lit::before{background:var(--gold);box-shadow:0 0 0 6px rgba(201,160,99,.2)}

/* founder */
.t-fdr{display:grid;grid-template-columns:minmax(0,.55fr) minmax(0,1.6fr);gap:clamp(24px,3.4vw,56px)}
.monogram{position:relative;width:112px;height:112px;border-radius:50%;margin:8px 0 18px;display:grid;place-items:center;font:400 44px/1 var(--serif)}
.monogram::before{content:"";position:absolute;inset:0;border-radius:50%;padding:1px;
  background:conic-gradient(from var(--a,0deg),var(--accent),transparent 30%,transparent 60%,var(--gold-hi),var(--accent));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spin 8s linear infinite}
@property --a{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes spin{to{--a:360deg}}
.founder-name{font:400 28px/1.1 var(--serif)}
blockquote p{font:400 clamp(28px,2.8vw,42px)/1.12 var(--serif);letter-spacing:-.015em}
.facts{margin-top:clamp(22px,3vw,36px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;border-top:1px solid var(--line)}
.facts li{padding:13px 0 13px 22px;border-bottom:1px solid var(--line);position:relative;color:var(--muted);font-size:15px;line-height:1.5}
.facts li::before{content:"";position:absolute;left:2px;top:21px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.t-fdr.in .facts li::before{animation:ping 1.6s var(--ease) .5s 1}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(201,160,99,.6)}100%{box-shadow:0 0 0 10px rgba(201,160,99,0)}}

/* cta */
.t-cta{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:260px;color:#0f1a2a;border-color:transparent;
  background:linear-gradient(140deg,var(--gold-hi),var(--gold) 55%,#b8893f)}
.cta-title{font:400 clamp(48px,4.8vw,76px)/.95 var(--serif);letter-spacing:-.03em;position:relative;z-index:1}
.cta-ring{position:absolute;right:-70px;top:-70px;width:240px;height:240px;border-radius:50%;border:1px solid rgba(15,26,42,.22);z-index:-1;pointer-events:none;transition:transform 1s var(--ease)}
.cta-ring::after{content:"";position:absolute;inset:34px;border-radius:50%;border:1px solid rgba(15,26,42,.16)}
.t-cta:hover .cta-ring,.t-cta.active .cta-ring{transform:scale(1.15) rotate(20deg)}
.t-cta::before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,30%),rgba(255,255,255,.35),transparent 60%)}
.t-cta::after{background:radial-gradient(260px circle at var(--mx,50%) var(--my,30%),#fff,transparent 70%)}
.cta-actions{display:grid;gap:14px;justify-items:start;position:relative;z-index:1}
.t-cta .btn-solid{background:#0f1a2a;color:#f6f3ec}
.t-cta .btn-solid::before{background:#f6f3ec}
.t-cta .btn-solid:hover{color:#0f1a2a}
.cta-email{font:500 14px/1.3 var(--sans);text-decoration:none;color:#0f1a2a;border-bottom:1px solid rgba(15,26,42,.35);word-break:break-all}
.cta-email:hover{border-bottom-color:#0f1a2a}

/* contact extra button */
.contact-ctas{display:flex;flex-wrap:wrap;gap:12px}
.btn-line{border:1px solid rgba(246,243,236,.35);color:#f6f3ec}
.btn-line::before{background:#f6f3ec}
.btn-line:hover{color:#0f1a2a;border-color:#f6f3ec}

/* scroll-scrubbed words */
.js .scrub .w{opacity:.16;transition:opacity .25s linear}
.js .scrub .w.on{opacity:1}

/* bento: tablet */
@media (max-width:1023px){
  .bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:
   "intro intro intro intro" "c1 c1 c2 c2" "c3 c3 c4 c4" "s1 s1 s2 s2" "svc svc svc svc" "tech tech cta cta" "appr appr appr appr" "fdr fdr fdr fdr"}
  .t-s2 .stat-num{font-size:clamp(64px,7.4vw,118px);margin-top:auto}
  .t-appr{grid-template-columns:1fr}
}
/* bento: phone */
@media (max-width:700px){
  .bento-wrap{padding-left:14px;padding-right:14px}
  .bento{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:
   "intro intro" "c1 c2" "c3 c4" "s1 s1" "s2 s2" "svc svc" "appr appr" "fdr fdr" "tech tech" "cta cta"}
  .tile{padding:20px;border-radius:22px}
  .t-intro{min-height:0;gap:40px;padding:24px 22px 26px}
  .intro-title{font-size:clamp(34px,10vw,44px)}
  .t-chal{min-height:0;padding:66px 16px 18px;justify-content:flex-start}
  .tile-n{left:16px;top:14px;font-size:44px}
  .t-chal h3{font-size:20px;line-height:1.12}
  .t-chal p{font-size:14px;line-height:1.5}
  .stat-num,.t-s2 .stat-num{font-size:clamp(64px,19vw,84px)}
  .t-svc,.t-fdr{grid-template-columns:1fr}
  .services summary{grid-template-columns:28px 1fr 18px;padding:14px 0}
  .services details p{padding:0 8px 16px 38px}
  .tile-title{font-size:clamp(32px,9vw,40px)}
  .steps{grid-template-columns:1fr 1fr;padding-top:0;gap:10px}
  .steps::before,.steps::after{display:none}
  .step{border:1px solid var(--line);background:color-mix(in srgb,var(--card) 50%,transparent);padding:16px 14px}
  .step::before{left:auto;right:14px;top:18px;width:9px;height:9px}
  .step h3{font-size:26px}
  .step p{font-size:14px}
  .t-fdr{gap:18px}
  .founder-id{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 16px}
  .founder-id .label{grid-column:1/-1}
  .monogram{width:72px;height:72px;font-size:30px;margin:0}
  .founder-name{font-size:24px}
  .facts{grid-template-columns:1fr}
  .t-cta{min-height:0}
  .cta-actions .btn{width:100%}
  .contact-ctas .btn{flex:1 1 100%}
}
@media (prefers-color-scheme:dark){
  .tile-dark{background:#060c16;border-color:rgba(201,160,99,.18)}
  .t-cta{color:#0f1a2a}
  .tile:hover,.tile:focus-visible,.tile.active{box-shadow:0 34px 70px -38px rgba(0,0,0,.8),0 0 40px -18px rgba(201,160,99,.35)}
}

/* contact */
.contact{position:relative;max-width:none;background:var(--dark);color:#f6f3ec;overflow:hidden;isolation:isolate}
.contact-glow{position:absolute;inset:0;z-index:-1;background:radial-gradient(600px circle at var(--cx,70%) var(--cy,30%),rgba(201,160,99,.22),transparent 60%);transition:background .1s}
.contact::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(246,243,236,.10) 1px,transparent 1px);background-size:26px 26px;
  -webkit-mask:radial-gradient(ellipse at 50% 40%,#000,transparent 75%);mask:radial-gradient(ellipse at 50% 40%,#000,transparent 75%)}
.contact-inner{max-width:var(--max);margin:0 auto;display:grid;gap:34px}
.contact em{color:var(--gold-hi)}
.contact-title{font:400 clamp(46px,7.4vw,120px)/.98 var(--serif);letter-spacing:-.025em;max-width:14ch}
.contact .lede{color:rgba(246,243,236,.72);max-width:600px}
.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;padding-top:30px;border-top:1px solid rgba(246,243,236,.14)}
.email{font:400 clamp(24px,3vw,36px)/1.2 var(--serif);text-decoration:none;background:linear-gradient(var(--gold-hi),var(--gold-hi)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease);word-break:break-all}
.email:hover{background-size:100% 1px}
.copy{font:500 13px/1 var(--sans);color:#f6f3ec;background:transparent;border:1px solid rgba(246,243,236,.3);border-radius:999px;padding:12px 18px;cursor:pointer;transition:background .3s,color .3s}
.copy:hover{background:#f6f3ec;color:#0f1a2a}
.copy-status{min-height:1.4em;color:var(--gold-hi);font-size:14px}

/* footer */
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 28px;padding:30px var(--pad) calc(30px + env(safe-area-inset-bottom));font-size:14px;color:var(--muted);border-top:1px solid var(--line)}
.foot a{text-decoration:none}
.foot a:hover{color:var(--ink)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .js .reveal,.js .reveal-line,.js .tile.reveal{opacity:1;transform:none}
  .js .scrub .w{opacity:1}
  .marquee-track{animation:none}
  .marquee-track[aria-hidden]{display:none}
  .marquee{flex-wrap:wrap}
}

/* logo */
.brand{align-items:center}
.logo{display:block;height:34px;width:auto}
.logo-lt{display:none}
.foot-logo .logo{height:26px}
@media (prefers-color-scheme:dark){.logo-dk{display:none}.logo-lt{display:block}}
@media (max-width:760px){.logo{height:30px}.foot-logo .logo{height:22px}}

.monogram.headshot,.monogram.headshot{width:128px;height:128px;margin:8px 0 18px}
.monogram.headshot img{width:calc(100% - 6px);height:calc(100% - 6px);border-radius:50%;object-fit:cover;display:block}

.founder-id{display:flex;flex-direction:column;align-items:center;text-align:center}
.founder-id .monogram.headshot{margin:8px auto 18px}
.founder-id .label{align-self:center}
