
/* ==========================================================================
   SoulGCI — design tokens. Light is the default theme.
   Every color on the page derives from these variables.
   ========================================================================== */
:root, [data-theme="light"]{
  --bg:#ffffff;
  --bg-soft:#f6f6f4;
  --surface:#ffffff;
  --surface-2:#f6f6f4;
  --line:#e7e7e4;
  --line-strong:#d8d8d4;
  --text:#000000;
  --muted:#3d3d42;
  --faint:#82828a;
  --pill-bg:#000000;
  --pill-fg:#ffffff;
  --chip-bg:#f1f1ee;
  --accent:#1f4fd8;
  --ok:#157f3d;   --ok-bg:#e9f5ee;
  --warn:#9a6a00; --warn-bg:#faf3e2;
  --crit:#b32f2f; --crit-bg:#fbecec;
  --pall:#6b46c1; --pall-bg:#f1ecfb;
  --ring:rgba(14,14,13,.08);
  --shadow:0 18px 50px rgba(20,20,20,.08);
}
[data-theme="dark"]{
  --bg:#000000;
  --bg-soft:#0c0c0c;
  --surface:#101010;
  --surface-2:#181818;
  --line:#232323;
  --line-strong:#323232;
  --text:#ffffff;
  --muted:#b9b9b5;
  --faint:#7d7d79;
  --pill-bg:#ffffff;
  --pill-fg:#000000;
  --chip-bg:#1e1e1c;
  --accent:#7c9eff;
  --ok:#5fbf85;   --ok-bg:#11271a;
  --warn:#d9a93f; --warn-bg:#2a2210;
  --crit:#e07a7a; --crit-bg:#2c1414;
  --pall:#b39df0; --pall-bg:#221a33;
  --ring:rgba(255,255,255,.10);
  --shadow:0 18px 50px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:clip}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Helvetica,"Segoe UI",Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  transition:background-color .35s ease,color .35s ease;
}
img,svg{max-width:100%;height:auto}
a{color:inherit}
.mono{font-family:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace}

/* ---------- header ---------- */
.header{
  position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  backdrop-filter:blur(10px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease,background-color .35s ease;
}
.header.scrolled{border-bottom-color:var(--line)}
.header-in{
  max-width:1200px;margin:0 auto;
  display:flex;align-items:center;gap:18px;
  padding:14px clamp(18px,4vw,40px);
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand img{height:46px;width:auto;display:none}
[data-theme="light"] .brand img.logo-light{display:block}
[data-theme="dark"]  .brand img.logo-dark{display:block}
.brand .brand-fallback{
  font-weight:700;font-size:19px;letter-spacing:-.01em;display:none;white-space:nowrap;
}
.brand.no-logo img{display:none!important}
.brand.no-logo .brand-fallback{display:block}
/* the logo already carries the SoulGCI name — the wordmark beside it is the
   full phrase, ALL CAPS (visual transform only; crawlers read normal case) */
.brand-gci{
  text-transform:uppercase;
  font-size:11px;font-weight:600;letter-spacing:.22em;
  color:var(--muted);white-space:nowrap;
  border-left:1px solid var(--line-strong);
  padding-left:12px;line-height:1.5;
}
.nav-desktop{display:flex;align-items:center;gap:26px;margin-left:auto}
.nav-desktop a{
  font-size:14px;color:var(--muted);text-decoration:none;white-space:nowrap;
  transition:color .2s ease;
}
.nav-desktop a:hover{color:var(--text)}
.header-actions{display:flex;align-items:center;gap:10px;margin-left:auto}
.nav-desktop + .header-actions{margin-left:0}

.icon-btn{
  position:relative;width:42px;height:42px;flex:0 0 auto;
  display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--line);border-radius:999px;
  background:var(--surface);color:var(--text);
  transition:box-shadow .25s ease,transform .12s ease,background-color .35s ease,border-color .35s ease;
}
.icon-btn:hover{box-shadow:0 0 0 6px var(--ring)}
.icon-btn:active{transform:scale(.93)}
.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.icon-btn svg{width:19px;height:19px}

/* theme toggle: light shows MOON (click→dark), dark shows SUN (click→light) */
.theme-toggle svg{position:absolute;transition:opacity .3s ease,transform .45s cubic-bezier(.4,0,.2,1)}
.theme-toggle .i-sun{opacity:0;transform:rotate(-90deg) scale(.4)}
.theme-toggle .i-moon{opacity:1;transform:rotate(0) scale(1)}
[data-theme="dark"] .theme-toggle .i-sun{opacity:1;transform:rotate(0) scale(1)}
[data-theme="dark"] .theme-toggle .i-moon{opacity:0;transform:rotate(90deg) scale(.4)}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border-radius:999px;padding:11px 22px;
  font-size:15px;font-weight:600;text-decoration:none;cursor:pointer;
  border:1px solid transparent;
  transition:opacity .2s ease,background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .25s ease;
}
.btn-primary{background:var(--pill-bg);color:var(--pill-fg)}
.btn-primary:hover{opacity:.85}
.btn-ghost{border-color:var(--line-strong);color:var(--text);background:transparent}
.btn-ghost:hover{box-shadow:0 0 0 5px var(--ring)}
.header .btn{display:none}

/* burger: base state is hidden off-screen regardless of media queries */
.burger{display:grid}
.burger svg .l{transition:transform .3s ease,opacity .2s ease;transform-origin:center}

