
:root{
  --ink:        #0F2A43;
  --bridge:     #165180;
  --steel:      #4893CA;
  --saffron:    #C98A2B;
  --mist:       #EDF2F6;
  --paper:      #FBFCFD;
  --slate:      #5A6B7B;
  --hairline:   rgba(15,42,67,.14);
  --hairline-dark: rgba(232,238,243,.18);
  --ink-text:   rgba(15,42,67,.88);
  --on-ink:     #E8EEF3;
  --on-ink-dim: rgba(232,238,243,.72);
  
  --fs--2: clamp(.75rem, .72rem + .1vw, .8125rem);
  --fs--1: clamp(.875rem, .85rem + .1vw, .9375rem);
  --fs-0:  clamp(1rem,   .97rem + .15vw, 1.0625rem);
  --fs-1:  clamp(1.1875rem, 1.12rem + .3vw, 1.3125rem);
  --fs-2:  clamp(1.375rem, 1.25rem + .6vw, 1.6875rem);
  --fs-3:  clamp(1.75rem, 1.5rem + 1.1vw, 2.25rem);
  --fs-4:  clamp(2.125rem, 1.75rem + 1.8vw, 3rem);
  --fs-5:  clamp(2.5rem, 2rem + 2.6vw, 4rem);
  --font-display: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --font-body: "Public Sans", -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "IBM Plex Mono", "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
  --max-w: 1240px;
  --gutter: clamp(20px, 5vw, 88px);
  --section-y: clamp(72px, 9vw, 120px);
  --header-h: 88px;
  --header-h-shrunk: 64px;
  --ease: cubic-bezier(.33,1,.68,1);
}
@font-face{
  font-family:"Fraunces";
  src:url("../fonts/fraunces-var.woff2") format("woff2");
  font-weight:500 700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Public Sans";
  src:url("../fonts/public-sans-var.woff2") format("woff2");
  font-weight:100 900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"Public Sans";
  src:url("../fonts/public-sans-italic-var.woff2") format("woff2");
  font-weight:100 900; font-style:italic; font-display:swap;
}
@font-face{
  font-family:"IBM Plex Mono";
  src:url("../fonts/ibm-plex-mono-500.woff2") format("woff2");
  font-weight:500; font-style:normal; font-display:swap;
}
*,*::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;
  overflow-x:hidden; 
  overflow-x:clip;
  font-family:var(--font-body);
  font-size:var(--fs-0);
  line-height:1.65;
  color:var(--ink-text);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,h5{ margin:0 0 .5em; color:var(--ink); line-height:1.15; font-weight:600; }
