@font-face { font-family:"Manrope"; font-style:normal; font-weight:200 800; font-display:swap; src:url("fonts/manrope-latin.woff2") format("woff2"); }
@font-face { font-family:"Cormorant Garamond"; font-style:normal; font-weight:500 700; font-display:swap; src:url("fonts/cormorant-garamond-latin.woff2") format("woff2"); }
@font-face { font-family:"Cormorant Garamond"; font-style:italic; font-weight:500 700; font-display:swap; src:url("fonts/cormorant-garamond-italic-latin.woff2") format("woff2"); }

:root { --navy:#071b28; --ink:#14232b; --paper:#fbfaf7; --gold:#c8a66b; --gold-light:#e8d5a8; --muted:#66737a; --line:rgba(20,35,43,.16); --font-sans:"Manrope"; --font-serif:"Cormorant Garamond"; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-sans),sans-serif; font-size:16px; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
section[id] { scroll-margin-top:82px; }
.motion-ready .reveal { opacity:0; transform:translateY(34px); transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1); transition-delay:var(--reveal-delay,0ms); }
.motion-ready .reveal.reveal-left { transform:translateX(-34px); }
.motion-ready .reveal.reveal-scale { transform:translateY(20px) scale(.97); }
.motion-ready .reveal.is-visible { opacity:1; transform:none; }

.site-header { align-items:center; background:rgba(7,27,40,.94); backdrop-filter:blur(18px); color:white; display:grid; grid-template-columns:1fr auto 1fr; height:82px; left:0; padding:0 clamp(24px,5vw,84px); position:fixed; right:0; top:0; z-index:50; }
.brand { align-items:center; display:inline-flex; width:fit-content; }
.brand-logo { display:block; height:68px; object-fit:contain; width:auto; }
.site-header nav { display:flex; gap:34px; }
.site-header nav a { color:rgba(255,255,255,.73); font-size:12px; letter-spacing:.08em; transition:color .2s; }
.site-header nav a:hover { color:white; }
.mobile-contact-link { display:none; }
.header-actions { align-items:center; display:flex; gap:22px; justify-self:end; }
.header-cta { align-items:center; color:var(--gold-light); display:flex; font-size:12px; gap:10px; letter-spacing:.07em; }
.language-switcher { align-items:center; border:1px solid rgba(232,213,168,.35); display:flex; gap:2px; padding:4px; }
.language-switcher span { color:rgba(255,255,255,.28); font-size:10px; }
.language-switcher button { appearance:none; background:transparent; border:0; color:rgba(255,255,255,.5); cursor:pointer; font-family:var(--font-sans),sans-serif; font-size:10px; font-weight:700; letter-spacing:.08em; min-height:26px; min-width:28px; padding:0; transition:background .2s,color .2s; }
.language-switcher button:hover { color:white; }
.language-switcher button[aria-pressed="true"] { background:var(--gold); color:var(--navy); }
.menu-toggle { align-content:center; appearance:none; background:transparent; border:1px solid rgba(232,213,168,.35); cursor:pointer; display:none; gap:4px; height:38px; justify-items:center; padding:0; width:38px; }
.menu-toggle span { background:var(--gold-light); display:block; height:1px; transform-origin:center; transition:transform .25s ease,opacity .2s ease; width:17px; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-5px) rotate(-45deg); }
svg { fill:none; height:18px; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.6; width:18px; }