.mobile-menu{
  position:fixed;inset:0;z-index:80;
  background:var(--bg);
  transform:translateX(100%);
  visibility:hidden;
  transition:transform .35s cubic-bezier(.4,0,.2,1),visibility 0s linear .35s,background-color .35s ease;
  display:flex;flex-direction:column;
  padding:14px clamp(18px,5vw,32px) 28px;
}
.mobile-menu.open{transform:translateX(0);visibility:visible;transition:transform .35s cubic-bezier(.4,0,.2,1),background-color .35s ease}
.mm-top{display:flex;align-items:center;justify-content:space-between;padding-bottom:10px}
.mm-list{flex:1;overflow-y:auto;margin:14px 0;display:flex;flex-direction:column}
.mm-list a{
  font-size:22px;font-weight:550;text-decoration:none;color:var(--text);
  padding:15px 4px;border-bottom:1px solid var(--line);
}
.mm-list a:last-child{border-bottom:0}
.mm-cta{display:flex;flex-direction:column;gap:14px}
.mm-cta .btn{width:100%}
.mm-foot{display:flex;justify-content:center;gap:18px;font-size:13.5px;color:var(--faint);padding-top:16px}
.mm-foot a{text-decoration:none;color:inherit}
body.menu-locked{overflow:hidden}

/* ---------- shared section scaffolding ---------- */
.wrap{max-width:1200px;margin:0 auto;padding:0 clamp(18px,4vw,40px)}
.section{padding:clamp(64px,9vw,120px) 0}
.section-alt{background:var(--bg-soft);transition:background-color .35s ease}
.eyebrow{
  font-family:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--faint);margin:0 0 16px;
}
h2{
  font-size:clamp(28px,4.4vw,44px);line-height:1.12;letter-spacing:-.02em;
  font-weight:700;margin:0 0 20px;max-width:21ch;text-wrap:balance;
}
.lede{font-size:clamp(17px,2vw,19.5px);color:var(--muted);max-width:62ch;margin:0 0 14px;text-wrap:pretty}
.body-text{max-width:70ch;color:var(--muted)}
.body-text p{margin:0 0 16px}
.body-text strong{color:var(--text)}
.center{text-align:center}
.center h2,.center .lede,.center .eyebrow{margin-left:auto;margin-right:auto}

.cards{display:grid;gap:16px}
.cards-2{grid-template-columns:repeat(2,1fr)}
.cards-3{grid-template-columns:repeat(3,1fr)}
.cards-4{grid-template-columns:repeat(4,1fr)}
.card{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  padding:24px;transition:background-color .35s ease,border-color .35s ease,transform .25s ease,box-shadow .25s ease;
}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.card h3{margin:0 0 8px;font-size:17px;font-weight:650;letter-spacing:-.01em}
.card p{margin:0;font-size:14.5px;line-height:1.6;color:var(--muted)}
.k{
  font-family:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  font-size:11.5px;letter-spacing:.06em;color:var(--faint);
}
.chiprow{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.chip{
  font-family:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  font-size:11.5px;padding:5px 10px;border-radius:999px;
  background:var(--chip-bg);color:var(--muted);white-space:nowrap;
  transition:background-color .35s ease;
}
.tag{
  display:inline-block;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted);
}
.gov-s{color:var(--ok);background:var(--ok-bg)}
.gov-d{color:var(--warn);background:var(--warn-bg)}
.gov-h{color:var(--crit);background:var(--crit-bg)}
.gov-p{color:var(--pall);background:var(--pall-bg)}

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

/* ---------- hero ---------- */
.hero{padding:clamp(72px,11vw,140px) 0 clamp(56px,8vw,96px);text-align:center;position:relative}
.hero-logo{height:clamp(120px,17vw,184px);width:auto;margin:0 auto 32px;display:none}
[data-theme="light"] .hero-logo.logo-light{display:block;margin-left:auto;margin-right:auto}
[data-theme="dark"]  .hero-logo.logo-dark{display:block;margin-left:auto;margin-right:auto}
h1{
  margin:0 auto;
  text-transform:uppercase;            /* visual caps; source text stays normal case for SEO */
  font-size:clamp(30px,6.2vw,72px);
  line-height:1.04;letter-spacing:.012em;font-weight:760;
  max-width:16ch;text-wrap:balance;
}
.hero-sub{
  margin:26px auto 0;max-width:56ch;
  font-size:clamp(17px,2.2vw,20px);color:var(--muted);text-wrap:pretty;
}
.hero-meta{
  margin:22px auto 0;
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:12.5px;letter-spacing:.04em;color:var(--faint);
  display:flex;flex-wrap:wrap;justify-content:center;gap:6px 0;max-width:640px;
}
.hero-meta span{white-space:nowrap}
.hero-meta span:not(:last-child)::after{content:"·";margin:0 12px;color:var(--faint)}
.hero-cta{margin-top:34px;display:flex;justify-content:center;gap:12px;flex-wrap:wrap}

