@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap');

:root { --paper:#f2f0e9; --ink:#17231d; --forest:#132a20; --acid:#d7f553; --rust:#d65f39; --line:rgba(23,35,29,.18); --shell:min(1240px,calc(100vw - 80px)); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'DM Sans',Arial,sans-serif; font-size:16px; line-height:1.6; }
body.menu-open { overflow:hidden; }
a { color:inherit; }
img,svg { display:block; max-width:100%; }
.shell { width:var(--shell); margin-inline:auto; }
.narrow { max-width:1080px; }
.sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; width:1px; white-space:nowrap; }
.skip-link { position:fixed; z-index:100; top:8px; left:8px; padding:10px 16px; background:white; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.eyebrow { margin:0 0 30px; text-transform:uppercase; letter-spacing:.14em; font-size:11px; font-weight:600; }
.eyebrow-light { color:var(--acid); }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { letter-spacing:-.045em; line-height:.98; font-weight:500; }
em { font-family:'Instrument Serif',Georgia,serif; font-weight:400; }
.section { padding:145px 0; }
[data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1); }
[data-reveal].is-visible { opacity:1; transform:none; }

.site-header { position:absolute; top:0; width:100%; z-index:10; }
.header-inner { height:104px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:13px; text-decoration:none; font-weight:600; letter-spacing:-.03em; font-size:18px; }
.brand svg { width:27px; height:27px; fill:currentColor; }
.site-nav { display:flex; align-items:center; gap:38px; font-size:13px; }
.site-nav a { text-decoration:none; }
.site-nav a:not(.nav-contact) { position:relative; }
.site-nav a:not(.nav-contact)::after { content:''; position:absolute; height:1px; left:0; right:100%; bottom:-5px; background:currentColor; transition:right .25s; }
.site-nav a:hover::after { right:0; }
.nav-contact { border:1px solid var(--ink); padding:10px 15px; display:flex; gap:18px; }
.menu-button { display:none; }

.hero { min-height:850px; padding-top:180px; display:flex; flex-direction:column; }
.hero-grid { display:grid; grid-template-columns:1fr 390px; align-items:center; flex:1; }
.hero-copy { max-width:850px; position:relative; z-index:1; }
.hero-kicker { display:flex; align-items:center; gap:10px; }
.hero-kicker span { width:7px; height:7px; background:var(--rust); border-radius:50%; }
.hero h1 { font-size:clamp(72px,8vw,124px); max-width:970px; margin:0 0 37px; }
.hero h1 em { color:var(--rust); }
.hero-intro { max-width:630px; font-size:20px; line-height:1.55; }
.hero-actions { display:flex; align-items:center; gap:38px; margin-top:42px; }
.button { padding:14px 19px; text-decoration:none; display:inline-flex; align-items:center; justify-content:space-between; min-width:208px; font-size:13px; font-weight:500; transition:background .25s,color .25s; }
.button-dark { color:var(--paper); background:var(--ink); }
.button-dark:hover { background:var(--rust); }
.text-link { text-decoration:none; border-bottom:1px solid var(--ink); padding:8px 0; font-size:13px; display:flex; gap:25px; }
.hero-mark { position:absolute; right:max(40px,calc((100vw - 1240px)/2)); top:165px; width:360px; color:rgba(23,35,29,.1); }
.hero-mark svg { width:100%; height:490px; }
.hero-mark .mark-line { stroke:currentColor; fill:none; stroke-width:1.5; }
.hero-mark .mark-fill { fill:var(--acid); stroke:var(--ink); stroke-width:1; }
.hero-mark p { color:var(--ink); font-size:11px; text-transform:uppercase; letter-spacing:.12em; line-height:1.6; position:absolute; bottom:100px; left:15px; }
.hero-foot { height:82px; border-top:1px solid var(--line); display:grid; grid-template-columns:100px 130px 1fr; align-items:center; gap:20px; font-size:10px; text-transform:uppercase; letter-spacing:.13em; }
.hero-foot i { height:1px; background:var(--line); position:relative; }
.hero-foot i::after { content:''; width:30%; height:1px; position:absolute; background:var(--ink); }

