:root { --ink:#11110f; --paper:#f1efe9; --muted:#8d8b84; --line:rgba(17,17,15,.2); --pad:clamp(1.4rem,4vw,4.5rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; font-weight:300; line-height:1.45; }
body.menu-open { overflow:hidden; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
.skip-link { position:fixed; top:.8rem; left:.8rem; z-index:100; padding:.75rem 1rem; background:#fff; transform:translateY(-180%); transition:transform .2s; }
.skip-link:focus { transform:translateY(0); }
.site-header { position:fixed; z-index:20; top:0; left:0; right:0; height:5rem; display:flex; align-items:center; justify-content:space-between; padding:0 var(--pad); transition:background .35s,color .35s,backdrop-filter .35s; }
.site-header.scrolled { background:rgba(241,239,233,.86); backdrop-filter:blur(14px); border-bottom:1px solid rgba(17,17,15,.08); }
.brand { width:10.5rem; height:2.4rem; overflow:hidden; display:flex; align-items:center; }
.brand img { width:100%; }
.site-nav { display:flex; gap:clamp(1.2rem,2.4vw,2.8rem); font-size:.72rem; letter-spacing:.15em; text-transform:uppercase; }
.site-nav a { position:relative; padding:.5rem 0; }
.site-nav a::after { content:""; position:absolute; left:0; right:100%; bottom:.15rem; height:1px; background:currentColor; transition:right .3s; }
.site-nav a:hover::after,.site-nav a:focus-visible::after { right:0; }
.menu-toggle { display:none; border:0; background:none; color:inherit; padding:.5rem 0; font:inherit; text-transform:uppercase; letter-spacing:.15em; font-size:.72rem; }
.hero { position:relative; min-height:100svh; background:#d9d3c9; overflow:hidden; }
.hero picture,.hero img { width:100%; height:100%; }
.hero picture { position:absolute; inset:0; }
.hero img { object-fit:cover; object-position:center; }
.scroll-cue { position:absolute; right:var(--pad); bottom:2rem; display:flex; align-items:center; gap:1rem; color:#fff; font-size:.68rem; text-transform:uppercase; letter-spacing:.2em; mix-blend-mode:difference; }
.scroll-cue i { display:block; width:3.5rem; height:1px; background:currentColor; position:relative; }
.scroll-cue i::after { content:""; position:absolute; right:0; top:-3px; width:7px; height:7px; border-right:1px solid; border-bottom:1px solid; transform:rotate(45deg); }
.section-pad { padding:clamp(6rem,11vw,11rem) var(--pad); }
.eyebrow { display:flex; align-items:center; gap:1rem; margin-bottom:clamp(4rem,8vw,8rem); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; }
.eyebrow span { color:var(--muted); }
.eyebrow::after { content:""; flex:1; height:1px; background:var(--line); margin-left:1rem; }
.eyebrow-light { color:#f4f2ed; }
.eyebrow-light::after { background:rgba(255,255,255,.18); }
.eyebrow-light span { color:rgba(255,255,255,.46); }
.display { margin:0; font-size:clamp(2.8rem,7.7vw,8.6rem); line-height:.94; letter-spacing:-.055em; font-weight:300; }
.manifesto { min-height:100svh; display:flex; flex-direction:column; justify-content:center; }
.manifesto-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(18rem,.65fr); gap:clamp(3rem,8vw,10rem); align-items:end; }
.manifesto-copy { max-width:32rem; font-size:clamp(1.1rem,1.55vw,1.5rem); }
.manifesto-copy p { margin:0 0 1.5rem; }
.manifesto-copy p:last-child { color:var(--muted); }
.method { background:var(--ink); color:#f4f2ed; }
.method-intro { font-size:clamp(1.8rem,3.5vw,4rem); margin-bottom:3rem; }
.method-intro p { margin:0; }
.method-row { display:grid; grid-template-columns:5rem minmax(12rem,.8fr) minmax(18rem,1fr); gap:2rem; align-items:baseline; padding:clamp(2rem,4vw,4rem) 0; border-top:1px solid rgba(255,255,255,.2); }
.method-index { color:rgba(255,255,255,.42); font-size:.7rem; letter-spacing:.16em; }
.method-row h2 { margin:0; font-size:clamp(2rem,5vw,5.5rem); font-weight:300; letter-spacing:-.04em; }
.method-row p { margin:0; max-width:38rem; color:rgba(255,255,255,.68); font-size:clamp(1rem,1.35vw,1.3rem); }
.fields-head { display:grid; grid-template-columns:1.5fr .6fr; gap:clamp(3rem,8vw,10rem); align-items:end; margin-bottom:clamp(5rem,10vw,10rem); }
.fields-head>p { margin:0; max-width:30rem; color:#55534e; font-size:clamp(1.05rem,1.4vw,1.35rem); }
.field-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.field-card { min-height:25rem; padding:clamp(2rem,4vw,4rem); border-right:1px solid var(--line); border-bottom:1px solid var(--line); display:flex; flex-direction:column; transition:background .35s,color .35s; }
.field-card>span { color:var(--muted); font-size:.7rem; letter-spacing:.16em; }
.field-card h3 { margin:auto 0 1rem; font-size:clamp(2.1rem,4vw,4.6rem); font-weight:300; letter-spacing:-.04em; }
.field-card p { margin:0; max-width:34rem; color:#5f5d57; font-size:1.03rem; }
.field-card:hover { background:#e4e0d7; }
.horizons { background:#b5a28f; color:#151411; }
.horizons .eyebrow::after { background:rgba(17,17,15,.22); }
.horizons-grid { display:grid; grid-template-columns:1.3fr .7fr; gap:clamp(4rem,10vw,12rem); align-items:end; }
.horizon-list { list-style:none; padding:0; margin:0; border-top:1px solid rgba(17,17,15,.28); }
.horizon-list li { padding:1.3rem 0; border-bottom:1px solid rgba(17,17,15,.28); font-size:clamp(1rem,1.4vw,1.3rem); }
.contact { min-height:100svh; background:var(--paper); display:flex; flex-direction:column; justify-content:space-between; }
.contact-kicker { margin:0; font-size:clamp(1rem,1.5vw,1.35rem); }
.contact-title { margin:clamp(5rem,10vw,10rem) 0; font-size:clamp(5rem,15vw,16rem); line-height:.76; letter-spacing:-.075em; font-weight:300; }
.contact-title em { font-family:Georgia,'Times New Roman',serif; font-weight:400; }
.contact-foot { display:flex; justify-content:space-between; align-items:center; border-top:1px solid var(--line); padding-top:1.4rem; font-size:.75rem; letter-spacing:.16em; text-transform:uppercase; }
.contact-foot a { display:inline-flex; gap:.8rem; align-items:center; }
.contact-foot a span { font-size:1.2rem; transition:transform .25s; }
.contact-foot a:hover span { transform:translate(4px,-4px); }
.footer { padding:2rem var(--pad); background:var(--ink); color:rgba(255,255,255,.65); display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:2rem; font-size:.65rem; letter-spacing:.16em; text-transform:uppercase; }
.footer img { width:7.5rem; filter:invert(1); }
.footer p { margin:0; }
.footer p:last-child { text-align:right; }
.reveal { opacity:0; transform:translateY(28px); transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.visible { opacity:1; transform:none; }
@media (max-width:860px) {
  .manifesto-grid,.fields-head,.horizons-grid { grid-template-columns:1fr; }
  .manifesto-copy { margin-left:15%; }
  .method-row { grid-template-columns:3rem 1fr; }
  .method-row p { grid-column:2; }
  .field-grid { grid-template-columns:1fr; }
  .field-card { min-height:21rem; }
}
@media (max-width:720px) {
  .site-header { height:4.5rem; }
  .site-header.scrolled { background:#f1efe9; backdrop-filter:none; -webkit-backdrop-filter:none; }
  .site-header.menu-active { background:#f1efe9; backdrop-filter:none; -webkit-backdrop-filter:none; border-bottom:0; }
  .brand { width:8.7rem; }
  .menu-toggle { display:flex; align-items:center; gap:.8rem; z-index:2; }
  .menu-toggle i,.menu-toggle i::after { display:block; width:1.5rem; height:1px; background:currentColor; transition:transform .25s; }
  .menu-toggle i { position:relative; }
  .menu-toggle i::after { content:""; position:absolute; top:5px; }
  .menu-toggle[aria-expanded="true"] i { transform:rotate(45deg); }
  .menu-toggle[aria-expanded="true"] i::after { top:0; transform:rotate(90deg); }
  .site-nav { position:fixed; inset:0; width:100vw; height:100dvh; z-index:1; background-color:#f1efe9; opacity:1; padding:8rem var(--pad) 3rem; flex-direction:column; justify-content:flex-start; gap:1rem; font-size:clamp(1.8rem,9vw,3.2rem); letter-spacing:-.03em; text-transform:none; transform:translateY(-105%); visibility:hidden; pointer-events:none; transition:transform .36s cubic-bezier(.7,0,.2,1),visibility 0s linear .36s; }
  .site-nav.open { transform:none; visibility:visible; pointer-events:auto; transition-delay:0s; }
  .site-nav a { border-bottom:1px solid var(--line); padding:1rem 0; }
  .hero { min-height:auto; background:#e4ded4; }
  .hero picture { position:static; }
  .hero img { width:100%; height:auto; object-fit:contain; }
  .scroll-cue { display:none; }
  .display { font-size:clamp(2.7rem,13vw,5rem); line-height:.97; }
  .manifesto { min-height:auto; }
  .manifesto-copy { margin-left:0; }
  .method-row { grid-template-columns:2.3rem 1fr; gap:1rem; }
  .method-row p { grid-column:2; }
  .field-card { min-height:18rem; }
  .contact { min-height:80svh; }
  .contact-title { font-size:clamp(4.5rem,22vw,7.5rem); }
  .contact-foot { align-items:flex-start; gap:2rem; }
  .footer { grid-template-columns:1fr; text-align:left; }
  .footer p:last-child { text-align:left; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; }
  .reveal { opacity:1; transform:none; }
}
