:root{
  color-scheme: light dark;
  --ink:#0e2233; --ink-soft:#3d5468; --paper:#ffffff; --panel:#f3f7fb;
  --line:#d7e1ea; --signal:#1f6feb; --signal-deep:#174f9e; --muted:#5d7183;
  --navbg:rgba(255,255,255,0.93); --dark-bg:#0e2233; --dark-text:#ffffff;
  --dark-soft:#c3d3e2; --dark-tag:#8fbcff;
}
@media (prefers-color-scheme: dark){
  :root{
    --ink:#eef4f9; --ink-soft:#b3c4d2; --paper:#0b1620; --panel:#132433;
    --line:#263d51; --signal:#6aa8ff; --signal-deep:#8fbcff; --muted:#8ba0b2;
    --navbg:rgba(11,22,32,0.93); --dark-bg:#132433;
  }
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; background:var(--paper); }
body{ font-family:'Inter',sans-serif; background:var(--paper); color:var(--ink); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
@media (prefers-reduced-motion: reduce){ *,*::before,*::after{ animation:none!important; transition:none!important; } }
.wrap{ max-width:1080px; margin:0 auto; padding:0 24px; }
a{ color:inherit; }
a:focus-visible{ outline:2px solid var(--signal); outline-offset:3px; }

/* SKIP LINK */
.skip{ position:absolute; left:-9999px; top:0; z-index:100; background:var(--ink); color:var(--paper); padding:12px 20px; text-decoration:none; font-weight:600; font-size:0.9rem; }
.skip:focus{ left:0; }

/* NAV */
nav{ position:sticky; top:0; z-index:50; background:var(--navbg); backdrop-filter:blur(8px); border-bottom:1px solid var(--line); }
.nav-inner{ max-width:1080px; margin:0 auto; padding:16px 24px; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.nav-name{ font-family:'Fraunces',serif; font-size:1.1rem; font-weight:600; letter-spacing:-0.01em; text-decoration:none; }
.nav-links{ display:flex; gap:24px; flex-wrap:wrap; }
.nav-links a{ font-size:0.8rem; letter-spacing:0.06em; text-transform:uppercase; color:var(--ink-soft); text-decoration:none; font-weight:500; }
.nav-links a:hover,.nav-links a.on{ color:var(--signal); }
@media (max-width:760px){ .nav-links{ gap:14px; } .nav-links a{ font-size:0.7rem; letter-spacing:0.04em; } .nav-name{ font-size:1rem; } }

/* TYPE */
.eyebrow{ font-size:0.78rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--signal-deep); font-weight:600; margin-bottom:24px; display:flex; align-items:center; gap:14px; }
.eyebrow::after{ content:""; width:56px; height:1px; background:var(--line); }
h1.hero-h{ font-family:'Fraunces',serif; font-weight:500; font-size:clamp(2rem,5vw,3.4rem); line-height:1.14; letter-spacing:-0.015em; max-width:20ch; }
h2.big{ font-family:'Fraunces',serif; font-weight:500; font-size:clamp(1.55rem,3.3vw,2.3rem); line-height:1.2; letter-spacing:-0.01em; margin-bottom:22px; max-width:26ch; }
h3{ font-family:'Fraunces',serif; font-size:1.3rem; font-weight:600; margin-bottom:8px; }
.sec-head{ font-size:0.78rem; letter-spacing:0.22em; text-transform:uppercase; color:var(--signal-deep); font-weight:600; margin-bottom:20px; }
.lead{ font-size:1.1rem; color:var(--ink-soft); max-width:56ch; }
p{ color:var(--ink-soft); margin-bottom:14px; }
p strong{ color:var(--ink); }

/* BUTTONS */
.btn{ display:inline-block; text-decoration:none; font-weight:600; font-size:0.92rem; padding:14px 26px; border:1.5px solid var(--ink); color:var(--ink); transition:background .2s,color .2s; }
.btn:hover{ background:var(--ink); color:var(--paper); }
.btn.primary{ background:var(--ink); color:var(--paper); }
.btn.primary:hover{ background:var(--signal); border-color:var(--signal); color:#fff; }
.ctas{ margin-top:36px; display:flex; gap:14px; flex-wrap:wrap; }

/* SECTIONS */
section{ padding:80px 0; border-bottom:1px solid var(--line); }
section.tight{ padding:56px 0; }
.page-head{ padding:72px 0 56px 0; border-bottom:1px solid var(--line); }

/* PRESS STRIP */
.press{ padding:22px 0; border-bottom:1px solid var(--line); background:var(--panel); }
.press-inner{ display:flex; gap:36px; flex-wrap:wrap; align-items:baseline; font-size:0.86rem; color:var(--muted); }
.press-inner strong{ color:var(--ink); font-weight:600; }
.press-inner .g{ font-family:'Fraunces',serif; font-style:italic; font-size:1rem; color:var(--ink); }

/* DOORS */
.doors-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media (max-width:820px){ .doors-grid{ grid-template-columns:1fr; } }
.door{ background:var(--paper); padding:34px 28px; text-decoration:none; color:inherit; display:block; transition:background .2s; }
.door:hover{ background:var(--panel); }
.door .d-tag{ font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--signal-deep); font-weight:600; margin-bottom:12px; }
.door p{ font-size:0.9rem; margin-bottom:16px; }
.door .go{ font-size:0.84rem; font-weight:600; color:var(--signal); }

/* STATS */
.stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px; margin:36px 0; }
@media (max-width:640px){ .stats{ grid-template-columns:1fr; } }
.stat .n{ font-family:'Fraunces',serif; font-size:2.5rem; font-weight:500; line-height:1; }
.stat .c{ font-size:0.85rem; color:var(--ink-soft); margin-top:8px; }