h1,h2{ font-family:var(--font-display); font-weight:600; letter-spacing:-.01em; text-wrap:balance; }
h1{ font-size:var(--fs-5); }
h2{ font-size:var(--fs-4); }
h3{ font-size:var(--fs-2); }
h4{ font-size:var(--fs-1); }
p{ margin:0 0 1.1em; max-width:68ch; }
ul,ol{ margin:0 0 1.1em; padding-inline-start:1.3em; }
li{ margin-bottom:.45em; }
img,svg,video{ max-width:100%; height:auto; }
a{ color:var(--steel); text-decoration-thickness:1px; text-underline-offset:3px; transition:color .15s var(--ease); }
a:hover{ color:var(--bridge); }
blockquote{
  margin:2em 0; padding:.4em 0 .4em 1.4em;
  border-inline-start:2px solid var(--saffron);
  font-family:var(--font-display); font-size:var(--fs-1); color:var(--ink);
}
hr{ border:0; border-top:1px solid var(--hairline); margin:2.5em 0; }
table{ border-collapse:collapse; width:100%; font-size:var(--fs--1); }
th,td{ text-align:start; padding:.7em .9em; border-bottom:1px solid var(--hairline); vertical-align:top; }
th{ font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2); text-transform:uppercase; letter-spacing:.12em; color:var(--slate); }
::selection{ background:var(--steel); color:#fff; }
:focus{ outline:none; }
:focus-visible{ outline:2px solid var(--saffron); outline-offset:2px; border-radius:1px; }
.skip-link{
  position:absolute; inset-inline-start:-9999px; top:0; z-index:200;
  background:var(--ink); color:#fff; padding:.8em 1.2em; font-size:var(--fs--1);
}
.skip-link:focus{ inset-inline-start:0; }
.visually-hidden{
  position:absolute !important; width:1px; height:1px; margin:-1px;
  padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}
.container{ max-width:var(--max-w); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--section-y); }
.section--tight{ padding-block:calc(var(--section-y) * .6); }
.band-mist{ background:var(--mist); }
.band-ink{ background:var(--ink); color:var(--on-ink); }
.band-ink h1,.band-ink h2,.band-ink h3,.band-ink h4{ color:#fff; }
.band-ink p{ color:var(--on-ink-dim); }
.band-ink a{ color:var(--steel); }
.band-ink a:hover{ color:#fff; }
.grid{ display:grid; gap:clamp(20px,2.5vw,32px); }
.grid-2{ grid-template-columns:repeat(2,1fr); }
.grid-3{ grid-template-columns:repeat(3,1fr); }
.grid-4{ grid-template-columns:repeat(4,1fr); }
@media (max-width:980px){ .grid-3,.grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .grid-2,.grid-3,.grid-4{ grid-template-columns:1fr; } }
.split{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(28px,4vw,64px); align-items:start; }
@media (max-width:860px){ .split{ grid-template-columns:1fr; } }
.eyebrow{
  display:flex; align-items:center; gap:.75em;
  font-family:var(--font-mono); font-weight:500;
  font-size:var(--fs--2); text-transform:uppercase; letter-spacing:.12em;
  color:var(--slate); margin-bottom:1.1em;
}
.band-ink .eyebrow{ color:var(--steel); }
.eyebrow::before{
  content:""; flex:none; width:24px; height:14px;
  background:
    linear-gradient(to top right, transparent calc(50% - .5px), currentColor calc(50% - .5px), currentColor calc(50% + .5px), transparent calc(50% + .5px)),
    linear-gradient(to right, transparent calc(50% - .5px), currentColor calc(50% - .5px), currentColor calc(50% + .5px), transparent calc(50% + .5px)),
    linear-gradient(to bottom right, transparent calc(50% - .5px), currentColor calc(50% - .5px), currentColor calc(50% + .5px), transparent calc(50% + .5px)),
    linear-gradient(to top, var(--saffron) 2px, transparent 2px);
  opacity:.9;
}
.dateline{
  font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2);
  text-transform:uppercase; letter-spacing:.12em; color:var(--slate);
}
.stat{ border-top:1px solid var(--hairline); padding-top:1.1em; }
.band-ink .stat{ border-top-color:var(--hairline-dark); }
.stat b{
  display:block; font-family:var(--font-display); font-weight:600;
  font-size:var(--fs-3); color:var(--ink); line-height:1.1; margin-bottom:.2em;
}
.band-ink .stat b{ color:#fff; }
.stat span{ font-family:var(--font-mono); font-size:var(--fs--2); font-weight:500; text-transform:uppercase; letter-spacing:.12em; color:var(--slate); }
.band-ink .stat span{ color:var(--on-ink-dim); }
.cable-divider{ display:block; width:min(320px,60vw); height:96px; margin-inline:auto; color:var(--hairline); }
.cable-divider .node{ fill:var(--saffron); }
.cable-divider line{ stroke:currentColor; stroke-width:1; }
.cable-divider .deck{ stroke:var(--hairline); }
.band-ink .cable-divider{ color:var(--hairline-dark); }
.section > .cable-divider:first-child{ margin-bottom:calc(var(--section-y) * .5); }
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  min-height:44px; padding:.7em 1.6em;
  font-family:var(--font-body); font-size:var(--fs--1); font-weight:600;
  letter-spacing:.01em; text-decoration:none; cursor:pointer;
  border:1px solid transparent; border-radius:2px;
  transition:background-color .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease);
}
.btn-primary{ background:var(--bridge); color:#fff; }
.btn-primary:hover{ background:var(--ink); color:#fff; }
.btn-primary:focus-visible{ outline-color:var(--saffron); }
.band-ink .btn-primary{ background:#fff; color:var(--ink); }
.band-ink .btn-primary:hover{ background:var(--saffron); color:var(--ink); }
.btn-secondary{ background:transparent; color:var(--bridge); border-color:var(--bridge); }
.btn-secondary:hover{ background:var(--bridge); color:#fff; }
.band-ink .btn-secondary{ color:var(--on-ink); border-color:var(--hairline-dark); }
.band-ink .btn-secondary:hover{ border-color:#fff; color:#fff; background:transparent; }
.btn-ghost{ background:transparent; color:var(--bridge); padding-inline:.4em; }
.btn-ghost::after{ content:"→"; transition:transform .15s var(--ease); }
.btn-ghost:hover::after{ transform:translateX(3px); }
.btn[disabled],.btn[aria-disabled="true"]{ opacity:.45; cursor:not-allowed; }
.topbar{
  background:var(--ink); color:var(--on-ink-dim);
  font-family:var(--font-mono); font-weight:500; font-size:12px;
  letter-spacing:.08em;
}
.topbar .container{
  display:flex; justify-content:flex-end; align-items:center;
  min-height:36px; gap:1em; flex-wrap:wrap; padding-block:4px;
}
.topbar a{ color:var(--on-ink-dim); text-decoration:none; }
.topbar a:hover{ color:#fff; }
.topbar .sep{ opacity:.4; margin-inline:.6em; }
@media (max-width:640px){
  .topbar .topbar-contact .sep,
  .topbar .topbar-contact a[href^="tel"]{ display:none; }
}
.site-header{
  position:sticky; top:0; z-index:100;
  background:var(--paper);
  border-bottom:1px solid var(--hairline);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between; gap:2em;
  height:var(--header-h);
  transition:height .25s var(--ease);
}
.site-header.is-shrunk .container{ height:var(--header-h-shrunk); }
.brand{ display:flex; align-items:center; gap:14px; text-decoration:none; flex:none; }
.brand svg,.brand img{ height:40px; width:auto; transition:height .25s var(--ease); }
.site-header.is-shrunk .brand svg,.site-header.is-shrunk .brand img{ height:32px; }
.brand-word{
  font-family:var(--font-display); font-weight:600; font-size:21px;
  color:var(--ink); line-height:1.05; letter-spacing:-.01em;
}
.brand-word small{
  display:block; font-family:var(--font-mono); font-weight:500; font-size:9px;
  letter-spacing:.22em; color:var(--slate); text-transform:uppercase; margin-top:3px;
}
.primary-nav ul{ display:flex; gap:clamp(16px,2.2vw,36px); list-style:none; margin:0; padding:0; align-items:center; }
.primary-nav a{
  display:inline-block; position:relative; padding:.5em 2px;
  font-size:15px; font-weight:500; color:var(--ink); text-decoration:none;
}
.primary-nav a::after{
  content:""; position:absolute; inset-inline:0; bottom:0; height:2px;
  background:var(--saffron); transform:scaleX(0); transform-origin:0 50%;
  transition:transform .15s var(--ease);
}
.primary-nav a:hover::after,
.primary-nav a[aria-current="page"]::after{ transform:scaleX(1); }
.primary-nav a[aria-current="page"]{ color:var(--ink); font-weight:600; }
.header-cta{ flex:none; }
@media (max-width:980px){ .header-cta{ display:none; } }
.nav-toggle{ display:none; }
@media (max-width:860px){
  .primary-nav{ display:none; }
  .nav-toggle{ display:block; position:relative; }
  .nav-toggle summary{
    list-style:none; cursor:pointer; display:flex; align-items:center; gap:.6em;
    min-height:44px; min-width:44px; justify-content:center;
    font-family:var(--font-mono); font-size:12px; font-weight:500;
    letter-spacing:.12em; text-transform:uppercase; color:var(--ink);
    padding:.4em .8em; border:1px solid var(--hairline); border-radius:2px;
  }
  .nav-toggle summary::-webkit-details-marker{ display:none; }
  .nav-toggle summary .bars{ display:inline-block; width:16px; }
  .nav-toggle summary .bars,
  .nav-toggle summary .bars::before,
  .nav-toggle summary .bars::after{ height:1.5px; background:currentColor; border-radius:1px; }
  .nav-toggle summary .bars{ position:relative; }
  .nav-toggle summary .bars::before,
  .nav-toggle summary .bars::after{ content:""; position:absolute; inset-inline:0; }
  .nav-toggle summary .bars::before{ top:-5px; }
  .nav-toggle summary .bars::after{ top:5px; }
  .nav-toggle[open] > .mobile-menu{
    position:absolute; inset-inline-end:0; top:calc(100% + 12px);
    min-width:240px; background:var(--paper); border:1px solid var(--hairline);
    border-top:2px solid var(--saffron); padding:.6em 0; z-index:110;
  }
  .mobile-menu ul{ list-style:none; margin:0; padding:0; }
  .mobile-menu a{
    display:block; padding:.8em 1.4em; color:var(--ink); text-decoration:none;
    font-size:16px; font-weight:500;
  }
  .mobile-menu a:hover,.mobile-menu a[aria-current="page"]{ background:var(--mist); }
  .mobile-menu a[aria-current="page"]{ box-shadow:inset 3px 0 0 var(--saffron); }
}
.hero{
  position:relative; overflow:hidden;
  min-height:calc(100vh - var(--header-h) - 36px); 
  min-height:calc(100svh - var(--header-h) - 36px);
  display:flex; align-items:center;
}
.hero .container{ position:relative; z-index:2; padding-block:clamp(64px,10vh,120px); }
.hero h1{ max-width:16ch; margin-bottom:.5em; }
.hero .hero-sub{ font-size:var(--fs-1); max-width:62ch; margin-bottom:2em; }
.hero-actions{ display:flex; gap:1em; flex-wrap:wrap; }
.hero-cables{
  position:absolute; inset-inline-end:0; bottom:0; z-index:1;
  width:min(62vw, 980px); height:auto; opacity:.9; pointer-events:none;
}
@media (max-width:860px){ .hero-cables{ width:130%; opacity:.35; } }
.hero-cables line,.hero-cables path{ stroke:var(--steel); stroke-width:1; fill:none; }
.hero-cables .deck-line{ stroke:var(--on-ink-dim); stroke-width:1.5; }
.hero-cables .node-pt{ fill:var(--saffron); }
@media (prefers-reduced-motion:no-preference){
  .js .hero-cables .drawable{
    stroke-dasharray:var(--len,1200); stroke-dashoffset:var(--len,1200);
    animation:cable-draw .9s var(--ease) forwards;
  }
  .js .hero-cables .node-pt{ opacity:0; animation:node-in .3s .8s var(--ease) forwards; }
  .js .hero h1 .w{ display:inline-block; opacity:0; transform:translateY(12px); animation:word-rise .5s var(--ease) forwards; }
  .js .hero .hero-sub,.js .hero .hero-actions,.js .hero .eyebrow{
    opacity:0; transform:translateY(12px); animation:word-rise .5s .55s var(--ease) forwards;
  }
  .js .hero .eyebrow{ animation-delay:.05s; }
}
@keyframes cable-draw{ to{ stroke-dashoffset:0; } }
@keyframes node-in{ to{ opacity:1; } }
@keyframes word-rise{ to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:no-preference){
  .js [data-reveal]{ opacity:0; transform:translateY(12px); transition:opacity .4s var(--ease), transform .4s var(--ease); }
  .js [data-reveal].is-in{ opacity:1; transform:none; }
}
.card{
  display:flex; flex-direction:column; gap:.6em;
  background:var(--paper); border:1px solid var(--hairline); border-radius:2px;
  padding:clamp(20px,2.4vw,32px);
  transition:border-color .15s var(--ease), background-color .15s var(--ease);
}
.band-mist .card{ background:#fff; }
.card:hover{ border-color:var(--steel); }
.card h3{ font-family:var(--font-body); font-weight:600; font-size:var(--fs-1); margin:0; }
.card h3 a{ color:var(--ink); text-decoration:none; }
.card h3 a::after{ content:""; position:absolute; inset:0; }
.card{ position:relative; }
.card p{ margin:0; font-size:var(--fs--1); color:var(--slate); }
.card .card-cta{
  margin-top:auto; padding-top:1em;
  font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2);
  letter-spacing:.12em; text-transform:uppercase; color:var(--bridge);
}
.card:hover .card-cta{ color:var(--saffron); }
.card-num{
  font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2);
  color:var(--steel); letter-spacing:.12em;
}
.chip{
  display:inline-block; font-family:var(--font-mono); font-weight:500;
  font-size:11px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--bridge); border:1px solid var(--hairline);
  padding:.35em .8em; border-radius:2px;
}
.person-card{ text-align:start; }
.person-card .person-photo{
  aspect-ratio:4/5; background:var(--mist); border-radius:2px; overflow:hidden; margin-bottom:1em;
  display:flex; align-items:center; justify-content:center; color:var(--steel);
}
.person-card .person-photo img{ width:100%; height:100%; object-fit:cover; }
.person-card .role{ font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2); letter-spacing:.12em; text-transform:uppercase; color:var(--saffron); margin:0 0 .6em; }
.person-card.is-placeholder{ border-style:dashed; }
.person-card .placeholder-flag{
  font-family:var(--font-mono); font-size:11px; letter-spacing:.12em;
  color:var(--slate); text-transform:uppercase;
}
.domain-list{ display:grid; grid-template-columns:1fr 1fr; gap:0 clamp(28px,4vw,64px); margin:0; }
@media (max-width:720px){ .domain-list{ grid-template-columns:1fr; } }
.domain-list > div{ border-top:1px solid var(--hairline); padding-block:1.2em; }
.domain-list dt{ font-weight:600; color:var(--ink); font-size:var(--fs-0); display:flex; gap:1em; align-items:baseline; }
.domain-list dt .idx{ font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2); color:var(--steel); letter-spacing:.08em; }
.domain-list dd{ margin:.35em 0 0 calc(1em + 2ch); font-size:var(--fs--1); color:var(--slate); }
.tabbar{ display:flex; gap:0; border-bottom:1px solid var(--hairline); overflow-x:auto; }
.tabbar [role="tab"], .tabbar .tab-link{
  appearance:none; background:none; border:0; cursor:pointer;
  font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2);
  letter-spacing:.12em; text-transform:uppercase; color:var(--slate);
  padding:1em 1.4em; border-bottom:2px solid transparent; margin-bottom:-1px;
  text-decoration:none; white-space:nowrap; min-height:44px;
}
.tabbar [aria-selected="true"], .tabbar .tab-link[aria-current="true"]{
  color:var(--ink); border-bottom-color:var(--saffron);
}
[role="tabpanel"]{ padding-top:clamp(28px,4vw,48px); }
@media (max-width:480px){
  .tabbar [role="tab"], .tabbar .tab-link{ padding:1em .8em; letter-spacing:.08em; }
}
.no-js [role="tabpanel"]{ display:block !important; }
[role="tabpanel"][hidden]{ display:none; }
.accordion{ border-top:1px solid var(--hairline); }
.accordion details{ border-bottom:1px solid var(--hairline); }
.accordion summary{
  cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:1em;
  align-items:center; padding:1.1em 4px; font-weight:600; color:var(--ink); min-height:44px;
}
.accordion summary::-webkit-details-marker{ display:none; }
.accordion summary::after{ content:"+"; font-family:var(--font-mono); color:var(--steel); font-size:1.2em; }
.accordion details[open] summary::after{ content:"−"; color:var(--saffron); }
.accordion .accordion-body{ padding:0 4px 1.4em; }
.news-list{ list-style:none; margin:0; padding:0; }
.news-list li{ display:grid; grid-template-columns:150px 1fr; gap:1.5em; border-top:1px solid var(--hairline); padding-block:1.4em; margin:0; }
@media (max-width:640px){ .news-list li{ grid-template-columns:1fr; gap:.4em; } }
.news-list h3{ font-family:var(--font-body); font-size:var(--fs-0); font-weight:600; margin:0 0 .3em; }
.news-list p{ margin:0; font-size:var(--fs--1); color:var(--slate); }
.news-list .chip{ margin-top:.6em; }
.gallery-filters{ display:flex; gap:.6em; flex-wrap:wrap; margin-bottom:1.6em; }
.gallery-filters button{
  appearance:none; cursor:pointer; background:none;
  border:1px solid var(--hairline); border-radius:2px; color:var(--slate);
  font-family:var(--font-mono); font-weight:500; font-size:11px;
  letter-spacing:.12em; text-transform:uppercase; padding:.6em 1em; min-height:44px;
}
.gallery-filters button[aria-pressed="true"]{ border-color:var(--saffron); color:var(--ink); }
.masonry{ columns:3 260px; column-gap:16px; }
.masonry figure{ margin:0 0 16px; break-inside:avoid; position:relative; }
.masonry img{ display:block; width:100%; border-radius:2px; background:var(--mist); }
.masonry figcaption{ font-size:var(--fs--2); color:var(--slate); padding-top:.5em; }
.masonry a{ display:block; }
.gallery-consent-note{ font-size:var(--fs--2); color:var(--slate); font-style:italic; margin-top:2em; }
.lightbox{ border:0; padding:0; background:rgba(15,42,67,.92); max-width:100vw; max-height:100vh; width:100vw; height:100vh; }
.lightbox::backdrop{ background:rgba(15,42,67,.92); }
.lightbox figure{ margin:0; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1em; padding:5vh 5vw; }
.lightbox img{ max-height:80vh; max-width:90vw; width:auto; }
.lightbox figcaption{ color:var(--on-ink); font-size:var(--fs--1); }
.lightbox .lb-controls{ position:absolute; inset-inline:16px; top:16px; display:flex; justify-content:space-between; }
.lightbox button{
  appearance:none; cursor:pointer; background:rgba(255,255,255,.08);
  border:1px solid var(--hairline-dark); color:#fff; border-radius:2px;
  min-width:44px; min-height:44px; font-size:18px;
}
.lightbox button:hover{ background:rgba(255,255,255,.18); }
.lightbox .lb-nav{ position:absolute; inset-block:50%; inset-inline:16px; display:flex; justify-content:space-between; width:calc(100% - 32px); }
.form-shell{ max-width:760px; }
.field{ margin-bottom:1.5em; }
.field label, fieldset legend{
  display:block; font-family:var(--font-mono); font-weight:500;
  font-size:var(--fs--2); letter-spacing:.12em; text-transform:uppercase;
  color:var(--ink); margin-bottom:.5em;
}
.field .req{ color:var(--saffron); }
.field .hint{ font-family:var(--font-body); font-size:var(--fs--1); color:var(--slate); text-transform:none; letter-spacing:0; margin:-.2em 0 .5em; display:block; }
input[type="text"],input[type="email"],input[type="tel"],input[type="url"],
select,textarea{
  width:100%; font-family:var(--font-body); font-size:var(--fs-0);
  color:var(--ink); background:#fff;
  border:1px solid var(--hairline); border-radius:2px;
  padding:.75em .9em; min-height:44px;
  transition:border-color .15s var(--ease);
}
input:hover,select:hover,textarea:hover{ border-color:var(--steel); }
input:focus-visible,select:focus-visible,textarea:focus-visible{ outline:2px solid var(--saffron); outline-offset:0; border-color:var(--bridge); }
textarea{ min-height:9em; resize:vertical; }
.field.has-error input,.field.has-error select,.field.has-error textarea{ border-color:#B3261E; }
.error-msg{ color:#B3261E; font-size:var(--fs--1); margin-top:.4em; display:block; }
.char-counter{ font-family:var(--font-mono); font-size:11px; color:var(--slate); text-align:end; display:block; margin-top:.3em; }
fieldset{ border:1px solid var(--hairline); border-radius:2px; padding:1.2em 1.4em; margin:0 0 1.5em; }
fieldset legend{ padding-inline:.5em; margin-bottom:0; }
.choice{ display:flex; gap:.7em; align-items:flex-start; margin-bottom:.7em; font-size:var(--fs--1); }
.choice input{ width:18px; height:18px; margin-top:.2em; flex:none; accent-color:var(--bridge); }
.choice label{ font-family:var(--font-body); font-size:var(--fs--1); letter-spacing:0; text-transform:none; margin:0; color:var(--ink-text); }
.error-summary{
  border:1px solid #B3261E; border-inline-start-width:3px; border-radius:2px;
  padding:1em 1.2em; margin-bottom:1.6em; background:#FDF3F2;
}
.error-summary h3{ font-family:var(--font-body); font-size:var(--fs-0); margin:0 0 .4em; color:#7d1a14; }
.error-summary ul{ margin:0; }
.error-summary a{ color:#7d1a14; }
.consent-block{
  border:1px solid var(--bridge); border-inline-start-width:3px; border-radius:2px;
  background:#fff; padding:clamp(18px,2.4vw,28px); margin-block:2em;
}
.band-mist .consent-block{ background:#fff; }
.consent-block h3{
  font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2);
  letter-spacing:.12em; text-transform:uppercase; color:var(--bridge); margin-bottom:.9em;
}
.consent-block .notice-summary{ font-size:var(--fs--1); color:var(--slate); }
.consent-block .lang-toggle{ display:flex; gap:.4em; margin-bottom:1em; }
.consent-block .lang-toggle button{
  appearance:none; cursor:pointer; background:none; border:1px solid var(--hairline);
  border-radius:2px; padding:.35em .9em; font-size:13px; color:var(--slate); min-height:34px;
}
.consent-block .lang-toggle button[aria-pressed="true"]{ border-color:var(--saffron); color:var(--ink); }
.consent-block .notice-text[dir="rtl"]{ text-align:right; font-size:1.08em; line-height:1.9; }
.consent-block .withdrawal-line{ font-size:var(--fs--2); color:var(--slate); margin:1em 0 0; }
.consent-block .notice-version{ font-family:var(--font-mono); font-size:10px; letter-spacing:.08em; color:var(--slate); opacity:.7; display:block; margin-top:1em; }
.consent-block .consent-powered{ margin-top:.3em; }
.form-success{ border:1px solid var(--steel); border-radius:2px; padding:clamp(24px,3vw,40px); background:#fff; }
.form-success .ref{ font-family:var(--font-mono); font-size:var(--fs-1); color:var(--bridge); }
.cookie-banner{
  position:fixed; inset-inline:0; bottom:0; z-index:150;
  background:var(--ink); color:var(--on-ink);
  border-top:2px solid var(--saffron);
  padding:1.2em var(--gutter);
}
.cookie-banner .cb-inner{
  max-width:var(--max-w); margin-inline:auto;
  display:flex; gap:2em; align-items:center; justify-content:space-between; flex-wrap:wrap;
}
.cookie-banner p{ margin:0; font-size:var(--fs--1); color:var(--on-ink-dim); max-width:56ch; }
.cookie-banner p a{ color:var(--steel); }
.cookie-banner .cb-actions{ display:flex; gap:.8em; flex-wrap:wrap; }
.cookie-banner .cb-actions .btn{ border:1px solid var(--hairline-dark); background:transparent; color:#fff; min-width:130px; }
.cookie-banner .cb-actions .btn:hover{ border-color:#fff; }
@media (max-width:720px){ .cookie-banner .cb-inner{ flex-direction:column; align-items:stretch; } .cookie-banner .cb-actions .btn{ flex:1; } }
.cookie-modal{ border:0; border-radius:2px; padding:0; max-width:640px; width:calc(100vw - 40px); }
.cookie-modal::backdrop{ background:rgba(15,42,67,.6); }
.cookie-modal .cm-head{ background:var(--ink); color:#fff; padding:1.2em 1.6em; display:flex; justify-content:space-between; align-items:center; }
.cookie-modal .cm-head h2{ font-size:var(--fs-1); margin:0; color:#fff; font-family:var(--font-body); font-weight:600; }
.cookie-modal .cm-head button{ appearance:none; background:none; border:0; color:#fff; font-size:20px; cursor:pointer; min-width:44px; min-height:44px; }
.cookie-modal .cm-body{ padding:1.6em; max-height:60vh; overflow-y:auto; }
.cookie-cat{ border:1px solid var(--hairline); border-radius:2px; padding:1em 1.2em; margin-bottom:1em; }
.cookie-cat .cat-row{ display:flex; justify-content:space-between; align-items:center; gap:1em; }
.cookie-cat h3{ font-size:var(--fs-0); font-family:var(--font-body); margin:0; }
.cookie-cat p{ font-size:var(--fs--1); color:var(--slate); margin:.5em 0 0; }
.cookie-cat details{ margin-top:.6em; }
.cookie-cat summary{ font-family:var(--font-mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--steel); cursor:pointer; }
.cookie-cat table{ margin-top:.6em; }
.switch{ position:relative; display:inline-block; width:46px; height:26px; flex:none; }
.switch input{ position:absolute; opacity:0; width:100%; height:100%; margin:0; cursor:pointer; }
.switch .track{
  position:absolute; inset:0; background:#cbd6df; border-radius:13px; transition:background .15s var(--ease);
}
.switch .track::after{
  content:""; position:absolute; top:3px; inset-inline-start:3px; width:20px; height:20px;
  background:#fff; border-radius:50%; transition:transform .15s var(--ease);
}
.switch input:checked + .track{ background:var(--bridge); }
.switch input:checked + .track::after{ transform:translateX(20px); }
.switch input:focus-visible + .track{ outline:2px solid var(--saffron); outline-offset:2px; }
.switch input:disabled + .track{ background:var(--slate); opacity:.5; }
.cookie-modal .cm-foot{ padding:1.2em 1.6em; border-top:1px solid var(--hairline); display:flex; gap:.8em; justify-content:flex-end; flex-wrap:wrap; }
.embed-gate{
  position:relative; border:1px solid var(--hairline); border-radius:2px;
  background:var(--mist); min-height:320px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:1em; text-align:center; padding:2em;
}
.embed-gate p{ font-size:var(--fs--1); color:var(--slate); max-width:44ch; margin:0; }
.embed-gate iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.toast{
  position:fixed; bottom:24px; inset-inline-start:50%; transform:translateX(-50%);
  background:var(--ink); color:#fff; padding:.9em 1.6em; border-radius:2px;
  border-inline-start:3px solid var(--saffron); font-size:var(--fs--1); z-index:160;
}
.breadcrumb{ font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2); letter-spacing:.08em; text-transform:uppercase; }
.breadcrumb ol{ list-style:none; display:flex; gap:.7em; padding:0; margin:0 0 2em; flex-wrap:wrap; }
.breadcrumb li + li::before{ content:"/"; margin-inline-end:.7em; color:var(--hairline); }
.breadcrumb a{ color:var(--slate); text-decoration:none; }
.breadcrumb a:hover{ color:var(--bridge); }
.breadcrumb [aria-current="page"]{ color:var(--ink); }
.page-head{ padding-block:clamp(56px,8vw,96px) clamp(40px,5vw,64px); }
.page-head h1{ font-size:var(--fs-4); max-width:20ch; }
.page-head .lede{ font-size:var(--fs-1); max-width:62ch; color:var(--slate); }
.prose{ max-width:68ch; }
.prose h2{ font-size:var(--fs-2); margin-top:1.8em; }
.prose h3{ font-size:var(--fs-1); font-family:var(--font-body); margin-top:1.6em; }
.prose img{ border-radius:2px; }
.prose .toc{
  border:1px solid var(--hairline); border-radius:2px; padding:1.2em 1.5em; margin:2em 0;
  font-size:var(--fs--1);
}
.prose .toc h2{ font-family:var(--font-mono); font-size:var(--fs--2); font-weight:500; letter-spacing:.12em; text-transform:uppercase; margin:0 0 .8em; color:var(--slate); }
.prose .toc ol{ margin:0; }
.author-box{
  display:flex; gap:1.4em; align-items:center; border:1px solid var(--hairline);
  border-radius:2px; padding:1.4em; margin-top:3em;
}
.author-box .avatar{ width:64px; height:64px; border-radius:50%; background:var(--mist); flex:none; display:flex; align-items:center; justify-content:center; color:var(--steel); font-family:var(--font-display); font-size:24px; }
.share-row{ display:flex; gap:1em; margin-top:2em; align-items:center; }
.share-row a{ font-family:var(--font-mono); font-size:var(--fs--2); letter-spacing:.1em; text-transform:uppercase; text-decoration:none; }
.org-chart{ width:100%; height:auto; }
.org-chart .org-box{ fill:#fff; stroke:var(--hairline); }
.org-chart .org-box-lead{ fill:var(--ink); }
.org-chart text{ font-family:var(--font-body); font-size:13px; fill:var(--ink); }
.org-chart .org-label-lead{ fill:#fff; }
.org-chart .org-line{ stroke:var(--hairline); stroke-width:1; fill:none; }
.org-chart .org-eyebrow{ font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; fill:var(--slate); text-transform:uppercase; }
.site-footer{ background:var(--ink); color:var(--on-ink-dim); }
.site-footer .footer-sign{
  padding-block:clamp(56px,8vw,96px) 0;
}
.site-footer .footer-sign h2{
  color:#fff; font-size:var(--fs-4); max-width:18ch; margin-bottom:.8em;
}
.site-footer .footer-grid{
  display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:clamp(24px,4vw,56px);
  padding-block:clamp(40px,6vw,72px); border-top:1px solid var(--hairline-dark); margin-top:clamp(40px,6vw,72px);
}
@media (max-width:980px){ .site-footer .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .site-footer .footer-grid{ grid-template-columns:1fr; } }
.site-footer h3{
  color:#fff; font-family:var(--font-mono); font-weight:500; font-size:var(--fs--2);
  letter-spacing:.12em; text-transform:uppercase; margin-bottom:1.1em;
}
.site-footer ul{ list-style:none; margin:0; padding:0; }
.site-footer li{ margin-bottom:.7em; }
.site-footer a{ color:var(--on-ink-dim); text-decoration:none; font-size:var(--fs--1); }
.site-footer a:hover{ color:#fff; }
.site-footer address{ font-style:normal; font-size:var(--fs--1); line-height:1.8; }
.footer-brand svg,.footer-brand img{ height:48px; width:auto; margin-bottom:1em; }
.footer-strap{
  font-family:var(--font-mono); font-weight:500; font-size:11px;
  letter-spacing:.22em; text-transform:uppercase; color:var(--saffron);
}
.footer-legal{
  border-top:1px solid var(--hairline-dark);
  padding-block:1.4em; display:flex; justify-content:space-between; gap:1.5em; flex-wrap:wrap;
  font-size:var(--fs--2);
}
.footer-legal ul{ display:flex; gap:1.5em; flex-wrap:wrap; list-style:none; margin:0; padding:0; }
.footer-legal button.linklike{
  appearance:none; background:none; border:0; padding:0; cursor:pointer;
  color:var(--on-ink-dim); font:inherit; text-decoration:underline; text-underline-offset:3px;
}
.footer-legal button.linklike:hover{ color:#fff; }
.newsletter{ border-top:1px solid var(--hairline); }
.newsletter .split{ align-items:center; }
.newsletter .nl-fields{ display:grid; grid-template-columns:1fr 1.4fr auto; gap:.8em; }
@media (max-width:720px){ .newsletter .nl-fields{ grid-template-columns:1fr; } }
.legal-body{ max-width:74ch; }
.legal-body h2{ font-size:var(--fs-2); margin-top:2em; }
.legal-body h3{ font-size:var(--fs-1); font-family:var(--font-body); }
.legal-body table{ margin-block:1.5em; }
.notice-langs [dir="rtl"]{ text-align:right; line-height:1.95; }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .js [data-reveal]{ opacity:1 !important; transform:none !important; }
  .js .hero-cables .drawable{ stroke-dashoffset:0 !important; }
  .js .hero-cables .node-pt{ opacity:1 !important; }
}
@media print{
  .topbar,.site-header,.site-footer,.cookie-banner,.newsletter,.hero-cables{ display:none; }
  body{ color:#000; background:#fff; }
}
