/* AMI Neo — design language shared with Nexus Advanced Geometries.
   White by default; the brightness slider mixes toward the dark palette (see neo.js).
   Brand type: 'AMI' = AMI Corporate (letters) + Benguiat Gothic Book (digits & punctuation). */
@font-face{font-family:'AMI';src:url(fonts/ami-corporate.woff2?v=2) format('woff2'),url(fonts/ami-corporate.ttf?v=2) format('truetype');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0020,U+0041-005A,U+0061-007A,U+00A0}
@font-face{font-family:'AMI';src:url(fonts/benguiat-gothic-book.woff2?v=2) format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0021-0040,U+005B-0060,U+007B-007E,U+00A1-00BF,U+2013-2014,U+2018-201D,U+2022,U+2026,U+20AC}
:root{
  --bg:#ffffff;--surface:#ffffff;--sunk:#eef1f4;
  --sh-d:#d6dbe1;--sh-l:#ffffff;--imgbg:#ffffff;
  --ink:#3a3f46;--bright:#16324a;--muted:#6b7280;--dim:#9aa1aa;
  --accent:#3f88c5;--accent-deep:#2a6da6;
  --ti1:#16324a;--ti2:#3f88c5;--ti3:#7fb3dd;--ti4:#2a6da6;
  --raise:9px 9px 22px var(--sh-d),-9px -9px 22px var(--sh-l);
  --sink:inset 4px 4px 9px var(--sh-d),inset -4px -4px 9px var(--sh-l);
  --sink-sm:inset 3px 3px 7px var(--sh-d),inset -3px -3px 7px var(--sh-l);
  --fbrand:'AMI','Helvetica Neue',Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:"Helvetica Neue",Arial,system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.65;overflow-x:hidden}
img{max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 34px}
.titanium{color:var(--bright)}
main,header,.topbar,footer{position:relative;z-index:1}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-deep)}

/* ---------- live network background (drawn by neo.js) ---------- */
.netbg{position:fixed;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;display:block}

/* ---------- brand type on titles ---------- */
.htitle,.htag,.pagehead h1,.sec h2,.card h3,.prose h3,.prose h4,.mcard h3,.mcard h4,.acc .ov h3,.post h3,.article h1,.article h2,.article h3,.cta h3,.lb .txt h3,.statement .sig,.mrow h3,.f-ami{
  font-family:var(--fbrand);font-weight:400;font-synthesis:none;-webkit-text-stroke:.28px currentColor;paint-order:stroke fill}

