:root{
  --navy:#0c1b4a;
  --navy-2:#142868;
  --navy-deep:#081230;
  --maroon:#8f1a24;
  --maroon-2:#a8202c;
  --paper:#f4f5f7;
  --paper-2:#eaecef;
  --ink:#0c1b4a;
  --text-dark:#141b2d;
  --text-mute:#586170;
  --text-hi:#f5f6f8;
  --text-dim:#b7bfd6;
  --rule:rgba(255,255,255,0.14);
  --rule-dark:rgba(12,27,74,0.13);
  --radius:3px;
  --shadow:0 12px 32px rgba(8,18,48,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;font-family:'IBM Plex Sans',sans-serif;background:var(--paper);color:var(--text-dark);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{font-family:'Space Grotesk',sans-serif;margin:0;font-weight:600;letter-spacing:-0.01em;}
p{margin:0;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.mono{font-family:'IBM Plex Mono',monospace;}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px;}
@media(max-width:720px){.wrap{padding:0 20px;}}
button{font-family:inherit;}
:focus-visible{outline:2px solid var(--maroon-2);outline-offset:2px;}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}}

/* ================= UTILITY BAR ================= */
.utility-bar{background:var(--navy-deep);color:var(--text-dim);font-family:'IBM Plex Mono',monospace;font-size:11.5px;}
.utility-inner{max-width:1200px;margin:0 auto;padding:7px 32px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;}
@media(max-width:720px){.utility-inner{padding:7px 20px;}}
.utility-bar a{color:var(--text-dim);}
.utility-bar a:hover{color:#fff;}
.utility-links{display:flex;gap:18px;}
@media(max-width:560px){.utility-bar{display:none;}}

/* ================= NAV / MEGA MENU ================= */
.nav{position:sticky;top:0;z-index:200;background:#fff;border-bottom:1px solid var(--rule-dark);}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 32px;height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px;}
@media(max-width:720px){.nav-inner{padding:0 20px;height:68px;}}
.brand{display:flex;align-items:center;gap:10px;}
.brand img{height:52px;width:auto;}
@media(max-width:720px){.brand img{height:42px;}}
.nav-links{display:flex;align-items:center;gap:4px;height:100%;}
.nav-item{position:relative;height:100%;display:flex;align-items:center;}
.nav-item>a,.nav-item>button.nav-top-link{
  display:flex;align-items:center;gap:6px;font-size:14.5px;font-weight:500;color:var(--text-dark);
  padding:10px 16px;background:none;border:none;cursor:pointer;height:100%;
}
.nav-item>button.nav-top-link svg{width:10px;height:10px;transition:transform .2s;}
.nav-item:hover>button.nav-top-link svg,.nav-item.open>button.nav-top-link svg{transform:rotate(180deg);}
.nav-item>a:hover,.nav-item>button.nav-top-link:hover{color:var(--maroon);}
.nav-item::after{content:'';position:absolute;left:16px;right:16px;bottom:0;height:2px;background:var(--maroon);transform:scaleX(0);transition:transform .2s;}
.nav-item:hover::after,.nav-item.open::after{transform:scaleX(1);}
.nav-cta{background:var(--maroon);color:#fff !important;padding:11px 20px !important;border-radius:var(--radius);margin-left:6px;}
.nav-cta:hover{background:var(--maroon-2);color:#fff !important;}

.mega{
  position:absolute;top:100%;left:50%;transform:translate(-50%,8px);min-width:640px;
  background:#fff;border:1px solid var(--rule-dark);box-shadow:var(--shadow);
  padding:28px;display:none;grid-template-columns:repeat(4,1fr);gap:28px;
}
.nav-item.mega-parent.open .mega,.nav-item.mega-parent:focus-within .mega{display:grid;}
.mega-col h5{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--maroon);letter-spacing:.04em;margin-bottom:12px;}
.mega-col a{display:block;font-size:13.5px;color:var(--text-mute);padding:6px 0;line-height:1.4;}
.mega-col a:hover{color:var(--navy);}
.mega-simple{min-width:220px;grid-template-columns:1fr;padding:12px;}
.mega-simple a{display:block;font-size:14px;color:var(--text-dark);padding:10px 14px;border-radius:var(--radius);}
.mega-simple a:hover{background:var(--paper);color:var(--maroon);}

.nav-toggle{display:none;background:none;border:none;cursor:pointer;color:var(--navy);}
.mobile-panel{display:none;}
@media(max-width:960px){
  .nav-links{display:none;}
  .nav-toggle{display:block;}
  .mobile-panel{
    display:block;position:fixed;inset:68px 0 0 0;background:#fff;z-index:199;padding:20px;overflow-y:auto;
    transform:translateX(-100%);transition:transform .3s ease;
  }
  .mobile-panel.open{transform:translateX(0);}
  .mob-item{border-bottom:1px solid var(--rule-dark);}
  .mob-item>button,.mob-item>a{
    width:100%;text-align:left;background:none;border:none;padding:16px 4px;font-size:16px;font-weight:500;
    display:flex;justify-content:space-between;align-items:center;color:var(--text-dark);cursor:pointer;
  }
  .mob-sub{display:none;padding:0 4px 14px 14px;}
  .mob-sub.open{display:block;}
  .mob-sub a{display:block;padding:9px 0;font-size:14px;color:var(--text-mute);}
  .mob-item>button svg{transition:transform .2s;}
  .mob-item.open>button svg{transform:rotate(180deg);}
}

/* ================= PAGE HEADER (sub-pages) ================= */
.page-header{background:var(--navy);color:var(--text-hi);padding:64px 0 48px;position:relative;overflow:hidden;}
.page-header .grid-bg{position:absolute;inset:0;background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:56px 56px;opacity:.3;mask-image:linear-gradient(180deg,black,transparent 85%);}
.breadcrumb{position:relative;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--text-dim);display:flex;gap:8px;align-items:center;margin-bottom:16px;}
.breadcrumb a:hover{color:#fff;}
.page-header h1{position:relative;font-size:clamp(28px,4vw,42px);max-width:22ch;}
.page-header p{position:relative;margin-top:14px;font-size:15.5px;color:var(--text-dim);max-width:56ch;}

/* ================= HERO SLIDER (home) ================= */
.slider{position:relative;background:var(--navy-deep);color:var(--text-hi);overflow:hidden;min-height:600px;}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .7s ease;display:flex;align-items:center;}
.slide.active{opacity:1;visibility:visible;position:relative;}
.slide-bg{position:absolute;inset:0;}
.slide-inner{position:relative;z-index:2;padding:110px 0 90px;width:100%;}
.slide-eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#e7a2a8;margin-bottom:18px;display:flex;align-items:center;gap:9px;}
.slide-eyebrow .dot{width:6px;height:6px;background:var(--maroon-2);border-radius:50%;}
.slide h1{font-size:clamp(32px,5vw,54px);line-height:1.1;max-width:15ch;}
.slide p.lede{margin-top:20px;font-size:16.5px;line-height:1.6;color:var(--text-dim);max-width:46ch;}
.slide-ctas{display:flex;gap:14px;margin-top:34px;flex-wrap:wrap;}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;font-size:14px;font-weight:500;border-radius:var(--radius);cursor:pointer;border:1px solid transparent;transition:all .2s;}
.btn-primary{background:var(--maroon);color:#fff;}
.btn-primary:hover{background:var(--maroon-2);}
.btn-outline{border-color:var(--rule);color:var(--text-hi);}
.btn-outline:hover{border-color:#fff;}
.btn-dark{border-color:var(--rule-dark);color:var(--text-dark);}
.btn-dark:hover{border-color:var(--text-dark);}

.slider-nav{position:absolute;z-index:3;bottom:28px;left:0;right:0;display:flex;justify-content:center;gap:10px;}
.slider-dot{width:26px;height:3px;background:rgba(255,255,255,.3);border:none;cursor:pointer;padding:0;}
.slider-dot.active{background:var(--maroon-2);}
.slider-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;background:rgba(255,255,255,.08);border:1px solid var(--rule);color:#fff;width:44px;height:44px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.slider-arrow:hover{background:rgba(255,255,255,.18);}
.slider-arrow.prev{left:24px;}
.slider-arrow.next{right:24px;}
@media(max-width:720px){.slider-arrow{display:none;}.slider{min-height:520px;}}

/* topographic + geometric decorative svg backgrounds share this */
.deco-svg{position:absolute;inset:0;opacity:.5;}

/* ================= SECTIONS ================= */
section{padding:92px 0;}
.section-dark{background:var(--navy);color:var(--text-hi);}
.section-tint{background:var(--paper-2);}
.kicker{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--maroon);margin-bottom:14px;}
.section-dark .kicker{color:#e7a2a8;}
h2.headline{font-size:clamp(26px,3.4vw,38px);line-height:1.15;max-width:20ch;}
.section-head{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;margin-bottom:52px;align-items:end;}
@media(max-width:800px){.section-head{grid-template-columns:1fr;gap:18px;}}
.section-head p{font-size:15.5px;line-height:1.65;color:var(--text-mute);}
.section-dark .section-head p{color:var(--text-dim);}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-dark);border-top:1px solid var(--rule-dark);border-bottom:1px solid var(--rule-dark);}
@media(max-width:700px){.stats{grid-template-columns:1fr 1fr;}}
.stat{background:#fff;padding:30px 24px;}
.stat .num{font-family:'Space Grotesk',sans-serif;font-size:32px;color:var(--navy);}
.stat .lbl{margin-top:6px;font-size:12px;color:var(--text-mute);font-family:'IBM Plex Mono',monospace;}

/* about split */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
@media(max-width:800px){.about-grid{grid-template-columns:1fr;gap:36px;}}
.about-copy p{font-size:15.5px;line-height:1.75;color:var(--text-mute);margin-bottom:16px;}
.commit-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.pill{border:1px solid var(--rule-dark);padding:7px 14px;font-size:12.5px;font-family:'IBM Plex Mono',monospace;color:var(--text-mute);}
.diagram{border:1px solid var(--rule-dark);padding:26px;background:#fff;box-shadow:var(--shadow);}
.diagram-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule-dark);}
.diagram-cell{background:#fff;padding:20px 16px;display:flex;flex-direction:column;gap:6px;}
.diagram-cell .num{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--maroon);}
.diagram-cell .lbl{font-family:'Space Grotesk',sans-serif;font-size:14.5px;font-weight:600;}

/* vision/mission */
.vm-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--rule);border:1px solid var(--rule);}
@media(max-width:800px){.vm-grid{grid-template-columns:1fr;}}
.vm-cell{background:var(--navy-2);padding:44px;}
.vm-cell h3{font-size:22px;color:#fff;max-width:16ch;}
.vm-cell p{margin-top:16px;font-size:15px;line-height:1.7;color:var(--text-dim);}
.mission-list{margin-top:18px;display:flex;flex-direction:column;gap:10px;}
.mission-list div{display:flex;gap:10px;font-size:14px;color:var(--text-dim);line-height:1.5;}
.mission-list div::before{content:'';width:5px;height:5px;background:#e7a2a8;margin-top:8px;flex:none;}

/* values grid */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule-dark);border:1px solid var(--rule-dark);}
@media(max-width:800px){.values-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.values-grid{grid-template-columns:1fr;}}
.value-cell{background:#fff;padding:30px 26px;}
.value-cell svg{width:26px;height:26px;stroke:var(--maroon);margin-bottom:16px;}
.value-cell h4{font-size:15.5px;}
.value-cell p{margin-top:8px;font-size:13.5px;line-height:1.6;color:var(--text-mute);}

/* services accordion */
.svc-index{border-top:1px solid var(--rule-dark);}
.svc-row{border-bottom:1px solid var(--rule-dark);}
.svc-row summary{list-style:none;cursor:pointer;padding:22px 4px;display:grid;grid-template-columns:56px 1fr 22px;align-items:center;gap:18px;}
.svc-row summary::-webkit-details-marker{display:none;}
.svc-num{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--maroon);}
.svc-title{font-family:'Space Grotesk',sans-serif;font-size:16.5px;font-weight:600;}
.svc-title small{display:block;font-family:'IBM Plex Sans',sans-serif;font-weight:400;font-size:13px;color:var(--text-mute);margin-top:4px;}
.svc-plus{width:22px;height:22px;border:1px solid var(--rule-dark);position:relative;flex:none;transition:transform .25s;}
.svc-plus::before,.svc-plus::after{content:'';position:absolute;background:var(--text-dark);}
.svc-plus::before{left:5px;right:5px;top:10px;height:1px;}
.svc-plus::after{top:5px;bottom:5px;left:10px;width:1px;transition:opacity .2s;}
.svc-row[open] .svc-plus{transform:rotate(45deg);}
.svc-body{padding:0 4px 28px 74px;display:grid;grid-template-columns:1.1fr .9fr;gap:32px;}
@media(max-width:700px){.svc-body{grid-template-columns:1fr;padding-left:4px;}.svc-row summary{grid-template-columns:40px 1fr 20px;gap:12px;}}
.svc-body p{font-size:14px;line-height:1.7;color:var(--text-mute);}
.chip-list{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;}
.chip{font-size:12px;font-family:'IBM Plex Mono',monospace;border:1px solid var(--rule-dark);padding:6px 10px;color:var(--text-mute);}

