/* ============================================================
   PT Gemilang Cakrawala Persada
   Palette drawn from the company mark (steel blue-grey) and from
   the Parepare night photograph: void sky, white dish, red lamp.
   ============================================================ */

:root{
  --ink:#070C12;
  --night:#0B121B;
  --steel:#101922;
  --rule:#1F2C39;
  --rule-soft:#182330;

  --slate:#7E96B8;
  --slate-dim:#7387A6;
  --slate-ink:#4C6180;   /* slate for paper sections - AA on both light grounds */
  --ice:#E0E8F2;
  --mute:#8FA1B8;

  --paper:#ECEEF1;
  --paper-2:#E2E6EB;
  --graphite:#101821;
  --graphite-mute:#4B5967;
  --rule-l:#C9D0D9;

  --signal:#D2402A;

  --f-display:'Archivo','Archivo Fallback',system-ui,sans-serif;
  --f-body:'IBM Plex Sans',system-ui,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,monospace;

  --gut:clamp(20px,5vw,56px);
  --maxw:1280px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--ink);
  color:var(--ice);
  font-family:var(--f-body);
  font-size:clamp(15px,1.02vw,16.5px);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block}
a{color:inherit}

::selection{background:var(--slate);color:var(--ink)}

.skip{
  position:absolute;left:-999px;top:0;z-index:200;
  background:var(--ice);color:var(--ink);padding:12px 18px;
  font-family:var(--f-mono);font-size:12px;
}
.skip:focus{left:8px;top:8px}

:focus-visible{outline:2px solid var(--slate);outline-offset:3px}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}

/* ── shared type ───────────────────────────────────────────── */
h1,h2,h3{
  font-family:var(--f-display);
  font-weight:800;
  font-variation-settings:'wdth' 108;
  text-transform:uppercase;
  letter-spacing:-.022em;
  line-height:.98;
  margin:0;
  text-wrap:balance;
}
h2{font-size:clamp(1.65rem,3.3vw,2.85rem)}
h3{font-size:clamp(.98rem,1.35vw,1.16rem);font-weight:700;font-variation-settings:'wdth' 100;letter-spacing:.005em}

.tag{
  font-family:var(--f-mono);font-size:11px;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--slate);margin:0 0 14px;
}
.col-note{color:var(--mute);font-size:.9rem;margin:16px 0 0;max-width:34ch}

/* ── header ────────────────────────────────────────────────── */
header.site{
  position:fixed;inset:0 0 auto 0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:16px var(--gut);
  transition:background .35s ease,border-color .35s ease,padding .35s ease;
  border-bottom:1px solid transparent;
}
header.site.stuck{
  background:rgba(7,12,18,.86);
  backdrop-filter:blur(14px) saturate(140%);
  border-bottom-color:var(--rule);
  padding-block:11px;
}
.brand img{height:30px;width:auto;filter:brightness(1.22) contrast(1.06)}
@media (max-width:640px){.brand img{height:24px}}

.site-nav{display:flex;align-items:center;gap:20px}
.site-nav a{
  font-family:var(--f-mono);font-size:11.5px;letter-spacing:.09em;
  text-transform:uppercase;text-decoration:none;color:var(--mute);
  padding-block:6px;position:relative;transition:color .2s;
}
.site-nav a::after{
  content:'';position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--slate);transition:right .28s cubic-bezier(.2,.7,.2,1);
}
.site-nav a:hover{color:var(--ice)}
.site-nav a:hover::after{right:0}
.lang{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;
  color:var(--slate);border:1px solid var(--rule);padding:8px 10px;
}
.lang::after{display:none}
.lang:hover{color:var(--ink);background:var(--slate);border-color:var(--slate)}
.site-nav .nav-cta{
  color:var(--ice);border:1px solid var(--rule);padding:8px 14px;
}
.site-nav .nav-cta::after{display:none}
.site-nav .nav-cta:hover{background:var(--ice);color:var(--ink);border-color:var(--ice)}