/* ---------- topbar + dropdown nav ---------- */
.topbar{position:fixed;top:0;left:0;right:0;z-index:20;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px)}
.topbar .in{max-width:1180px;margin:0 auto;padding:0 34px;display:flex;align-items:center;gap:14px;height:66px}
.blogo{flex:none;height:30px;width:auto;display:block}
.nav{margin-left:auto;display:flex;gap:2px;align-items:center}
.nav>div{position:relative}
.nav a{font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--muted);text-decoration:none;padding:8px 10px;border-radius:11px;transition:all .25s;white-space:nowrap;display:block}
.nav a:hover{color:var(--bright)}
.nav>div>a.active,.nav>a.active{color:var(--accent);background:var(--sunk);box-shadow:var(--sink-sm)}
.nav .sub{display:none;position:absolute;top:100%;left:0;padding-top:10px;min-width:230px}
.nav>div:hover .sub,.nav>div:focus-within .sub{display:block}
.nav .sub .pane{background:var(--surface);border-radius:14px;box-shadow:var(--raise);padding:8px;display:flex;flex-direction:column;gap:2px}
.nav .sub a{font-size:10.5px;padding:9px 12px}
.nav .sub a.active{color:var(--accent);background:var(--sunk);box-shadow:var(--sink-sm)}
.nav .caret{font-size:8px;margin-left:5px;opacity:.6}
.tog{display:flex;align-items:center;gap:7px;flex:none;margin-left:10px;border:none;background:none;cursor:pointer;padding:4px;color:var(--dim)}
.tog .ic{font-size:12px;line-height:1;transition:color .3s}
.tog .track{position:relative;width:44px;height:22px;border-radius:11px;background:var(--sunk);box-shadow:var(--sink-sm);display:block}
.tog .knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--accent);box-shadow:1px 1px 4px rgba(22,50,74,.35);transition:left .32s cubic-bezier(.4,0,.2,1)}
.tog.dark .knob{left:25px}
.tog .ic:first-child{color:var(--accent)}.tog.dark .ic:first-child{color:var(--dim)}.tog.dark .ic:last-child{color:var(--accent)}
.lightctl{display:flex;align-items:center;gap:8px;flex:none;margin-left:10px}
.lightctl .ic{font-size:12px;color:var(--dim);user-select:none}
.lightslider{appearance:none;width:96px;height:8px;border-radius:5px;background:var(--sunk);outline:none;box-shadow:inset 3px 3px 6px var(--sh-d),inset -3px -3px 6px var(--sh-l)}
.lightslider::-webkit-slider-thumb{appearance:none;width:22px;height:22px;cursor:pointer;border-radius:50%;background:var(--accent);box-shadow:2px 2px 5px var(--sh-d)}
.lightslider::-moz-range-thumb{width:22px;height:22px;border:none;cursor:pointer;border-radius:50%;background:var(--accent);box-shadow:2px 2px 5px var(--sh-d)}
.seam{height:1px;background:linear-gradient(90deg,transparent 4%,color-mix(in srgb,var(--accent) 30%,transparent) 22%,color-mix(in srgb,var(--ti2) 65%,transparent) 50%,color-mix(in srgb,var(--accent) 30%,transparent) 78%,transparent 96%)}
@media(max-width:1100px){.lightctl{display:none}.topbar .in>.tog{display:none}.nav{display:none}}

/* ---------- mobile menu ---------- */
.menubtn{display:none;width:36px;height:36px;border-radius:11px;border:none;cursor:pointer;flex:none;margin-left:auto;background:var(--sunk);box-shadow:var(--sink-sm);flex-direction:column;align-items:center;justify-content:center;gap:4px;transition:all .25s}
.menubtn span{display:block;width:14px;height:1px;background:var(--accent);transition:all .25s}
.menubtn.open span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menubtn.open span:nth-child(2){opacity:0}
.menubtn.open span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
@media(max-width:1100px){.menubtn{display:flex}}
.mnav{display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 66px);overflow:auto;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(14px);padding:10px 22px 18px;flex-direction:column;gap:2px;box-shadow:0 14px 24px rgba(22,50,74,.18)}
.mnav.open{display:flex}
.mnav a{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--muted);text-decoration:none;padding:11px 13px;border-radius:11px;display:block}
.mnav a.sub{padding-left:32px;font-size:11px;color:var(--dim)}
.mnav a.active{color:var(--accent);background:var(--sunk);box-shadow:var(--sink-sm)}
.mnav-theme{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;color:var(--dim);font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.mnav-theme .tog{margin:0}
.mnav-theme input{-webkit-appearance:none;appearance:none;flex:1;height:8px;border-radius:5px;background:var(--sunk);outline:none;box-shadow:inset 3px 3px 6px var(--sh-d),inset -3px -3px 6px var(--sh-l)}
.mnav-theme input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--accent);cursor:pointer}
.mnav-theme input::-moz-range-thumb{width:20px;height:20px;border:none;border-radius:50%;background:var(--accent);cursor:pointer}

