:root{
  --void:#0E0A26; --indigo:#1B143F; --terracotta:#CC6640; --gold:#ECA226; --sand:#F2E8D8;
  --display:'Comfortaa','Trebuchet MS',ui-rounded,system-ui,sans-serif;
  --body:'Urbanist','Segoe UI',ui-sans-serif,system-ui,sans-serif;
  --pad:1.5rem;
}
@media(min-width:768px){ :root{ --pad:3rem; } }
@media(min-width:1200px){ :root{ --pad:5rem; } }

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{ margin:0; background:var(--void); color:#fff; font-family:var(--body); font-size:17px; line-height:1.55;
  -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img{ display:block; max-width:100%; height:auto; }
h1,h2,h3,h4{ font-family:var(--display); font-weight:600; margin:0; letter-spacing:-.03em; line-height:1.06; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
.wrap{ width:100%; max-width:1240px; margin:0 auto; padding:0 var(--pad); }
.skip{ position:absolute; left:-9999px; }
.skip:focus{ position:fixed; left:1rem; top:1rem; z-index:80; background:var(--gold); color:var(--void); padding:.75rem 1.25rem; border-radius:999px; font-weight:600; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{
  outline:2px solid var(--gold); outline-offset:4px; border-radius:3px; }

/* orbital spine */
#spine{ position:fixed; inset:0; width:100vw; height:100vh; pointer-events:none; z-index:0; }
#spine .ring{ fill:none; stroke:var(--gold); stroke-opacity:.13; stroke-width:1; }
#spine .ring.b{ stroke:var(--terracotta); stroke-opacity:.10; }
#sat{ transition:transform .1s linear; }
#sat circle{ fill:var(--gold); } #sat .halo{ fill:var(--gold); opacity:.20; }
.layer{ position:relative; z-index:1; }

/* nav */
.nav{ position:absolute; top:0; left:0; right:0; z-index:30; }
.nav .inner{ display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.5rem 0; }
.nav .logo img{ height:34px; width:auto; }
@media(min-width:768px){ .nav .logo img{ height:40px; } }
.menu{ display:none; align-items:center; gap:1.75rem; font-size:.92rem; color:rgba(255,255,255,.72); }
.menu a{ padding:.3rem 0; border-bottom:1px solid transparent; transition:color .2s,border-color .2s; }
.menu a:hover,.menu a[aria-current="page"]{ color:#fff; border-color:var(--gold); }
.menu .lang{ font-size:.8rem; letter-spacing:.1em; color:rgba(255,255,255,.5); border:1px solid rgba(255,255,255,.25); border-radius:999px; padding:.3rem .8rem; }
.menu .lang:hover{ color:var(--gold); border-color:var(--gold); }
.menu .nav-cta{ background:var(--gold); color:var(--void); font-family:var(--display); font-weight:600; border-radius:999px; padding:.55rem 1.15rem; border:0; }
.menu .nav-cta:hover{ background:#fff; color:var(--void); }
@media(min-width:1060px){ .menu{ display:flex; } .burger{ display:none; } }
.burger{ background:none; border:1px solid rgba(255,255,255,.3); color:#fff; border-radius:999px; padding:.55rem 1.1rem; font:inherit; font-size:.88rem; cursor:pointer; }
.drawer{ display:none; position:absolute; top:100%; left:0; right:0; background:var(--indigo); padding:1rem var(--pad) 2rem; border-top:1px solid rgba(255,255,255,.1); }
.drawer.open{ display:block; }
.drawer a{ display:block; padding:.85rem 0; border-bottom:1px solid rgba(255,255,255,.1); font-size:1.05rem; }
@media(min-width:1060px){ .drawer{ display:none !important; } }

/* hero */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; padding:7rem 0 5rem; overflow:hidden; }
.hero.short{ min-height:0; padding:9rem 0 5rem; }
@media(min-width:900px){ .hero.short{ padding:11rem 0 7rem; } }
.hero .bg{ position:absolute; inset:0; z-index:0; }
.hero .bg img{ width:100%; height:100%; object-fit:cover; object-position:70% 50%; opacity:.5; }
.hero .bg::after{ content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,var(--void) 12%,rgba(14,10,38,.72) 52%,rgba(14,10,38,.25) 100%),
             linear-gradient(0deg,var(--void) 0%,rgba(14,10,38,0) 30%); }
.hero .wrap{ position:relative; z-index:1; }
.eyebrow{ display:inline-flex; align-items:center; gap:.7rem; font-size:.8rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); margin-bottom:2rem; }
.eyebrow .pulse{ width:7px; height:7px; border-radius:50%; background:var(--gold); position:relative; }
.eyebrow .pulse::after{ content:''; position:absolute; inset:-5px; border-radius:50%; border:1px solid var(--gold); opacity:.5; animation:ping 2.6s ease-out infinite; }
@keyframes ping{ 0%{ transform:scale(.6); opacity:.6 } 100%{ transform:scale(1.5); opacity:0 } }
h1{ font-size:clamp(2.6rem,7.4vw,6rem); max-width:16ch; }
.hero.short h1{ font-size:clamp(2.2rem,5.6vw,4.3rem); max-width:20ch; }
h1 .dim{ color:rgba(255,255,255,.42); }
.lede{ margin-top:2rem; max-width:50ch; font-size:clamp(1.05rem,1.5vw,1.3rem); color:rgba(255,255,255,.66); font-weight:300; }
.actions{ display:flex; flex-wrap:wrap; gap:1.25rem 2rem; align-items:center; margin-top:2.75rem; }
.pill{ display:inline-flex; align-items:center; background:var(--gold); color:var(--void); font-family:var(--display); font-weight:600; font-size:.95rem; padding:1rem 2.1rem; border-radius:999px; border:0; cursor:pointer;
  transition:transform .22s cubic-bezier(.22,.61,.36,1), background-color .22s; }
.pill:hover{ background:#fff; transform:translateY(-2px); }
.pill.ghost{ background:transparent; color:#fff; border:1px solid rgba(255,255,255,.4); }
.pill.ghost:hover{ background:#fff; color:var(--void); }
.textlink{ font-size:.98rem; color:rgba(255,255,255,.7); border-bottom:1px solid rgba(255,255,255,.28); padding-bottom:.3rem; transition:color .2s,border-color .2s; }
.textlink:hover{ color:#fff; border-color:#fff; }
.sand .textlink,.light .textlink{ color:rgba(27,20,63,.75); border-color:rgba(27,20,63,.3); }
.sand .textlink:hover{ color:var(--terracotta); border-color:var(--terracotta); }

/* section scaffolding */
section{ position:relative; }
.dark{ background:var(--void); padding:5rem 0 6rem; }
.indigo{ background:var(--indigo); padding:5rem 0 6rem; }
.sand{ background:var(--sand); color:var(--indigo); padding:3rem 0 6rem; }
.terra{ background:var(--terracotta); color:#fff; padding:5rem 0; }
@media(min-width:900px){ .dark,.indigo{ padding:7rem 0 8rem; } .sand{ padding:4rem 0 8rem; } .terra{ padding:7rem 0; } }
.label{ font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:1.25rem; display:block; }
.sand .label{ color:var(--terracotta); }
h2{ font-size:clamp(1.9rem,4.2vw,3.2rem); max-width:20ch; }
.sub{ margin-top:1.5rem; max-width:56ch; color:rgba(255,255,255,.58); font-weight:300; font-size:1.08rem; }
.sand .sub{ color:rgba(27,20,63,.72); }
.terra .sub{ color:rgba(255,255,255,.92); }
.split{ display:grid; gap:3rem; }
@media(min-width:1000px){ .split{ grid-template-columns:5fr 7fr; gap:6rem; align-items:start; } .split .sticky{ position:sticky; top:14vh; } }

.curve{ display:block; width:100%; height:clamp(60px,9vw,150px); position:relative; z-index:1; margin-bottom:-1px; }
.curve path{ fill:var(--sand); }
.curve.up path{ fill:var(--void); }
.curve.toind path{ fill:var(--indigo); }
.curve.tovoid{ background:var(--indigo); } .curve.tovoid path{ fill:var(--void); }
.curve.sandbg{ background:var(--sand); } .curve.sandbg path{ fill:var(--void); }
.curve.voidbg{ background:var(--void); }

/* list rows */
.item{ padding:2rem 0; border-bottom:1px solid rgba(255,255,255,.12); }
.item:first-child{ border-top:1px solid rgba(255,255,255,.12); }
.item h3{ font-size:clamp(1.25rem,2.2vw,1.7rem); transition:color .28s; }
.item p{ margin-top:.65rem; color:rgba(255,255,255,.58); font-weight:300; max-width:52ch; }
.item:hover h3{ color:var(--gold); }
.sand .item{ border-color:rgba(27,20,63,.15); } .sand .item p{ color:rgba(27,20,63,.7); } .sand .item:hover h3{ color:var(--terracotta); }

/* cards */
.grid{ display:grid; gap:1.25rem; margin-top:3rem; }
@media(min-width:700px){ .grid.c2{ grid-template-columns:1fr 1fr; } .grid.c4{ grid-template-columns:1fr 1fr; } }
@media(min-width:1000px){ .grid.c3{ grid-template-columns:repeat(3,1fr); } .grid.c4{ grid-template-columns:repeat(4,1fr); } }
@media(min-width:700px) and (max-width:999px){ .grid.c3{ grid-template-columns:1fr 1fr; } }
.card{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:20px; padding:1.75rem; display:flex; flex-direction:column; gap:.75rem; transition:border-color .25s, transform .25s; }
.card:hover{ border-color:rgba(236,162,38,.5); transform:translateY(-3px); }
.card h3{ font-size:1.25rem; }
.card p{ color:rgba(255,255,255,.62); font-weight:300; font-size:.98rem; }
.card .tag{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.card .num{ font-family:var(--display); font-size:2.4rem; color:var(--gold); line-height:1; }
.card .meta{ margin-top:auto; padding-top:.9rem; border-top:1px solid rgba(255,255,255,.1); font-size:.85rem; color:rgba(255,255,255,.5); }
.card .meta b{ color:rgba(255,255,255,.8); font-weight:500; }
.sand .card{ background:#fff; border-color:rgba(27,20,63,.1); }
.sand .card p{ color:rgba(27,20,63,.7); } .sand .card .tag{ color:var(--terracotta); } .sand .card .num{ color:var(--terracotta); }
.sand .card .meta{ border-color:rgba(27,20,63,.12); color:rgba(27,20,63,.55); } .sand .card .meta b{ color:var(--indigo); }
.sand .card:hover{ border-color:var(--terracotta); }
.indigo .card{ background:rgba(255,255,255,.06); }

.stat{ border-top:1px solid rgba(255,255,255,.2); padding-top:1.25rem; }
.stat .big{ font-family:var(--display); font-size:clamp(2.2rem,4.6vw,3.6rem); color:var(--gold); letter-spacing:-.04em; line-height:1; }
.stat p{ margin-top:.75rem; color:rgba(255,255,255,.62); font-weight:300; font-size:.98rem; }
.src{ margin-top:2.5rem; font-size:.78rem; color:rgba(255,255,255,.4); max-width:80ch; }
.sand .src{ color:rgba(27,20,63,.5); }

/* stage ladder */
.ladder{ display:grid; gap:1rem; margin-top:3rem; counter-reset:st; }
@media(min-width:1000px){ .ladder{ grid-template-columns:repeat(4,1fr); } }
.step{ position:relative; background:#fff; border:1px solid rgba(27,20,63,.1); border-radius:20px; padding:1.75rem; counter-increment:st; display:flex; flex-direction:column; gap:.7rem; }
.step::before{ content:counter(st); font-family:var(--display); font-weight:700; font-size:.85rem; width:2rem; height:2rem; border-radius:50%; background:var(--indigo); color:var(--gold); display:grid; place-items:center; }
.step .quote{ font-family:var(--display); font-size:1.12rem; line-height:1.25; color:var(--indigo); letter-spacing:-.02em; }
.step dl{ margin:0; display:grid; gap:.55rem; font-size:.94rem; }
.step dt{ font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--terracotta); }
.step dd{ margin:0; color:rgba(27,20,63,.75); font-weight:300; }
.step .entry{ margin-top:auto; padding-top:.9rem; border-top:1px solid rgba(27,20,63,.12); font-size:.85rem; color:var(--indigo); font-weight:600; }

/* phases */
.phases{ display:grid; gap:1rem; margin-top:3rem; }
@media(min-width:1000px){ .phases{ grid-template-columns:repeat(4,1fr); } }
.phase{ border-top:3px solid var(--gold); background:rgba(255,255,255,.05); padding:1.6rem 1.5rem 1.8rem; border-radius:0 0 18px 18px; display:flex; flex-direction:column; gap:.65rem; }
.phase.p4{ border-color:var(--terracotta); }
.phase .k{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.phase.p4 .k{ color:#F0A58A; }
.phase h3{ font-size:1.25rem; }
.phase p{ color:rgba(255,255,255,.62); font-weight:300; font-size:.97rem; }
.phase .gate{ margin-top:auto; padding-top:.9rem; border-top:1px dashed rgba(255,255,255,.2); font-size:.85rem; color:rgba(255,255,255,.7); }
.phase .gate b{ color:var(--gold); font-weight:600; }
.note{ margin-top:2rem; padding:1.25rem 1.5rem; border-left:3px solid var(--gold); background:rgba(255,255,255,.05); border-radius:0 14px 14px 0; max-width:62ch; color:rgba(255,255,255,.8); font-weight:300; }
.sand .note{ background:#fff; color:var(--indigo); border-color:var(--terracotta); }

/* figures with image + fallback art */
.ph{ position:relative; overflow:hidden; border-radius:22px; background:
  radial-gradient(120% 90% at 80% 10%, rgba(236,162,38,.22), transparent 55%),
  radial-gradient(90% 90% at 10% 100%, rgba(204,102,64,.28), transparent 60%), var(--indigo);
  min-height:260px; }
.ph::before{ content:''; position:absolute; inset:0;
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'><g fill='none' stroke='%23ECA226' stroke-opacity='.25'><circle cx='280' cy='160' r='150'/><circle cx='280' cy='160' r='100' stroke='%23CC6640'/><circle cx='280' cy='160' r='60'/></g><circle cx='280' cy='10' r='5' fill='%23ECA226'/></svg>") center/cover no-repeat; }
.ph img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ph figcaption{ position:absolute; left:0; right:0; bottom:0; padding:2.5rem 1.25rem .9rem; font-size:.75rem; color:rgba(255,255,255,.75); background:linear-gradient(0deg,rgba(14,10,38,.85),transparent); }
.ph.tall{ min-height:380px; } .ph.wide{ min-height:320px; }
@media(min-width:900px){ .ph.wide{ min-height:420px; } }
.figrow{ display:grid; gap:1.25rem; margin-top:3rem; }
@media(min-width:900px){ .figrow{ grid-template-columns:1fr 1fr; } }

/* segments */
.seg{ display:grid; gap:1.25rem; margin-top:3rem; }
@media(min-width:1000px){ .seg{ grid-template-columns:repeat(3,1fr); } }
.seg .card h3{ font-size:1.45rem; }
.seg ul{ margin-top:.4rem; display:grid; gap:.4rem; font-size:.95rem; color:rgba(255,255,255,.62); font-weight:300; }
.seg li{ padding-left:1.1rem; position:relative; } .seg li::before{ content:''; position:absolute; left:0; top:.65em; width:6px; height:6px; border-radius:50%; background:var(--gold); }
.rules{ margin-top:1.25rem; padding:1.1rem 1.4rem; border:1px dashed rgba(255,255,255,.25); border-radius:16px; color:rgba(255,255,255,.7); font-size:.95rem; }
.rules b{ color:var(--gold); font-weight:600; }

/* tier ladder */
.tiers{ display:grid; gap:0; margin-top:3rem; border-top:1px solid rgba(27,20,63,.15); }
.tier{ display:grid; gap:.4rem 2rem; padding:1.5rem 0; border-bottom:1px solid rgba(27,20,63,.15); }
@media(min-width:900px){ .tier{ grid-template-columns:2.2fr 5fr 3fr; align-items:baseline; } }
.tier h3{ font-size:1.3rem; } .tier .scope{ color:rgba(27,20,63,.75); font-weight:300; } .tier .who{ font-size:.88rem; color:var(--terracotta); font-weight:600; }
.tier h3 span{ display:block; font-family:var(--body); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--terracotta); font-weight:600; margin-bottom:.3rem; }

/* filters */
.filters{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:2.5rem; }
.filters button{ background:transparent; border:1px solid rgba(255,255,255,.28); color:rgba(255,255,255,.75); border-radius:999px; padding:.5rem 1.2rem; font:inherit; font-size:.9rem; cursor:pointer; transition:all .2s; }
.filters button:hover{ border-color:var(--gold); color:var(--gold); }
.filters button[aria-pressed="true"]{ background:var(--gold); border-color:var(--gold); color:var(--void); font-weight:600; }
.status{ display:inline-flex; align-items:center; gap:.5rem; font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.status i{ width:8px; height:8px; border-radius:50%; background:var(--gold); display:inline-block; }
.status.done i{ background:#7FD1A3; } .status.prep i{ background:transparent; border:1.5px solid var(--gold); }
.card[hidden]{ display:none; }

/* roles */
.roles{ display:grid; gap:0; margin-top:3rem; }
.role{ display:grid; gap:.4rem 2rem; padding:1.6rem 0; border-top:1px solid rgba(255,255,255,.14); }
.role:last-child{ border-bottom:1px solid rgba(255,255,255,.14); }
@media(min-width:900px){ .role{ grid-template-columns:3fr 4fr 5fr; align-items:baseline; } }
.role h3{ font-size:1.25rem; } .role .brings,.role .gets{ color:rgba(255,255,255,.62); font-weight:300; font-size:.97rem; }
.role small{ display:block; font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:.25rem; }

/* flow (delivery model) */
.flow{ display:grid; gap:.75rem; margin-top:3rem; }
@media(min-width:1000px){ .flow{ grid-template-columns:repeat(5,1fr); } }
.flow div{ position:relative; border:1px solid rgba(255,255,255,.18); border-radius:16px; padding:1.25rem; }
.flow div b{ display:block; font-family:var(--display); font-size:1.1rem; margin-bottom:.4rem; color:var(--gold); }
.flow div span{ font-size:.92rem; color:rgba(255,255,255,.62); font-weight:300; }
.flow div.opt{ border-style:dashed; }

/* people */
.people{ display:grid; gap:1.5rem; margin-top:3rem; }
@media(min-width:900px){ .people{ grid-template-columns:1fr 1fr; } }
.person{ background:#fff; border-radius:22px; padding:2rem; border:1px solid rgba(27,20,63,.1); }
.person .av{ width:64px; height:64px; border-radius:50%; background:var(--indigo); color:var(--gold); display:grid; place-items:center; font-family:var(--display); font-weight:700; font-size:1.25rem; margin-bottom:1.1rem; }
.person h3{ font-size:1.5rem; } .person .role-t{ color:var(--terracotta); font-weight:600; font-size:.92rem; margin-top:.3rem; }
.person .lead-t{ margin-top:.9rem; font-size:.9rem; color:rgba(27,20,63,.6); }
.person ul{ margin-top:1rem; display:grid; gap:.55rem; color:rgba(27,20,63,.78); font-weight:300; font-size:.98rem; }
.person li{ padding-left:1.1rem; position:relative; } .person li::before{ content:''; position:absolute; left:0; top:.65em; width:6px; height:6px; border-radius:50%; background:var(--terracotta); }
.values{ display:grid; gap:1.25rem; margin-top:3rem; }
@media(min-width:700px){ .values{ grid-template-columns:1fr 1fr; } } @media(min-width:1000px){ .values{ grid-template-columns:repeat(4,1fr); } }
.values div{ border-top:2px solid var(--gold); padding-top:1rem; } .values h3{ font-size:1.2rem; } .values p{ margin-top:.5rem; color:rgba(255,255,255,.6); font-weight:300; font-size:.97rem; }

/* contact */
.contact .direct{ margin-top:2.5rem; display:grid; gap:.5rem; }
.contact .direct a{ color:var(--gold); border-bottom:1px solid rgba(236,162,38,.4); padding-bottom:.2rem; justify-self:start; }
.contact .direct span{ color:rgba(255,255,255,.45); }
.f input,.f textarea,.f select{ width:100%; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.22); padding:.85rem 0; color:#fff; font-family:var(--body); font-size:1.02rem; transition:border-color .22s; border-radius:0; }
.f select option{ color:#111; }
.f textarea{ min-height:120px; resize:vertical; }
.f input:focus,.f textarea:focus,.f select:focus{ outline:none; border-color:var(--gold); }
.f label{ display:block; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.45); margin-bottom:.2rem; }
.f input::placeholder,.f textarea::placeholder{ color:rgba(255,255,255,.26); }
.rowtwo{ display:grid; gap:2rem; } @media(min-width:560px){ .rowtwo{ grid-template-columns:1fr 1fr; } }
form .stack{ display:grid; gap:2rem; }
.submit{ border:0; cursor:pointer; background:var(--gold); color:var(--void); font-family:var(--display); font-weight:600; font-size:.95rem; padding:1rem 2.2rem; border-radius:999px; transition:background-color .22s,transform .22s; }
.submit:hover{ background:#fff; transform:translateY(-2px); } .submit:disabled{ opacity:.55; cursor:default; transform:none; }
.sendrow{ display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem; }
#msg{ font-size:.92rem; color:rgba(255,255,255,.6); } #msg.ok{ color:var(--gold); } #msg.err{ color:#F0A58A; }
.hp{ position:absolute; left:-9999px; }

/* band CTA */
.band h2{ max-width:24ch; font-weight:500; font-size:clamp(1.6rem,3.4vw,2.7rem); }
.band .actions .pill{ background:var(--void); color:#fff; } .band .actions .pill:hover{ background:#fff; color:var(--void); }
.band .textlink{ color:#fff; border-color:rgba(255,255,255,.5); }

/* teasers (home) */
.doors{ display:grid; gap:1.25rem; margin-top:3rem; }
@media(min-width:900px){ .doors{ grid-template-columns:1fr 1fr; } }
.door{ display:flex; flex-direction:column; gap:.8rem; padding:2.25rem; border-radius:24px; background:var(--indigo); color:#fff; transition:transform .25s, background .25s; }
.door:hover{ transform:translateY(-4px); background:#241a56; }
.door .tag{ font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); }
.door h3{ font-size:clamp(1.4rem,2.4vw,1.9rem); } .door p{ color:rgba(255,255,255,.65); font-weight:300; }
.door .go{ margin-top:.6rem; color:var(--gold); font-weight:600; font-family:var(--display); font-size:.95rem; }
.pillars{ display:grid; gap:2rem; margin-top:3.5rem; }
@media(min-width:900px){ .pillars{ grid-template-columns:repeat(3,1fr); gap:3rem; } }
.pillars div{ border-top:2px solid var(--terracotta); padding-top:1.1rem; }
.pillars h3{ font-size:1.7rem; color:var(--indigo); } .pillars p{ margin-top:.6rem; color:rgba(27,20,63,.72); font-weight:300; }

footer{ background:var(--void); padding:4rem 0 3rem; border-top:1px solid rgba(255,255,255,.08); }
.fgrid{ display:grid; gap:2.5rem; }
@media(min-width:900px){ .fgrid{ grid-template-columns:4fr 3fr 3fr 3fr; } }
footer img{ height:30px; width:auto; }
footer h4{ font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.45); font-family:var(--body); font-weight:600; margin-bottom:.9rem; }
footer li{ margin-bottom:.5rem; } footer a{ color:rgba(255,255,255,.7); } footer a:hover{ color:var(--gold); }
footer .meta{ margin-top:1.1rem; font-size:.88rem; color:rgba(255,255,255,.45); line-height:1.7; }
.rights{ margin-top:3rem; font-size:.76rem; color:rgba(255,255,255,.3); line-height:1.7; }

/* motion */
.rise{ opacity:0; transform:translateY(20px); animation:rise .95s cubic-bezier(.22,.61,.36,1) forwards; }
.r1{animation-delay:.1s}.r2{animation-delay:.28s}.r3{animation-delay:.46s}.r4{animation-delay:.64s}
@keyframes rise{ to{ opacity:1; transform:none; } }
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .8s cubic-bezier(.22,.61,.36,1), transform .8s cubic-bezier(.22,.61,.36,1); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; } .rise{ animation:none; opacity:1; transform:none; } .reveal{ opacity:1; transform:none; transition:none; }
  .eyebrow .pulse::after{ animation:none; } #sat{ transition:none; }
}

.ph.noimg figcaption{ display:none; }
.flow.f4{ }
@media(min-width:1000px){ .flow.f4{ grid-template-columns:repeat(4,1fr); } }
.mt{ margin-top:3rem; }
.credits{ margin-top:1.2rem; max-width:90ch; }

.card .cover{ width:calc(100% + 3.5rem); margin:-1.75rem -1.75rem .5rem; max-width:none; height:150px; object-fit:cover; border-radius:20px 20px 0 0; }
.person .av.photo{ width:96px; height:96px; object-fit:cover; border-radius:50%; }