.nav-toggle{
  display:none;align-items:center;gap:9px;background:none;border:0;cursor:pointer;
  color:var(--ice);font-family:var(--f-mono);font-size:11.5px;letter-spacing:.09em;
  text-transform:uppercase;padding:8px 0;
}
.nav-toggle span{width:20px;height:9px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
.menu-mobile{
  position:fixed;inset:60px 0 auto 0;z-index:99;
  background:rgba(7,12,18,.97);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--rule);
  padding:8px var(--gut) 22px;
}
.menu-mobile a{
  display:block;padding:11px 0;border-bottom:1px solid var(--rule-soft);
  text-decoration:none;font-family:var(--f-mono);font-size:12.5px;
  letter-spacing:.08em;text-transform:uppercase;color:var(--mute);
}
.menu-mobile a:last-child{border-bottom:0;color:var(--ice)}

@media (max-width:1180px){        /* nav carries 9 items + language switch */
  .site-nav{display:none}
  .nav-toggle{display:flex}
}

/* ── hero ──────────────────────────────────────────────────── */
.hero{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:clamp(88px,13svh,140px) 0 0;overflow:hidden;background:var(--ink);
}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:58% 45%}
.hero-media::after{
  content:'';position:absolute;inset:0;
  background:
    linear-gradient(to top,rgba(7,12,18,.97) 0%,rgba(7,12,18,.72) 34%,rgba(7,12,18,.25) 66%,rgba(7,12,18,.72) 100%),
    linear-gradient(to right,rgba(7,12,18,.9) 0%,rgba(7,12,18,.35) 52%,rgba(7,12,18,0) 88%);
}

.reticle{position:absolute;inset:22px;pointer-events:none;z-index:2}
.reticle .c{position:absolute;width:38px;height:38px;border:0 solid rgba(126,150,184,.55)}
.reticle .tl{top:0;left:0;border-top-width:1px;border-left-width:1px}
.reticle .tr{top:0;right:0;border-top-width:1px;border-right-width:1px}
.reticle .bl{bottom:0;left:0;border-bottom-width:1px;border-left-width:1px}
.reticle .br{bottom:0;right:0;border-bottom-width:1px;border-right-width:1px}
.reticle .ticks-x,.reticle .ticks-y{position:absolute;opacity:.26}
.reticle .ticks-x{
  left:52px;right:52px;bottom:0;height:7px;
  background:repeating-linear-gradient(to right,rgba(126,150,184,.85) 0 1px,transparent 1px 18px);
  -webkit-mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(to right,transparent,#000 12%,#000 88%,transparent);
}
.reticle .ticks-y{
  top:52px;bottom:52px;left:0;width:7px;
  background:repeating-linear-gradient(to bottom,rgba(126,150,184,.85) 0 1px,transparent 1px 18px);
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 88%,transparent);
}
@media (max-width:720px){.reticle{display:none}}

.hero-body{
  position:relative;z-index:3;
  max-width:var(--maxw);margin-inline:auto;width:100%;
  padding:0 var(--gut) clamp(28px,5vh,54px);
}
.eyebrow{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--slate);margin:0 0 clamp(14px,2.6svh,28px);
}
.eyebrow i,.hero-caption i{font-style:normal;opacity:.5;padding-inline:5px}

h1{
  font-size:clamp(2.2rem,min(8.2vw,15svh),6.4rem);
  font-weight:900;font-variation-settings:'wdth' 112;
  letter-spacing:-.038em;line-height:.9;
  margin:0 0 clamp(14px,2.6svh,28px);
  text-transform:uppercase;
}
h1 span{display:block;overflow:hidden}
h1 b{display:block;font-weight:inherit}
h1 span:last-child b{color:var(--slate)}

.hero-lede{
  max-width:56ch;font-size:clamp(1rem,1.32vw,1.17rem);
  color:#C6D3E2;margin:0 0 clamp(18px,3svh,32px);
  text-wrap:pretty;
}
.hero-act{display:flex;flex-wrap:wrap;gap:12px;margin:0}

.btn{
  display:inline-block;text-decoration:none;
  font-family:var(--f-mono);font-size:12px;letter-spacing:.11em;text-transform:uppercase;
  padding:14px 24px;background:var(--ice);color:var(--ink);
  border:1px solid var(--ice);transition:background .22s,color .22s,transform .22s;
}
.btn:hover{background:var(--slate);border-color:var(--slate);color:var(--ink)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ice);border-color:rgba(224,232,242,.36)}
.btn.ghost:hover{background:rgba(224,232,242,.1);border-color:var(--ice);color:var(--ice)}

