:root{
  --soil:#0B1F3A; --soil-2:#13305A; --line:#23406B;
  --parch:#F5F9FD; --parch-2:#E4EEF8; --rule:#C3D3E6;
  --ink:#2A3B55; --muted:#5A6B84; --on-dark:#D3E2F2; --on-dark-2:#A9C0DA;
  --accent:#8EC5F0; --rust:#1D5FA8; --rust-dk:#123F73;
  --display:"Fraunces",Georgia,serif; --body:"IBM Plex Sans","Helvetica Neue",sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace;
  --pad:clamp(20px,5.5vw,80px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--body);background:var(--parch);color:var(--soil);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:var(--rust);text-decoration:none}
a:hover{color:var(--rust-dk);text-decoration:underline}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
h1,h2,h3{font-family:var(--display);margin:0;line-height:1.02;letter-spacing:-.01em}
h1{font-weight:900;font-size:clamp(44px,6.4vw,92px);letter-spacing:-.02em}
h2{font-weight:900;font-size:clamp(34px,4vw,58px)}
h3{font-weight:700;font-size:clamp(21px,1.8vw,26px);line-height:1.2}
p{margin:0}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--soil);padding:12px 18px;z-index:100}
.skip:focus{left:12px;top:12px}
.wrap{padding-inline:var(--pad)}
.eyebrow{font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:var(--rust);text-transform:uppercase}
.dark .eyebrow{color:var(--accent)}
.dark{background:var(--soil);color:var(--parch)}
.sand{background:var(--parch-2)}
.accent-bg{background:var(--accent);color:var(--soil)}
.section{padding-block:clamp(64px,8vw,120px)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 28px;font-weight:600;font-size:17px;border:1.5px solid transparent;transition:background .15s,color .15s}
.btn:hover{text-decoration:none}
.btn-accent{background:var(--accent);color:var(--soil)}
.btn-accent:hover{background:#B3D9F7;color:var(--soil)}
.btn-ghost{border-color:#5A6B84;color:var(--parch)}
.btn-ghost:hover{border-color:var(--parch);color:var(--parch)}
.btn-dark{background:var(--soil);color:var(--parch)}
.btn-dark:hover{background:#000;color:var(--parch)}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:var(--soil);color:var(--parch);border-bottom:1px solid var(--line)}
.site-header .inner{display:flex;align-items:center;justify-content:space-between;padding:16px var(--pad);gap:24px}
.brand{display:flex;align-items:center;gap:14px;color:var(--parch)}
.brand:hover{text-decoration:none;color:var(--parch)}
.mark{width:44px;height:44px;border:2px solid var(--accent);display:grid;place-items:center;font-family:var(--display);font-weight:900;font-size:17px}
.brand-name{font-family:var(--display);font-weight:700;font-size:20px;line-height:1.1;display:block}
.brand-sub{font-family:var(--mono);font-size:11px;letter-spacing:.15em;color:var(--on-dark-2);display:block}
.nav{display:flex;align-items:center;gap:30px;font-size:15px;font-weight:500}
.nav a{color:#E4EEF8}
.nav a:hover{color:#fff}
.nav .btn{min-height:46px;padding:10px 20px;font-size:15px;color:var(--soil)}
.nav-toggle{display:none;width:46px;height:46px;background:transparent;border:1.5px solid #5A6B84;color:var(--parch);cursor:pointer}
@media (max-width:1080px){
  .brand-sub{display:none}
  .nav-toggle{display:grid;place-items:center}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--soil);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--pad) 24px;border-bottom:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line);font-size:17px}
  .nav .btn{margin-top:16px;border:0}
}

/* hero */
.hero{display:grid;grid-template-columns:7fr 5fr;gap:48px;padding-block:clamp(56px,8vw,110px)}
.hero-copy{display:flex;flex-direction:column;gap:28px}
.hero-copy .lead{font-size:clamp(18px,1.5vw,21px);color:var(--on-dark);max-width:640px}
.actions{display:flex;flex-wrap:wrap;gap:14px}
.exhibit{min-height:440px;background:var(--soil-2) center/cover no-repeat;border:1px solid #2C4E7E;display:flex;flex-direction:column;justify-content:space-between;padding:24px;align-self:end}
.photo-note{font-family:var(--mono);font-size:12px;color:#8FA7C4}
.exhibit-card{background:var(--parch);color:var(--soil);padding:20px 22px}
.exhibit-card .eyebrow{font-size:11px;color:var(--rust)}
.exhibit-card p{font-family:var(--display);font-weight:700;font-size:22px;line-height:1.25;margin-top:6px}
@media (max-width:900px){.hero{grid-template-columns:1fr}.exhibit{min-height:320px}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:40px 32px;border-right:1px solid rgba(11,31,58,.22);display:flex;flex-direction:column;gap:6px}
.stat:first-child{padding-left:var(--pad)} .stat:last-child{border-right:0;padding-right:var(--pad)}
.stat b{font-family:var(--display);font-weight:900;font-size:clamp(40px,4.4vw,64px);line-height:1}
.stat span{font-size:16px;font-weight:500}
@media (max-width:800px){.stats{grid-template-columns:repeat(2,1fr)}.stat{padding:24px var(--pad)!important;border-bottom:1px solid rgba(11,31,58,.22)}.stat:nth-child(2n){border-right:0}}

/* split */
.split{display:grid;grid-template-columns:5fr 1fr 6fr;gap:24px}
.split > :last-child{grid-column:3}
.stack{display:flex;flex-direction:column;gap:22px}
.body{color:var(--ink);font-size:19px;line-height:1.7}
.body > * + *{margin-top:22px}
.chips{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.chip{background:var(--parch-2);padding:22px}
.chip strong{display:block;font-family:var(--display);font-size:22px;color:var(--soil);margin-bottom:6px}
.chip span{font-size:15px;line-height:1.5}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:28px}.split > :last-child{grid-column:auto}.chips{grid-template-columns:1fr}}

/* section head */
.head{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-bottom:52px;flex-wrap:wrap}
.head p{max-width:460px;color:var(--ink)}

/* services */
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.service{background:var(--parch);padding:34px 28px;display:flex;flex-direction:column;gap:14px}
.service p{font-size:16px;color:var(--ink)}
@media (max-width:1080px){.grid-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.grid-4{grid-template-columns:1fr}}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--accent);margin:0;padding:0;list-style:none}
.steps li{padding:32px 28px 0 0;display:flex;flex-direction:column;gap:10px}
.steps .n{font-family:var(--display);font-weight:900;font-size:54px;line-height:1;color:var(--accent)}
.steps h3{font-family:var(--body);font-weight:600;font-size:22px}
.steps p{font-size:16px;color:var(--on-dark-2)}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,1fr);row-gap:20px}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* timeline */
.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--soil)}
.timeline li{padding:0 0 28px 32px}
.timeline li:last-child{padding-bottom:0}
.timeline time{font-family:var(--mono);font-size:13px;color:var(--rust);display:block}
.timeline span{font-family:var(--display);font-weight:700;font-size:clamp(19px,1.7vw,23px);line-height:1.3}