/* DARK BLOCK */
.dark{ background:var(--dark-bg); color:var(--dark-text); }
.dark .sec-head{ color:var(--dark-tag); }
.dark h2.big,.dark h1.hero-h,.dark h3{ color:var(--dark-text); }
.dark p{ color:var(--dark-soft); }
.dark .stat .n{ color:var(--dark-text); }
.dark .stat .c{ color:var(--dark-soft); }
.dark .btn{ border-color:#fff; color:#fff; }
.dark .btn:hover{ background:var(--signal); border-color:var(--signal); }
.dark .eyebrow{ color:var(--dark-tag); }
.dark .eyebrow::after{ background:rgba(255,255,255,0.25); }

/* TOPICS */
.topic{ padding:26px 0; border-top:1px solid var(--line); }
.topic:last-of-type{ border-bottom:1px solid var(--line); }
.topic .aud{ font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--signal-deep); font-weight:600; margin-bottom:6px; }
.topic p{ font-size:0.95rem; max-width:70ch; margin-bottom:8px; }
.topic .tk{ font-size:0.84rem; color:var(--muted); }

/* GRID 2 */
.g2{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; }
@media (max-width:820px){ .g2{ grid-template-columns:1fr; gap:32px; } }
.pull{ border-left:3px solid var(--signal); padding:10px 0 10px 24px; font-family:'Fraunces',serif; font-style:italic; font-size:1.3rem; line-height:1.45; color:var(--ink); align-self:start; }
.pull cite{ display:block; font-family:'Inter',sans-serif; font-style:normal; font-size:0.78rem; color:var(--muted); margin-top:12px; letter-spacing:0.06em; text-transform:uppercase; }

/* CARDS */
.cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:28px; }
@media (max-width:760px){ .cards{ grid-template-columns:1fr; } }
.card{ border:1px solid var(--line); padding:24px; background:var(--panel); }
.card h3{ font-size:1.1rem; }
.card p{ font-size:0.9rem; margin-bottom:0; }


/* FORM */
.form-card{ padding:28px; }
.form-card h3{ margin-bottom:18px; }
.f{ margin-bottom:16px; }
.f-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .f-row{ grid-template-columns:1fr; gap:0; } }
.f label{ display:block; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; font-weight:600; color:var(--ink); margin-bottom:6px; }
.f label span{ color:var(--signal); }
.f input,.f select,.f textarea{
  width:100%; font-family:'Inter',sans-serif; font-size:0.95rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); padding:11px 13px;
  border-radius:0; transition:border-color .15s;
}
.f textarea{ resize:vertical; min-height:96px; }
.f input:focus,.f select:focus,.f textarea:focus{ outline:none; border-color:var(--signal); box-shadow:0 0 0 3px rgba(31,111,235,0.14); }
.f input::placeholder,.f textarea::placeholder{ color:var(--muted); }
.form-card button{ cursor:pointer; font-family:'Inter',sans-serif; margin-top:6px; }
.f-note{ font-size:0.82rem; color:var(--muted); margin:14px 0 0 0; }
.f-note a{ color:var(--ink); border-bottom:1px solid var(--signal); text-decoration:none; }
.hp{ display:none; }