.manifesto { background:#e7e4db; text-align:center; }
.manifesto h2 { margin:0; font-size:clamp(42px,5.4vw,78px); }
.manifesto h2 em { color:var(--rust); }
.section-heading { display:grid; grid-template-columns:32% 1fr; align-items:start; margin-bottom:75px; }
.section-heading h2 { font-size:clamp(48px,5.2vw,76px); margin:0; }
.activity { display:grid; grid-template-columns:32% 25% 1fr 35px; align-items:start; border-top:1px solid var(--ink); padding:38px 0 62px; }
.activity-number { font-size:11px; }
.activity h3 { font-family:'Instrument Serif',Georgia,serif; font-size:65px; font-weight:400; margin:0; }
.activity p { max-width:500px; line-height:1.7; color:#455149; }
.activity-symbol { font-size:25px; text-align:right; }

.ventures { color:var(--paper); background:var(--forest); overflow:hidden; }
.ventures-grid { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:center; }
.ventures h2 { font-size:clamp(60px,7vw,100px); margin:0 0 40px; }
.ventures-copy>p:not(.eyebrow) { max-width:530px; color:#b7c0ba; }
.venture-window { border:1px solid rgba(242,240,233,.25); }
.window-top,.window-bottom { display:flex; justify-content:space-between; padding:14px 17px; font-size:9px; text-transform:uppercase; letter-spacing:.13em; }
.window-top { border-bottom:1px solid rgba(242,240,233,.25); }
.window-bottom { border-top:1px solid rgba(242,240,233,.25); }
.window-field { height:450px; display:grid; place-items:center; position:relative; overflow:hidden; background:repeating-linear-gradient(0deg,transparent,transparent 39px,rgba(255,255,255,.04) 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,rgba(255,255,255,.04) 40px); }
.window-field .orb { position:absolute; width:240px; height:240px; background:var(--acid); border-radius:50%; filter:blur(.2px); animation:drift 8s ease-in-out infinite; }
.window-field p { position:relative; z-index:1; color:var(--forest); text-align:center; font-family:'Instrument Serif',Georgia,serif; font-size:38px; line-height:1; }
@keyframes drift { 50% { transform:scale(.92) translate(15px,-10px); border-radius:40% 60% 55% 45%; } }

.perspective-heading { grid-template-columns:32% 42% 1fr; }
.perspective-heading h2 em { color:var(--rust); }
.perspective-heading>p:last-child { font-size:15px; color:#536057; padding-top:10px; }
.topic-cloud { display:flex; flex-wrap:wrap; border-top:1px solid var(--line); padding-top:38px; gap:12px; }
.topic-cloud span { border:1px solid var(--ink); border-radius:50%; padding:13px 22px; font-size:13px; }
.topic-cloud span:nth-child(3n+2) { background:var(--acid); }
.about { background:#dedbd0; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:10%; }
.about h2 { font-size:clamp(55px,6.3vw,92px); }
.about h2 em { color:var(--rust); }
.about-copy { padding-top:45px; max-width:530px; }
.about-copy .lead { font-size:24px; line-height:1.45; color:var(--ink); }
.about-copy p { color:#445047; }

.founder { background:var(--acid); }
.founder-grid { display:grid; grid-template-columns:minmax(300px,480px) 1fr; gap:11%; align-items:center; }
.founder-image { margin:0; }
.founder-image img { width:100%; background:#c9de6a; aspect-ratio:4/5; object-fit:cover; filter:grayscale(1); }
.founder-image figcaption { font-size:9px; text-transform:uppercase; letter-spacing:.12em; margin-top:10px; }
.founder-copy { max-width:590px; }
.founder h2 { font-family:'Instrument Serif',Georgia,serif; font-size:clamp(64px,7vw,100px); margin-bottom:5px; }
.founder h2 a { text-decoration:none; }
.founder .role { text-transform:uppercase; font-size:10px; letter-spacing:.13em; margin-bottom:38px; }
.founder-copy>p:not(.eyebrow):not(.role) { font-size:17px; line-height:1.7; }
.button-outline { border:1px solid var(--ink); margin-top:20px; }
.button-outline:hover { background:var(--ink); color:var(--acid); }

.contact { background:var(--forest); color:var(--paper); padding:145px 0 130px; }
.contact h2 { font-size:clamp(58px,7.5vw,108px); max-width:1100px; margin-bottom:70px; }
.contact h2 em { color:var(--acid); }
.contact-email { display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,.35); border-bottom:1px solid rgba(255,255,255,.35); padding:28px 0; font-size:clamp(20px,3vw,40px); text-decoration:none; }
.contact-email:hover { color:var(--acid); }
.contact-note { margin-top:22px; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.site-footer { background:#0d1c15; color:#aeb9b2; padding:60px 0 30px; }
.footer-top,.footer-bottom { display:flex; align-items:center; justify-content:space-between; }
.brand-light { color:var(--paper); }
.back-top { font-size:12px; text-decoration:none; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.12); margin-top:55px; padding-top:24px; font-size:9px; text-transform:uppercase; letter-spacing:.12em; }
.footer-bottom p { margin:0; }

@media (max-width:900px) {
  :root { --shell:calc(100vw - 40px); }
  .section { padding:95px 0; }
  .menu-button { display:flex; width:42px; height:42px; border:1px solid; background:transparent; flex-direction:column; justify-content:center; gap:6px; padding:10px; z-index:2; }
  .menu-button span:not(.sr-only) { height:1px; background:currentColor; width:100%; }
  .site-nav { display:none; position:fixed; inset:0; background:var(--acid); padding:120px 25px 40px; flex-direction:column; align-items:flex-start; gap:15px; font-family:'Instrument Serif',Georgia,serif; font-size:45px; }
  .site-nav[data-open] { display:flex; }
  .site-nav .nav-contact { font-family:'DM Sans'; font-size:13px; margin-top:20px; }
  .hero { padding-top:130px; min-height:760px; }
  .hero-grid { grid-template-columns:1fr; }
  .hero-mark { opacity:.6; width:210px; right:10px; top:220px; }
  .hero-mark svg { height:330px; }
  .hero-mark p { display:none; }
  .hero h1 { font-size:clamp(62px,17vw,105px); }
  .hero-intro { font-size:17px; max-width:520px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:15px; }
  .hero-foot { grid-template-columns:70px 120px 1fr; }
  .section-heading,.perspective-heading { grid-template-columns:1fr; gap:15px; }
  .activity { grid-template-columns:50px 1fr 30px; }
  .activity p { grid-column:2/4; margin-top:20px; }
  .ventures-grid,.about-grid,.founder-grid { grid-template-columns:1fr; gap:65px; }
  .venture-window { max-width:600px; }
  .founder-image { max-width:480px; }
}
@media (max-width:540px) {
  :root { --shell:calc(100vw - 32px); }
  .header-inner { height:82px; }
  .hero { min-height:750px; }
  .hero h1 { font-size:61px; }
  .hero-mark { width:160px; top:235px; right:-15px; }
  .hero-foot { display:none; }
  .manifesto h2 { font-size:41px; }
  .activity { grid-template-columns:38px 1fr 25px; padding:25px 0 45px; }
  .activity h3 { font-size:50px; }
  .window-field { height:330px; }
  .perspective-heading h2,.about h2 { font-size:49px; }
  .topic-cloud span { font-size:11px; padding:10px 14px; }
  .contact { padding:95px 0; }
  .contact h2 { font-size:48px; }
  .contact-email { font-size:17px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; gap:8px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; } [data-reveal] { opacity:1; transform:none; } }