/* projects */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.project{background:var(--parch);padding:32px;display:flex;flex-direction:column;gap:12px;min-height:250px;color:var(--soil)}
.project .eyebrow{font-size:12px}
.project h3{font-size:30px}
.project p{font-size:16px;color:var(--ink)}
.project.featured{background:var(--soil);color:var(--parch)}
.project.featured .eyebrow{color:var(--accent)}
.project.featured p{color:var(--on-dark-2)}
.project.featured .more{margin-top:auto;font-weight:600;color:var(--accent)}
a.project:hover{text-decoration:none;color:var(--parch);outline:2px solid var(--accent)}
.project.open{background:transparent;border:2px dashed #8FA7C4;justify-content:center}
@media (max-width:1000px){.grid-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.grid-3{grid-template-columns:1fr}}

/* quote */
.quote{display:grid;grid-template-columns:8fr 1fr 3fr;gap:24px;align-items:end}
.quote blockquote{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(30px,3.6vw,50px);line-height:1.15}
.quote figcaption{margin-top:24px;color:var(--ink)}
.video{display:flex;flex-direction:column;gap:14px;grid-column:3}
.video a.thumb{aspect-ratio:16/10;background:var(--soil);display:grid;place-items:center;color:var(--parch)}
.video a.thumb svg{width:64px;height:64px}
@media (max-width:900px){.quote{grid-template-columns:1fr}.video{grid-column:auto}}

/* contact */
.contact{display:grid;grid-template-columns:6fr 1fr 5fr;gap:24px}
.contact > form{grid-column:3}
.contact h2{font-size:clamp(42px,5vw,72px)}
.contact-lines{display:flex;flex-direction:column;gap:6px;font-size:20px;font-weight:600;margin-top:16px}
.contact-lines a{color:var(--soil)}
form.inspect{background:var(--parch);padding:36px;display:flex;flex-direction:column;gap:18px}
form.inspect label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
form.inspect input,form.inspect textarea{font:inherit;font-size:16px;border:1.5px solid #8FA7C4;background:#fff;padding:12px 14px;color:var(--soil)}
form.inspect input{min-height:50px}
form.inspect textarea{min-height:120px;resize:vertical}
form.inspect button{min-height:56px;border:0;background:var(--soil);color:var(--parch);font:inherit;font-weight:600;font-size:17px;cursor:pointer}
form.inspect button:hover{background:#000}
.hidden{display:none}
@media (max-width:900px){.contact{grid-template-columns:1fr}.contact > form{grid-column:auto}form.inspect{padding:24px}}

/* footer */
.site-footer{background:var(--soil);color:#8FA7C4;font-size:14px}
.site-footer .inner{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:44px var(--pad)}
.site-footer nav{display:flex;gap:26px;flex-wrap:wrap}
.site-footer nav a{color:var(--on-dark-2)}
.site-footer .brand-name{color:var(--parch)}

/* case file */
.case-hero h1{font-size:clamp(46px,7vw,100px);max-width:1150px}
.case-hero .lead{color:var(--on-dark);max-width:820px;font-size:clamp(18px,1.5vw,21px)}
.ledger-head,.ledger-row{display:grid;grid-template-columns:1fr 1fr;column-gap:48px}
.ledger-head{padding-bottom:18px;border-bottom:3px solid var(--soil)}
.ledger-head span{font-family:var(--mono);font-size:14px;letter-spacing:.2em}
.ledger-head span:first-child{color:var(--muted)} .ledger-head span:last-child{color:var(--rust)}
.ledger-row{padding:44px 0;border-bottom:1px solid var(--rule)}
.ledger-row .ref{font-family:var(--mono);font-size:13px;display:block;margin-bottom:10px}
.said .ref{color:var(--muted)} .record .ref{color:var(--rust)}
.said p{font-family:var(--display);font-weight:700;font-size:clamp(22px,2.2vw,30px);line-height:1.25}
.record p{font-size:clamp(17px,1.4vw,20px);line-height:1.6}
.side-label{display:none;font-family:var(--mono);font-size:11px;letter-spacing:.2em;margin-bottom:4px}
@media (max-width:760px){.ledger-head{display:none}.ledger-row{grid-template-columns:1fr;row-gap:22px}.side-label{display:block}.said .side-label{color:var(--muted)}.record .side-label{color:var(--rust)}.record{border-left:3px solid var(--accent);padding-left:16px}}
.dark-stats{display:grid;grid-template-columns:repeat(3,1fr)}
.dark-stats .stat{border-right:1px solid var(--line)}
.dark-stats b{color:var(--accent);font-size:clamp(48px,5vw,72px)}
.dark-stats span{color:var(--on-dark)}
@media (max-width:800px){.dark-stats{grid-template-columns:1fr}.dark-stats .stat{border-right:0;border-bottom:1px solid var(--line)}}
.callout{background:var(--accent);padding:36px;display:flex;flex-direction:column;gap:14px;align-self:start}
.callout strong{font-family:var(--display);font-weight:900;font-size:32px;line-height:1.1}
.callout .tel{color:var(--soil);font-weight:600;text-align:center}
.update{display:grid;grid-template-columns:7fr 1fr 4fr;gap:24px}
.update .callout{grid-column:3}
@media (max-width:900px){.update{grid-template-columns:1fr}.update .callout{grid-column:auto}}
.sources{font-size:15px;color:var(--muted);margin-top:28px}

/* ---- Blue & champagne refinements ---- */
:root{--gold:#C9A45C;--sky:#8EC5F0}
.mark{border-color:var(--gold);color:#fff}
.dark{background:#0B1F3A;background-image:radial-gradient(circle at 85% -10%,rgba(142,197,240,.16),transparent 55%)}
.site-header{background:rgba(11,31,58,.96);backdrop-filter:blur(8px);border-bottom:1px solid rgba(201,164,92,.35)}
.btn-accent{background:var(--sky);color:#0B1F3A}
.btn-ghost{border-color:rgba(201,164,92,.7)}
.btn-ghost:hover{border-color:var(--gold)}
.accent-bg{background:linear-gradient(120deg,#CFE6F9 0%,#8EC5F0 100%)}
.stats .stat b,.contact h2{color:#0B1F3A}
.exhibit{border-color:rgba(201,164,92,.45)}
.exhibit-card{border-top:3px solid var(--gold)}
.steps{border-top-color:var(--gold)}
.steps .n{color:var(--sky)}
.timeline{border-left-color:var(--gold)}
.service{border-top:3px solid var(--sky)}
.project.featured{background:linear-gradient(160deg,#13305A,#0B1F3A);border:1px solid rgba(201,164,92,.5)}
.project.featured .eyebrow,.project.featured .more{color:var(--sky)}
.ledger-head{border-bottom-color:var(--gold)}
.dark-stats b{color:var(--sky)}
.callout{background:linear-gradient(140deg,#CFE6F9,#8EC5F0);border-top:4px solid var(--gold)}
.quote blockquote{color:#0B1F3A}
.video a.thumb{background:linear-gradient(160deg,#13305A,#0B1F3A);border:1px solid rgba(201,164,92,.5)}
form.inspect{box-shadow:0 20px 50px -20px rgba(11,31,58,.45);border-top:4px solid var(--gold)}
.site-footer{border-top:1px solid rgba(201,164,92,.35)}
:focus-visible{outline-color:var(--gold)}

/* ---- Field photo gallery ---- */
.exhibit{background-position:center 62%;position:relative}
.exhibit .photo-note{align-self:flex-start;background:rgba(11,31,58,.78);color:#E4EEF8;padding:6px 10px;font-size:12px}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:14px;margin:0;padding:0;list-style:none}
.gallery li{position:relative;overflow:hidden;background:#13305A;margin:0}
.gallery li.big{grid-column:span 2;grid-row:span 2}
.gallery li.tall{grid-row:span 2}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.gallery a:hover img{transform:scale(1.04)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 16px 14px;background:linear-gradient(transparent,rgba(11,31,58,.92));color:#F5F9FD;font-size:15px;line-height:1.4;font-weight:500}
.gallery figure{margin:0;height:100%}
@media (prefers-reduced-motion:reduce){.gallery img{transition:none}}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:220px}}
@media (max-width:560px){.gallery{grid-template-columns:1fr;grid-auto-rows:240px}.gallery li.big,.gallery li.tall{grid-column:auto;grid-row:span 1}}
.exhibits{display:grid;grid-template-columns:1.35fr 1fr;gap:24px;align-items:start}
.exhibits figure{margin:0;background:#fff;padding:12px;border-top:4px solid var(--gold);box-shadow:0 20px 50px -24px rgba(11,31,58,.45)}
.exhibits figcaption{padding:14px 4px 4px;font-size:16px;color:var(--ink)}
@media (max-width:900px){.exhibits{grid-template-columns:1fr}}

.gallery{grid-auto-flow:dense}
.gallery li.wide{grid-column:span 2}
@media (max-width:560px){.gallery li.wide{grid-column:auto}}
.hero .exhibit{min-height:560px;background-position:center 40%}
.exhibit-card{padding:16px 18px}
.exhibit-card p{font-size:19px}
@media (max-width:900px){.hero .exhibit{min-height:380px}}

/* quieter */
h1{font-size:clamp(38px,4.6vw,64px);font-weight:700;letter-spacing:-.01em}
h2{font-weight:700}
.hero .exhibit{min-height:460px}
.accent-bg{background:#E4EEF8}
.stat b{font-weight:700}
.dark{background-image:none}