.hero-caption{
  position:absolute;right:26px;bottom:96px;z-index:3;
  writing-mode:vertical-rl;
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(143,161,184,.7);margin:0;white-space:nowrap;
}
@media (max-width:1180px),(max-height:680px){.hero-caption{display:none}}

.statusbar{
  position:relative;z-index:3;
  display:flex;flex-wrap:wrap;gap:0;margin:0;
  border-top:1px solid var(--rule);
  background:rgba(7,12,18,.5);backdrop-filter:blur(6px);
}
.statusbar span{
  flex:1 1 auto;padding:15px clamp(14px,2.4vw,26px);
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--mute);border-left:1px solid var(--rule-soft);white-space:nowrap;
}
.statusbar span:first-child{border-left:0}
.statusbar b{color:var(--ice);font-weight:500}
@media (max-width:820px){
  .statusbar{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .statusbar::-webkit-scrollbar{display:none}
}

/* ── bands ─────────────────────────────────────────────────── */
.band{padding-block:clamp(64px,9vw,124px)}
.band.tight{padding-top:0}
.night-band{background:var(--steel);border-block:1px solid var(--rule)}

.band.paper{background:var(--paper);color:var(--graphite)}
.band.paper .tag{color:var(--slate-ink)}
.band.paper .col-note{color:var(--graphite-mute)}
.band.paper.tint{background:var(--paper-2);border-top:1px solid var(--rule-l)}

.split{display:grid;grid-template-columns:minmax(0,280px) minmax(0,1fr);gap:clamp(30px,5.5vw,90px);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:30px}}
.col-label h2{
  margin-top:2px;
  font-size:clamp(1.35rem,2.25vw,2rem);
  overflow-wrap:break-word;hyphens:auto;
}

/* ── letter ────────────────────────────────────────────────── */
.letter{
  border-top:2px solid var(--graphite);padding-top:26px;
  max-width:62ch;font-size:clamp(1rem,1.25vw,1.1rem);
}
.letter p{margin:0 0 1.15em;text-wrap:pretty}
.salam{font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate-ink)}
.sign{margin-top:34px;padding-top:22px;border-top:1px solid var(--rule-l)}
.sign-name{
  font-family:var(--f-display);font-weight:700;font-variation-settings:'wdth' 100;
  font-size:1.32rem;letter-spacing:-.01em;margin:10px 0 2px !important;
}
.sign-role{font-family:var(--f-mono);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--graphite-mute);margin:0 !important}

/* ── index list (bidang usaha) ─────────────────────────────── */
.index-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.index-list li{
  display:grid;grid-template-columns:minmax(0,15.5rem) minmax(0,1fr);
  gap:8px clamp(16px,3vw,44px);
  padding:16px 4px 16px 0;border-bottom:1px solid var(--rule);
  position:relative;transition:padding-left .3s cubic-bezier(.2,.7,.2,1);
}
.index-list li::before{
  content:'';position:absolute;left:0;top:-1px;height:1px;width:0;
  background:var(--slate);transition:width .45s cubic-bezier(.2,.7,.2,1);
}
.index-list li:hover{padding-left:16px}
.index-list li:hover::before{width:100%}
.index-list .k{
  font-family:var(--f-display);font-weight:700;font-variation-settings:'wdth' 102;
  font-size:1.05rem;letter-spacing:-.008em;color:var(--ice);
}
.index-list .v{color:var(--mute);font-size:.92rem}
@media (max-width:620px){.index-list li{grid-template-columns:1fr}}