/* ---------- home hero: logo + title floating over the live network ---------- */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:96px 20px 70px}
.hero-in{position:relative;display:flex;flex-direction:column;align-items:center;max-width:900px}
.hero-in::before{content:"";position:absolute;left:50%;top:50%;width:max(130%,620px);height:135%;transform:translate(-50%,-50%);border-radius:50%;z-index:-1;pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--bg) 94%,transparent) 28%,color-mix(in srgb,var(--bg) 62%,transparent) 62%,transparent 100%)}
.hicon{width:min(36vmin,290px);height:auto;display:block;filter:drop-shadow(0 16px 30px rgba(22,50,74,.22));animation:hfloat 7s ease-in-out infinite}
@keyframes hfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.htitle{margin-top:30px;font-size:clamp(42px,7vw,88px);line-height:1.05;letter-spacing:.01em;color:var(--bright);text-transform:none}
.htag{margin-top:14px;font-size:clamp(17px,2.1vw,25px);color:var(--accent);letter-spacing:.01em;line-height:1.35}
.scrollhint{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);font-size:10.5px;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--dim);text-align:center}
.scrollhint::after{content:"";display:block;width:1px;height:44px;margin:10px auto 0;
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--ti2) 85%,transparent) 50%,transparent),linear-gradient(180deg,var(--accent),transparent);
  background-size:100% 16px,100% 100%;background-repeat:no-repeat,no-repeat;background-position:0 -16px,0 0;
  animation:hintflow 2.4s cubic-bezier(.45,.1,.45,1) infinite}
@keyframes hintflow{0%{background-position:0 -16px,0 0}72%,100%{background-position:0 44px,0 0}}

/* ---------- page top (inner pages) ---------- */
.pagehead{padding:104px 0 6px}
.pagehead h1,.pagehead h1.titanium{font-size:clamp(28px,3.8vw,40px);letter-spacing:.08em;text-transform:uppercase;text-align:center;line-height:1.2;color:var(--accent)}
.pagehead .sub{margin-top:10px;font-size:12px;letter-spacing:.26em;text-transform:uppercase;color:var(--dim);text-align:center}

/* ---------- banner carousel (transparent header composites) ---------- */
.carousel{position:relative;border-radius:18px;background:var(--imgbg);box-shadow:var(--raise);padding:14px;margin:0 0 8px;aspect-ratio:1200/560;overflow:hidden}
.carousel .slides{position:absolute;inset:14px}
.carousel img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 1.1s ease;filter:drop-shadow(0 10px 18px rgba(22,50,74,.18))}
.carousel img.on{opacity:1}
.carousel .dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:7px}
.carousel .dots span{width:8px;height:8px;border-radius:50%;background:#eef1f4;box-shadow:inset 2px 2px 4px #d6dbe1;cursor:pointer;transition:background .3s}
.carousel .dots span.on{background:var(--accent)}
.carousel .arr{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;background:#eef1f4;color:var(--accent);box-shadow:inset 3px 3px 7px #d6dbe1,inset -3px -3px 7px #fff;font-size:14px;opacity:.75;transition:opacity .2s}
.carousel .arr:hover{opacity:1}
.carousel .arr.l{left:14px}.carousel .arr.r{right:14px}
.banner{border-radius:18px;background:var(--imgbg);box-shadow:var(--raise);padding:18px 28px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}
.banner img{max-height:260px;width:auto;max-width:100%;display:block}

/* ---------- sections / prose ---------- */
.sec{padding:34px 0 10px}
.sec h2{font-size:24px;letter-spacing:.1em;text-transform:uppercase;margin:14px 0 20px;text-align:center;line-height:1.25;color:var(--accent)}
.sec h2.titanium{color:var(--accent)}
.sec h2.left{text-align:left}
/* frosted glass panels: the network stays faintly visible behind the text */
.glass,.statement,.prose,.article{background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(10px) saturate(1.15);-webkit-backdrop-filter:blur(10px) saturate(1.15);border:1px solid color-mix(in srgb,var(--sh-l) 65%,transparent);box-shadow:0 12px 34px rgba(22,50,74,.07);border-radius:18px}
.prose{max-width:900px;margin:0 auto;color:var(--muted);font-size:15px;padding:24px 32px}
.prose.center{text-align:center}
.prose:empty{display:none}
.prose p+p{margin-top:12px}
.prose h3,.prose h4{color:var(--bright);margin:24px 0 8px}
.prose h3{font-size:20px;letter-spacing:.04em}.prose h4{font-size:15px;text-transform:uppercase;letter-spacing:.1em}
.prose ul{margin:12px 0 6px}
ul.neolist{list-style:none}
ul.neolist li{padding:7px 0 7px 26px;position:relative;color:var(--muted);font-size:14.5px}
ul.neolist li::before{content:"";position:absolute;left:2px;top:14px;width:11px;height:10px;background:var(--accent);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:2px;opacity:.75}
.cols2{columns:2;column-gap:40px}
@media(max-width:700px){.cols2{columns:1}}
.card{background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:34px 38px}
.card h3{font-size:20px;letter-spacing:.04em;color:var(--bright);margin-bottom:8px}
.card.sunk{background:var(--sunk);box-shadow:inset 6px 6px 12px var(--sh-d),inset -6px -6px 12px var(--sh-l)}
.statement{max-width:900px;margin:0 auto;padding:40px 52px;text-align:center}
.statement p{color:var(--muted);font-size:15.5px}
.statement p+p{margin-top:12px}
.statement .sig{margin-top:22px;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--bright)}
.btn{display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--accent-deep);background:var(--sunk);padding:12px 22px;border-radius:12px;border:none;cursor:pointer;text-decoration:none;box-shadow:var(--sink);transition:all .22s}
.btn:hover{color:var(--accent);box-shadow:inset 5px 5px 11px var(--sh-d),inset -5px -5px 11px var(--sh-l),0 0 14px rgba(63,136,197,.15)}
.center{text-align:center}

