@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;0,700;1,500&family=Familjen+Grotesk:wght@400;500;600;700&display=swap");
:root{

--sil-royal-900:#3E4E6C;--sil-royal-800:#46618A;--sil-royal-700:#5B7AA6;--sil-royal-600:#7392BD;--sil-royal-500:#8FA9CC;--sil-royal-200:#C9D6E8;--sil-royal-100:#D9E4F0;--sil-royal-50:#EEF3F8;
--sil-gold-800:#8C7140;--sil-gold-700:#A98A4E;--sil-gold-600:#D4B483;--sil-gold-500:#E0C79E;--sil-gold-400:#EAD8B8;--sil-gold-100:#F5EBD3;--sil-gold-50:#FAF5EA;

--sil-powder-100:#D9E4F0;--sil-sage-100:#D6E2D4;--sil-blush-100:#F0DDD6;--sil-butter-100:#F5EBD3;--sil-lavender-100:#E2DCEF;

--sil-grey-950:#3E4E6C;--sil-grey-900:#4B5568;--sil-grey-800:#5A6070;--sil-grey-700:#6E7381;--sil-grey-600:#858A96;--sil-grey-500:#A0A4AE;--sil-grey-400:#C0C3CA;--sil-grey-300:#D6D8DD;--sil-grey-200:#E6E7EA;--sil-grey-100:#F0EFEC;--sil-grey-50:#FAF7F2;--sil-white:#FFFFFF;

--sil-success-700:#4F7A5B;--sil-success-100:#D6E2D4;
--sil-warning-700:#8C7140;--sil-warning-500:#D4B483;--sil-warning-100:#F5EBD3;
--sil-danger-700:#9A5A55;--sil-danger-500:#C48A84;--sil-danger-100:#F0DDD6;
--sil-info-700:var(--sil-royal-700);--sil-info-100:var(--sil-royal-100);

--color-primary:var(--sil-royal-700);--color-primary-hover:var(--sil-royal-800);--color-primary-active:var(--sil-royal-900);--color-on-primary:var(--sil-white);
--color-accent:var(--sil-gold-600);--color-accent-hover:var(--sil-gold-700);--color-accent-active:var(--sil-gold-800);--color-on-accent:var(--sil-royal-900);
--text-heading:var(--sil-royal-900);--text-body:var(--sil-grey-800);--text-muted:var(--sil-grey-600);--text-subtle:var(--sil-grey-500);--text-inverse:var(--sil-white);--text-link:var(--sil-royal-700);--text-link-hover:var(--sil-royal-900);
--surface-page:var(--sil-grey-50);--surface-subtle:var(--sil-grey-100);--surface-card:var(--sil-white);--surface-raised:var(--sil-white);--surface-inverse:var(--sil-royal-900);--surface-brand:var(--sil-powder-100);--surface-brand-deep:var(--sil-royal-200);--surface-accent-tint:var(--sil-gold-50);--surface-brand-tint:var(--sil-royal-50);
--border-default:var(--sil-grey-200);--border-strong:var(--sil-grey-300);--border-focus:var(--sil-royal-600);--border-accent:var(--sil-gold-600);
--status-success:var(--sil-success-700);--status-success-bg:var(--sil-success-100);--status-warning:var(--sil-warning-700);--status-warning-bg:var(--sil-warning-100);--status-danger:var(--sil-danger-700);--status-danger-bg:var(--sil-danger-100);--status-info:var(--sil-info-700);--status-info-bg:var(--sil-info-100);

--sil-navy-900:var(--sil-royal-900);--sil-navy-800:var(--sil-royal-800);--sil-navy-700:var(--sil-royal-700);--sil-navy-600:var(--sil-royal-600);--sil-navy-500:var(--sil-royal-500);--sil-navy-100:var(--sil-royal-100);--sil-navy-50:var(--sil-royal-50);
--sil-brass-900:var(--sil-gold-800);--sil-brass-800:var(--sil-gold-800);--sil-brass-700:var(--sil-gold-700);--sil-brass-600:var(--sil-gold-600);--sil-brass-500:var(--sil-gold-500);--sil-brass-400:var(--sil-gold-400);--sil-brass-100:var(--sil-gold-100);--sil-brass-50:var(--sil-gold-50);
--sil-ink-900:var(--sil-royal-900);--sil-ink-800:var(--sil-royal-800);--sil-ink-700:var(--sil-royal-700);
}

:root{
--font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
--font-body:"Familjen Grotesk","Helvetica Neue",Arial,sans-serif;
--font-mono:"SF Mono",Menlo,Consolas,monospace;

--text-display-xl:88px;--text-display-lg:66px;--text-display-md:48px;--text-display-sm:32px;
--leading-display:1.0;--tracking-display:0.005em;--tracking-caps:0.22em;

--text-lg:18px;--text-md:16px;--text-sm:14px;--text-xs:12px;--text-label:11px;
--leading-body:1.55;--leading-tight:1.3;
--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;
}

:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;
--container-max:1200px;--container-pad:var(--space-6);--grid-gutter:var(--space-6);
--control-h-sm:32px;--control-h-md:40px;--control-h-lg:48px;
}

:root{

--radius-none:0;--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-pill:999px;

--shadow-none:none;--shadow-sm:0 1px 2px rgba(62,78,108,.06);--shadow-md:0 4px 12px rgba(62,78,108,.10);--shadow-lg:0 12px 32px rgba(62,78,108,.16);
--border-w:1px;--border-w-strong:2px;

--ease-standard:cubic-bezier(.2,0,0,1); 
--dur-fast:120ms; 
--dur-base:180ms; 
--dur-slow:280ms; 
--focus-ring:0 0 0 3px rgba(115,146,189,.4);

--overlay-brand:linear-gradient(180deg,rgba(62,78,108,.1),rgba(62,78,108,.85)); 
}