/* services category filter chips (services page) */
.filter-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:36px;}
.filter-chip{border:1px solid var(--rule-dark);background:#fff;padding:9px 16px;font-size:13px;border-radius:20px;cursor:pointer;color:var(--text-mute);}
.filter-chip.active{background:var(--navy);border-color:var(--navy);color:#fff;}

/* technology grid */
.tech-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
@media(max-width:900px){.tech-grid{grid-template-columns:repeat(2,1fr);}}
.tech-cell{background:var(--navy);padding:26px 22px;}
.tech-cell .tag{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#e7a2a8;}
.tech-cell h4{margin-top:10px;font-size:15px;color:#fff;}
.tech-cell p{margin-top:8px;font-size:13px;line-height:1.55;color:var(--text-dim);}

/* delivery timeline */
.timeline{position:relative;}
.tl-row{display:grid;grid-template-columns:90px 1fr;gap:24px;padding:22px 0;border-top:1px solid var(--rule-dark);}
.tl-row:last-child{border-bottom:1px solid var(--rule-dark);}
.tl-num{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--maroon);padding-top:2px;}
.tl-body h4{font-size:16px;}
.tl-body p{margin-top:6px;font-size:14px;line-height:1.6;color:var(--text-mute);max-width:56ch;}

/* industries */
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule-dark);border:1px solid var(--rule-dark);}
@media(max-width:900px){.ind-grid{grid-template-columns:repeat(2,1fr);}}
.ind-cell{background:#fff;padding:26px 22px;min-height:150px;display:flex;flex-direction:column;justify-content:space-between;}
.ind-cell h4{font-size:14.5px;}
.ind-cell p{margin-top:10px;font-size:12.5px;line-height:1.55;color:var(--text-mute);}

/* QSS */
.qss-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;}
@media(max-width:800px){.qss-grid{grid-template-columns:1fr;}}
.qss-col h3{font-size:19px;color:#fff;}
.qss-col ul{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
.qss-col li{font-size:13.5px;color:var(--text-dim);display:flex;gap:9px;line-height:1.5;}
.qss-col li::before{content:'';width:4px;height:4px;background:#e7a2a8;margin-top:7px;flex:none;}

/* why us */
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px 48px;}
@media(max-width:800px){.why-grid{grid-template-columns:1fr;}}
.why-item{display:grid;grid-template-columns:34px 1fr;gap:14px;}
.why-item .idx{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#e7a2a8;padding-top:3px;}
.why-item h4{font-size:15.5px;color:#fff;}
.why-item p{margin-top:6px;font-size:13.5px;line-height:1.6;color:var(--text-dim);}

/* ================= GALLERY ================= */
.gallery-tabs{display:flex;gap:10px;margin-bottom:36px;border-bottom:1px solid var(--rule-dark);}
.gallery-tab{padding:12px 6px;margin-right:22px;font-size:14.5px;font-weight:500;color:var(--text-mute);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;position:relative;top:1px;}
.gallery-tab.active{color:var(--navy);border-bottom-color:var(--maroon);}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr;}}
.gallery-panel{display:none;}
.gallery-panel.active{display:grid;}
.g-card{background:#fff;border:1px solid var(--rule-dark);cursor:pointer;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.g-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
.g-thumb{aspect-ratio:4/3;width:100%;position:relative;overflow:hidden;background:var(--navy);}
.g-thumb svg{width:100%;height:100%;}
.g-body{padding:16px 18px 20px;}
.g-tag{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--maroon);}
.g-title{margin-top:6px;font-size:15px;font-weight:600;font-family:'Space Grotesk',sans-serif;}
.g-loc{margin-top:4px;font-size:12.5px;color:var(--text-mute);}

.lightbox{position:fixed;inset:0;background:rgba(8,14,32,.92);z-index:500;display:none;align-items:center;justify-content:center;padding:32px;}
.lightbox.open{display:flex;}
.lightbox-inner{background:#fff;max-width:720px;width:100%;max-height:88vh;overflow:auto;}
.lightbox-media{aspect-ratio:16/9;background:var(--navy);}
.lightbox-media svg{width:100%;height:100%;}
.lightbox-body{padding:26px 28px 30px;}
.lightbox-close{position:absolute;top:24px;right:28px;background:rgba(255,255,255,.1);border:1px solid var(--rule);color:#fff;width:40px;height:40px;border-radius:50%;cursor:pointer;}

.gallery-note{margin-top:34px;font-size:13.5px;color:var(--text-mute);border-left:2px solid var(--maroon);padding-left:16px;max-width:70ch;line-height:1.7;}

/* ================= CAREERS ================= */
.job-list{border-top:1px solid var(--rule-dark);}
.job-row{display:grid;grid-template-columns:1.4fr .8fr .8fr 90px;gap:16px;align-items:center;padding:20px 4px;border-bottom:1px solid var(--rule-dark);}
@media(max-width:800px){.job-row{grid-template-columns:1fr;gap:6px;}}
.job-title{font-family:'Space Grotesk',sans-serif;font-size:15.5px;font-weight:600;}
.job-meta{font-size:12.5px;color:var(--text-mute);font-family:'IBM Plex Mono',monospace;}
.job-apply{font-size:13px;color:var(--maroon);font-weight:500;text-align:right;}
@media(max-width:800px){.job-apply{text-align:left;margin-top:6px;}}
.careers-wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
@media(max-width:800px){.careers-wrap{grid-template-columns:1fr;}}
.tag-cloud{display:flex;flex-wrap:wrap;gap:9px;}
.tag-cloud span{font-size:12.5px;font-family:'IBM Plex Mono',monospace;border:1px solid var(--rule-dark);padding:7px 12px;color:var(--text-mute);}
.values-strip{margin-top:22px;font-size:13.5px;color:var(--text-mute);letter-spacing:.02em;}

/* ================= CONTACT ================= */
.contact-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;}}
.contact-info dl{margin:26px 0 0;display:flex;flex-direction:column;gap:18px;}
.contact-info dt{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#e7a2a8;}
.contact-info dd{margin:5px 0 0;font-size:15px;color:#fff;}
.map-frame{margin-top:28px;border:1px solid var(--rule);aspect-ratio:4/3;position:relative;overflow:hidden;}
.field{margin-bottom:18px;}
.field label{display:block;font-size:12px;font-family:'IBM Plex Mono',monospace;color:var(--text-dim);margin-bottom:8px;}
.field input,.field select,.field textarea{width:100%;background:transparent;border:1px solid var(--rule);color:var(--text-hi);padding:12px 14px;font-family:'IBM Plex Sans',sans-serif;font-size:14px;border-radius:var(--radius);}
.field select option{color:#000;}
.field textarea{resize:vertical;min-height:90px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:1px solid var(--maroon-2);border-color:var(--maroon-2);}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:520px){.field-row{grid-template-columns:1fr;}}
.form-note{margin-top:10px;font-size:12px;color:var(--text-dim);display:flex;gap:8px;align-items:flex-start;}
.form-success{display:none;border:1px solid var(--maroon-2);padding:16px 18px;color:#fff;font-size:14px;margin-top:18px;}
.form-success.show{display:block;}
.trust-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;}
.trust-item{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--text-dim);font-family:'IBM Plex Mono',monospace;}
.trust-item svg{width:15px;height:15px;stroke:#e7a2a8;flex:none;}

/* ================= FOOTER ================= */
.footer{background:var(--navy-deep);color:var(--text-dim);padding:64px 0 28px;}
.footer-top{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:36px;padding-bottom:44px;border-bottom:1px solid var(--rule);}
@media(max-width:900px){.footer-top{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.footer-top{grid-template-columns:1fr;}}
.footer-brand{display:flex;align-items:center;gap:10px;}
.footer-brand-badge{background:#fff;padding:8px 10px;display:inline-flex;}
.footer-brand-badge img{height:38px;}
.footer-brand-text{font-family:'Space Grotesk',sans-serif;font-size:14px;color:#fff;}
.footer-brand-text small{display:block;font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:#e7a2a8;margin-top:3px;}
.footer-tagline{margin-top:14px;font-size:13px;line-height:1.6;max-width:32ch;}
.footer-col h5{font-family:'IBM Plex Mono',monospace;font-size:11px;color:#e7a2a8;margin-bottom:14px;letter-spacing:.03em;}
.footer-col a{display:block;font-size:13.5px;padding:5px 0;color:var(--text-dim);}
.footer-col a:hover{color:#fff;}
.footer-bottom{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:12px;font-family:'IBM Plex Mono',monospace;color:var(--text-dim);}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;}
.reveal.in{opacity:1;transform:none;}