.hero { background:var(--navy); color:white; min-height:780px; overflow:hidden; padding:186px clamp(24px,8vw,132px) 76px; position:relative; }
.hero::before { background:linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px); background-size:19vw 100%; content:""; inset:0; opacity:.25; pointer-events:none; position:absolute; }
.hero-orbit { border:1px solid rgba(200,166,107,.2); border-radius:50%; pointer-events:none; position:absolute; }
.hero-orbit-one { height:580px; right:-120px; top:60px; width:580px; }
.hero-orbit-two { height:360px; right:-10px; top:170px; width:360px; }
.hero-orbit-two::after { background:var(--gold); border-radius:50%; content:""; height:8px; left:19px; position:absolute; top:94px; width:8px; }
.hero-copy { max-width:920px; position:relative; z-index:2; }
.eyebrow { color:#7a6b52; font-size:11px; font-weight:700; letter-spacing:.2em; margin:0 0 24px; text-transform:uppercase; }
.eyebrow.light { color:var(--gold-light); }
h1,h2,blockquote { font-family:var(--font-serif),serif; font-weight:500; }
.hero h1 { font-size:clamp(52px,6.2vw,90px); letter-spacing:-.045em; line-height:.94; margin:0; max-width:1040px; }
em { color:var(--gold-light); font-weight:500; }
.hero-intro { color:rgba(255,255,255,.7); font-size:clamp(16px,1.35vw,20px); line-height:1.75; margin:40px 0 38px; max-width:660px; }
.hero-actions { align-items:center; display:flex; gap:34px; }
.button { align-items:center; display:inline-flex; font-size:12px; font-weight:700; gap:24px; justify-content:center; letter-spacing:.06em; min-height:54px; padding:0 25px; text-transform:uppercase; transition:all .25s ease; }
.button-gold { background:var(--gold); color:var(--navy); }
.button-gold:hover { background:var(--gold-light); transform:translateY(-2px); }
.text-link { border-bottom:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.8); font-size:12px; letter-spacing:.05em; padding:13px 0; }
.text-link span { color:var(--gold); margin-left:10px; }
.hero-proof { border-top:1px solid rgba(255,255,255,.15); bottom:0; display:grid; grid-template-columns:repeat(3,1fr); left:clamp(24px,8vw,132px); max-width:1000px; position:absolute; right:clamp(24px,8vw,132px); z-index:2; }
.hero-proof div { align-items:center; border-right:1px solid rgba(255,255,255,.12); display:flex; gap:18px; min-height:104px; padding-right:32px; }
.hero-proof div+div { padding-left:32px; }
.hero-proof strong { color:var(--gold-light); font-family:var(--font-serif),serif; font-size:38px; font-weight:500; }
.hero-proof span { color:rgba(255,255,255,.58); font-size:11px; line-height:1.5; max-width:180px; }