/* Siya Infralogix — site styles. Tokens come from ../styles.css */
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);color:var(--text-body);background:var(--surface-page);line-height:var(--leading-body);-webkit-font-smoothing:antialiased}
a{color:var(--text-link);text-decoration:none}a:hover{color:var(--text-link-hover)}
h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1;color:var(--text-heading);margin:0}
h1{font-size:clamp(44px,7vw,92px)}h2{font-size:clamp(36px,4.5vw,56px)}h3{font-size:26px}
p{margin:0;text-wrap:pretty}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
.eye{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sil-gold-700)}
.rule{width:96px;height:6px;background:var(--sil-gold-600)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:52px;padding:0 26px;font:600 15px var(--font-body);border:1px solid transparent;cursor:pointer;transition:background .18s,color .18s,transform .18s;border-radius:2px}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--sil-royal-700);color:#fff}.btn-primary:hover{background:var(--sil-royal-800);color:#fff}
.btn-ghost{background:transparent;color:var(--text-heading);border-color:var(--sil-royal-700)}.btn-ghost:hover{background:var(--sil-royal-50);color:var(--text-heading)}
/* opening animation */
#intro{position:fixed;inset:0;z-index:100;background:var(--sil-powder-100);display:flex;align-items:center;justify-content:center;transition:opacity .7s var(--ease-standard),visibility .7s}
#intro.out{opacity:0;visibility:hidden}
#intro>div{display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 24px}#intro svg{width:min(28vw,160px);height:auto;display:block;margin:0 auto 32px}
#intro .n{margin-top:0;line-height:1;font-family:var(--font-display);font-weight:600;font-size:clamp(24px,3.4vw,40px);color:var(--text-heading);opacity:0;animation:fadeUp .8s var(--ease-standard) 1.45s both}
#intro .t{margin-top:12px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--sil-gold-700);opacity:0;animation:fadeUp .8s var(--ease-standard) 1.75s both}
.i-frame{transform-box:fill-box;transform-origin:center;animation:frameIn .7s var(--ease-standard) .15s both}
.i-line{stroke-dasharray:256;stroke-dashoffset:256;animation:draw .8s var(--ease-standard) .55s forwards}
.i-core{transform-box:fill-box;transform-origin:center;transform:scale(0);animation:coreIn .5s var(--ease-standard) 1.1s forwards}
@keyframes frameIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes coreIn{to{transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(250,247,242,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--border-default)}
.nav .wrap{height:76px;display:flex;align-items:center;gap:32px}
.nav .brand{display:flex;align-items:center;gap:14px;color:var(--text-heading)}
.nav .brand svg{width:40px;height:40px}.nav .brand b{font-family:var(--font-display);font-weight:600;font-size:24px}
.nav ul{list-style:none;margin:0 0 0 auto;padding:0;display:flex;gap:28px}
.nav ul a{font-size:14px;font-weight:500;color:var(--text-body);position:relative;padding:6px 0}
.nav ul a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--sil-gold-600);transition:right .25s var(--ease-standard)}
.nav ul a:hover::after,.nav ul a.on::after{right:0}
.nav .cta{margin-left:8px;height:42px;padding:0 18px}
.burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;width:44px;height:44px;color:var(--text-heading)}
@media(max-width:860px){.nav ul,.nav .cta{display:none}.burger{display:block}.nav.open ul{display:flex;position:absolute;left:0;right:0;top:76px;flex-direction:column;gap:0;background:var(--surface-page);border-bottom:1px solid var(--border-default);padding:8px 0}.nav.open ul a{display:block;padding:16px clamp(20px,4vw,48px);font-size:16px}}
/* hero — full-bleed photo */
.hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;transform-origin:60% 50%;animation:kb 28s ease-in-out infinite alternate;will-change:transform}
@keyframes kb{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.14) translate(-2%,1.5%)}}
.hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(15,24,45,.35) 0%,rgba(15,24,45,.15) 35%,rgba(15,24,45,.78) 100%)}
.hero-in{position:relative;z-index:2;width:100%;padding-top:160px;padding-bottom:88px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:48px;align-items:end}
.hero .eye{color:var(--sil-gold-400)}
.hero h1{color:#fff;font-size:clamp(52px,7.6vw,104px);margin-top:18px;letter-spacing:-.01em}
.hero p.lead{font-size:18px;max-width:560px;color:rgba(255,255,255,.85);margin-top:24px}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.btn-light{background:#fff;color:var(--text-heading)}.btn-light:hover{background:var(--sil-gold-400);color:var(--text-heading)}
.btn-outline{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.6);backdrop-filter:blur(6px)}.btn-outline:hover{background:rgba(255,255,255,.18);color:#fff}
.hero-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px)}
.hero-stats div{background:rgba(15,24,45,.35);padding:22px 24px}
.hero-stats b{display:block;font-family:var(--font-display);font-weight:600;font-size:36px;line-height:1;color:#fff}
.hero-stats span{display:block;margin-top:6px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sil-gold-400)}
.scroll-cue{position:absolute;left:50%;bottom:26px;z-index:2;width:24px;height:40px;border:1.5px solid rgba(255,255,255,.6);border-radius:12px;transform:translateX(-50%)}
.scroll-cue span{position:absolute;left:50%;top:7px;width:3px;height:7px;margin-left:-1.5px;border-radius:2px;background:#fff;animation:cue 1.8s ease-in-out infinite}
@keyframes cue{0%{transform:translateY(0);opacity:1}70%{transform:translateY(14px);opacity:0}100%{opacity:0}}
@media(max-width:860px){.hero-in{grid-template-columns:1fr;padding-top:130px;padding-bottom:80px}.hero-stats{grid-template-columns:repeat(4,1fr)}.hero-stats b{font-size:24px}.hero-stats div{padding:14px 12px}}
@media(max-width:560px){.hero-stats{grid-template-columns:repeat(2,1fr)}}
/* nav over hero */
.nav.over{position:fixed;left:0;right:0;background:transparent;border-color:transparent;backdrop-filter:none;transition:background .35s,border-color .35s,backdrop-filter .35s}
.nav.over .brand,.nav.over ul a{color:#fff}.nav.over .brand .live{color:#fff}
.nav.over.solid{background:rgba(250,247,242,.92);border-color:var(--border-default);backdrop-filter:blur(10px)}
.nav.over.solid .brand,.nav.over.solid ul a{color:var(--text-heading)}.nav.over.solid .brand .live{color:var(--sil-royal-700)}
.nav.over .cta{background:var(--sil-gold-600);color:var(--text-heading)}.nav.over .cta:hover{background:var(--sil-gold-500)}
.nav.over.solid .cta{background:var(--sil-royal-700);color:#fff}
/* ticker */
.ticker{background:var(--sil-royal-900);color:#fff;overflow:hidden;padding:16px 0;border-bottom:3px solid var(--sil-gold-600)}
.ticker .track{display:flex;gap:0;width:max-content;animation:tick 40s linear infinite}
.ticker span{font-size:12px;letter-spacing:.2em;text-transform:uppercase;padding:0 28px;position:relative;white-space:nowrap}
.ticker span::after{content:"";position:absolute;right:-3px;top:50%;width:6px;height:6px;margin-top:-3px;background:var(--sil-gold-600)}
@keyframes tick{to{transform:translateX(-50%)}}
.ticker:hover .track{animation-play-state:paused}
/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease-standard),transform .7s var(--ease-standard)}
.rv.in{opacity:1;transform:none}
section{padding:clamp(72px,9vw,120px) 0}
.head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;margin-bottom:56px}
.head .rule{margin:16px 0 20px}.head p{font-size:17px;max-width:520px}
@media(max-width:860px){.head{grid-template-columns:1fr;gap:20px}}
/* about */
.about{background:#fff}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.fact{border-top:3px solid var(--sil-gold-600);padding-top:14px}
.fact b{display:block;font-family:var(--font-display);font-weight:600;font-size:40px;color:var(--text-heading);line-height:1}
.fact span{display:block;margin-top:6px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
@media(max-width:860px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* project */
.project{background:var(--sil-butter-100)}
.pgrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:start}
.pgrid .photo{aspect-ratio:16/11;position:relative;box-shadow:var(--shadow-md)}
.pgrid .photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--sil-gold-600);pointer-events:none}
.pinfo>*+*{margin-top:20px}
.pinfo .addr{display:flex;gap:14px;align-items:flex-start;font-size:15px}
.pinfo .addr svg{flex:none;width:24px;height:24px;color:var(--sil-royal-700);margin-top:2px}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{font-size:12px;font-weight:500;padding:6px 12px;background:#fff;border:1px solid var(--border-default);color:var(--text-heading)}
@media(max-width:860px){.pgrid{grid-template-columns:1fr}}
/* specs */
.specs{background:#fff}
.sgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px}
.spec{padding:24px;background:var(--surface-page);border:1px solid var(--border-default);transition:transform .25s var(--ease-standard),box-shadow .25s}
.spec:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.spec svg{width:40px;height:40px;color:var(--sil-royal-700);display:block}
.spec b{display:block;margin-top:18px;font-family:var(--font-display);font-weight:600;font-size:30px;color:var(--text-heading);line-height:1}
.spec span{display:block;margin-top:6px;font-size:13px;color:var(--text-muted)}
@media(max-width:1000px){.sgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* location */
.loc{background:var(--sil-sage-100)}
.lgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.map{aspect-ratio:1/1;background:#fff;border:1px solid var(--border-default);position:relative}
.map svg{width:100%;height:100%;display:block}
.dist{list-style:none;margin:0;padding:0;display:grid;gap:0}
.dist li{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid rgba(62,78,108,.15)}
.dist li:first-child{border-top:1px solid rgba(62,78,108,.15)}
.dist svg{width:28px;height:28px;color:var(--sil-royal-700);flex:none}
.dist span{flex:1;font-size:15px}.dist b{font-family:var(--font-display);font-weight:600;font-size:24px;color:var(--text-heading)}
@media(max-width:860px){.lgrid{grid-template-columns:1fr}}
/* why */
.why{background:#fff}
.wgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.w{padding-top:20px;border-top:1px solid var(--border-default)}
.w svg{width:36px;height:36px;color:var(--sil-royal-700)}
.w h3{margin:18px 0 10px}.w p{font-size:15px}
@media(max-width:860px){.wgrid{grid-template-columns:1fr}}
/* contact */
.contact{background:var(--sil-blush-100)}
.cgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;align-items:start}
.cinfo>*+*{margin-top:22px}
.cinfo .row{display:flex;gap:14px;align-items:center;font-size:16px}
.cinfo .row svg{width:24px;height:24px;color:var(--sil-royal-700);flex:none}
.cinfo .row a{color:var(--text-heading);font-weight:500}
.form{background:#fff;padding:36px;box-shadow:var(--shadow-md);border-top:4px solid var(--sil-gold-600);display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form .full{grid-column:1/-1}
.f label{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px}
.f input,.f select,.f textarea{width:100%;height:48px;padding:0 14px;border:1px solid var(--border-strong);background:#fff;font:15px var(--font-body);color:var(--text-heading);border-radius:2px;outline:none;transition:border-color .18s,box-shadow .18s}
.f textarea{height:auto;min-height:120px;padding:12px 14px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--sil-royal-600);box-shadow:var(--focus-ring)}
.f.err input,.f.err textarea{border-color:var(--status-danger)}
.f small{display:block;margin-top:6px;font-size:12px;color:var(--status-danger);min-height:14px}
.form .sent{grid-column:1/-1;text-align:center;padding:32px 0}
.form .sent h3{margin-bottom:10px}
@media(max-width:860px){.cgrid{grid-template-columns:1fr}.form{grid-template-columns:1fr;padding:24px}}
/* footer */
footer{background:var(--sil-royal-900);color:var(--sil-royal-200);padding:56px 0 32px}
footer .wrap{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:40px}
footer h4{font-family:var(--font-body);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--sil-gold-500);margin:0 0 14px}
footer a{color:#fff}footer a:hover{color:var(--sil-gold-400)}
footer p,footer li{font-size:14px;line-height:1.7}footer ul{list-style:none;margin:0;padding:0}
footer .legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);padding-top:20px;font-size:12px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
@media(max-width:860px){footer .wrap{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}#intro{display:none}}

/* highlights board */
.hlgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:var(--border-default);border:2px solid var(--border-default)}
.hl{background:#fff;padding:26px 24px 22px;position:relative;overflow:hidden;transition:background .25s var(--ease-standard)}
.hl::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--sil-gold-600);transition:width .45s var(--ease-standard)}
.hl:hover{background:var(--sil-royal-50)}.hl:hover::before{width:100%}
.hl svg{width:34px;height:34px;color:var(--sil-royal-700);display:block;transition:transform .35s var(--ease-standard)}
.hl:hover svg{transform:translateY(-3px)}
.hl b{display:inline-block;margin-top:22px;font-family:var(--font-display);font-weight:600;font-size:34px;line-height:1;color:var(--text-heading);letter-spacing:-.01em;font-variant-numeric:lining-nums}
.hl i{font-style:normal;margin-left:6px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sil-gold-700);font-weight:600}
.hl span{display:block;margin-top:8px;font-size:13px;color:var(--text-muted);line-height:1.45}
.hl.in b{animation:popIn .5s var(--ease-standard) both}
@keyframes popIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.hlgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.hlgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.hl{padding:20px 16px}.hl b{font-size:28px}}

/* live logo — continuous animation: frame breathes, gold line traces, core pulses */
.live{display:block;color:var(--sil-royal-700)}
.live .l-frame{transform-box:fill-box;transform-origin:center;animation:lFrame 6s var(--ease-standard) infinite}
.live .l-line{stroke-dasharray:64 192;stroke-linecap:square;animation:lTrace 6s linear infinite}
.live .l-core{transform-box:fill-box;transform-origin:center;animation:lCore 6s var(--ease-standard) infinite}
@keyframes lFrame{0%,100%{transform:none}50%{transform:scale(1.03)}}
@keyframes lTrace{to{stroke-dashoffset:-256}}
@keyframes lCore{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.82);opacity:.85}}
.nav-logo{width:40px;height:40px}
.foot-logo{width:44px;height:44px;color:#fff}
.hero-logo{position:absolute;right:-6vw;top:50%;width:min(62vh,640px);height:auto;transform:translateY(-50%);color:var(--sil-royal-200);opacity:.55;pointer-events:none;z-index:0}
.hero-logo .l-line{stroke:var(--sil-gold-500)}
.hero .wrap{position:relative;z-index:1}
@media(max-width:860px){.hero-logo{width:70vw;top:auto;bottom:-10vw;transform:none;right:-20vw;opacity:.35}}
@media(prefers-reduced-motion:reduce){.live *{animation:none!important}}

/* alive: stagger, parallax, dark section, band */
.stagger>*{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease-standard),transform .6s var(--ease-standard)}
.stagger.in>*{opacity:1;transform:none}
.stagger.in>*:nth-child(1){transition-delay:.05s}.stagger.in>*:nth-child(2){transition-delay:.15s}.stagger.in>*:nth-child(3){transition-delay:.25s}.stagger.in>*:nth-child(4){transition-delay:.35s}.stagger.in>*:nth-child(5){transition-delay:.45s}.stagger.in>*:nth-child(6){transition-delay:.55s}
.px{overflow:hidden}.px img{transform:scale(1.15);will-change:transform;transition:transform .1s linear}
.pgrid .photo{transition:box-shadow .3s}.pgrid .photo:hover{box-shadow:var(--shadow-lg)}
.about{background:#fff}.project{background:var(--surface-page)}.specs{background:#fff}.why{background:var(--surface-page)}.contact{background:#fff}
.loc.dark{background:var(--sil-royal-900);color:var(--sil-royal-200)}
.loc.dark h2,.loc.dark .dist b{color:#fff}.loc.dark .eye{color:var(--sil-gold-400)}.loc.dark .head p,.loc.dark .dist span{color:var(--sil-royal-200)}
.loc.dark .dist li{border-color:rgba(255,255,255,.14)}.loc.dark .dist svg{color:var(--sil-gold-400)}
.loc.dark .map{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.14)}
.loc.dark .map svg rect:first-child{fill:transparent}.loc.dark .map svg g[stroke="#D9E4F0"]{stroke:rgba(255,255,255,.08)}
.loc.dark .map text{fill:var(--sil-royal-200)}.loc.dark .fact{border-color:var(--sil-gold-600)}.loc.dark .fact b{color:#fff}.loc.dark .fact span{color:var(--sil-royal-200)}
.loc.dark .dist li{transition:padding-left .3s var(--ease-standard)}.loc.dark .dist li:hover{padding-left:8px}
.w{transition:transform .3s var(--ease-standard)}.w:hover{transform:translateY(-4px)}.w:hover svg{color:var(--sil-gold-700)}.w svg{transition:color .3s}
.band{background:var(--sil-royal-700);color:#fff;padding:72px 0;position:relative;overflow:hidden}
.band::before{content:"";position:absolute;right:-140px;top:50%;width:420px;height:420px;margin-top:-210px;border:56px solid rgba(255,255,255,.07);box-sizing:border-box;pointer-events:none}.band::after{content:"";position:absolute;right:-8px;top:50%;width:156px;height:156px;margin-top:-78px;background:rgba(255,255,255,.07);pointer-events:none}
.band-in{display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.band h2{color:#fff;font-size:clamp(30px,3.6vw,44px);max-width:640px}
.nav .brand .live{width:40px;height:40px}
.hl{transition:background .25s var(--ease-standard),transform .25s var(--ease-standard)}.hl:hover{transform:translateY(-2px)}
.btn{position:relative;overflow:hidden}.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);transform:translateX(-120%);transition:transform .6s var(--ease-standard)}.btn:hover::after{transform:translateX(120%)}
.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--sil-gold-600);box-shadow:0 0 0 3px rgba(212,180,131,.35)}
footer{position:relative}footer::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--sil-gold-600),transparent)}

