/* VistaCover — night survey identity: midnight map headers, signal-orange markers, cobalt links on ice */
:root{--pine:#13235a;--pine2:#1f3b8f;--chalk:#eef2f8;--paper:#fff;--ochre:#ff6a2b;--ochre-soft:#ffe4d6;--lagoon:#2d5be3;
--ink:#121a33;--slate:#566079;--line:#d2daea;--soft:#e2e8f4;--brick:#c4372a;
--night:#0b1433;--night2:#13204d;--glow:#7fa2ff;
--disp:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;--body:"Literata",Georgia,serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--chalk);color:var(--ink);font:18px/1.75 var(--body);font-optical-sizing:auto}
a{color:var(--lagoon);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--ochre);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:8px;background:var(--pine);color:#fff;padding:8px 14px;z-index:20}
.skip:focus{left:12px}
h1,h2,h3,h4,.brand,.nv,.btn,.toc,.bc,.rt,.tag,figcaption,table,.notice,.cat,.chips a,.row,.meta,.filters,.vc-form,.ask h2{font-family:var(--disp)}
h1,h2,h3{line-height:1.08;letter-spacing:-.02em;color:var(--pine)}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
.narrow{max-width:760px}
.topo{width:100%;height:100%;display:block}

/* header */
.sh{background:rgba(238,242,248,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.hd{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:66px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:500;font-size:22px;letter-spacing:-.02em;color:var(--pine);text-decoration:none}
.brand b{font-weight:800}
.nv{display:flex;gap:4px;flex-wrap:wrap;font-size:15px;font-weight:500}
.nv a{color:var(--pine);text-decoration:none;padding:6px 11px;border-radius:999px}
.nv a:hover{background:var(--soft)}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--chalk);border-bottom:1px solid var(--line)}
.hero-art{position:absolute;inset:0;opacity:.95}
.hero-in{position:relative;padding:96px 20px 64px}
.hero h1{font-size:clamp(44px,7.2vw,92px);font-weight:800;max-width:15ch;margin:0 0 22px;line-height:.98;letter-spacing:-.035em}
.hero p{font-size:21px;max-width:40ch;color:var(--ink);background:rgba(238,242,248,.75);margin:0}
.hc{display:flex;gap:12px;margin:28px 0 34px;flex-wrap:wrap}
.btn{background:var(--pine);color:#fff;padding:13px 22px;border-radius:999px;text-decoration:none;font-weight:700;font-size:16px;border:2px solid var(--pine)}
.btn:hover{background:var(--pine2)}
.btn.ghost{background:rgba(255,255,255,.7);color:var(--pine)}
.chips{display:flex;flex-wrap:wrap;gap:8px;max-width:820px}
.chips a{font-size:14px;background:#fff;border:1px solid var(--line);color:var(--pine);text-decoration:none;padding:7px 13px;border-radius:999px}
.chips a:hover{border-color:var(--pine)}

/* sections */
.sec{font-size:clamp(28px,3.4vw,40px);font-weight:800;margin:72px 0 24px}
.feat .featgrid{display:grid;grid-template-columns:1.15fr 1fr;gap:28px;align-items:start}
.rows{display:flex;flex-direction:column;border-top:2px solid var(--pine)}
.row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:baseline;padding:16px 4px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.row:hover .rtitle{color:var(--lagoon)}
.rtitle{font-size:18px;font-weight:700;color:var(--pine);line-height:1.3}
.band{background:var(--pine);margin-top:80px;padding:8px 0 64px}
.band .sec{color:#fff}
.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.cat{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18);border-top:5px solid var(--c);border-radius:6px;padding:22px;color:#fff;text-decoration:none;display:flex;flex-direction:column;gap:6px}
.cat:hover{background:rgba(255,255,255,.12)}
.cname{font-size:24px;font-weight:800;letter-spacing:-.02em}.ccount{opacity:.75;font-size:15px}

/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden;text-decoration:none;color:var(--ink)}
.card:hover{border-color:var(--c)}
.card:hover h3{color:var(--lagoon)}
.card .cv{height:118px;border-bottom:3px solid var(--c);background:var(--chalk)}
.card.big{border-radius:14px}.card.big .cv{height:260px}.card.big h3{font-size:30px}
.cb{padding:16px 18px 20px;display:flex;flex-direction:column;gap:8px}
.cb h3{font-size:20px;margin:0;font-weight:700}
.cb p{font-size:16px;color:var(--slate);margin:0;line-height:1.55}
.tag{display:inline-block;font-size:13px;font-weight:700;color:var(--c,var(--pine));background:color-mix(in srgb,var(--c,#1f3b8f) 12%,white);padding:2px 9px;border-radius:4px;width:fit-content}
.rt{font-size:13px;color:var(--slate)}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.filters button{font:600 14px var(--disp);border:1px solid var(--line);background:#fff;color:var(--pine);padding:8px 14px;border-radius:999px;cursor:pointer}
.filters button.on{background:var(--pine);color:#fff;border-color:var(--pine)}
.lh{padding:36px 20px 40px}

/* page header */
.ph{position:relative;overflow:hidden;border-bottom:1px solid var(--line);background:var(--chalk)}
.ph-art{position:absolute;inset:0;opacity:.6}
.ph-in{position:relative;padding:40px 20px 36px}
.ph.small .ph-in{padding:56px 20px 40px}
.bc{font-size:14px;color:var(--slate);margin:0 0 18px}.bc a{color:var(--slate)}
.ph h1{font-size:clamp(36px,5vw,58px);font-weight:800;margin:0 0 14px;max-width:20ch;background:rgba(238,242,248,.82);box-decoration-break:clone;-webkit-box-decoration-break:clone;display:inline;line-height:1.1}
.ph .dek{font-size:20px;color:var(--ink);margin:18px 0 10px;max-width:60ch;background:rgba(238,242,248,.82)}
.meta{font-size:14px;color:var(--slate);margin:0;background:rgba(238,242,248,.82);display:inline-block;padding-right:6px}

/* article */
.post>.wrap{padding-top:28px;padding-bottom:40px}
.notice{background:var(--ochre-soft);border-left:4px solid var(--ochre);border-radius:4px;padding:12px 16px;font-size:15px;line-height:1.55;margin-bottom:30px}
.toc{border:1px solid var(--line);background:#fff;border-radius:6px;padding:18px 22px;margin:0 0 34px;font-size:15px}
.toc h2{font-size:17px;margin:0 0 8px}
.toc ol{margin:0;padding-left:20px;columns:2;column-gap:28px}.toc li{margin:4px 0;break-inside:avoid}
.prose h2{font-size:30px;font-weight:800;margin:56px 0 14px}
.prose h3{font-size:22px;font-weight:700;margin:34px 0 10px}
.prose p,.prose li{margin:0 0 18px}.prose li{margin-bottom:8px}
.prose ul li::marker{color:var(--ochre)}
.prose table{border-collapse:collapse;width:100%;font-size:15px;margin:24px 0;background:#fff;display:block;overflow-x:auto}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.prose thead th{background:var(--pine);color:#fff;font-weight:700}
.callout{background:#fff;border:1px solid var(--line);border-left:5px solid var(--lagoon);border-radius:6px;padding:4px 22px;margin:30px 0}
.callout.warn{border-left-color:var(--brick)}
.callout h4{margin:16px 0 4px;font-size:18px;color:var(--lagoon)}
.callout.warn h4{color:var(--brick)}
.math{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14.5px;background:var(--pine);color:#e6ebf5;padding:16px 20px;border-radius:6px;overflow-x:auto;white-space:pre;line-height:1.65;margin:24px 0}
.chart{margin:36px 0;background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 20px 14px}
.chart svg{width:100%;height:auto;display:block}
.ct{font-weight:800;font-size:18px;margin-bottom:6px;color:var(--pine)}
.cc{font-size:14px;color:var(--slate);margin-top:8px;line-height:1.5}.cn{display:block;font-style:italic;margin-top:4px}
.chart text{font-family:var(--disp)}
.ax{font-size:12.5px;fill:#566079}.ax.t{font-weight:700}.lg{font-size:13px;fill:#121a33;font-weight:500}.vl{font-size:12.5px;font-weight:700;fill:#121a33}
.gr{stroke:#dce2f0;stroke-width:1}
.fn{font-size:13px;font-weight:800}.fs{font-size:14px;fill:#121a33;font-weight:700}
.fw{overflow-x:auto}.fw svg{min-width:560px}
.fl{font-size:15.5px;margin:14px 0 4px;padding-left:22px}
.dt{margin-top:10px;font-family:var(--disp);font-size:14px}.dt summary{cursor:pointer;color:var(--lagoon);font-weight:600}
.tw{overflow-x:auto}.dt table{border-collapse:collapse;width:100%;margin-top:10px}.dt th,.dt td{border:1px solid var(--line);padding:5px 9px;text-align:right}.dt th:first-child{text-align:left}
.disc{background:var(--soft);border-radius:6px;padding:8px 24px 14px;margin-top:56px;font-size:15px;line-height:1.6}
.disc h2{font-size:18px;margin:16px 0 6px}
.rel h2{font-size:28px;font-weight:800;margin:56px 0 18px}
.page{padding:36px 20px 40px}

/* ask form */
.ask{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:56px}
.ask-in{max-width:1200px;margin:0 auto;padding:48px 20px;display:grid;grid-template-columns:1fr 1.3fr;gap:40px}
.ask h2{font-size:30px;font-weight:800;margin:0 0 10px}
.ask-copy p{font-size:16px;color:var(--slate);margin:0 0 12px}
.ask-small{font-size:14px!important}
.vc-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.vc-form label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--pine)}
.vc-form .full{grid-column:1/-1}
.vc-form input,.vc-form select,.vc-form textarea{font:16px var(--body);padding:10px 12px;border:1.5px solid var(--line);border-radius:6px;background:var(--chalk);color:var(--ink)}
.vc-form input:focus,.vc-form select:focus,.vc-form textarea:focus{border-color:var(--pine);outline:none;background:#fff}
.vc-form .chk{flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;color:var(--ink);font-family:var(--body);font-size:14.5px}
.vc-form .chk input{margin-top:4px;width:18px;height:18px}
.vc-form button{grid-column:1/-1;justify-self:start;font:700 16px var(--disp);background:var(--ochre);color:var(--pine);border:2px solid var(--pine);padding:12px 24px;border-radius:999px;cursor:pointer}
.vc-form button:hover{background:#fc7e4a}
.vc-form button:disabled{opacity:.6}
.form-status{grid-column:1/-1;margin:0;font-size:15px;color:var(--pine)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* footer */
.sf{position:relative;background:var(--pine);color:#c3cbde;padding:56px 0 28px;font-size:15px;overflow:hidden}
.sf-topo{position:absolute;inset:0;opacity:.18;pointer-events:none}
.sf .wrap{position:relative}
.sf .brand{color:#fff}
.sf a{color:#c3cbde;display:block;text-decoration:none;margin:5px 0}.sf a:hover{color:#fff;text-decoration:underline}
.sf h3{color:var(--ochre);margin:0 0 10px;font-size:17px}
.fg{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:28px;margin-bottom:28px}
.fbrand p{max-width:32ch;color:#c3cbde}
.fd{font-size:13px;line-height:1.6;color:#a7afc2;border-top:1px solid rgba(255,255,255,.14);padding-top:14px;margin:0 0 4px}

@media (max-width:900px){.feat .featgrid,.ask-in{grid-template-columns:1fr}.fg{grid-template-columns:1fr 1fr}}
@media (max-width:640px){body{font-size:17px}.toc ol{columns:1}.vc-form{grid-template-columns:1fr}.hero-in{padding:64px 20px 44px}.hero p{font-size:18px}.prose h2{font-size:25px}.math{font-size:13px}.row{grid-template-columns:1fr}.fg{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media (max-width:640px){.nv{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:8px;-webkit-overflow-scrolling:touch}.nv a{white-space:nowrap}}
/* photos */
.card .cv.ph-photo{height:auto;aspect-ratio:16/9;overflow:hidden;background:var(--pine)}
.card .cv.ph-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform .5s ease}
.card:hover .cv.ph-photo img{transform:scale(1.035)}
.card.big .cv.ph-photo{height:auto}
.row:has(.rthumb){grid-template-columns:88px auto 1fr auto;align-items:center}
.rthumb{width:88px;height:50px;object-fit:cover;border-radius:4px;display:block}
.hero-img{margin:28px 0 22px;border-radius:12px;overflow:hidden;border-bottom:4px solid var(--c);background:var(--pine);box-shadow:0 18px 40px -24px rgba(19,35,90,.55)}
.hero-img img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.prose .pimg{margin:34px 0;border-radius:10px;overflow:hidden;background:var(--chalk)}
.prose .pimg img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover}
@media (max-width:640px){.row:has(.rthumb){grid-template-columns:64px 1fr}.row:has(.rthumb) .tag,.row:has(.rthumb) .rt{display:none}.rthumb{width:64px;height:40px}.hero-img{margin:18px -4px 18px;border-radius:8px}}
@media (prefers-reduced-motion:reduce){.card .cv.ph-photo img{transition:none}.card:hover .cv.ph-photo img{transform:none}}

/* night survey headers */
.sh{background:rgba(11,20,51,.94);border-bottom:1px solid rgba(255,255,255,.08)}
.sh .brand{color:#fff}.nv a{color:rgba(255,255,255,.86)}.nv a:hover{background:rgba(255,255,255,.1);color:#fff}
.hero,.ph{background:radial-gradient(120% 140% at 85% 20%,var(--night2) 0%,var(--night) 60%);border-bottom:0;color:#fff}
.hero-art polyline,.ph-art polyline{stroke:var(--glow)}
.hero-art rect,.ph-art rect{display:none}
.ph-art{opacity:.55}.hero-art{opacity:.9}
.hero h1,.ph h1{color:#fff;background:none}
.hero p,.ph .dek{color:rgba(255,255,255,.8);background:none}
.ph .meta{background:none;color:rgba(255,255,255,.66)}
.ph .tag{background:rgba(255,255,255,.1);color:#fff}
.bc,.bc a{color:rgba(255,255,255,.66)}
.hero .btn{background:var(--ochre);border-color:var(--ochre);color:var(--night)}
.hero .btn:hover{background:#ff8550;border-color:#ff8550}
.hero .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.hero .btn.ghost:hover{border-color:#fff}
.hero .chips a{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);color:rgba(255,255,255,.9)}
.hero .chips a:hover{border-color:var(--ochre);color:#fff}
.band{background:var(--night)}
.hero-img{margin-top:-56px;position:relative;box-shadow:0 24px 50px -28px rgba(11,20,51,.7)}
.ph:has(+ .wrap .hero-img) .ph-in,.post .ph .ph-in{padding-bottom:92px}
@media (max-width:640px){.hero-img{margin-top:-40px}.post .ph .ph-in{padding-bottom:70px}}

/* brand lockup */
.bw{display:flex;flex-direction:column;line-height:1}
.bn{font-size:23px}
.bt{font-size:11.5px;font-weight:500;letter-spacing:.01em;opacity:.7;margin-top:4px}
@media (max-width:640px){.bt{display:none}}
.hero h1{font-size:clamp(40px,5.6vw,74px);max-width:19ch;line-height:1.02}