/* ---------- media cards (team, learning options, departments) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px;margin:10px 0 20px}
.cards.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.mcard{background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:18px 24px 26px;text-align:center;display:flex;flex-direction:column;align-items:center}
.mcard .pic{width:100%;border-radius:12px;background:var(--imgbg);padding:8px;margin-bottom:14px;display:flex;align-items:center;justify-content:center}
.mcard .pic img{max-height:220px;width:auto;max-width:100%;border-radius:8px;display:block}
.mcard .pic.round img{width:180px;height:180px;object-fit:cover;border-radius:50%}
.mcard h3,.mcard h4{font-size:19px;letter-spacing:.03em;color:var(--bright);margin-bottom:8px;line-height:1.25}
.mcard p{color:var(--muted);font-size:14px}
.mcard p+p{margin-top:8px}
.mcard.wide{text-align:left;align-items:stretch}
.mrow{display:grid;grid-template-columns:220px 1fr;gap:30px;align-items:center;background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:22px 30px;margin:0 0 24px}
.mrow .logo{background:var(--imgbg);border-radius:12px;padding:10px;display:flex;align-items:center;justify-content:center;min-height:120px}
.mrow .logo img{max-height:130px;max-width:100%;width:auto}
.mrow p{color:var(--muted);font-size:14.5px}
@media(max-width:700px){.mrow{grid-template-columns:1fr}}
.figure{background:var(--imgbg);border-radius:16px;box-shadow:var(--raise);padding:12px;margin:18px auto;max-width:900px}
.figure img{display:block;width:100%;height:auto;border-radius:10px}
.figure figcaption{font-size:12.5px;color:var(--dim);text-align:center;padding:10px 6px 2px}
.logos{display:flex;flex-wrap:wrap;gap:28px;justify-content:center;align-items:center;margin:10px 0 20px}
.logos a,.logos span{background:none;box-shadow:none;border-radius:14px;padding:14px 26px;display:flex;align-items:center;justify-content:center;min-width:240px;transition:transform .25s,filter .25s}
.logos a:hover{transform:translateY(-3px);filter:drop-shadow(0 10px 18px rgba(22,50,74,.2))}
.logos img{max-height:100px;width:auto;max-width:340px}

/* ---------- image accordion (services): image on white, label strip below, no overlay ---------- */
.acc{display:flex;gap:18px;margin:8px 0 28px;height:350px}
.acc .it{flex:1 1 0;position:relative;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:var(--raise);transition:flex .55s cubic-bezier(.4,0,.2,1);text-decoration:none;color:inherit;min-width:0}
.acc .it .im{flex:1 1 auto;min-height:0;background-color:var(--imgbg);background-size:cover;background-position:center;background-repeat:no-repeat}
.acc .it.contain .im{background-size:contain;background-origin:content-box;padding:16px}
.acc .it:hover,.acc .it:focus-visible{flex:2.6 1 0}
.acc .ov{padding:14px 18px 16px;background:var(--surface);border-top:1px solid color-mix(in srgb,var(--sh-d) 60%,transparent)}
.acc .ov h3{font-size:17px;letter-spacing:.05em;text-transform:uppercase;color:var(--bright);line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.acc .it:hover .ov h3{-webkit-line-clamp:unset}
.acc .ov p{font-size:13.5px;line-height:1.5;color:var(--muted);margin-top:8px;max-height:0;opacity:0;overflow:hidden;transition:max-height .5s ease,opacity .4s .15s}
.acc .it:hover .ov p,.acc .it:focus-visible .ov p{max-height:150px;opacity:1}
@media(max-width:800px){.acc{flex-direction:column;height:auto}.acc .it{flex:none!important}.acc .it .im{height:170px;flex:none}.acc .ov p{max-height:none;opacity:1}.acc .ov h3{-webkit-line-clamp:unset}}

/* ---------- filterable gallery ---------- */
.gal{margin:6px 0 30px}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 22px}
.chip{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--muted);background:var(--surface);padding:9px 14px;border-radius:10px;border:none;cursor:pointer;box-shadow:6px 6px 12px var(--sh-d),-6px -6px 12px var(--sh-l);transition:all .22s}
.chip:hover{color:var(--bright)}
.chip.on{color:var(--accent);background:var(--sunk);box-shadow:var(--sink-sm)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:20px}
.tile{position:relative;border-radius:14px;background:var(--surface);box-shadow:var(--raise);padding:9px;cursor:pointer;transition:transform .3s,opacity .3s;display:block;text-decoration:none;color:inherit;border:none;text-align:left}
.tile:hover{transform:translateY(-4px)}
.tile.hide{display:none}
.tile .im{aspect-ratio:1;border-radius:9px;overflow:hidden;background:var(--imgbg)}
.tile .im img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.tile:hover .im img{transform:scale(1.05)}
.tile .cap{padding:11px 4px 3px}
.tile .cap h3{font-size:12px;letter-spacing:.08em;font-weight:600;color:var(--bright);line-height:1.35}
.tile .cap p{font-size:11.5px;color:var(--dim);margin-top:3px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ---------- lightbox ---------- */
.lb{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);padding:70px 80px 90px}
.lb.open{display:flex}
.lb .stage{position:relative;max-width:1100px;max-height:100%;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
.lb .frame{background:var(--imgbg);border-radius:16px;box-shadow:var(--raise);padding:12px;max-height:calc(100% - 80px);display:flex;align-items:center;justify-content:center}
.lb img{max-width:100%;max-height:calc(100vh - 260px);width:auto;height:auto;border-radius:10px;display:block;object-fit:contain}
.lb .txt{text-align:center;max-width:760px}
.lb .txt h3{font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--bright)}
.lb .txt p{font-size:13px;color:var(--muted);margin-top:4px}
.lb .txt .n{font-size:10.5px;letter-spacing:.2em;color:var(--dim);margin-top:6px}
.lb button{position:absolute;width:44px;height:44px;border-radius:50%;border:none;cursor:pointer;background:var(--sunk);color:var(--accent);box-shadow:var(--sink-sm);font-size:18px;line-height:1;transition:color .2s}
.lb button:hover{color:var(--bright)}
.lb .x{top:18px;right:18px;position:fixed}
.lb .p{left:18px;top:50%;transform:translateY(-50%);position:fixed}
.lb .nx{right:18px;top:50%;transform:translateY(-50%);position:fixed}
@media(max-width:700px){.lb{padding:60px 14px 70px}.lb .p,.lb .nx{top:auto;bottom:14px;transform:none}.lb .p{left:14px}.lb .nx{right:14px}}

