:root { --paper:#ebe5da; --ink:#17140f; --white:#f3efe8; --copper:#b88757; color-scheme:dark; font-family:"Sora",sans-serif; font-synthesis:none; text-rendering:optimizeLegibility; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:#0b0e12; color:var(--white); margin:0; overflow-x:hidden; }
a { color:inherit; }
button { font:inherit; }

.landing-header { align-items:center; color:var(--white); display:grid; grid-template-columns:1fr auto 1fr; left:0; padding:24px 32px; position:fixed; right:0; top:0; transition:background 300ms ease,padding 300ms ease; z-index:50; }
.landing-header.is-condensed { backdrop-filter:blur(18px); background:rgba(7,9,12,.72); padding-bottom:17px; padding-top:17px; }
.landing-brand { align-items:center; display:flex; gap:13px; justify-self:start; text-decoration:none; }
.landing-brand svg { height:30px; width:30px; }
.landing-brand span { font-size:13px; font-weight:500; letter-spacing:.22em; }
.landing-nav { display:flex; gap:30px; }
.landing-nav a,.landing-contact { font-size:11px; letter-spacing:.13em; text-decoration:none; text-transform:uppercase; }
.landing-nav a { opacity:.62; transition:opacity 200ms ease; }
.landing-nav a:hover { opacity:1; }
.landing-contact { justify-self:end; }
.landing-contact span { color:var(--copper); margin-left:10px; }

.landing-hero { height:100svh; min-height:680px; overflow:hidden; position:relative; }
.hero-media,.hero-media img,.hero-veil { inset:0; position:absolute; }
.hero-media img { filter:brightness(.73) saturate(.76) contrast(1.06); height:100%; object-fit:cover; opacity:0; transform:scale(1.035); transition:opacity 900ms ease,transform 6s cubic-bezier(.16,1,.3,1); width:100%; }
.hero-media img.is-active { opacity:1; transform:scale(1.01); }
.hero-veil { background:linear-gradient(90deg,rgba(6,8,11,.92),rgba(6,8,11,.66) 37%,rgba(6,8,11,.06) 67%,rgba(6,8,11,.22)),linear-gradient(0deg,rgba(6,8,11,.58),transparent 38%,rgba(6,8,11,.18)); }
.hero-copy { left:5.4vw; max-width:min(61vw,1040px); position:absolute; top:50%; transform:translateY(-48%); z-index:3; }
.hero-eyebrow,.section-kicker { font-size:11px; letter-spacing:.18em; text-transform:uppercase; }
.hero-eyebrow { align-items:center; display:flex; gap:13px; margin-bottom:27px; }
.hero-eyebrow::before { background:currentColor; content:""; height:1px; opacity:.55; width:30px; }
.hero-copy h1 { font-family:"Instrument Serif",serif; font-size:clamp(62px,6.6vw,116px); font-weight:400; letter-spacing:-.045em; line-height:.85; margin:0 0 31px; }
.hero-copy h1 em { font-weight:400; }
.hero-copy p { font-size:clamp(15px,1.08vw,18px); font-weight:300; line-height:1.72; margin:0; max-width:600px; opacity:.82; }
.hero-actions { display:flex; gap:31px; margin-top:34px; }
.hero-actions a { border-bottom:1px solid rgba(255,255,255,.6); font-size:11px; letter-spacing:.12em; padding-bottom:8px; text-decoration:none; text-transform:uppercase; }
.hero-actions span { margin-left:14px; }
.hero-project { bottom:51px; max-width:330px; position:absolute; right:5.4vw; text-align:right; z-index:4; }
.hero-project span { font-size:10px; letter-spacing:.14em; opacity:.5; }
.hero-project b { display:block; font-family:"Instrument Serif",serif; font-size:36px; font-weight:400; margin:8px 0 6px; }
.hero-project p { font-size:12px; font-weight:300; line-height:1.55; margin:0; opacity:.58; }
.hero-projects { display:grid; gap:7px; position:absolute; right:32px; top:50%; transform:translateY(-50%); z-index:5; }
.hero-projects button { align-items:center; background:transparent; border:0; color:var(--white); cursor:pointer; display:grid; font-size:10px; gap:9px; grid-template-columns:25px 96px; letter-spacing:.11em; opacity:.32; padding:5px 0; text-align:left; text-transform:uppercase; transition:opacity 200ms ease; }
.hero-projects button::after { background:currentColor; content:""; height:1px; position:absolute; right:100%; transform:scaleX(0); transform-origin:right; transition:transform 350ms ease; width:34px; }
.hero-projects button.is-active { opacity:1; }
.hero-projects button.is-active::after { transform:scaleX(1); }
.hero-projects span { opacity:.65; }
.hero-scroll { align-items:center; bottom:34px; display:flex; font-size:9px; gap:12px; left:5.4vw; letter-spacing:.18em; opacity:.62; position:absolute; z-index:4; }
.hero-scroll i { background:rgba(255,255,255,.6); height:1px; overflow:hidden; position:relative; width:52px; }
.hero-scroll i::after { animation:heroTravel 2s ease-in-out infinite; background:#fff; content:""; height:1px; left:-35%; position:absolute; width:35%; }
@keyframes heroTravel { to { left:100%; } }

.reveal { opacity:0; transform:translateY(30px); transition:opacity 750ms ease,transform 900ms cubic-bezier(.16,1,.3,1); }
.reveal.is-visible { opacity:1; transform:none; }

.landing-statement { background:var(--paper); color:var(--ink); display:grid; gap:5vw; grid-template-columns:.42fr 1.25fr .55fr; min-height:94svh; padding:120px 5.4vw; }
.landing-statement h2 { align-self:center; font-family:"Instrument Serif",serif; font-size:clamp(55px,5.5vw,92px); font-weight:400; grid-column:2; letter-spacing:-.045em; line-height:.9; margin:0; }
.landing-statement h2 em { font-weight:400; }
.statement-copy { align-self:end; grid-column:3; }
.statement-copy p { font-size:14px; font-weight:300; line-height:1.75; margin:0 0 21px; }

.landing-capabilities { background:#111318; padding:120px 5.4vw 140px; }
.capabilities-head { display:grid; gap:8vw; grid-template-columns:.55fr 1.45fr; margin-bottom:95px; }
.capabilities-head h2,.sectors-heading h2,.process-title h2 { font-family:"Instrument Serif",serif; font-size:clamp(55px,5.8vw,95px); font-weight:400; letter-spacing:-.045em; line-height:.88; margin:0; }
.capabilities-head h2 em,.sectors-heading h2 em,.process-title h2 em { font-weight:400; }
.capability-rows { border-top:1px solid rgba(255,255,255,.28); }
.capability-row { align-items:center; border-bottom:1px solid rgba(255,255,255,.17); display:grid; gap:28px; grid-template-columns:55px minmax(300px,.9fr) minmax(340px,1fr) 45px; min-height:178px; padding:25px 0; text-decoration:none; }
.capability-number { font-family:"Instrument Serif",serif; font-size:30px; font-style:italic; opacity:.32; }
.capability-title span { font-size:10px; letter-spacing:.15em; opacity:.45; text-transform:uppercase; }
.capability-title h3 { font-family:"Instrument Serif",serif; font-size:clamp(35px,3.2vw,54px); font-weight:400; letter-spacing:-.03em; line-height:.95; margin:14px 0 0; }
.capability-row p { font-size:14px; font-weight:300; line-height:1.7; margin:0; opacity:.62; }
.capability-arrow { font-size:20px; opacity:.45; transition:transform 350ms ease; }
.capability-row:hover .capability-arrow { transform:translateX(9px); }

.landing-practice { background:#0b0e12; padding:130px 5.4vw 145px; }
.practice-intro { display:grid; gap:6vw; grid-template-columns:.52fr 1fr .56fr; }
.practice-intro h2 { font-family:"Instrument Serif",serif; font-size:clamp(55px,5.6vw,94px); font-weight:400; grid-column:2; letter-spacing:-.045em; line-height:.88; margin:0; }
.practice-intro h2 em { font-weight:400; }
.practice-intro p { align-self:end; font-size:14px; font-weight:300; line-height:1.72; margin:0; opacity:.66; }
.practice-stats { border-top:1px solid rgba(255,255,255,.27); display:grid; grid-template-columns:repeat(4,1fr); margin:105px 0 0; }
.practice-stats div { min-height:190px; padding:27px 28px 20px 0; }
.practice-stats div + div { border-left:1px solid rgba(255,255,255,.16); padding-left:28px; }
.practice-stats dt { font-family:"Instrument Serif",serif; font-size:64px; font-weight:400; letter-spacing:-.035em; }
.practice-stats sup { color:var(--copper); font-size:28px; }
.practice-stats dd { font-size:10px; letter-spacing:.13em; line-height:1.55; margin:38px 0 0; max-width:150px; opacity:.55; text-transform:uppercase; }

.landing-system { min-height:100svh; overflow:hidden; position:relative; }
.system-media,.system-media img,.system-media div { inset:0; position:absolute; }
.system-media img { filter:brightness(.68) saturate(.72) contrast(1.06); height:100%; object-fit:cover; width:100%; }
.system-media div { background:linear-gradient(90deg,rgba(6,8,11,.92),rgba(6,8,11,.58) 42%,rgba(6,8,11,.08)),linear-gradient(0deg,rgba(6,8,11,.4),transparent 42%); }
.system-copy { left:5.4vw; max-width:570px; position:absolute; top:50%; transform:translateY(-50%); z-index:3; }
.system-copy.is-visible { transform:translateY(-50%); }
.system-copy h2 { font-family:"Instrument Serif",serif; font-size:clamp(58px,5.8vw,98px); font-weight:400; letter-spacing:-.045em; line-height:.86; margin:25px 0 30px; }
.system-copy h2 em { font-weight:400; }
.system-copy p { font-size:16px; font-weight:300; line-height:1.72; margin:0 0 30px; opacity:.75; }
.system-copy a { border-bottom:1px solid rgba(255,255,255,.6); font-size:11px; letter-spacing:.13em; padding-bottom:8px; text-decoration:none; text-transform:uppercase; }
.system-copy a span { margin-left:16px; }
.system-layers { bottom:40px; display:flex; gap:26px; position:absolute; right:5.4vw; z-index:4; }
.system-layers span { align-items:center; display:flex; font-size:9px; gap:8px; letter-spacing:.12em; opacity:.65; text-transform:uppercase; }
.system-layers i { background:currentColor; height:1px; width:22px; }
.system-layers span:nth-child(2) { color:#e2b06e; }.system-layers span:nth-child(3) { color:#ff9f2f; }.system-layers span:nth-child(4) { color:#63dda0; }

.landing-sectors { background:var(--paper); color:var(--ink); padding:125px 5.4vw 140px; }
.sectors-heading { display:grid; gap:6vw; grid-template-columns:.55fr 1.05fr .5fr; margin-bottom:85px; }
.sectors-heading h2 { grid-column:2; }
.sectors-heading p { align-self:end; font-size:14px; font-weight:300; line-height:1.7; margin:0; opacity:.7; }
.sector-grid { display:grid; gap:14px; grid-template-columns:repeat(3,1fr); }
.sector-card { aspect-ratio:1.05; color:var(--white); overflow:hidden; position:relative; text-decoration:none; }
.sector-card--wide { grid-column:span 2; }
.sector-card img { filter:brightness(.68) saturate(.75); height:100%; object-fit:cover; transition:filter 450ms ease,transform 800ms cubic-bezier(.16,1,.3,1); width:100%; }
.sector-card:hover img { filter:brightness(.8) saturate(.88); transform:scale(1.025); }
.sector-card::after { background:linear-gradient(0deg,rgba(6,8,11,.84),transparent 62%); content:""; inset:0; position:absolute; }
.sector-card > div { bottom:25px; left:25px; position:absolute; right:25px; z-index:2; }
.sector-card span { font-size:10px; letter-spacing:.14em; opacity:.55; }
.sector-card h3 { font-family:"Instrument Serif",serif; font-size:39px; font-weight:400; margin:8px 0 7px; }
.sector-card p { font-size:12px; font-weight:300; margin:0; opacity:.65; }

.landing-process { background:#0b0e12; padding:130px 5.4vw 145px; }
.process-title { display:grid; gap:8vw; grid-template-columns:.55fr 1.45fr; margin-bottom:95px; }
.process-steps { border-top:1px solid rgba(255,255,255,.3); display:grid; grid-template-columns:repeat(3,1fr); list-style:none; margin:0; padding:0; }
.process-steps li { min-height:310px; padding:26px 35px 35px 0; }
.process-steps li + li { border-left:1px solid rgba(255,255,255,.17); padding-left:35px; }
.process-steps span { font-size:10px; letter-spacing:.14em; opacity:.45; }
.process-steps h3 { font-family:"Instrument Serif",serif; font-size:46px; font-weight:400; margin:72px 0 20px; }
.process-steps p { font-size:14px; font-weight:300; line-height:1.72; margin:0; opacity:.62; }

.landing-faq { background:#111318; display:grid; gap:8vw; grid-template-columns:.72fr 1.28fr; padding:125px 5.4vw 145px; }
.faq-heading h2 { font-family:"Instrument Serif",serif; font-size:clamp(54px,5vw,83px); font-weight:400; letter-spacing:-.045em; line-height:.88; margin:45px 0 0; }
.faq-heading h2 em { font-weight:400; }
.faq-list { border-top:1px solid rgba(255,255,255,.3); }
.faq-list details { border-bottom:1px solid rgba(255,255,255,.17); }
.faq-list summary { align-items:center; cursor:pointer; display:flex; font-family:"Instrument Serif",serif; font-size:clamp(26px,2.1vw,35px); justify-content:space-between; list-style:none; padding:28px 0; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary span { color:var(--copper); font-family:"Sora",sans-serif; font-size:18px; font-weight:300; transition:transform 250ms ease; }
.faq-list details[open] summary span { transform:rotate(45deg); }
.faq-list details p { font-size:14px; font-weight:300; line-height:1.72; margin:-5px 54px 30px 0; max-width:660px; opacity:.65; }

.landing-contact-section { background:var(--paper); color:var(--ink); min-height:92svh; padding:90px 5.4vw 48px; }
.landing-contact-section h2 { font-family:"Instrument Serif",serif; font-size:clamp(72px,10vw,165px); font-weight:400; letter-spacing:-.052em; line-height:.79; margin:18svh 0 14svh; }
.landing-contact-section h2 em { font-weight:400; }
.contact-bottom { align-items:flex-end; border-top:1px solid rgba(23,20,15,.34); display:flex; justify-content:space-between; padding-top:23px; }
.contact-bottom p { font-size:12px; letter-spacing:.09em; margin:0; text-transform:uppercase; }
.contact-bottom a { border-bottom:1px solid currentColor; font-size:11px; letter-spacing:.13em; padding-bottom:7px; text-decoration:none; text-transform:uppercase; }
.contact-bottom span { margin-left:16px; }
.landing-footer { align-items:center; background:#0b0e12; display:grid; grid-template-columns:1fr auto 1fr; padding:30px 5.4vw; }
.landing-footer p,.landing-footer > span { font-size:10px; letter-spacing:.13em; margin:0; opacity:.48; text-transform:uppercase; }
.landing-footer > span { justify-self:end; }

@media (max-width:850px) {
  .landing-header { grid-template-columns:1fr auto; padding:20px; }
  .landing-nav { display:none; }
  .landing-contact { font-size:10px; }
  .landing-hero { min-height:700px; }
  .hero-media img { object-position:61% center; }
  .hero-veil { background:linear-gradient(0deg,rgba(6,8,11,.95),rgba(6,8,11,.72) 48%,rgba(6,8,11,.1) 84%); }
  .hero-copy { bottom:136px; left:22px; max-width:calc(100% - 44px); top:auto; transform:none; }
  .hero-copy h1 { font-size:clamp(54px,14vw,76px); }
  .hero-copy p { font-size:15px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; margin-top:25px; }
  .hero-projects { bottom:27px; display:flex; gap:0; left:20px; overflow-x:auto; right:20px; top:auto; transform:none; }
  .hero-projects button { display:block; flex:1; font-size:0; min-width:48px; text-align:center; }
  .hero-projects button::after { display:block; margin:8px auto 0; position:static; transform:scaleX(.2); transform-origin:center; width:100%; }
  .hero-projects button.is-active::after { transform:scaleX(.75); }
  .hero-projects span { font-size:10px; }
  .hero-project { display:none; }
  .hero-scroll { display:none; }
  .landing-statement { display:block; min-height:auto; padding:90px 22px; }
  .landing-statement h2 { font-size:clamp(49px,13vw,72px); margin:60px 0; }
  .statement-copy p { font-size:15px; }
  .landing-capabilities { padding:90px 22px; }
  .capabilities-head,.process-title { display:block; margin-bottom:65px; }
  .capabilities-head h2,.process-title h2 { font-size:clamp(50px,13vw,75px); margin-top:44px; }
  .capability-row { gap:17px; grid-template-columns:32px 1fr 23px; padding:28px 0; }
  .capability-row p { display:none; }
  .capability-title h3 { font-size:34px; }
  .landing-practice { padding:90px 22px; }
  .practice-intro { display:block; }
  .practice-intro h2 { font-size:clamp(50px,13vw,74px); margin:45px 0 30px; }
  .practice-intro p { font-size:15px; }
  .practice-stats { grid-template-columns:repeat(2,1fr); margin-top:65px; }
  .practice-stats div { min-height:155px; padding:24px 15px 20px 0; }
  .practice-stats div + div { padding-left:15px; }
  .practice-stats div:nth-child(3) { border-left:0; border-top:1px solid rgba(255,255,255,.16); }
  .practice-stats div:nth-child(4) { border-top:1px solid rgba(255,255,255,.16); }
  .practice-stats dt { font-size:51px; }
  .practice-stats dd { margin-top:22px; }
  .landing-system { min-height:92svh; }
  .system-media img { object-position:62% center; }
  .system-media div { background:linear-gradient(0deg,rgba(6,8,11,.95),rgba(6,8,11,.72) 50%,rgba(6,8,11,.12) 82%); }
  .system-copy { bottom:100px; left:22px; max-width:calc(100% - 44px); top:auto; transform:none; }
  .system-copy.is-visible { transform:none; }
  .system-copy h2 { font-size:clamp(52px,14vw,76px); }
  .system-copy p { font-size:15px; }
  .system-layers { bottom:28px; gap:12px; left:22px; right:auto; }
  .system-layers span { font-size:0; }
  .system-layers i { width:46px; }
  .landing-sectors { padding:90px 22px; }
  .sectors-heading { display:block; }
  .sectors-heading h2 { font-size:clamp(50px,13vw,74px); margin:45px 0 30px; }
  .sectors-heading p { font-size:15px; }
  .sector-grid { grid-template-columns:1fr; }
  .sector-card,.sector-card--wide { aspect-ratio:1.14; grid-column:auto; }
  .landing-process { padding:90px 22px; }
  .process-steps { grid-template-columns:1fr; }
  .process-steps li { min-height:auto; padding:25px 0 35px; }
  .process-steps li + li { border-left:0; border-top:1px solid rgba(255,255,255,.17); padding-left:0; }
  .process-steps h3 { margin:34px 0 16px; }
  .landing-faq { display:block; padding:90px 22px; }
  .faq-heading h2 { font-size:clamp(49px,13vw,72px); margin-bottom:65px; }
  .faq-list summary { font-size:28px; gap:20px; padding:24px 0; }
  .faq-list details p { font-size:15px; margin-right:0; }
  .landing-contact-section { min-height:82svh; padding:70px 22px 35px; }
  .landing-contact-section h2 { font-size:clamp(66px,19vw,100px); margin:19svh 0 15svh; }
  .contact-bottom { align-items:flex-start; flex-direction:column; gap:30px; }
  .contact-bottom p { line-height:1.7; }
  .landing-footer { gap:28px; grid-template-columns:1fr auto; padding:26px 22px; }
  .landing-footer p { display:none; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; } .reveal { opacity:1; transform:none; } }
