:root{
  --ink:#0B0D0E; --ink-2:#14181A; --ink-3:#1B2023; --line:#262D30; --chalk:#ECEAE4; --chalk-2:#B9BDBD; --steel:#9AA6AC;
  --ice:#6FD6EA; --ice-deep:#2FA9C2;
  --ivory:#F4F0E8; --ivory-2:#EAE4D8; --umber:#26211E; --brass:#7A5C2E; --brass-soft:#B08D57; --mist:#665F58;
  --serif:"DM Serif Display", Georgia, "Times New Roman", serif;
  --sans:"Archivo", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gut:clamp(16px,4vw,48px);
  --max:1240px;
  --ease:cubic-bezier(.2,.7,.1,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--chalk);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--ice);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gut)}
[id]{scroll-margin-top:76px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.label{font-family:var(--sans);font-stretch:122%;font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);margin:0}
.label b{color:var(--ice);font-weight:600}
.skip{position:absolute;left:12px;top:-60px;background:var(--ice);color:var(--ink);padding:10px 14px;border-radius:6px;z-index:100;font-weight:700;text-decoration:none}
.skip:focus{top:12px}
.hide{display:none!important}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;font-family:var(--sans);font-weight:650;font-size:16px;text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:transform .2s var(--ease),background .2s,color .2s,border-color .2s}
.btn:active{transform:scale(.98)}
.btn-ice{background:var(--ice);color:var(--ink)}
.btn-ice:hover{background:#9BE6F3}
.btn-ghost{border-color:#3A4448;color:var(--chalk);background:transparent}
.btn-ghost:hover{border-color:var(--chalk)}
.btn svg{width:18px;height:18px;flex:none}

/* header */
.top{position:sticky;top:0;z-index:40;background:rgba(11,13,14,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:10px}
.brand{display:flex;align-items:center;text-decoration:none;min-height:44px;flex:none}
.brand img{width:74px;height:auto}
.nav{display:flex;gap:2px;align-items:center}
.nav a{font-size:14px;font-weight:600;text-decoration:none;color:var(--chalk-2);padding:12px 11px;border-radius:8px;min-height:44px;display:inline-flex;align-items:center;white-space:nowrap}
.nav a:hover,.nav a[aria-current="page"]{color:var(--chalk)}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--ice)}
.nav .call{color:var(--ink);background:var(--ice);border-radius:999px;padding:10px 16px;margin-left:6px}
.nav .call[aria-current]{box-shadow:none}
.nav .s{display:none}
@media (max-width:820px){.nav .l{display:none}.nav .s{display:inline}.nav .dk{display:none}.nav a{padding:12px 8px;font-size:14px}.nav .call{padding:10px 14px;margin-left:4px}.brand img{width:62px}}

/* section heads */
section{position:relative}
.sec{padding:clamp(64px,9vw,120px) 0}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.sec-head h2,.sec-head h1{font-family:var(--serif);font-weight:400;font-size:clamp(36px,5.4vw,68px);line-height:.98;margin:10px 0 0;letter-spacing:-.01em}
.sec-head h2 em,.sec-head h1 em{font-style:italic;color:var(--ice)}
.sec-head > p{color:var(--chalk-2);margin:0;max-width:30em;justify-self:end}
@media (max-width:820px){.sec-head{grid-template-columns:1fr;gap:14px}.sec-head > p{justify-self:start}}

/* footer */
footer{background:var(--ink);color:var(--chalk-2);padding:clamp(56px,8vw,96px) 0 120px;border-top:1px solid var(--line)}
.f-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:32px}
.f-grid h2{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4vw,46px);color:var(--chalk);line-height:1.02;margin:10px 0 16px}
.f-grid ul{list-style:none;margin:0;padding:0}
.f-grid li a,.f-grid li span{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:var(--chalk)}
.f-grid li a:hover{color:var(--ice)}
.f-grid .label{display:block;margin-bottom:6px}
.credit{margin-top:56px;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px;color:#7D888D;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
@media (max-width:820px){.f-grid{grid-template-columns:1fr 1fr;gap:20px 16px}.f-grid > div:first-child{grid-column:1/-1}.credit{margin-top:32px}footer{padding-top:48px}}

/* mobile bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:none;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(11,13,14,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.mbar a{flex:1;min-height:48px;display:flex;align-items:center;justify-content:center;border-radius:999px;font-weight:650;font-size:15px;text-decoration:none;border:1.5px solid #3A4448;color:var(--chalk)}
.mbar a.p{background:var(--ice);border-color:var(--ice);color:var(--ink);flex:1.35}
@media (max-width:820px){.mbar{display:flex}}

/* wipe reveal */
.wipe{clip-path:inset(0 100% 0 0);transition:clip-path 1.05s var(--ease)}
.wipe.in{clip-path:inset(0 0 0 0)}
@media (prefers-reduced-motion:reduce){.wipe{clip-path:none;transition:none}html{scroll-behavior:auto}}

/* memorial (light) theme */
body.calm{background:var(--ivory);color:var(--umber)}
body.calm .top{background:rgba(244,240,232,.92);border-bottom-color:#D9D1C2}
body.calm .nav a{color:#5A524C}
body.calm .nav a:hover,body.calm .nav a[aria-current="page"]{color:var(--umber)}
body.calm .nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--brass-soft)}
body.calm .nav .call{background:var(--umber);color:var(--ivory)}
body.calm .brand{background:var(--ink);border-radius:8px;padding:2px 6px}
body.calm .mbar{background:rgba(244,240,232,.95);border-top-color:#D9D1C2}
body.calm .mbar a{color:var(--umber);border-color:#BDB3A2}
body.calm .mbar a.p{background:var(--umber);border-color:var(--umber);color:var(--ivory)}
body.calm :focus-visible{outline-color:var(--brass)}
body.calm .label{color:var(--brass)}