/* ---------- governed decision flow rail ---------- */
.flow{
  margin-top:26px;
  display:flex;align-items:stretch;justify-content:center;gap:10px;flex-wrap:nowrap;
}
.flow-step{
  flex:1;min-width:0;max-width:200px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:14px 12px;text-align:center;
  transition:background-color .35s ease,border-color .35s ease;
}
.flow-step b{display:block;font-size:14px;letter-spacing:-.01em}
.flow-step span{display:block;font-size:12px;color:var(--faint);margin-top:4px;line-height:1.45}
.flow-arrow{align-self:center;color:var(--faint);flex:0 0 auto;font-size:18px}
@media (max-width:860px){
  .flow{flex-direction:column;align-items:stretch}
  .flow-step{max-width:none}
  .flow-arrow{transform:rotate(90deg);text-align:center}
}

/* ---------- numbered layer rows ---------- */
.layers{display:flex;flex-direction:column;gap:14px;margin-top:34px}
.layer{
  display:grid;grid-template-columns:64px 1fr;gap:18px;
  background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;
  transition:background-color .35s ease,border-color .35s ease;
}
.layer-num{
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:22px;font-weight:600;color:var(--faint);line-height:1.1;
}
.layer h3{margin:0;font-size:18px;font-weight:650}
.layer .k{display:block;margin:4px 0 10px}
.layer p{margin:0;color:var(--muted);font-size:15px}

.minilayers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}
.minilayer{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;
  transition:background-color .35s ease,border-color .35s ease;
}
.minilayer .k{display:block;margin-bottom:6px}
.minilayer b{display:block;font-size:14.5px;margin-bottom:4px;letter-spacing:-.01em}
.minilayer p{margin:0;font-size:13px;line-height:1.55;color:var(--muted)}

/* ---------- effectuation boundary (signature block) ---------- */
.boundary{
  margin-top:40px;border:1px solid var(--line-strong);border-radius:22px;overflow:hidden;
  background:var(--surface);transition:background-color .35s ease,border-color .35s ease;
}
.boundary-head{padding:26px 26px 6px}
.boundary-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch}
.boundary-cell{padding:22px 26px 28px}
.boundary-cell .state{
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:15px;letter-spacing:.14em;font-weight:700;
}
.boundary-cell p{margin:10px 0 0;font-size:14.5px;color:var(--muted)}
.boundary-gate{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  padding:18px 16px;border-left:1px dashed var(--line-strong);border-right:1px dashed var(--line-strong);
  background:var(--bg-soft);min-width:190px;text-align:center;
  transition:background-color .35s ease;
}
.boundary-gate .k{letter-spacing:.16em}
.boundary-gate ul{list-style:none;margin:0;padding:0;font-size:12px;color:var(--muted);line-height:1.7}
@media (max-width:820px){
  .boundary-grid{grid-template-columns:1fr}
  .boundary-gate{border-left:0;border-right:0;border-top:1px dashed var(--line-strong);border-bottom:1px dashed var(--line-strong)}
}

/* ---------- patent family map ---------- */
.family{margin-top:40px;display:flex;flex-direction:column;gap:14px}
.family-master{
  border:1.5px solid var(--text);border-radius:18px;padding:24px;background:var(--surface);
  transition:background-color .35s ease,border-color .35s ease;
}
.family-kids{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.family h3{margin:0 0 4px;font-size:17px}
.family .k{display:block;margin-bottom:8px}
.family p{margin:0;font-size:13.5px;color:var(--muted)}

/* ---------- patents table → cards on mobile (no horizontal scroll, ever) ---------- */
.ip-table{width:100%;border-collapse:collapse;margin-top:34px;font-size:14.5px}
.ip-table th{
  text-align:left;font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);
  padding:0 14px 12px;border-bottom:1px solid var(--line-strong);font-weight:600;
}
.ip-table td{padding:16px 14px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--muted)}
.ip-table td:first-child{color:var(--text);font-weight:650;white-space:nowrap}
.ip-table td:last-child{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:12.5px;white-space:nowrap}
@media (max-width:760px){
  .ip-table thead{display:none}
  .ip-table,.ip-table tbody,.ip-table tr,.ip-table td{display:block;width:100%}
  .ip-table tr{border:1px solid var(--line);border-radius:16px;margin-top:14px;padding:6px 4px;background:var(--surface)}
  .ip-table td{border-bottom:0;padding:10px 14px;white-space:normal!important}
  .ip-table td:last-child{color:var(--faint)}
}

/* ---------- axes (S/D/H/P + temporal modes) ---------- */
.axes{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px}
.axis{
  background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px;
  transition:background-color .35s ease,border-color .35s ease;
}
.axis h3{margin:0 0 14px;font-size:15.5px}
.axis ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.axis li{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--muted)}
.axis .gov{
  flex:0 0 auto;min-width:34px;text-align:center;
  font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  font-size:12px;font-weight:700;padding:3px 8px;border-radius:8px;
}
.axis .gov.wide{min-width:86px}

/* ---------- domains strip ---------- */
.domains{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:30px}
.domain{
  background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;text-align:left;
  transition:background-color .35s ease,border-color .35s ease;
}
.domain .ic{display:block;color:var(--text)}
.domain .ic svg{width:24px;height:24px;display:block}
.domain b{display:block;margin:10px 0 4px;font-size:14.5px}
.domain p{margin:0;font-size:12.5px;line-height:1.55;color:var(--muted)}

/* ---------- roadmap ---------- */
.road{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:34px}
.road .card h3{margin-top:10px}