/* ── visi & misi ───────────────────────────────────────────── */
.visi{
  margin:0;padding:0 0 0 clamp(18px,2.4vw,30px);
  border-left:2px solid var(--slate);
  font-family:var(--f-display);font-weight:600;font-variation-settings:'wdth' 96;
  font-size:clamp(1.25rem,2.5vw,1.95rem);line-height:1.24;letter-spacing:-.018em;
  color:var(--ice);text-wrap:pretty;text-transform:none;
}
.misi-tag{margin:clamp(34px,5vw,52px) 0 0}
.misi{list-style:none;margin:0;padding:0;counter-reset:m}
.misi li{
  counter-increment:m;position:relative;
  padding:14px 0 14px 44px;border-bottom:1px solid var(--rule);color:var(--ice);
}
.misi li::before{
  content:counter(m,decimal-leading-zero);position:absolute;left:0;top:15px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;color:var(--slate-dim);
}

/* ── prinsipal ─────────────────────────────────────────────── */
.agency{margin:0;border-top:2px solid var(--graphite)}
.agency>div{
  display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);
  gap:4px clamp(16px,3vw,44px);
  padding:18px 0;border-bottom:1px solid var(--rule-l);
}
.agency dt{
  font-family:var(--f-display);font-weight:700;font-variation-settings:'wdth' 102;
  font-size:1.04rem;letter-spacing:-.008em;
}
.agency dd{margin:0;color:var(--graphite-mute);font-size:.94rem}
.agency a{color:var(--slate-ink);text-decoration:none;border-bottom:1px solid currentColor;white-space:nowrap}
.agency a:hover{color:var(--graphite)}
@media (max-width:620px){.agency>div{grid-template-columns:1fr}}

.wall-tag{margin:clamp(38px,5vw,56px) 0 0}
.logo-wall{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  border-top:1px solid var(--rule-l);border-left:1px solid var(--rule-l);
}
.logo-wall li{
  border-right:1px solid var(--rule-l);border-bottom:1px solid var(--rule-l);
  aspect-ratio:16/9;display:grid;place-items:center;padding:20px;
  background:#F5F6F8;transition:background .25s;
}
.logo-wall li:hover{background:#fff}
.logo-wall img{
  max-height:58px;max-width:100%;width:auto;object-fit:contain;
  filter:grayscale(1) contrast(.92);opacity:.72;transition:filter .3s,opacity .3s;
}
.logo-wall li:hover img{filter:none;opacity:1}

/* ── klien ─────────────────────────────────────────────────── */
.clients{list-style:none;margin:0;padding:0;border-top:2px solid var(--graphite)}
.clients li{
  display:grid;grid-template-columns:112px minmax(0,1fr);
  gap:clamp(16px,2.6vw,34px);align-items:center;
  padding:22px 0;border-bottom:1px solid var(--rule-l);
}
.clients img{max-height:66px;max-width:100%;width:auto;object-fit:contain;margin-inline:auto}
.c-name{
  margin:0 0 4px;
  font-family:var(--f-display);font-weight:700;font-variation-settings:'wdth' 102;
  font-size:clamp(1rem,1.5vw,1.16rem);letter-spacing:-.01em;
}
.c-sub{margin:0;color:var(--graphite-mute);font-size:.87rem;line-height:1.5}

/* ── ledger ────────────────────────────────────────────────── */
.ledger-band{
  background:var(--night);padding-block:clamp(64px,9vw,124px);
  border-top:1px solid var(--rule);
}
.ledger-head{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,30ch);
  gap:clamp(20px,4vw,60px);align-items:end;
  padding-bottom:clamp(26px,4vw,42px);
}
.ledger-note{margin:0;color:var(--mute);font-size:.88rem}
@media (max-width:820px){.ledger-head{grid-template-columns:1fr;align-items:start}}

.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.filters button{
  font-family:var(--f-mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--mute);background:transparent;border:1px solid var(--rule);
  padding:9px 14px;cursor:pointer;transition:.22s;
}
.filters button b{color:var(--slate-dim);font-weight:500;margin-left:6px}
.filters button:hover{border-color:var(--slate-dim);color:var(--ice)}
.filters button.on{background:var(--ice);border-color:var(--ice);color:var(--ink)}
.filters button.on b{color:var(--signal)}

