/* Shared approach-page typography and spacing from the approved design. */
:root { --po:#07090C; --po-2:#0E141B; --line:#1D2733; --marama:#EDE7DD; --muted:#7C8794; --manawa:#C4433A; --huia:#E9DFC9; }
* { box-sizing:border-box; text-wrap:pretty; }
html, body { margin:0; background:var(--po); color:var(--marama); }
body { font-family:"Public Sans",system-ui,-apple-system,"Helvetica Neue",sans-serif; -webkit-font-smoothing:antialiased; }
::selection { background:var(--manawa); color:#F6F1EA; }
:focus-visible { outline:2px solid var(--manawa); outline-offset:5px; }
.page { background:var(--po);color:var(--marama);overflow-x:clip; }
.thread-wrap { position:sticky;top:0;height:0;z-index:2;pointer-events:none; }
.thread-track { position:absolute;top:0;left:clamp(8px,2.2vw,20px);width:1px;height:100svh;background:var(--line); }
.thread-fill { position:absolute;top:0;left:0;width:1px;height:0%;background:var(--manawa); }
.opening { min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:16vh 24px 12vh;box-sizing:border-box; }
.kicker { margin:0 0 clamp(28px,9vh,72px);font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted); }
.slash { color:var(--line); }
.title { margin:0 0 clamp(30px,7vh,60px);max-width:20ch;font-family:Fraunces,Georgia,serif;font-weight:300;font-variation-settings:'opsz' 120;font-size:clamp(2.4rem,10vw,6.2rem);line-height:1.03;letter-spacing:-.025em; }
.stack { display:grid;gap:1.5em; }
.body-copy { margin:0;max-width:34ch;font-size:clamp(1.06rem,4.5vw,1.35rem);line-height:1.55;font-weight:300; }
.highlight { margin:0;max-width:34ch;font-size:clamp(1.06rem,4.5vw,1.35rem);line-height:1.55;font-weight:400;color:var(--huia); }
.section-tight { min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:14vh 24px;box-sizing:border-box;border-top:1px solid var(--line); }
.beat { margin:0 0 clamp(22px,5vh,44px);font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted); }
.heading { margin:0 0 clamp(26px,6vh,52px);max-width:24ch;font-family:Fraunces,Georgia,serif;font-weight:300;font-variation-settings:'opsz' 120;font-size:clamp(2rem,8.6vw,4.4rem);line-height:1.04;letter-spacing:-.02em; }
.stack-measure { display:grid;gap:1.5em;max-width:34ch; }
.body-inherit { margin:0;font-size:clamp(1.06rem,4.5vw,1.35rem);line-height:1.55;font-weight:300; }
.highlight-inherit { margin:0;font-size:clamp(1.06rem,4.5vw,1.35rem);line-height:1.55;font-weight:400;color:var(--huia); }
.section { min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:16vh 24px;box-sizing:border-box;border-top:1px solid var(--line); }
.stanzas { display:grid;gap:1.6em; }
.reading-intro { display:grid;gap:1.5em;max-width:34ch;margin:0 0 clamp(30px,7vh,62px); }
.figures { margin:0;display:grid;gap:0;max-width:36ch; }
.figure-row { padding:clamp(16px,3.6vh,28px) 0;border-top:1px solid var(--line); }
.figure-value { margin:0;font-family:Fraunces,Georgia,serif;font-weight:300;font-variation-settings:'opsz' 120;font-size:clamp(2rem,8.6vw,3.6rem);line-height:1;letter-spacing:-.02em; }
.figure-description { margin:8px 0 0;font-size:clamp(.98rem,4.2vw,1.2rem);line-height:1.5;font-weight:300;color:var(--marama); }
.figure-row-last { padding:clamp(16px,3.6vh,28px) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line); }
.source { margin:clamp(26px,6vh,50px) 0 0;max-width:34ch;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--muted); }
.figure-closing { margin:clamp(18px,4vh,32px) 0 0;max-width:34ch;font-size:clamp(1.06rem,4.5vw,1.35rem);line-height:1.55;font-weight:400;color:var(--huia); }
.work { min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:16vh 24px 20vh;box-sizing:border-box;background:var(--po-2);border-top:1px solid var(--line); }
.work-title { margin:0 0 clamp(28px,6vh,52px);font-family:Fraunces,Georgia,serif;font-weight:300;font-variation-settings:'opsz' 120;font-size:clamp(2.4rem,11vw,6rem);line-height:1;letter-spacing:-.03em; }
.credits { margin:0 0 clamp(30px,7vh,60px);display:grid;grid-template-columns:auto 1fr;gap:8px 18px;max-width:560px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted); }
.credit-label { margin:0; }
.credit-value { margin:0;color:var(--marama); }
.work-copy { display:grid;gap:1.5em;max-width:34ch;margin:0 0 clamp(34px,8vh,64px); }
.links { display:flex;flex-wrap:wrap;gap:14px; }
.proposal-link { display:inline-flex;align-items:center;gap:14px;min-height:48px;padding:14px 22px;border:1px solid var(--manawa);color:var(--marama);text-decoration:none;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;transition:background-color .9s ease,color .9s ease; }
.arrow { font-family:Fraunces,Georgia,serif; }
.contact-link { display:inline-flex;align-items:center;gap:14px;min-height:48px;padding:14px 22px;border:1px solid var(--line);color:var(--marama);text-decoration:none;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;transition:border-color .9s ease; }

section p { max-width:34ch; }
section > dl:has(> dt) { grid-template-columns:minmax(0,auto) minmax(0,1fr); }
a[href="/proposal#proposal"]:hover { background:var(--manawa); color:#F6F1EA; }
a[href="/proposal#contact"]:hover { border-color:var(--muted); }
[data-reveal] { opacity:1; transform:none; }
.motion [data-reveal] { transition:opacity 2.6s cubic-bezier(.25,.6,.2,1),transform 2.6s cubic-bezier(.25,.6,.2,1),background-color .9s ease,color .9s ease,border-color .9s ease; }
.motion [data-pending] { opacity:0; transform:translateY(18px); }
.arming [data-reveal] { transition:none; }
@media (max-width:540px) { section > dl:has(> dt) { grid-template-columns:1fr; gap:8px; } section > dl > dd + dt { margin-top:12px; } }
@media (prefers-reduced-motion:reduce) { [data-reveal] { opacity:1 !important; transform:none !important; transition:none !important; } }
@media print {
  html,body,.page,section { background:#fff !important; color:#111 !important; }
  .thread-wrap { display:none; }
  section { min-height:0 !important; padding:18pt 0 !important; break-inside:avoid; }
  [data-reveal] { opacity:1 !important; transform:none !important; transition:none !important; }
  h1,h2 { font-size:22pt !important; color:#111 !important; }
  p,li,dd,dt,a,span { font-size:11.5pt !important; color:#111 !important; max-width:34em !important; }
}