/* ---- mobile hardening ---- */
h1{font-size:clamp(40px,9vw,104px)}h2{font-size:clamp(30px,6.5vw,56px)}h3{font-size:clamp(20px,5vw,26px)}
.hero h1{font-size:clamp(42px,9.5vw,104px)}
img,svg{max-width:100%}
.wrap{padding-left:clamp(18px,5vw,48px);padding-right:clamp(18px,5vw,48px)}
@media(max-width:860px){
  .head{grid-template-columns:1fr;gap:16px;margin-bottom:36px}
  .facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.fact b{font-size:32px}
  .pgrid,.lgrid,.cgrid{grid-template-columns:1fr;gap:32px}
  .wgrid{grid-template-columns:1fr;gap:20px}
  .hero{min-height:92svh}.hero-in{padding-top:120px;padding-bottom:72px;gap:28px}
  .hero p.lead{font-size:16px}
  .hero .actions .btn{flex:1 1 100%}
  .hero-stats{grid-template-columns:repeat(2,1fr)}.hero-stats b{font-size:28px}.hero-stats div{padding:16px 18px}
  .scroll-cue{display:none}
  .form{grid-template-columns:1fr;padding:22px;gap:14px}
  .cinfo .row{font-size:15px;align-items:flex-start}.cinfo .row a,.cinfo .row span{overflow-wrap:anywhere}
  .band{padding:56px 0}.band-in{flex-direction:column;align-items:flex-start}.band h2{font-size:clamp(26px,7vw,40px)}
  .band::before,.band::after{display:none}
  .ticker span{font-size:11px;padding:0 18px}
  .dist li{padding:14px 0}.dist b{font-size:20px}
  .loc .fact b{font-size:20px}
  .lgrid>div:last-child>div[style*="grid-template-columns:repeat(4,1fr)"]{grid-template-columns:repeat(2,1fr)!important}
  section{padding:64px 0}
  footer .wrap{gap:28px}footer .legal{flex-direction:column;gap:8px}
  .nav .wrap{height:64px}.nav .brand b{font-size:20px}.nav .brand .live{width:32px;height:32px}
  .nav.open ul{top:64px}
  .nav.over ul a{color:var(--text-heading)}
  .nav.open{background:rgba(250,247,242,.97);border-color:var(--border-default)}.nav.open .brand,.nav.open .brand .live{color:var(--text-heading)}.nav.open .brand .live{color:var(--sil-royal-700)}
  .burger{color:inherit}.nav.over .burger{color:#fff}.nav.over.solid .burger,.nav.open .burger{color:var(--text-heading)}
  .hlgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.hl{padding:18px 14px 16px}.hl b{font-size:26px;margin-top:16px}.hl svg{width:28px;height:28px}.hl i{display:block;margin:6px 0 0}
  #intro svg{width:36vw}
}
@media(max-width:480px){
  .hero-stats{grid-template-columns:repeat(2,1fr)}.hero-stats b{font-size:24px}
  .fact b{font-size:28px}
  .eye{font-size:10px;letter-spacing:.18em}
  .btn{height:48px;padding:0 20px;font-size:14px}
  .hl b{font-size:22px}
  .pinfo .facts{grid-template-columns:1fr!important}
}

.wgrid.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.wgrid.four .w{padding:28px 24px 26px;border:1px solid var(--border-default);border-top:3px solid var(--sil-gold-600);background:#fff;transition:transform .3s var(--ease-standard),box-shadow .3s}
.wgrid.four .w:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.wgrid.four .w h3{font-size:24px;margin:20px 0 10px}.wgrid.four .w p{font-size:14px}
@media(max-width:1000px){.wgrid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.wgrid.four{grid-template-columns:1fr}}

/* edge watermarks — fixed at mid-height, drifting, logo animates */
.wm{position:fixed;top:50%;z-index:40;display:flex;flex-direction:column;align-items:center;gap:14px;pointer-events:none;color:var(--sil-royal-700);opacity:.28;mix-blend-mode:multiply;transition:opacity .4s}
.wm svg{width:34px;height:34px;display:block}
.wm svg .l-frame{transform-box:fill-box;transform-origin:center;animation:lFrame 6s var(--ease-standard) infinite}
.wm svg .l-line{stroke-dasharray:64 192;animation:lTrace 6s linear infinite}
.wm svg .l-core{transform-box:fill-box;transform-origin:center;animation:lCore 6s var(--ease-standard) infinite}
.wm span{font-family:var(--font-body);font-size:10px;font-weight:600;letter-spacing:.32em;text-transform:uppercase;white-space:nowrap;writing-mode:vertical-rl}
.wm-l{left:14px;transform:translateY(-50%);animation:wmDriftL 9s ease-in-out infinite}
.wm-r{right:14px;transform:translateY(-50%);animation:wmDriftR 9s ease-in-out infinite}
.wm-l span{transform:rotate(180deg)}
@keyframes wmDriftL{0%,100%{transform:translateY(-50%)}50%{transform:translateY(calc(-50% - 22px))}}
@keyframes wmDriftR{0%,100%{transform:translateY(-50%)}50%{transform:translateY(calc(-50% + 22px))}}
.wm.on-dark{color:#fff;mix-blend-mode:normal;opacity:.35}
@media(max-width:1100px){.wm{display:none}}
@media(prefers-reduced-motion:reduce){.wm{animation:none}}

@media(max-width:860px){.sub{grid-template-columns:1fr!important;gap:14px!important}}

@media(min-width:641px) and (max-width:1000px){.hl.hide-3{display:none}}

/* hero location pill */
.loc-pill{display:inline-flex;align-items:center;gap:12px;max-width:100%;padding:10px 18px 10px 12px;border:1px solid rgba(255,255,255,.35);background:rgba(15,24,45,.35);backdrop-filter:blur(8px);color:#fff;font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;position:relative;overflow:hidden;transition:border-color .3s,background .3s}
.loc-pill .lp-txt{white-space:nowrap}

.loc-pill::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sil-gold-600)}
.loc-pill svg{width:18px;height:18px;color:var(--sil-gold-400);flex:none;animation:pinBob 2.4s ease-in-out infinite}
@keyframes pinBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
.loc-pill .lp-line{width:1px;height:16px;background:rgba(255,255,255,.35)}
.loc-pill em{font-style:normal;color:var(--sil-gold-400);margin:0 2px}
.loc-pill .lp-tag{margin-left:6px;padding:4px 8px;background:var(--sil-gold-600);color:var(--text-heading);font-size:10px;letter-spacing:.14em;white-space:nowrap}
@media(max-width:1000px){.loc-pill{font-size:11px;letter-spacing:.12em;gap:10px}}
@media(max-width:700px){.loc-pill{flex-wrap:wrap;gap:8px}.loc-pill .lp-txt{white-space:normal}.loc-pill .lp-line{display:none}.loc-pill .lp-tag{margin-left:0}}
@media(max-width:560px){.loc-pill{flex-wrap:wrap;gap:8px;font-size:11px;letter-spacing:.14em}.loc-pill .lp-txt{white-space:normal}.loc-pill .lp-line{display:none}.loc-pill .lp-tag{margin-left:0}}

.map-link{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid var(--sil-gold-600);color:var(--sil-gold-400)!important;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:background .25s,color .25s}.map-link svg{width:16px;height:16px}.map-link span{transition:transform .25s}.map-link:hover{background:var(--sil-gold-600);color:var(--text-heading)!important}.map-link:hover span{transform:translate(2px,-2px)}

/* gallery */
.gallery{background:#fff;padding-top:0;padding-bottom:clamp(72px,9vw,120px)}.specs{padding-bottom:56px}
.gal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.gal figure{margin:0;position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--sil-grey-100)}
.gal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s var(--ease-standard)}
.gal figure:hover img{transform:scale(1.05)}
.gal figure::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--sil-gold-600)}
.gal figcaption{position:absolute;left:0;right:0;bottom:4px;padding:12px 16px;font-size:12px;letter-spacing:.08em;color:#fff;background:linear-gradient(0deg,rgba(15,24,45,.75),transparent)}
@media(max-width:860px){.gal{grid-template-columns:1fr}}

.gallery .wide{margin:0 0 20px;position:relative;overflow:hidden;aspect-ratio:21/9;background:var(--sil-grey-100)}
.gallery .wide img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease-standard)}
.gallery .wide:hover img{transform:scale(1.03)}
.gallery .wide::after{content:"";position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--sil-gold-600)}
.gallery .wide figcaption{position:absolute;left:0;right:0;bottom:4px;padding:28px clamp(20px,4vw,40px) 24px;color:#fff;background:linear-gradient(0deg,rgba(15,24,45,.8),rgba(15,24,45,0));display:grid;gap:6px}
.gallery .wide b{font-family:var(--font-display);font-weight:600;font-size:clamp(22px,2.6vw,32px);line-height:1.05}
.gallery .wide span{font-size:14px;color:rgba(255,255,255,.85);max-width:640px}
@media(max-width:860px){.gallery .wide{aspect-ratio:4/3}}

.gal-hero{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto;gap:20px}
.gal-hero .big{grid-column:1/3;grid-row:1/3;aspect-ratio:auto}
.gal-hero figure:not(.big){aspect-ratio:4/3}
.gal-hero .big figcaption{font-size:14px;padding:16px 20px}
@media(max-width:860px){.gal-hero{grid-template-columns:1fr 1fr}.gal-hero .big{grid-column:1/-1;grid-row:auto;aspect-ratio:16/10}}
@media(max-width:560px){.gal-hero{grid-template-columns:1fr}}

.cmeta{display:grid;gap:14px;margin-top:8px;padding-top:22px;border-top:1px solid var(--border-default)}.cm b{display:block;font-family:var(--font-display);font-weight:600;font-size:20px;color:var(--text-heading);line-height:1.1}.cm span{display:block;font-size:13px;color:var(--text-muted);margin-top:3px}

/* ===== MOBILE — final overrides (kept last so nothing above re-widens a grid) ===== */
@media(max-width:860px){
  body .head,body .sub,body .pgrid,body .lgrid,body .cgrid,body .hero-in,body footer .wrap,body .form,body .band-in{grid-template-columns:1fr!important;display:grid}
  body .band-in{display:flex;flex-direction:column;align-items:flex-start}
  body .head{gap:14px!important;margin-bottom:32px!important}
  body .head p,body .sub p{font-size:15px}
  body h2{font-size:clamp(30px,8.5vw,44px)!important}
  body h1,body .hero h1{font-size:clamp(40px,11vw,64px)!important}
  body .hero p.lead{font-size:16px}
  body .hero-stats{grid-template-columns:repeat(2,1fr)!important}
  body .facts{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body .hlgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body .wgrid.four{grid-template-columns:1fr!important}
  body .gal-hero{grid-template-columns:1fr 1fr!important}body .gal-hero .big{grid-column:1/-1!important;grid-row:auto!important;aspect-ratio:16/10}
  body .lgrid>div:last-child>div[style*="grid-template-columns"]{grid-template-columns:repeat(2,1fr)!important}
  body .form{grid-template-columns:1fr!important;padding:20px!important}
  body footer .wrap{gap:28px!important}body footer .legal{flex-direction:column;gap:8px}
  body .cmeta{gap:12px}
  body .pinfo .facts{grid-template-columns:1fr!important}
  body .wm{display:none!important}
}
@media(max-width:480px){
  body .gal-hero{grid-template-columns:1fr!important}
  body .hlgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body .hl b{font-size:22px!important}
  body .hero-stats b{font-size:24px!important}
}

/* ===== TABLET (iPad portrait/landscape 768–1180) ===== */
@media(min-width:861px) and (max-width:1180px){
  .wrap{padding-left:32px;padding-right:32px}
  .hero-in{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);padding-top:140px}
  .hero h1{font-size:clamp(48px,7vw,80px)}
  .hero-stats b{font-size:30px}.hero-stats div{padding:18px 20px}
  .facts{gap:20px}.fact b{font-size:34px}
  .hlgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .wgrid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gal-hero{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lgrid{gap:32px}.dist b{font-size:20px}
  .cgrid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:32px}
  .form{padding:28px}
  .wm{display:none}
  .nav ul{gap:20px}.nav ul a{font-size:13px}
}
/* touch: no hover-lift jitter, bigger targets */
@media(hover:none){.hl:hover,.w:hover,.spec:hover,.wgrid.four .w:hover{transform:none;box-shadow:none}.gal figure:hover img,.gallery .wide:hover img{transform:none}.btn::after{display:none}}
.nav ul a,.btn,.map-link{min-height:44px;display:inline-flex;align-items:center}.burger{min-height:44px}
.nav ul a{min-height:0}
/* landscape phones */
@media(max-width:860px) and (orientation:landscape){.hero{min-height:120vh}}
/* very small phones */
@media(max-width:480px){.dist li{flex-wrap:wrap;row-gap:4px}.dist li span{flex:1 1 140px;min-width:0}.dist li b{white-space:nowrap}}
@media(max-width:360px){body .hero h1{font-size:36px!important}body .hlgrid{grid-template-columns:1fr!important}body .hero-stats{grid-template-columns:1fr 1fr!important}body .facts{grid-template-columns:1fr!important}}
/* safety: never scroll sideways */
html,body{overflow-x:hidden;max-width:100%}

/* tap targets */
.cinfo .row a,.pinfo .addr a,.footer a{display:inline-flex;align-items:center;min-height:44px}
.pinfo .addr a{min-height:32px;padding:4px 0}

@media(min-width:861px){.burger{display:none!important}}

@media(max-width:860px){#intro svg{width:36vw;margin-bottom:24px}#intro .n{font-size:26px}#intro .t{font-size:10px;letter-spacing:.18em}}

@media(max-width:860px),(hover:none){.px img{transform:none!important;transition:none}}

/* Vivid theme — richer colour, same structure */
.vivid{--v-navy:#1F3A63;--v-navy-deep:#142A4A;--v-royal:#2F63D1;--v-gold:#D9A441;--v-gold-soft:#F1C97A;--v-powder:#DCEBFF;--v-butter:#FFF1C9;--v-sage:#D8F0DB;--v-blush:#FFE1D6;--v-lav:#E8E0FF}
.vivid{background:#FBF8F1}
/* nav */
.vivid .nav.over .cta{background:var(--v-gold);color:#142A4A}.vivid .nav.over.solid .cta{background:var(--v-navy);color:#fff}
.vivid .nav ul a::after{background:var(--v-gold)}
/* hero: deeper scrim + gold accents */
.vivid .hero-scrim{background:linear-gradient(180deg,rgba(20,42,74,.55) 0%,rgba(20,42,74,.25) 40%,rgba(20,42,74,.9) 100%)}
.vivid .hero .eye,.vivid .loc-pill svg,.vivid .loc-pill em{color:var(--v-gold-soft)}
.vivid .loc-pill{border-color:rgba(241,201,122,.6);background:rgba(20,42,74,.55)}.vivid .loc-pill::before,.vivid .loc-pill .lp-tag{background:var(--v-gold)}
.vivid .hero h1 em{font-style:italic;color:var(--v-gold-soft)}
.vivid .btn-light{background:var(--v-gold);color:#142A4A}.vivid .btn-light:hover{background:var(--v-gold-soft)}
.vivid .hero-stats{background:rgba(217,164,65,.35);border-color:rgba(217,164,65,.5)}.vivid .hero-stats div{background:rgba(20,42,74,.55)}.vivid .hero-stats b{color:var(--v-gold-soft)}.vivid .hero-stats span{color:#fff}
.vivid .ticker{background:var(--v-navy);border-bottom-color:var(--v-gold)}.vivid .ticker span::after{background:var(--v-gold)}
/* sections rotate pastel grounds */
.vivid .about{background:var(--v-powder)}
.vivid .project{background:var(--v-butter)}
.vivid .specs{background:#fff}
.vivid .gallery{background:#fff}
.vivid .loc.dark{background:var(--v-navy-deep)}
.vivid .band{background:linear-gradient(120deg,var(--v-navy) 0%,var(--v-royal) 100%)}
.vivid .contact{background:var(--v-sage)}
.vivid footer{background:var(--v-navy-deep)}
/* accents */
.vivid .eye{color:#B07E1F}.vivid .rule{background:linear-gradient(90deg,var(--v-gold),var(--v-gold-soft))}
.vivid .fact{border-top-color:var(--v-gold)}.vivid .fact b{color:var(--v-navy)}
.vivid .hlgrid{background:var(--v-gold);border-color:var(--v-gold)}
.vivid .hl{background:#fff}.vivid .hl:nth-child(4n+1){background:var(--v-powder)}.vivid .hl:nth-child(4n+2){background:#fff}.vivid .hl:nth-child(4n+3){background:var(--v-butter)}.vivid .hl:nth-child(4n){background:var(--v-sage)}
.vivid .hl svg{color:var(--v-navy)}.vivid .hl b{color:var(--v-navy)}.vivid .hl i{color:#B07E1F}.vivid .hl::before{background:var(--v-royal)}.vivid .hl:hover{background:var(--v-navy)!important}.vivid .hl:hover b,.vivid .hl:hover svg{color:#fff}.vivid .hl:hover span{color:#DCEBFF}.vivid .hl:hover i{color:var(--v-gold-soft)}
.vivid .wgrid.four .w{border-top-color:var(--v-gold);background:linear-gradient(180deg,#fff,#FBF8F1)}.vivid .wgrid.four .w svg{color:var(--v-royal)}.vivid .wgrid.four .w:nth-child(1){border-top-color:var(--v-royal)}.vivid .wgrid.four .w:nth-child(2){border-top-color:var(--v-gold)}.vivid .wgrid.four .w:nth-child(3){border-top-color:#5FA06E}.vivid .wgrid.four .w:nth-child(4){border-top-color:#D97A5F}
.vivid .chip{background:var(--v-navy);color:#fff;border-color:var(--v-navy)}.vivid .chip:nth-child(even){background:#fff;color:var(--v-navy)}
.vivid .gal figure::after,.vivid .pgrid .photo::after,.vivid .hero .photo::after{background:var(--v-gold)}
.vivid .gal figcaption{background:linear-gradient(0deg,rgba(20,42,74,.85),transparent)}
.vivid .loc.dark .eye,.vivid .loc.dark .dist svg{color:var(--v-gold-soft)}.vivid .loc.dark .dist b{color:var(--v-gold-soft)}.vivid .loc.dark .fact{border-top-color:var(--v-gold)}
.vivid .loc.dark .map{background:rgba(255,255,255,.05);border-color:rgba(241,201,122,.35)}.vivid .loc.dark .map svg path[stroke="#5B7AA6"]{stroke:var(--v-gold-soft)}.vivid .loc.dark .map svg rect[fill="#5B7AA6"],.vivid .loc.dark .map svg rect[stroke="#5B7AA6"]{fill:var(--v-gold);stroke:var(--v-gold)}.vivid .loc.dark .map svg rect[fill="none"][stroke="#5B7AA6"]{fill:none}.vivid .loc.dark .map svg text{fill:#fff}
.vivid .band h2{color:#fff}.vivid .band .btn-light{background:var(--v-gold);color:#142A4A}
.vivid .form{border-top-color:var(--v-gold);box-shadow:0 16px 40px rgba(31,58,99,.15)}.vivid .f input:focus,.vivid .f select:focus,.vivid .f textarea:focus{border-color:var(--v-royal);box-shadow:0 0 0 3px rgba(47,99,209,.2)}
.vivid .btn-primary{background:var(--v-navy)}.vivid .btn-primary:hover{background:var(--v-royal)}.vivid .btn-ghost{border-color:var(--v-navy);color:var(--v-navy)}
.vivid .cm b{color:var(--v-navy)}.vivid .cmeta{border-top-color:rgba(31,58,99,.2)}
.vivid footer h4,.vivid .map-link{color:var(--v-gold-soft)!important}.vivid .map-link{border-color:var(--v-gold)}.vivid .map-link:hover{background:var(--v-gold);color:#142A4A!important}
.vivid footer::before{background:linear-gradient(90deg,var(--v-gold),var(--v-royal),transparent)}
.vivid .live,.vivid .wm{color:var(--v-navy)}.vivid .l-line{stroke:var(--v-gold)}
.vivid #intro{background:linear-gradient(160deg,var(--v-powder),#fff 55%,var(--v-butter))}
.vivid .scroll-cue{border-color:var(--v-gold-soft)}.vivid .scroll-cue span{background:var(--v-gold-soft)}
/* photos: warm the greys slightly */
.vivid .gal img,.vivid .pgrid .photo img{filter:saturate(1.08) contrast(1.04)}
.vivid .hero-bg img{filter:saturate(1.12) contrast(1.05)}

.cities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cities .fact b{font-size:22px}
@media(min-width:1181px){.cities{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:480px){.cities{grid-template-columns:1fr 1fr}}

.city{background:var(--surface-card);border:1px solid var(--border-default);padding:16px 18px;display:grid;gap:2px;position:relative}
.city::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--sil-gold-600)}
.city b{font-family:var(--font-display);font-weight:600;font-size:20px;line-height:1.1;color:var(--text-heading)}
.city .km{font-size:13px;color:var(--text-body);margin-top:4px}
.city .days{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sil-gold-700);font-weight:600}
.loc.dark .city{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.12)}.loc.dark .city b{color:#fff}.loc.dark .city .km{color:var(--sil-royal-200)}.loc.dark .city .days{color:var(--sil-gold-400)}

.form .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}

.city{container-type:inline-size;min-width:0}.city b{white-space:nowrap;font-size:clamp(15px,11.5cqw,20px)}

.cities-row{margin-top:36px;grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:860px){.cities-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