.ledger{border-top:1px solid var(--slate-dim)}
.lg-head,.lg-row{
  display:grid;
  grid-template-columns:36px minmax(0,1.5fr) minmax(0,1.15fr) minmax(120px,.8fr) 52px;
  gap:clamp(10px,1.8vw,26px);
}
.lg-head{
  padding:11px 0;border-bottom:1px solid var(--rule);
  font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--slate-dim);
}
.lg-head span:last-child{text-align:right}
.ax-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ax-head b{font-weight:400}
.ax-head::before{
  content:'';flex:1 1 auto;order:1;height:1px;background:var(--rule);
}
.ax-head b:first-child{order:0}
.ax-head b:last-child{order:2}

.lg-row{
  position:relative;padding:16px 0 17px;border-bottom:1px solid var(--rule-soft);
  align-items:center;
  opacity:0;transform:translateY(10px);
  transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1),background .2s;
}
.lg-row.in{opacity:1;transform:none}
.lg-row:hover{background:rgba(126,150,184,.05)}
.lg-row.off{display:none}

.lg-row .n{font-family:var(--f-mono);font-size:11px;color:var(--slate-dim);letter-spacing:.06em;align-self:start;padding-top:2px}
.lg-row .w{font-weight:500;color:var(--ice);font-size:.95rem;line-height:1.38;align-self:center}
.lg-row .c{font-size:.82rem;color:var(--mute);line-height:1.45}

/* year axis: a shared 2012-2023 scale, one marker per row */
.ax{position:relative;height:11px;display:block}
.ax::before{
  content:'';position:absolute;left:0;right:0;top:5px;height:1px;
  background:var(--rule);
}
.ax i{display:none}
.lg-row[data-y] .ax i{
  display:block;
  position:absolute;top:2px;left:var(--x,0);width:7px;height:7px;
  margin-left:-3px;background:var(--slate);
  transform:scale(0);transition:transform .5s cubic-bezier(.2,.9,.3,1.3);
}
.lg-row[data-y].in .ax i{transform:scale(1)}
.lg-row[data-y]:hover .ax i{background:var(--signal)}
.lg-row:hover .ax::before{background:var(--slate-dim)}

.lg-row .y{
  font-family:var(--f-mono);font-size:.82rem;color:var(--ice);
  text-align:right;font-variant-numeric:tabular-nums;
}

.lg-total{
  display:flex;justify-content:space-between;gap:20px;align-items:baseline;
  padding:20px 0;border-top:1px solid var(--slate-dim);
  font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--mute);
}
.lg-total .r{font-size:clamp(1rem,1.9vw,1.4rem);letter-spacing:.04em;color:var(--ice);font-variant-numeric:tabular-nums}
.lg-total b{font-weight:500;color:var(--ice)}

.ledger-note b{color:var(--ice);font-weight:500}

@media (max-width:900px){
  .lg-head{display:none}
  .lg-row{
    grid-template-columns:30px minmax(0,1fr) auto;
    grid-template-areas:'n w w' '. c y';
    gap:2px 12px;padding:18px 0 20px;align-items:start;
  }
  .lg-row .n{grid-area:n}
  .lg-row .w{grid-area:w;margin-bottom:7px}
  .lg-row .c{grid-area:c}
  .lg-row .y{grid-area:y;align-self:end}
  .ax{display:none}
}

/* ── field documentation ───────────────────────────────────── */
.band.field{background:var(--night);padding-top:0}
.field-head{max-width:60ch;padding-bottom:clamp(28px,4vw,46px)}
.field-head h2{margin-bottom:0}
.field-head .col-note{max-width:52ch}

.work{margin-top:clamp(34px,5vw,58px)}
.work h3{
  color:var(--ice);padding-bottom:12px;margin-bottom:16px;
  border-bottom:1px solid var(--rule);
  display:flex;align-items:baseline;gap:12px;text-transform:none;
}
.strip{
  display:flex;gap:10px;overflow-x:auto;padding-bottom:12px;
  scroll-snap-type:x mandatory;scrollbar-width:thin;
  scrollbar-color:var(--rule) transparent;
}
.strip::-webkit-scrollbar{height:6px}
.strip::-webkit-scrollbar-thumb{background:var(--rule)}
.shot{
  flex:0 0 auto;scroll-snap-align:start;
  height:clamp(190px,26vw,330px);padding:0;border:0;background:var(--steel);
  cursor:zoom-in;overflow:hidden;position:relative;
}
.shot img{
  height:100%;width:auto;object-fit:cover;
  filter:saturate(.85) contrast(1.03);
  transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s;
}
.shot:hover img{transform:scale(1.045);filter:none}