/* ---------- ecosystem ---------- */
.core-card{
  border:1.5px solid var(--text);border-radius:22px;padding:30px;background:var(--surface);
  margin-top:34px;transition:background-color .35s ease,border-color .35s ease;
}
.core-card h3{margin:0 0 8px;font-size:20px}
.core-card p{margin:0;color:var(--muted);max-width:74ch}
.eco-label{margin:34px 0 14px}
.group-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.group-card .k{display:block;margin-bottom:6px}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;margin-top:30px}
.fact-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.fact-list li{display:grid;grid-template-columns:120px 1fr;gap:14px;font-size:14.5px}
.fact-list .k{padding-top:2px}
.fact-list div{color:var(--muted)}
.fact-list strong{color:var(--text);font-weight:650}
.contact-card{
  background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:30px;
  transition:background-color .35s ease,border-color .35s ease;
}
.contact-card h3{margin:0 0 6px;font-size:22px;letter-spacing:-.01em}
.contact-card .lede{font-size:15px;margin-bottom:18px}
.contact-rows{display:flex;flex-direction:column;gap:12px;font-size:14.5px}
.contact-rows .row{display:grid;grid-template-columns:84px 1fr;gap:12px}
.contact-rows .k{padding-top:2px}
.contact-rows a{color:var(--text);text-decoration:none;font-weight:550}
.contact-rows a:hover{text-decoration:underline}
.phones{display:inline-flex;flex-direction:column;align-items:flex-end;gap:5px;
  font-family:ui-monospace,"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;
  font-size:14px;font-variant-numeric:tabular-nums}
.phones a{white-space:nowrap}
.contact-rows .val{color:var(--muted)}

/* ---------- footer (xAI/SpaceX-style) ---------- */
.footer{border-top:1px solid var(--line);transition:border-color .35s ease}
.foot-main{
  max-width:1200px;margin:0 auto;
  padding:56px clamp(18px,4vw,40px) 36px;
  display:grid;grid-template-columns:1.3fr 2fr;gap:48px;
}
.foot-brand img.logo-light,.foot-brand img.logo-dark{height:46px;width:auto;display:none}
[data-theme="light"] .foot-brand img.logo-light{display:block}
[data-theme="dark"]  .foot-brand img.logo-dark{display:block}
.foot-brand .brand-fallback{font-weight:700;font-size:18px;display:none}
.foot-brand.no-logo img.logo-light,.foot-brand.no-logo img.logo-dark{display:none!important}
.foot-brand.no-logo .brand-fallback{display:block}
.foot-gci{
  margin-top:12px;text-transform:uppercase;
  font-size:10.5px;font-weight:600;letter-spacing:.22em;color:var(--faint);
}
.foot-built{margin:26px 0 0;font-size:13.5px;color:var(--muted)}
.foot-built .k{display:block;margin-bottom:3px}
.foot-division{margin-top:22px}
.foot-division .k{display:block;margin-bottom:8px}
.tf-mark{display:inline-flex;align-items:baseline;text-decoration:none;
  font-weight:800;font-size:19px;letter-spacing:.02em;color:var(--muted)}
.tf-mark .h{font-weight:500;letter-spacing:.30em;margin-left:.45em;font-size:.84em}
.foot-copy{margin-top:26px;font-size:12.5px;color:var(--faint)}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.foot-col h4{margin:0 0 14px;font-size:13px;font-weight:650}
.foot-col a{
  display:block;font-size:13.5px;color:var(--muted);text-decoration:none;
  margin-bottom:10px;transition:color .2s ease;
}
.foot-col a:hover{color:var(--text)}
.foot-legal{border-top:1px solid var(--line);transition:border-color .35s ease}
.foot-legal-in{
  max-width:1200px;margin:0 auto;
  padding:18px clamp(18px,4vw,40px) 36px;
  font-size:12px;line-height:1.8;color:var(--faint);
}
.nb{white-space:nowrap}