.section { padding:120px clamp(24px,8vw,132px); }
.section-label { align-items:flex-start; display:flex; gap:16px; padding-top:8px; }
.section-label span { color:var(--gold); font-family:var(--font-serif),serif; font-size:16px; }
.section-label p { font-size:10px; font-weight:700; letter-spacing:.14em; margin:2px 0; text-transform:uppercase; }
.manifesto { display:grid; gap:8vw; grid-template-columns:220px 1fr; }
.manifesto-content { max-width:990px; }
.manifesto h2,.method h2,.founder h2 { font-size:clamp(42px,5vw,68px); letter-spacing:-.035em; line-height:1.03; margin:0; }
.manifesto h2 em,.method h2 em { color:#917344; }
.two-column-copy { border-top:1px solid var(--line); display:grid; gap:8%; grid-template-columns:1fr 1fr; margin-top:52px; padding-top:34px; }
.two-column-copy p,.founder-copy>p { color:var(--muted); line-height:1.85; margin:0; }
.gold-rule { align-items:center; background:#eee6d8; border-left:3px solid var(--gold); display:flex; gap:32px; justify-content:space-between; margin-top:44px; padding:25px 30px; }
.gold-rule span { color:#7a6b52; font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.gold-rule strong { font-family:var(--font-serif),serif; font-size:25px; font-weight:600; }

.services { background:var(--navy); color:white; }
.section-intro { display:grid; gap:8vw; grid-template-columns:220px 1fr; }
.section-intro h2 { font-family:var(--font-serif),serif; font-size:clamp(44px,5vw,68px); font-weight:500; letter-spacing:-.035em; line-height:1; margin:0; max-width:750px; }
.light-label p { color:white; }
.service-list { border-top:1px solid rgba(255,255,255,.16); margin:78px 0 0 300px; }
.service-list article { align-items:center; border-bottom:1px solid rgba(255,255,255,.13); display:grid; gap:30px; grid-template-columns:60px minmax(220px,.85fr) 1fr 60px; min-height:128px; }
.service-number { color:var(--gold); font-family:var(--font-serif),serif; }
.service-list h3 { font-family:var(--font-serif),serif; font-size:30px; font-weight:500; margin:0; }
.service-list p { color:rgba(255,255,255,.58); font-size:13px; line-height:1.7; margin:0; max-width:490px; }
.service-line { background:var(--gold); height:1px; justify-self:end; opacity:.7; width:32px; }

.method-heading { display:grid; gap:8vw; grid-template-columns:220px 1fr; }
.method-heading>div:last-child { max-width:840px; }
.method-grid { display:grid; grid-template-columns:repeat(3,1fr); margin:80px 0 0 300px; }
.method-grid article { border-left:1px solid var(--line); display:flex; gap:22px; min-height:235px; padding:36px; }
.method-grid article:nth-child(-n+3) { border-bottom:1px solid var(--line); }
.method-letter { color:var(--gold); font-family:var(--font-serif),serif; font-size:50px; line-height:.8; }
.method-grid h3 { font-family:var(--font-serif),serif; font-size:27px; font-weight:600; margin:0 0 16px; }
.method-grid p { color:var(--muted); font-size:13px; line-height:1.75; margin:0; }
.method-intro { color:var(--muted); line-height:1.8; margin:28px 0 0; max-width:700px; }
.method-grid-detailed article { min-height:390px; padding:34px 28px; }
.method-grid-detailed .method-english { color:#8b785a; font-size:9px; font-weight:700; letter-spacing:.16em; margin-bottom:6px; text-transform:uppercase; }
.method-grid-detailed blockquote { border-left:2px solid var(--gold); color:#5f5140; font-family:var(--font-serif),serif; font-size:17px; font-style:italic; line-height:1.35; margin:20px 0; padding-left:14px; }
.method-grid-detailed small { color:#8b785a; display:block; font-size:8px; font-weight:700; letter-spacing:.15em; margin:22px 0 6px; text-transform:uppercase; }
.method-grid-detailed strong { display:block; font-size:11px; line-height:1.5; }
.impact-scorecard { align-items:center; background:#eee6d8; border-left:3px solid var(--gold); display:grid; gap:42px; grid-template-columns:1fr 1.15fr; margin:54px 0 0 300px; padding:34px 38px; }
.impact-scorecard .eyebrow { margin-bottom:12px; }
.impact-scorecard h3 { font-family:var(--font-serif),serif; font-size:30px; font-weight:600; margin:0 0 10px; }
.impact-scorecard p:not(.eyebrow) { color:var(--muted); font-size:13px; line-height:1.7; margin:0; }
.impact-scorecard ul { display:grid; gap:10px; grid-template-columns:repeat(5,1fr); list-style:none; margin:0; padding:0; }
.impact-scorecard li { border-left:1px solid rgba(20,35,43,.2); color:#745a34; font-size:10px; font-weight:700; letter-spacing:.08em; padding:13px 10px; text-align:center; text-transform:uppercase; }

.priority { background:#eee8dd; }
.priority .section-intro { color:var(--ink); }
.priority-grid { border-left:1px solid var(--line); border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); margin:72px 0 0 300px; }
.priority-grid div { align-items:flex-start; border-bottom:1px solid var(--line); border-right:1px solid var(--line); display:flex; flex-direction:column; min-height:150px; padding:30px; }
.priority-grid strong { color:#8c6b39; font-family:var(--font-serif),serif; font-size:46px; font-weight:500; }
.priority-grid span { font-size:11px; font-weight:700; letter-spacing:.08em; line-height:1.5; text-transform:uppercase; }

.capacity { background:var(--navy); color:white; display:grid; gap:50px; grid-template-columns:1.2fr .8fr; padding:110px clamp(24px,8vw,132px); }
.capacity h2 { font-size:clamp(42px,4.5vw,66px); letter-spacing:-.035em; line-height:1.02; margin:0; }
.capacity>p { color:rgba(255,255,255,.65); line-height:1.8; margin:0; max-width:650px; }
.capacity-example { align-content:center; border:1px solid rgba(255,255,255,.16); display:grid; gap:7px 18px; grid-template-columns:1fr auto; padding:38px; }
.capacity-example span { color:rgba(255,255,255,.5); font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.capacity-example strong { color:var(--gold-light); font-family:var(--font-serif),serif; font-size:34px; font-weight:500; text-align:right; }
.capacity-example i { display:none; }
.equation { border-top:1px solid rgba(255,255,255,.2); color:var(--gold-light); font-family:var(--font-serif),serif; font-size:24px; grid-column:1/-1; line-height:1.45; padding-top:30px; text-align:center; }

.situations { background:var(--paper); }
.situations-heading { display:grid; gap:8vw; grid-template-columns:220px 1fr; }
.situations-heading>div:last-child { max-width:900px; }
.situations h2 { font-family:var(--font-serif),serif; font-size:clamp(42px,5vw,68px); font-weight:500; letter-spacing:-.035em; line-height:1.03; margin:0; }
.situations-intro { color:var(--muted); line-height:1.8; margin:28px 0 0; max-width:760px; }
.situations-grid { border-left:1px solid var(--line); border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); margin:76px 0 0 300px; }
.situations-grid article { border-bottom:1px solid var(--line); border-right:1px solid var(--line); min-height:235px; padding:30px; }
.situations-grid span { color:#9a7946; font-family:var(--font-serif),serif; font-size:17px; }
.situations-grid h3 { font-family:var(--font-serif),serif; font-size:25px; font-weight:600; line-height:1.08; margin:24px 0 13px; }
.situations-grid p { color:var(--muted); font-size:12px; line-height:1.75; margin:0; }
.situations-cta { align-items:center; background:#eee6d8; border-left:3px solid var(--gold); display:flex; gap:40px; justify-content:space-between; margin:48px 0 0 300px; padding:26px 30px; }
.situations-cta p { color:#5f5140; font-family:var(--font-serif),serif; font-size:21px; line-height:1.35; margin:0; max-width:720px; }
.situations-cta a { align-items:center; color:#745a34; display:flex; flex:0 0 auto; font-size:10px; font-weight:700; gap:12px; letter-spacing:.1em; text-transform:uppercase; }

.philosophy { align-items:center; background:#dfd6c6; display:flex; flex-direction:column; justify-content:center; min-height:610px; padding:90px 24px; text-align:center; }
.quote-mark { color:rgba(145,115,68,.45); font-family:var(--font-serif),serif; font-size:96px; height:62px; line-height:1; }
.philosophy blockquote { font-size:clamp(38px,5.2vw,72px); letter-spacing:-.035em; line-height:1.08; margin:25px auto 34px; max-width:1120px; }
.philosophy blockquote em { color:#745a34; }
.philosophy>p { font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }

.standards-heading { display:grid; gap:8vw; grid-template-columns:220px 1fr; }
.standards-heading>div:last-child { max-width:850px; }
.standards-heading h2 { font-family:var(--font-serif),serif; font-size:clamp(42px,5vw,68px); font-weight:500; letter-spacing:-.035em; line-height:1.03; margin:0; }
.standards-grid { border-left:1px solid var(--line); border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(3,1fr); margin:74px 0 0 300px; }
.standards-grid article { border-bottom:1px solid var(--line); border-right:1px solid var(--line); min-height:190px; padding:28px; }
.standards-grid span { color:#9a7946; font-family:var(--font-serif),serif; }
.standards-grid h3 { font-family:var(--font-serif),serif; font-size:23px; font-weight:600; margin:23px 0 10px; }
.standards-grid p { color:var(--muted); font-size:12px; line-height:1.7; margin:0; }
.installed-capacity { border-top:1px solid var(--line); font-size:clamp(38px,4.5vw,62px); letter-spacing:-.03em; line-height:1.05; margin:80px 0 0 300px; padding-top:44px; }
.installed-capacity em { color:#8b6d3e; }

.founder { align-items:stretch; display:grid; gap:clamp(50px,8vw,130px); grid-template-columns:.85fr 1fr; }
.founder-portrait { align-self:start; aspect-ratio:4/5; background:var(--navy); color:white; min-height:0; overflow:hidden; position:relative; width:100%; }
.founder-portrait::after { background:linear-gradient(180deg,transparent 54%,rgba(4,18,28,.75) 100%); content:""; inset:0; pointer-events:none; position:absolute; }
.founder-photo { display:block; height:100%; inset:0; object-fit:cover; object-position:50% 42%; position:absolute; width:100%; }
.founder-portrait span { bottom:38px; color:rgba(255,255,255,.78); font-size:10px; left:38px; letter-spacing:.14em; line-height:1.7; position:absolute; text-shadow:0 1px 12px rgba(0,0,0,.35); text-transform:uppercase; z-index:1; }
.founder-copy { align-self:center; max-width:650px; }
.section-label.compact { border-bottom:1px solid var(--line); margin-bottom:48px; padding-bottom:20px; }
.founder-copy h2 { margin-bottom:32px; }
.founder-copy .founder-lead { color:var(--ink); font-family:var(--font-serif),serif; font-size:25px; line-height:1.35; margin-bottom:24px; }
.credentials { display:flex; flex-wrap:wrap; gap:9px; margin-top:36px; }
.credentials span { border:1px solid var(--line); font-size:10px; font-weight:700; letter-spacing:.1em; padding:11px 15px; text-transform:uppercase; }

.contact { align-items:center; background:var(--navy); color:white; display:flex; flex-direction:column; padding:120px 24px; text-align:center; }
.contact h2 { font-family:var(--font-serif),serif; font-size:clamp(44px,6vw,80px); font-weight:500; letter-spacing:-.04em; line-height:.98; margin:0; max-width:1040px; }
.contact>p:not(.eyebrow) { color:rgba(255,255,255,.62); line-height:1.75; margin:32px auto; max-width:620px; }
.contact-button { margin-top:10px; min-width:300px; }
.phone { color:var(--gold-light); font-family:var(--font-serif),serif; font-size:22px; margin-top:22px; }
.contact small { color:rgba(255,255,255,.45); font-size:10px; letter-spacing:.1em; margin-top:16px; text-transform:uppercase; }

footer { align-items:center; background:#04121c; color:rgba(255,255,255,.48); display:grid; font-size:10px; gap:30px; grid-template-columns:1fr 1fr 1fr; letter-spacing:.08em; min-height:130px; padding:25px clamp(24px,8vw,132px); }
.footer-brand { color:white; }
.footer-logo { height:90px; }
footer p:nth-child(2) { text-align:center; }
footer p:last-child { text-align:right; }

@media (max-width:960px) {
  .site-header { grid-template-columns:1fr auto; }
  .site-header nav { background:rgba(7,27,40,.985); border-top:1px solid rgba(255,255,255,.1); box-shadow:0 18px 36px rgba(0,0,0,.28); display:none; flex-direction:column; gap:0; left:0; padding:10px clamp(24px,5vw,50px) 22px; position:absolute; right:0; top:100%; }
  .site-header nav.is-open { display:flex; }
  .site-header nav a { border-bottom:1px solid rgba(255,255,255,.09); font-size:13px; padding:15px 2px; }
  .site-header nav a:last-child { border-bottom:0; color:var(--gold-light); }
  .mobile-contact-link,.menu-toggle { display:grid; }
  .hero { min-height:820px; }
  .manifesto,.section-intro,.method-heading,.situations-heading { gap:45px; grid-template-columns:1fr; }
  .service-list,.method-grid,.impact-scorecard,.priority-grid,.standards-grid,.installed-capacity,.situations-grid,.situations-cta { margin-left:0; }
  .service-list article { grid-template-columns:45px minmax(180px,.7fr) 1fr; }
  .service-line { display:none; } .method-grid { grid-template-columns:repeat(2,1fr); }
  .method-grid article:nth-child(-n+4) { border-bottom:1px solid var(--line); }
  .founder { grid-template-columns:1fr; } .founder-portrait { min-height:0; }
  .capacity { grid-template-columns:1fr; } .equation { grid-column:auto; }
  .standards-heading { gap:45px; grid-template-columns:1fr; }
  .impact-scorecard { grid-template-columns:1fr; }
}

@media (max-width:640px) {
  .site-header { height:70px; padding:0 16px; } .brand-logo { height:56px; }
  .header-actions { gap:9px; } .header-cta { display:none; }
  .language-switcher { padding:3px; } .language-switcher button { min-height:24px; min-width:25px; }
  .hero { min-height:900px; padding:135px 24px 240px; } .hero h1 { font-size:clamp(43px,12vw,60px); }
  .hero-intro { font-size:16px; margin-top:30px; } .hero-actions { align-items:flex-start; flex-direction:column; gap:14px; }
  .hero-proof { grid-template-columns:1fr; left:24px; right:24px; }
  .hero-proof div { border-bottom:1px solid rgba(255,255,255,.1); border-right:0; min-height:64px; padding:10px 0; }
  .hero-proof div+div { padding-left:0; } .hero-proof strong { font-size:28px; min-width:52px; }
  .section { padding:84px 24px; } .manifesto h2,.method h2,.founder h2 { font-size:42px; }
  .two-column-copy { gap:20px; grid-template-columns:1fr; } .service-list { margin-top:50px; }
  .gold-rule { align-items:flex-start; flex-direction:column; gap:12px; }
  .service-list article { align-items:flex-start; gap:10px; grid-template-columns:35px 1fr; padding:28px 0; }
  .service-list article p { grid-column:2; } .service-list h3 { font-size:27px; }
  .method-grid { grid-template-columns:1fr; margin-top:50px; } .method-grid article { border-bottom:1px solid var(--line); min-height:auto; padding:32px 0; }
  .impact-scorecard { margin-top:36px; padding:28px 24px; } .impact-scorecard ul { grid-template-columns:1fr 1fr; } .impact-scorecard li { text-align:left; }
  .priority-grid,.standards-grid,.situations-grid { grid-template-columns:1fr; margin-top:48px; } .priority-grid div,.standards-grid article,.situations-grid article { min-height:auto; }
  .situations h2 { font-size:42px; } .situations-cta { align-items:flex-start; flex-direction:column; gap:20px; }
  .capacity { gap:34px; padding:80px 24px; } .capacity h2 { font-size:42px; } .capacity-example { padding:26px; }
  .installed-capacity { font-size:39px; margin-top:54px; }
  .philosophy { min-height:540px; } .philosophy blockquote { font-size:40px; } .founder-portrait { min-height:0; }
  footer { grid-template-columns:1fr; padding-bottom:40px; padding-top:40px; text-align:left; }
  .footer-logo { height:96px; }
  footer p:nth-child(2),footer p:last-child { margin:0; text-align:left; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { animation:none!important; transition:none!important; } .motion-ready .reveal { opacity:1; transform:none; } }