/* ── organisasi ────────────────────────────────────────────── */
.org{border-top:2px solid var(--graphite)}
.org-row{
  display:grid;grid-template-columns:minmax(0,13rem) minmax(0,1fr);
  gap:4px clamp(16px,3vw,44px);
  padding:20px 0;border-bottom:1px solid var(--rule-l);
}
.org-role{
  margin:0;font-family:var(--f-mono);font-size:11px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--slate-ink);padding-top:5px;
}
.org-name{
  margin:0;font-family:var(--f-display);font-weight:600;font-variation-settings:'wdth' 100;
  font-size:clamp(1.02rem,1.5vw,1.2rem);letter-spacing:-.01em;line-height:1.35;
}
.org-name i{font-style:normal;color:var(--rule-l);padding-inline:4px}
@media (max-width:620px){.org-row{grid-template-columns:1fr}}

/* ── footer ────────────────────────────────────────────────── */
footer{background:var(--ink);border-top:1px solid var(--rule);padding-top:clamp(60px,8vw,110px)}
.foot-grid{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
  gap:clamp(34px,5vw,80px);padding-bottom:clamp(50px,7vw,86px);
}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr}}
.foot-lead h2{max-width:18ch;margin-bottom:18px}
.foot-note{color:var(--mute);max-width:44ch;margin:0 0 26px}

.foot-addr{font-style:normal;color:var(--ice);font-size:.94rem}
.foot-addr p{margin:0 0 18px;line-height:1.65}
.foot-addr .al{
  font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--slate-dim);margin-bottom:6px;
}
.foot-addr a{color:var(--ice);text-decoration:none;border-bottom:1px solid var(--rule)}
.foot-addr a:hover{border-bottom-color:var(--slate)}

.foot-base{
  display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;
  border-top:1px solid var(--rule);padding-block:24px 30px;
}
.foot-logo{height:26px;width:auto;filter:brightness(1.22) contrast(1.06);opacity:.9}
.foot-base p{
  margin:0;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--slate-dim);
}
.foot-base p:nth-of-type(1){flex:1 1 auto}
.foot-base a{text-decoration:none;color:var(--mute)}
.foot-base a:hover{color:var(--ice)}

/* ── lightbox ──────────────────────────────────────────────── */
#lb{
  border:0;padding:0;background:transparent;color:var(--ice);
  max-width:min(94vw,1400px);max-height:92vh;
}
#lb::backdrop{background:rgba(5,9,14,.92);backdrop-filter:blur(4px)}
#lb img{max-height:78vh;width:auto;margin-inline:auto;border:1px solid var(--rule)}
.lb-cap{
  margin:14px 0 0;font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--mute);text-align:center;
}
.lb-close{
  display:block;margin:0 0 12px auto;background:none;border:1px solid var(--rule);
  color:var(--ice);font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;padding:8px 14px;cursor:pointer;
}
.lb-close:hover{background:var(--ice);color:var(--ink)}

/* ── entrance motion ───────────────────────────────────────── */
.reveal span b{
  display:block;
  transform:translateY(102%);
  animation:rise .95s cubic-bezier(.16,.84,.3,1) forwards;
}
.reveal span:nth-child(2) b{animation-delay:.12s}
@keyframes rise{to{transform:none}}

.hero .eyebrow,.hero-lede,.hero-act,.statusbar,.hero-caption{
  opacity:0;animation:fade .8s ease forwards;
}
.hero .eyebrow{animation-delay:.05s}
.hero-lede{animation-delay:.42s}
.hero-act{animation-delay:.54s}
.hero-caption{animation-delay:.7s}
.statusbar{animation-delay:.66s}
@keyframes fade{to{opacity:1}}

.up{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}
.up.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important}
  .reveal span b{transform:none}
  .up,.lg-row{opacity:1;transform:none}
}