/* ---------- responsive ---------- */
@media (max-width:1060px){
  .nav-desktop{display:none}
  .header .btn{display:none}
}
@media (min-width:1061px){
  .burger{display:none}
  .header .btn{display:inline-flex}
}
@media (max-width:980px){
  .cards-4{grid-template-columns:repeat(2,1fr)}
  .cards-3{grid-template-columns:repeat(2,1fr)}
  .minilayers{grid-template-columns:repeat(2,1fr)}
  .domains{grid-template-columns:repeat(2,1fr)}
  .family-kids{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .foot-main{grid-template-columns:1fr;gap:40px}
}
@media (max-width:640px){
  .cards-2,.cards-3,.cards-4{grid-template-columns:1fr}
  .minilayers{grid-template-columns:1fr}
  .axes{grid-template-columns:1fr}
  .road{grid-template-columns:1fr}
  .group-grid{grid-template-columns:1fr}
  .domains{grid-template-columns:1fr}
  .layer{grid-template-columns:1fr;gap:8px}
  .brand-gci{display:none}
  .foot-cols{grid-template-columns:1fr 1fr}
  .fact-list li{grid-template-columns:1fr;gap:4px}
}
@media (max-width:420px){
  .foot-cols{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *,.rv{transition:none!important;scroll-behavior:auto}
  .rv{opacity:1;transform:none}
}

/* The original SoulGCI.ai stylesheet is loaded first. These rules adapt its
   layout for the corporate directory while preserving its theme and identity. */
:root { --portal-width:1200px; }
html { scroll-padding-top:7rem; }
html,body { overflow-x:visible; }
body { min-width:0; font-size:1rem; overflow-wrap:anywhere; }
button,input { font:inherit; }
button,a,input { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
[hidden] { display:none !important; }
.skip-link { position:fixed;left:16px;top:-80px;z-index:100;padding:10px 18px;background:var(--pill-bg);color:var(--pill-fg);border-radius:24px; }
.skip-link:focus { top:12px; }
.header { border-bottom-color:var(--line); }
.header-in { min-height:84px;gap:24px; }
.portal-brand { display:flex;align-items:center;gap:15px;min-width:0;text-decoration:none; }
.portal-brand img { width:48px;height:48px;object-fit:contain; }
.brand-name { display:block;font-size:1.4375rem;font-weight:750;letter-spacing:-.035em;line-height:1.12; }
.brand-caption { display:block;color:var(--muted);font-size:0.75rem;letter-spacing:.05em;line-height:1.5;margin-top:5px; }
.theme-logo-dark { display:none; }
[data-theme="dark"] .theme-logo-light { display:none; }
[data-theme="dark"] .theme-logo-dark { display:block; }
.portal-nav { display:flex;align-items:center;gap:24px;margin-left:auto; }
.portal-nav a { font-size:0.875rem;text-decoration:none;color:var(--muted); }
.portal-nav a:hover { color:var(--text); }
.header-actions { display:flex;gap:10px;align-items:center; }
.language-switch { display:flex;align-items:center;padding:3px;border:1px solid var(--line-strong);border-radius:999px;gap:2px;flex-shrink:0; }
.language-switch a { display:flex;align-items:center;justify-content:center;min-width:30px;min-height:32px;padding:3px 5px;text-decoration:none;font-size:0.75rem;font-weight:600;border-radius:999px;color:var(--muted); }
.language-switch a[aria-current="page"] { background:var(--pill-bg);color:var(--pill-fg); }
.header .btn { display:inline-flex;white-space:normal;font-size:0.875rem;padding:10px 19px; }
.employee-short { display:none; }
.theme-switch { height:42px;width:42px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer;flex-shrink:0; }
.theme-switch svg { width:18px;height:18px; }
.theme-switch .sun { display:none; }
[data-theme="dark"] .theme-switch .moon { display:none; }
[data-theme="dark"] .theme-switch .sun { display:block; }
.portal-hero { padding:64px 0 54px; }
.hero-layout { display:block; }
.hero-copy { max-width:980px; }
.company-line { font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:0.75rem;letter-spacing:.075em;color:var(--muted);margin:0 0 24px; }
.hero-copy h1 { text-align:left;margin:0;max-width:min(100%,20ch);font-size:clamp(2.25rem,5.7vw,4.75rem);line-height:1.1;letter-spacing:-.035em;font-weight:760; }
.hero-copy h1 span { display:block; }
.intro { color:var(--muted);font-size:1.1875rem;line-height:1.55;margin:25px 0 0;max-width:69ch; }
.hero-links { display:flex;align-items:center;flex-wrap:wrap;gap:22px;margin-top:27px; }
.hero-links .btn { display:inline-flex;align-items:center;gap:12px; }
.text-link { font-size:0.875rem;text-underline-offset:5px;text-decoration-thickness:1px; }
.hero-note { font-size:0.8125rem;color:var(--muted);margin-top:28px; }
.access-panel { border:1px solid var(--line-strong);border-radius:22px;background:var(--surface);padding:30px;box-shadow:var(--shadow); }
.access-top { display:flex;align-items:center;justify-content:space-between;margin-bottom:24px; }
.access-icon { width:48px;height:48px;background:var(--chip-bg);border:1px solid var(--line);border-radius:14px;display:grid;place-items:center; }
.access-icon svg { width:23px;height:23px; }
.access-label { font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:0.75rem;letter-spacing:.09em;color:var(--muted); }
.access-panel h2 { font-size:1.8125rem;line-height:1.15;letter-spacing:-.025em;max-width:none;margin:0 0 10px; }
.access-description { color:var(--muted);font-size:1rem;line-height:1.5;margin:0 0 25px; }
.login-button { display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:55px;font-size:1rem;padding:13px 17px;text-align:center; }
.login-button svg { width:18px;height:18px;flex-shrink:0; }
.role-label { display:block;font-size:0.8125rem;color:var(--muted);margin-top:24px;margin-bottom:10px; }
.roles { list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:0; }
.roles li { border:1px solid var(--line);background:var(--bg-soft);border-radius:999px;padding:5px 10px;font-size:0.8125rem;color:var(--muted); }
.access-bottom { display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:22px;font-size:0.8125rem;color:var(--muted); }
.access-bottom a { text-underline-offset:4px; }
.quick-bar { border-block:1px solid var(--line);background:var(--bg-soft); }
.quick-inner { display:flex;align-items:center;flex-wrap:wrap;gap:10px 28px;padding-block:20px; }
.quick-label { color:var(--muted);font-size:0.75rem;font-family:ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.08em;margin-right:8px; }
.quick-inner a { text-decoration:none;font-size:0.9375rem;font-weight:650; }
.quick-inner a:hover { text-decoration:underline;text-underline-offset:5px; }
.directory { padding:62px 0 72px; }
.section-heading { display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px; }
.section-heading h2 { font-size:clamp(29px,3.5vw,40px);margin-bottom:10px;max-width:none; }
.eyebrow { color:var(--muted);font-size:0.75rem;margin-bottom:12px; }
.section-heading p:last-child { margin:0;color:var(--muted);font-size:1rem;max-width:60ch; }
.searchbox { display:flex;align-items:center;gap:10px;border:1px solid var(--line-strong);border-radius:999px;padding:12px 16px;min-width:0;width:clamp(16rem,28vw,26.25rem);max-width:100%;background:var(--surface); }
.searchbox svg { width:17px;height:17px;color:var(--muted);flex-shrink:0; }
.searchbox input { min-width:0;width:100%;border:0;background:transparent;color:var(--text);font-size:0.9375rem;outline:none; }
.searchbox:focus-within { outline:3px solid var(--accent);outline-offset:3px; }
.searchbox input:focus-visible { outline:none; }
.searchbox input::placeholder { color:var(--muted);opacity:1; }
.directory-toolbar { display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 25px; }
.filters { display:flex;gap:8px;flex-wrap:wrap; }
.filter { padding:8px 15px;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--muted);font-size:0.875rem;cursor:pointer; }
.filter[aria-pressed="true"] { background:var(--pill-bg);color:var(--pill-fg);border-color:var(--pill-bg); }
.result-count { white-space:nowrap;color:var(--muted);font-size:0.8125rem; }
.project-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.project-card { display:flex;flex-direction:column;padding:23px;scroll-margin-top:100px; }
.project-meta { display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:28px; }
.project-code { font-size:0.8125rem;font-family:ui-monospace,"SF Mono",Menlo,monospace;letter-spacing:.04em; }
.project-category { color:var(--muted);font-size:0.75rem; }
.project-card h3 { font-size:1.3125rem;line-height:1.2;font-weight:680;margin:0 0 12px;letter-spacing:-.025em; }
.project-card p { font-size:0.9375rem;line-height:1.55;min-height:4.6em; }
.project-links { border-top:1px solid var(--line);margin-top:23px;padding-top:15px;display:flex;flex-direction:column;gap:8px; }
.project-card .project-links { margin-top:auto;padding-top:16px; }
.project-copy { margin-bottom:23px; }
.project-links a { display:flex;align-items:baseline;justify-content:space-between;gap:10px;text-decoration:none;font-size:0.875rem;font-weight:550;overflow-wrap:anywhere; }
.project-links a:hover { text-decoration:underline;text-underline-offset:4px; }
.project-links a span:last-child { color:var(--muted);flex-shrink:0; }
.project-links .sub-link { font-size:0.8125rem;font-weight:400;color:var(--muted); }
.pending-destination { color:var(--muted);font-size:0.8125rem;line-height:1.5; }
.empty-state { padding:50px 25px;text-align:center;border:1px solid var(--line);border-radius:18px; }
.empty-state h3 { font-size:1.3125rem;margin:0 0 10px; }
.empty-state p { color:var(--muted);margin:0 0 18px; }
.directory-note { font-size:0.8125rem;color:var(--muted);max-width:95ch;margin:22px 0 0; }
.group-section { padding:62px 0;background:var(--bg-soft);border-block:1px solid var(--line); }
.group-heading { display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px; }
.group-heading h2 { max-width:none;margin:0 0 10px;font-size:2.125rem; }
.group-heading p { margin:0;color:var(--muted);font-size:1rem;max-width:68ch; }
.group-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px; }
.group-card { padding:22px; }
.group-card h3 { font-size:1.125rem; }
.group-card p { font-size:0.875rem;margin:10px 0 18px; }
.group-card a { text-decoration:none;overflow-wrap:anywhere;font-size:0.875rem; }
.group-card a:hover { text-decoration:underline;text-underline-offset:4px; }
.group-domains { display:flex;flex-wrap:wrap;gap:8px 14px; }
.company-section { padding:62px 0; }
.een-section { padding:62px 0; border-bottom:1px solid var(--line); }
.een-section .eyebrow { font-size:.875rem; }
.een-section h2,.een-card h3 { overflow-wrap:normal; hyphens:none; text-wrap:balance; }
.een-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.een-card { min-width:0; display:flex; flex-direction:column; padding:clamp(1.25rem,3vw,2rem); }
.een-card .een-company { margin:0 0 18px; font-size:.875rem; line-height:1.5; color:var(--muted); }
.een-card h3 { margin:0 0 16px; font-size:clamp(1.25rem,2vw,1.5rem); line-height:1.35; }
.een-card .een-description { font-size:1rem; line-height:1.65; margin:0 0 24px; }
.een-card .een-reference { margin:auto 0 12px; padding-top:8px; font-size:.875rem; line-height:1.5; color:var(--muted); font-family:ui-monospace,monospace; }
.een-link { display:flex; align-items:center; min-height:48px; padding:12px 16px; border:1px solid var(--line-strong); border-radius:12px; color:var(--text); text-decoration:none; font-size:1rem; line-height:1.5; }
.een-link:hover { background:var(--bg-soft); text-decoration:underline; text-underline-offset:4px; }
@media(max-width:43.75rem) {
  .een-section { padding:2.625rem 0; }
  .een-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
}
.company-layout { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,4rem); }
.company-layout h2 { max-width:none;font-size:1.875rem;line-height:1.14;letter-spacing:-.02em; }
.company-copy { color:var(--muted);font-size:1rem;line-height:1.6; }
.company-data { margin:0; }
.company-data div { padding:13px 0;display:grid;grid-template-columns:7.5rem minmax(0,1fr);border-bottom:1px solid var(--line);gap:18px;font-size:0.875rem; }
.company-data dt { color:var(--muted); }
.company-data dd { margin:0;overflow-wrap:anywhere; }
.portal-footer { border-top:1px solid var(--line);padding:24px 0; }
.footer-layout { display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px; }
.footer-wordmark { font-size:1.1875rem;font-weight:750;letter-spacing:-.04em; }
.footer-copy { color:var(--muted);font-size:0.75rem;margin-left:12px; }
.footer-links { display:flex;flex-wrap:wrap;gap:18px;font-size:0.8125rem; }
.footer-links a { text-decoration:none; }
.footer-links a:hover { text-decoration:underline;text-underline-offset:4px; }
.login-dialog { border:1px solid var(--line-strong);border-radius:22px;padding:32px;background:var(--surface);color:var(--text);width:min(30rem,calc(100% - 2rem));box-shadow:var(--shadow); }
.login-dialog::backdrop { background:rgba(0,0,0,.5);backdrop-filter:blur(5px); }
.dialog-top { display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px; }
.dialog-top img { width:56px;height:56px; }
.dialog-close { border:1px solid var(--line);border-radius:50%;width:38px;height:38px;background:var(--surface);color:var(--text);cursor:pointer;display:grid;place-items:center; }
.dialog-close svg { width:18px;height:18px; }
.login-dialog h2 { max-width:none;font-size:1.8125rem;margin-bottom:12px; }
.dialog-company { font-size:0.75rem;letter-spacing:.06em;margin:0 0 22px;color:var(--muted); }
.auth-status { background:var(--bg-soft);border:1px solid var(--line);border-radius:14px;padding:18px;margin:20px 0; }
.auth-status strong { display:block;font-size:1rem;margin-bottom:7px; }
.auth-status p { margin:0;color:var(--muted);font-size:0.9375rem;line-height:1.55; }
.dialog-note { color:var(--muted);font-size:0.8125rem;line-height:1.6;margin:20px 0 0; }
.demo-form { display:flex;flex-direction:column;gap:18px;margin-top:24px; }
.login-field { display:flex;flex-direction:column;gap:8px; }
.login-field label { font-size:0.875rem;font-weight:600; }
.login-field input { min-height:50px;width:100%;border:1px solid var(--line-strong);border-radius:12px;padding:12px 14px;background:var(--bg);color:var(--text);font-size:1rem;line-height:1.4; }
.login-field input::placeholder { color:var(--faint);opacity:1; }
.login-field input[aria-invalid="true"] { border-color:var(--crit); }
.login-error { margin:0;padding:12px 14px;border:1px solid var(--crit);border-radius:12px;background:var(--crit-bg);color:var(--crit);font-size:0.875rem;line-height:1.5; }
.demo-form .login-button:disabled { opacity:.5;cursor:not-allowed; }
.login-help { display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;font-size:0.8125rem;color:var(--muted); }
.login-help a { text-underline-offset:4px; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

/* Let content reflow; do not hide overflowing text at the viewport edge. */
.wrap,.header-in {
  padding-inline-start:max(clamp(1rem,4vw,2.5rem),env(safe-area-inset-left,0px));
  padding-inline-end:max(clamp(1rem,4vw,2.5rem),env(safe-area-inset-right,0px));
}
.header-in { flex-wrap:wrap; }
.header-actions,.portal-nav { flex-wrap:wrap; min-width:0; }
.portal-brand > span,.hero-copy,.section-heading > *,
.project-grid > *,.group-grid > *,.company-layout > *,
.company-data div > *,.footer-layout > *,.dialog-top > * { min-width:0; }
h1,h2,h3 { overflow-wrap:anywhere; hyphens:auto; }
.hero-copy h1 span { max-width:100%; }
.btn,.filter,.text-link { max-width:100%; white-space:normal; text-align:center; }
.btn > span,.project-links a > span { min-width:0; }
.btn svg { flex-shrink:0; }
.project-meta { flex-wrap:wrap; }
.project-category { margin-inline-start:auto; text-align:end; }
.project-card p,.group-card p,.intro,.company-copy { font-size:1rem; }
.searchbox input { font-size:1rem; }
.filter,.portal-nav a,.language-switch a,.header .btn,.theme-switch,.dialog-close {
  min-height:2.75rem;
}
.language-switch a { min-width:2.75rem; font-size:.875rem; }
.language-switch { max-width:100%; flex-wrap:wrap; }
.portal-brand img { flex-shrink:0; }
.theme-switch,.dialog-close { width:2.75rem; height:2.75rem; flex-shrink:0; }
.quick-inner a,.project-links a,.group-domains a,.footer-links a {
  display:flex; align-items:center; min-height:2.75rem;
}
.project-links { gap:.25rem; }
.group-domains { gap:.25rem .875rem; }
.quick-inner { column-gap:1.5rem; row-gap:.25rem; }
.footer-links { row-gap:.25rem; }
.portal-footer { padding-bottom:max(1.5rem,env(safe-area-inset-bottom,0px)); }
.hero-links .text-link { display:inline-flex; align-items:center; min-height:2.75rem; }
.login-dialog {
  margin:auto; padding:clamp(1.25rem,5vw,2rem);
  max-height:calc(100vh - 2rem); max-height:calc(100dvh - 2rem);
  overflow-y:auto; overscroll-behavior:contain;
}
body:has(.login-dialog[open]) { overflow:hidden; }
.dialog-top { flex-wrap:wrap; }
.login-field,.login-field input,.demo-form { min-width:0; }
.login-field input { font-size:1rem; }
.login-page { min-height:100vh; min-height:100svh; display:grid; place-items:center; padding-block:2.5rem; }
.login-panel { width:min(100%,30rem); min-width:0; }
.login-panel h1 { font-size:1.875rem; text-transform:none; max-width:none; margin:0; line-height:1.2; }
.login-back { margin-bottom:0; margin-top:1.5625rem; }

@media(max-width:75rem) {
  .portal-nav { display:none; }
  .header-actions { margin-inline-start:auto; }
}
@media(max-width:65.625rem) {
  .section-heading { align-items:start; flex-direction:column; }
  .searchbox { width:min(26.25rem,100%); }
  .project-grid,.group-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .directory-toolbar { flex-wrap:wrap; }
}
@media(max-width:56rem) {
  .company-layout { grid-template-columns:minmax(0,1fr); gap:1.5rem; }
}
@media(max-width:43.75rem) {
  .header-in { min-height:4.75rem; gap:.5rem; }
  .portal-brand { gap:.5rem; }
  .header .portal-brand img,.header .brand-caption { display:none!important; }
  .brand-name { font-size:1.3125rem; }
  .header .btn { padding:.5rem .875rem; font-size:.875rem; }
  .employee-long { display:none; }
  .employee-short { display:inline; }
  .header-actions { gap:.5rem; }
  .language-switch { padding:.125rem; gap:0; }
  .portal-hero { padding:2rem 0 2.25rem; }
  .company-line { margin-bottom:1rem; font-size:.75rem; }
  .hero-copy h1 { font-size:clamp(2rem,8vw,3.25rem); }
  .intro { margin-top:1.25rem; }
  .hero-links { margin-top:1.4375rem; gap:.75rem 1.125rem; }
  .hero-note { display:none; }
  .access-panel { padding:1.375rem; }
  .quick-inner { column-gap:1.25rem; padding-block:1rem; }
  .quick-label { width:100%; font-size:.75rem; }
  .quick-inner a { font-size:.875rem; }
  .directory { padding:2.4375rem 0 2.8125rem; }
  .section-heading h2 { font-size:2rem; }
  .directory-toolbar { align-items:start; flex-direction:column; }
  .project-grid,.group-grid { grid-template-columns:minmax(0,1fr); }
  .project-card { padding:1.375rem; }
  .project-meta { margin-bottom:1.3125rem; }
  .project-card p { min-height:0; }
  .project-card h3 { font-size:1.375rem; }
  .group-section,.company-section { padding:2.625rem 0; }
  .group-heading { align-items:start; flex-direction:column; }
  .group-heading h2 { font-size:1.8125rem; }
  .company-layout h2 { font-size:1.75rem; }
  .company-data div { grid-template-columns:6rem minmax(0,1fr); font-size:.875rem; gap:.75rem; }
  .footer-copy { display:block; margin:.3125rem 0 0; }
  .footer-links { column-gap:.75rem; font-size:.875rem; }
  .login-dialog h2 { font-size:1.5625rem; }
  .dialog-company { letter-spacing:.03em; }
}
@media(max-width:32rem) {
  html { scroll-padding-top:9rem; }
  .header-in { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; padding-block:.625rem; }
  .header-actions { display:contents; }
  .header .portal-brand { grid-column:1; grid-row:1; }
  .employee-login { grid-column:2; grid-row:1; justify-self:end; }
  .header .language-switch { grid-column:1; grid-row:2; justify-self:start; }
  .header .theme-switch { grid-column:2; grid-row:2; justify-self:end; }
  .company-data div { grid-template-columns:minmax(0,1fr); gap:.25rem; }
  .project-card,.group-card,.access-panel { padding:1.25rem; }
  .access-bottom { align-items:start; flex-direction:column; gap:.5rem; }
}
@media(max-height:32rem) and (orientation:landscape) {
  .header { position:static; }
  html { scroll-padding-top:1rem; }
  .login-page { padding-block:1rem; }
}
@media(hover:none) {
  .card:hover { transform:none; box-shadow:none; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
  .card:hover { transform:none; }
}

/* EEN readability at narrow widths and enlarged text, 2026-10-03. */
#een .een-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}
#een .een-profile,#een .een-card{box-sizing:border-box;min-width:0;padding:clamp(12px,1.5vw,24px)}
#een .een-profile h3,#een .een-card h3{font-size:1.125rem;line-height:1.4;letter-spacing:normal;word-break:normal;overflow-wrap:normal;hyphens:none}
#een .een-company{font-size:.875rem;line-height:1.5}
#een .een-reference{font-size:.8125rem;line-height:1.5;letter-spacing:normal}
#een .een-description,#een .een-link{font-size:1rem;line-height:1.6}

#een .section-heading h2{font-size:1.5rem;line-height:1.3;word-break:normal;overflow-wrap:normal;hyphens:none}#een .eyebrow{font-size:.75rem;letter-spacing:normal;white-space:normal}