/* FEE TABLE */
.fees{ width:100%; border-collapse:collapse; margin-top:20px; }
.fees td{ padding:12px 0; border-bottom:1px solid var(--line); font-size:0.95rem; }
.fees td:last-child{ text-align:right; font-weight:600; color:var(--ink); }
.fees td:first-child{ color:var(--ink-soft); }

/* DOWNLOAD */
.dl{ display:flex; gap:14px; flex-wrap:wrap; margin-top:26px; }
.dl a{ display:inline-block; text-decoration:none; border:1px solid var(--line); background:var(--panel); padding:14px 20px; font-size:0.88rem; font-weight:600; color:var(--ink); }
.dl a:hover{ border-color:var(--signal); color:var(--signal); }
.dl a span{ display:block; font-weight:400; font-size:0.76rem; color:var(--muted); margin-top:2px; }

/* PLACEHOLDER */
.ph{ border:1.5px dashed var(--signal); background:rgba(31,111,235,0.05); padding:24px; text-align:center; margin:28px 0; }
.ph .t{ font-size:0.72rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--signal-deep); font-weight:700; margin-bottom:6px; }
.ph p{ font-size:0.88rem; margin-bottom:0; }

/* CONTACT */
.cbig{ font-family:'Fraunces',serif; font-size:clamp(1.7rem,3.6vw,2.6rem); font-weight:500; line-height:1.25; margin-bottom:26px; }
.cbig em{ color:var(--signal); }
.clines{ font-size:1.05rem; color:var(--ink-soft); }
.clines a{ color:var(--ink); font-weight:600; text-decoration:none; border-bottom:2px solid var(--signal); padding-bottom:1px; }

/* FOOTER */
footer{ padding:36px 0 48px 0; font-size:0.8rem; color:var(--muted); }
.foot-inner{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:14px; }
.foot-nav{ display:flex; gap:18px; flex-wrap:wrap; }
.foot-nav a{ color:var(--muted); text-decoration:none; }
.foot-nav a:hover{ color:var(--signal); }


/* ---------- IMAGERY ---------- */
/* No forced aspect ratios — every photo displays at its true proportions. */
.hero-split{ display:grid; grid-template-columns:1.15fr .85fr; gap:52px; align-items:center; }
@media (max-width:880px){ .hero-split{ grid-template-columns:1fr; gap:32px; } }

figure{ margin:0; }
figcaption{ font-size:0.78rem; color:var(--muted); margin-top:10px; line-height:1.45; }

picture{ display:contents; }
.photo-frame{ background:var(--panel); line-height:0; }
.photo-frame img{ width:100%; height:auto; display:block; }
.photo-row .photo-frame img,
.photo-frame.portrait img,
.photo-frame.wide img,
.photo-frame.square img,
.headshot img{ height:auto; }

/* single feature images: cap height so tall portraits don't dominate the page */
.photo-frame.portrait img{ max-height:600px; width:auto; margin:0 auto; }
.photo-frame.wide img,
.photo-frame.square img{ max-height:520px; width:auto; margin:0 auto; }
.photo-frame.portrait,
.photo-frame.wide,
.photo-frame.square{ display:flex; justify-content:center; }

/* rows: uniform height, natural width — consistent look, zero cropping */
.photo-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:28px; align-items:start; }
@media (max-width:760px){ .photo-row{ grid-template-columns:1fr!important; } }
.photo-row .photo-frame{ display:flex; align-items:center; justify-content:center; height:300px; overflow:hidden; }
.photo-row .photo-frame img{ max-height:300px; max-width:100%; width:auto; height:auto; }

.headshot{ width:100%; max-width:300px; }
.headshot img{ width:100%; height:auto; display:block; }

/* ---------- VIDEO EMBED ---------- */
.video-embed{ max-width:540px; }
.video-embed blockquote{ margin:0 auto!important; }