/* ---------- posts / articles ---------- */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;margin:8px 0 30px}
.post{background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:12px 12px 26px;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:transform .3s}
.post:hover{transform:translateY(-4px)}
.post .im{aspect-ratio:4/3;border-radius:11px;overflow:hidden;background:var(--imgbg)}
.post .im img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.post:hover .im img{transform:scale(1.04)}
.post h3{font-size:20px;letter-spacing:.03em;color:var(--bright);margin:18px 16px 6px;line-height:1.25}
.post .date{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);margin:0 16px 8px}
.post p{font-size:13.5px;color:var(--muted);margin:0 16px}
.post .btn{margin:18px auto 0}
.article{max-width:860px;margin:0 auto;padding:26px 36px 34px}
.article h1{font-size:clamp(28px,3.6vw,40px);letter-spacing:.03em;line-height:1.2;text-align:center}
.article .meta{text-align:center;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin:14px 0 30px}
.article p{color:var(--muted);font-size:15.5px;margin:0 0 16px}
.article h2,.article h3{color:var(--bright);letter-spacing:.03em;margin:30px 0 12px}
.article h2{font-size:26px}.article h3{font-size:21px}
.article .figure{margin:22px 0}
.video{background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:12px;margin:22px auto;max-width:900px}
.video .r{position:relative;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:var(--sunk)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.postnav{display:flex;justify-content:space-between;gap:16px;margin-top:40px;flex-wrap:wrap}

/* ---------- tables / faq / quotes / cta ---------- */
.tabs{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:6px 0 18px}
.tabs span{font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--accent);background:var(--sunk);padding:9px 16px;border-radius:10px;box-shadow:var(--sink-sm)}
.tablewrap{overflow-x:auto;background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:10px 14px;margin:10px 0 22px}
table.neo{width:100%;border-collapse:collapse;font-size:13.5px}
table.neo th{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);text-align:left;padding:12px 12px;border-bottom:1px solid color-mix(in srgb,var(--accent) 25%,transparent)}
table.neo td{padding:12px;color:var(--muted);border-bottom:1px solid color-mix(in srgb,var(--sh-d) 55%,transparent);vertical-align:top}
table.neo tr:last-child td{border-bottom:none}
.faq{max-width:900px;margin:0 auto 12px;background:var(--surface);border-radius:14px;box-shadow:var(--raise);padding:0 24px}
.faq summary{cursor:pointer;list-style:none;padding:18px 0;font-weight:600;letter-spacing:.04em;color:var(--bright);font-size:15px;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-size:20px;flex:none;width:30px;height:30px;border-radius:50%;background:var(--sunk);box-shadow:var(--sink-sm);display:flex;align-items:center;justify-content:center;transition:transform .3s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 0 20px;color:var(--muted);font-size:14.5px}
.faq .a .prose{background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;box-shadow:none;padding:0}
.faq .a p+p,.faq .a ul{margin-top:10px}
.faq .a ul{padding-left:18px}
.faqgroup h3{font-size:16px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);text-align:center;margin:34px 0 16px;font-family:var(--fbrand);font-weight:400}
.quote{max-width:820px;margin:16px auto;background:var(--sunk);border-radius:16px;box-shadow:inset 6px 6px 12px var(--sh-d),inset -6px -6px 12px var(--sh-l);padding:34px 40px;display:grid;grid-template-columns:96px 1fr;gap:26px;align-items:center}
.quote img{width:96px;height:96px;border-radius:50%;object-fit:cover;box-shadow:var(--raise)}
.quote p{color:var(--muted);font-size:14.5px;font-style:italic}
.quote .who{margin-top:10px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-style:normal}
@media(max-width:600px){.quote{grid-template-columns:1fr}}
.cta{max-width:820px;margin:18px auto;background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:30px 36px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta h3{font-size:19px;letter-spacing:.06em;text-transform:uppercase;color:var(--bright)}
.cta p{color:var(--muted);font-size:14px;margin-top:4px}
.map{background:var(--surface);border-radius:16px;box-shadow:var(--raise);padding:12px;margin:10px auto 30px;max-width:900px}
.map iframe{display:block;width:100%;height:380px;border:0;border-radius:10px}
.map.sketch{position:relative;padding:0;overflow:hidden;background:var(--imgbg)}
.maplink{display:block;color:inherit;text-decoration:none;cursor:pointer}
#skmap{display:block;width:100%;height:auto;aspect-ratio:16/10;background:var(--imgbg);border-radius:16px}
#skmap *{vector-effect:non-scaling-stroke}
#skmap .coast{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}
#skmap .coast2{fill:none;stroke:var(--accent);stroke-width:.6;opacity:.45;stroke-linejoin:round}
#skmap .road{fill:none;stroke:var(--accent);stroke-width:.7;opacity:.5;stroke-linejoin:round;stroke-linecap:round}
#skmap .road.minor{stroke-width:.5;opacity:.35}
#skmap .rail{fill:none;stroke:var(--accent);stroke-width:.6;opacity:.35;stroke-dasharray:4 3}
#skmap .cliff{fill:none;stroke:var(--accent);stroke-width:.6;opacity:.45}
#skmap .bld{fill:color-mix(in srgb,var(--accent) 7%,transparent);stroke:var(--accent);stroke-width:.55;opacity:.85;stroke-linejoin:round}
#skmap .bld.silo{fill:color-mix(in srgb,var(--accent) 35%,transparent);stroke-width:1}
#skmap .quay{fill:none;stroke:var(--accent);stroke-width:1;stroke-linejoin:round;stroke-linecap:round}
#skmap .wave{fill:none;stroke:var(--accent);stroke-width:.6;opacity:.35;stroke-linecap:round}
#skmap .peak{fill:none;stroke:var(--accent);stroke-width:1;stroke-linejoin:round}
#skmap .grid{fill:none;stroke:var(--accent);stroke-width:.4;opacity:.12}
#skmap text{font-family:var(--fbrand);fill:var(--accent);letter-spacing:.06em;paint-order:stroke fill;stroke:var(--imgbg);stroke-width:3px;stroke-linejoin:round}
#skmap text.small{fill:var(--muted)}
#skmap #pin .dot{fill:var(--accent)}
#skmap #pin .ring{fill:none;stroke:var(--accent);stroke-width:1.2}
#g-wf,#pin{opacity:0}
.mapcap{position:absolute;left:18px;bottom:14px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(6px);padding:7px 12px;border-radius:9px;transition:color .2s}
.maplink:hover .mapcap{color:var(--accent)}
.mapreplay{position:absolute;right:14px;bottom:14px;width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;background:var(--sunk);color:var(--accent);box-shadow:var(--sink-sm);font-size:16px;line-height:1}
.mapreplay:hover{color:var(--bright)}
.contactcards .mcard h3{margin-bottom:4px}

/* headings light up when clicked (neo.js adds .lit) */
.sec h2,.pagehead h1,.htitle,.htag,.clabel{cursor:default}
.lit{animation:hlit 1.1s ease-out}
@keyframes hlit{0%{text-shadow:none}18%{text-shadow:0 0 6px color-mix(in srgb,var(--accent) 85%,transparent),0 0 26px color-mix(in srgb,var(--accent) 55%,transparent);filter:brightness(1.35)}100%{text-shadow:0 0 0 transparent;filter:none}}

/* contact page */
.contact{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;max-width:900px;margin:0 auto 26px;padding:36px 46px}
.clabel{font-family:var(--fbrand);font-weight:400;font-synthesis:none;-webkit-text-stroke:.28px currentColor;paint-order:stroke fill;color:var(--accent);font-size:21px;letter-spacing:.22em;text-transform:uppercase;line-height:1.2;margin:0 0 8px}
.cval{display:block;font-size:17px;color:var(--ink);margin:0 0 30px;line-height:1.6}
a.cval:hover{color:var(--accent)}
.ccol .cval:last-child{margin-bottom:0}
@media(max-width:700px){.contact{grid-template-columns:1fr;gap:10px;padding:28px}}

footer{padding:44px 0 40px;color:var(--dim);font-size:11px;letter-spacing:.2em;text-transform:uppercase;text-align:center;font-weight:600}
footer a{color:var(--dim);text-decoration:none;transition:color .2s}footer a:hover{color:var(--accent)}
footer .line{margin-top:8px;letter-spacing:.14em;text-transform:none;font-weight:400}

@media (prefers-reduced-motion: reduce){.carousel img{transition:none}.acc .it{transition:none}.hicon{animation:none}.scrollhint::after{animation:none}}
