/* CAQA Creative - global creative platform */
:root{
  --blue:#193E99;--blue-d:#10286B;--green:#3DBA4E;--green-d:#2E9E43;--pale:#EEF9E9;--grey:#E9EAEB;
  --ink:#101A3E;--body:#3E4865;--muted:#6B7591;--line:#E0E4F0;--paper:#FFFFFF;
  --grad:linear-gradient(110deg,#193E99,#3DBA4E);
  --shadow:0 12px 30px rgba(16,26,62,.1);--shadow-lg:0 30px 64px rgba(16,26,62,.18);--max:1200px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:96px}
body{font-family:'Montserrat','Inter',sans-serif;color:var(--body);background:var(--paper);line-height:1.72;font-size:16.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Syne',sans-serif;color:var(--ink);line-height:1.1;font-weight:700;letter-spacing:-.01em}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none;transition:color .2s}
ul{list-style:none}
.container{max-width:var(--max);margin:0 auto;padding:0 24px}
.center{text-align:center}
.mt-1{margin-top:10px}.mt-2{margin-top:22px}.mt-3{margin-top:32px}
.h-xl{font-size:clamp(2rem,4.4vw,3.2rem)}
.h-lg{font-size:clamp(1.55rem,3vw,2.2rem)}
.gx{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:0.8125rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:var(--green-d)}
.eyebrow::before{content:"";width:30px;height:3px;border-radius:2px;background:var(--grad)}
.lead{font-size:1.1rem;color:var(--muted);max-width:780px}
#scrollbar{position:fixed;top:0;left:0;height:3px;background:var(--grad);z-index:200;width:0}
/* header - faithful to caqacreative: white bar, logo, simple menu, socials row */
.header{position:sticky;top:0;z-index:90;background:#fff;border-bottom:1px solid var(--line);transition:transform .4s,box-shadow .3s}
.header.hide{transform:translateY(-110%)}
.header.scrolled{box-shadow:var(--shadow)}
.header .container{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:18px}
.brand img{height:69px;width:auto}
.nav{display:flex;align-items:center;gap:2px}
.nav>a{padding:12px 14px;font-size:.92rem;font-weight:600;color:var(--blue);position:relative}
.nav>a::after{content:"";position:absolute;left:14px;right:14px;bottom:6px;height:2.5px;border-radius:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:.28s}
.nav>a:hover::after,.nav>a.on::after{transform:scaleX(1)}
.nav>a:hover{color:var(--blue-d)}
.hsoc{display:flex;gap:8px}
.hsoc a{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;transition:.3s}
.hsoc a:hover{background:var(--grad);border-color:transparent;transform:translateY(-3px)}
.hsoc svg{width:14px;height:14px;fill:var(--blue);transition:.3s}
.hsoc a:hover svg{fill:#fff}
.nav-toggle{display:none;background:0;border:0;cursor:pointer;width:44px;height:44px}
.nav-toggle span{display:block;width:24px;height:2.5px;background:var(--ink);margin:5px auto;border-radius:2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 30px;border-radius:50px;font-family:'Syne',sans-serif;font-weight:700;font-size:.88rem;cursor:pointer;border:0;position:relative;overflow:hidden;transition:.25s;will-change:transform}
.btn-blue{background:var(--blue);color:#fff;box-shadow:0 10px 26px rgba(25,62,153,.3)}
.btn-blue:hover{background:var(--blue-d);transform:translateY(-3px)}
.btn-green{background:var(--green);color:#fff;box-shadow:0 10px 26px rgba(61,186,78,.3)}
.btn-green:hover{background:var(--green-d);transform:translateY(-3px)}
.btn-line{background:transparent;color:var(--blue);border:2px solid var(--blue)}
.btn-line:hover{background:var(--blue);color:#fff;transform:translateY(-3px)}
.btn-white{background:#fff;color:var(--blue)}
.btn-white:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.25)}
.btn:active{transform:scale(.97)}
.btn-blue::after,.btn-green::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:left .55s}
.btn-blue:hover::after,.btn-green:hover::after{left:130%}
.ripple{position:absolute;border-radius:50%;background:rgba(61,186,78,.22);transform:scale(0);animation:rip .6s ease-out forwards;pointer-events:none}
@keyframes rip{to{transform:scale(3.4);opacity:0}}
/* slider hero */
.slider{position:relative;overflow:hidden;height:min(620px,78vh);background:var(--ink)}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .9s;pointer-events:none}
.slide.on{opacity:1;pointer-events:auto}
.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.06);transition:transform 7s linear}
.slide.on img{transform:scale(1)}
.slide .shade{position:absolute;inset:0;background:linear-gradient(95deg,rgba(13,22,52,.92) 25%,rgba(16,26,62,.65) 55%,rgba(16,26,62,.25))}
.slide .cap{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);color:#fff}
.slide .cap .container{max-width:var(--max)}
.slide .cap .tag{display:inline-flex;align-items:center;gap:10px;font-size:0.8125rem;font-weight:700;letter-spacing:.26em;text-transform:uppercase;color:#9FE6AE;opacity:0;transform:translateY(14px);transition:.6s .2s}
.slide .cap h1,.slide .cap h2{color:#fff;font-size:clamp(2rem,4.8vw,3.8rem);max-width:760px;margin-top:12px;opacity:0;transform:translateY(18px);transition:.7s .35s}
.slide .cap p{color:#C9D3F0;max-width:600px;margin-top:14px;font-size:1.05rem;opacity:0;transform:translateY(18px);transition:.7s .5s}
.slide .cap .btn{margin-top:24px;opacity:0;transform:translateY(18px);transition:.7s .65s}
.slide.on .cap .tag,.slide.on .cap h1,.slide.on .cap h2,.slide.on .cap p,.slide.on .cap .btn{opacity:1;transform:none}
.sl-dots{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:9px;z-index:5}
.sl-dots button{width:10px;height:10px;border-radius:50px;border:0;background:rgba(255,255,255,.45);cursor:pointer;transition:.3s;padding:0}
.sl-dots button.on{width:30px;background:var(--green)}
.sl-arr{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:var(--blue);display:grid;place-items:center;cursor:pointer;transition:.3s;opacity:0}
.slider:hover .sl-arr{opacity:1}
.sl-arr:hover{background:var(--grad);color:#fff;transform:translateY(-50%) scale(1.1)}
.sl-arr.prev{left:18px}.sl-arr.next{right:18px}
/* sections */
.section{padding:74px 0}
.section.pale{background:var(--pale)}
.section.ink{background:var(--ink);color:#fff}
.section.ink h2,.section.ink h3{color:#fff}
.section:has(.cta-band){padding-top:14px;padding-bottom:52px}
/* ticker */
.ticker{background:var(--blue-d);overflow:hidden;padding:12px 0}
.tk-track{display:flex;white-space:nowrap;animation:mq 32s linear infinite}
.tk-track span{display:inline-flex;align-items:center;gap:18px;padding:0 18px;font-family:'Syne',sans-serif;font-size:.9rem;color:#ADC3F5;letter-spacing:.06em}
.tk-track i{width:8px;height:8px;background:var(--green);border-radius:50%;flex:none}
.ticker:hover .tk-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
/* service cards */
.sv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
.sv{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:28px 26px;display:block;position:relative;overflow:hidden;transition:.35s;transform-style:preserve-3d}
.sv::before{content:"";position:absolute;inset:0 0 auto 0;height:5px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:.4s}
.sv:hover{transform:translateY(-8px) rotate(-.4deg);box-shadow:var(--shadow-lg);border-color:transparent}
.sv:hover::before{transform:scaleX(1)}
.sv .ic{width:54px;height:54px;border-radius:16px;background:var(--grad);display:grid;place-items:center;color:#fff;font-family:'Syne',sans-serif;font-weight:700;font-size:1rem;margin-bottom:16px;transition:.4s;box-shadow:0 10px 22px rgba(25,62,153,.28)}
.sv:nth-child(3n+2) .ic{background:linear-gradient(110deg,#3DBA4E,#193E99)}
.sv:hover .ic{transform:rotate(-8deg) scale(1.1)}
.sv h3{font-size:1.12rem;margin-bottom:8px;transition:color .3s}
.sv:hover h3{color:var(--blue)}
.sv p{font-size:.88rem;color:var(--muted)}
.sv .go{display:inline-flex;align-items:center;gap:8px;margin-top:14px;font-weight:700;font-size:0.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green-d)}
.sv .go svg{width:15px;height:15px;stroke:currentColor;transition:transform .3s}
.sv:hover .go svg{transform:translateX(6px)}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px}
.gal a{position:relative;border-radius:18px;overflow:hidden;display:block;height:230px}
.gal a:nth-child(5n+1){grid-row:span 2;height:auto;min-height:300px}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .7s,filter .4s}
.gal a::after{content:attr(data-t);position:absolute;left:14px;bottom:12px;color:#fff;font-family:'Syne',sans-serif;font-weight:700;font-size:.9rem;text-shadow:0 2px 12px rgba(0,0,0,.5);z-index:2}
.gal a::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,26,62,.8));z-index:1;opacity:.85;transition:.4s}
.gal a:hover img{transform:scale(1.08) rotate(1deg)}
.gal a:hover::before{opacity:1}
/* pricing */
.tier-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;align-items:stretch}
.tier{background:#fff;border:1.5px solid var(--line);border-radius:24px;padding:36px 30px;position:relative;overflow:hidden;transition:.35s;display:flex;flex-direction:column}
.tier:hover{transform:translateY(-9px);box-shadow:var(--shadow-lg)}
.tier.hot{border:2.5px solid transparent;background:linear-gradient(#fff,#fff) padding-box,var(--grad) border-box;box-shadow:var(--shadow-lg)}
.tier .tag{position:absolute;top:18px;right:-34px;background:var(--grad);color:#fff;font-size:0.8125rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 40px;transform:rotate(38deg)}
.tier h3{font-size:1.25rem}
.tier .price{font-family:'Syne',sans-serif;font-weight:700;font-size:2.1rem;color:var(--blue);margin:10px 0 2px}
.tier .price small{font-size:.85rem;color:var(--muted);font-weight:600}
.tier .meta{font-size:0.8125rem;color:var(--green-d);font-weight:700;margin-bottom:14px}
.tier ul{margin:0 0 24px}
.tier li{padding:8px 0 8px 28px;position:relative;font-size:.88rem;border-bottom:1px dashed var(--line)}
.tier li::before{content:"";position:absolute;left:0;top:12px;width:17px;height:17px;border-radius:50%;background:var(--grad);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat}
.tier .btn{margin-top:auto;width:100%}
/* quotes */
.q-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:30px}
.q-card{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:28px;transition:.35s;border-top:4px solid transparent}
.q-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-top-color:var(--green)}
.q-card h3{font-size:1rem;color:var(--blue);margin-bottom:8px}
.q-card p{font-size:.9rem;font-style:italic;color:var(--body)}
.q-card .who{margin-top:14px;font-size:0.8125rem;font-weight:700;color:var(--ink)}
/* steps + booking */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px;counter-reset:st}
.step{background:#fff;border:1.5px solid var(--line);border-radius:18px;padding:26px 22px;transition:.3s;counter-increment:st;position:relative}
.step::before{content:"0" counter(st);font-family:'Syne',sans-serif;font-weight:700;font-size:2rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;margin-bottom:8px}
.step:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.step h3{font-size:1rem;margin-bottom:6px}
.step p{font-size:.85rem;color:var(--muted)}
.check-list li{padding:9px 0 9px 32px;position:relative;font-size:.95rem;transition:.25s;border-radius:8px}
.check-list li::before{content:"";position:absolute;left:0;top:13px;width:19px;height:19px;border-radius:50%;background:var(--grad);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/%3E%3C/svg%3E") center/contain no-repeat}
.check-list li:hover{background:rgba(61,186,78,.08);padding-left:38px;color:var(--ink)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.split .ph{border-radius:24px;overflow:hidden;box-shadow:var(--shadow-lg);position:relative;border:6px solid #fff}
.split .ph img{width:100%;height:400px;object-fit:cover;transition:transform .7s}
.split .ph:hover img{transform:scale(1.05)}
/* page hero */
.page-hero{position:relative;background:var(--ink);color:#fff;padding:48px 0 42px;overflow:hidden}
.page-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(640px 300px at 88% 0%,rgba(61,186,78,.25),transparent 60%),radial-gradient(520px 280px at 5% 100%,rgba(25,62,153,.45),transparent 60%)}
.page-hero .container{position:relative;z-index:2}
.page-hero h1{color:#fff;font-size:clamp(2rem,4.2vw,3.1rem);max-width:880px}
.page-hero .lead{color:#C9D3F0;margin-top:14px}
.crumbs{font-size:0.8125rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#8F9BC4;margin-bottom:16px}
.crumbs a{color:#9FE6AE}
.page-hero .eyebrow{color:#9FE6AE}
/* people */
.team-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:30px}
.person{background:#fff;border:1.5px solid var(--line);border-radius:16px;padding:22px 16px;text-align:center;transition:.3s}
.person:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.avatar{width:70px;height:70px;border-radius:50%;margin:0 auto 12px;display:grid;place-items:center;font-family:'Syne',sans-serif;font-weight:700;font-size:1.2rem;color:#fff;background:var(--grad);transition:.4s}
.person:hover .avatar{transform:scale(1.08)}
.person h3{font-size:.88rem}
.person .role{font-size:0.8125rem;color:var(--muted);font-weight:600;margin-top:3px;line-height:1.4}
/* forms */
.field{margin-bottom:18px}
.field label{display:block;font-size:0.8125rem;font-weight:700;color:var(--ink);margin-bottom:7px;letter-spacing:.1em;text-transform:uppercase}
.field input,.field select,.field textarea{width:100%;padding:13px 16px;border:1.5px solid var(--line);border-radius:14px;font:inherit;font-size:.93rem;color:var(--ink);background:#fff;transition:.25s}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--green);box-shadow:0 0 0 4px rgba(61,186,78,.14)}
.form-card{background:#fff;border:1.5px solid var(--line);border-radius:24px;padding:38px;box-shadow:var(--shadow)}
.info-card{background:#fff;border:1.5px solid var(--line);border-radius:20px;padding:30px;transition:.3s}
.info-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}
.info-card .row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:.89rem}
.info-card .row b{text-align:right;color:var(--ink)}
/* cta */
.cta-band{background:var(--grad);border-radius:26px;padding:42px 48px;display:flex;justify-content:space-between;align-items:center;gap:30px;color:#fff;position:relative;overflow:hidden;box-shadow:var(--shadow-lg)}
.cta-band::before{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:rgba(255,255,255,.14);right:-80px;top:-120px}
.cta-band h2{color:#fff;font-size:clamp(1.4rem,2.6vw,2rem)}
.cta-band p{opacity:.95;margin-top:8px;max-width:620px;font-size:.93rem}
/* reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}
.reveal.in{opacity:1;transform:none}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}
/* CAQA dome footer + newsletter card */
.f-news{position:relative;z-index:3;width:min(1120px,90%);margin:0 auto -52px;background:var(--grad);border-radius:24px;padding:28px 36px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;box-shadow:0 30px 70px rgba(16,26,62,.4);overflow:hidden;color:#fff}
.f-news::before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.13);right:-70px;top:-110px}
.f-news h3{color:#fff;font-size:1.4rem}
.f-news p{color:rgba(255,255,255,.92);font-size:.9rem}
.f-news-form{display:flex;align-items:center;background:#fff;border-radius:999px;padding:6px;flex:1;min-width:300px;max-width:520px}
.f-news-form input{flex:1;border:0;outline:none;padding:11px 20px;border-radius:999px;font:inherit;font-size:.92rem;color:var(--ink);min-width:0}
.f-news-form button{padding:12px 26px;border:0;background:var(--ink);color:#fff;font-weight:700;cursor:pointer;transition:.25s;border-radius:999px;font-size:.88rem}
.f-news-form button:hover{background:var(--blue-d)}
.footer{background:var(--ink);color:#A6B0D4;position:relative;padding:112px 0 0;margin-top:58px}
.footer::before{content:"";position:absolute;top:-66px;left:50%;transform:translateX(-50%);width:130%;height:140px;background:var(--ink);border-radius:50% 50% 0 0}
.footer>.container,.footer .f-bottom{position:relative;z-index:2}
.footer h4{color:#fff;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;margin-bottom:16px;font-family:'Syne',sans-serif}
.footer h4::after{content:"";display:block;width:30px;height:3px;border-radius:2px;background:var(--grad);margin-top:8px}
.footer li{margin-bottom:9px;font-size:.87rem}
.footer li a{transition:.25s;display:inline-block}
.footer li a:hover{color:#fff;transform:translateX(5px)}
.footer .f-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:38px;padding-bottom:40px}
.footer .f-brand img{height:58px;margin-bottom:16px;background:#fff;padding:8px 14px;border-radius:12px}
.footer .f-brand p{font-size:.86rem;line-height:1.7}
.socials{display:flex;gap:10px;margin-top:16px}
.socials a{width:38px;height:38px;border-radius:50%;border:1.5px solid #25315E;display:grid;place-items:center;transition:.3s}
.socials a:hover{background:var(--grad);border-color:transparent;transform:translateY(-4px)}
.socials svg{width:15px;height:15px;fill:#fff}
.f-bottom{border-top:1px solid #1C2750;padding:18px 0;font-size:0.8125rem}
.f-bottom .container{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.f-bottom a{color:#9FE6AE}
/* responsive */
@media(max-width:1020px){
  .sv-grid,.q-grid,.tier-grid{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .team-grid{grid-template-columns:repeat(3,1fr)}
  .footer .f-grid{grid-template-columns:1fr 1fr}
  .hsoc{display:none}
}
@media(max-width:760px){
  .nav{position:fixed;inset:84px 0 auto 0;background:#fff;flex-direction:column;align-items:stretch;padding:14px 22px 24px;box-shadow:var(--shadow-lg);transform:translateY(-130%);transition:.4s;z-index:80}
  .nav.open{transform:none}
  .nav-toggle{display:block}
  .sv-grid,.q-grid,.tier-grid,.gal,.steps{grid-template-columns:1fr}
  .team-grid{grid-template-columns:1fr 1fr}
  .cta-band{flex-direction:column;padding:34px 24px}
  .footer .f-grid{grid-template-columns:1fr}
  .slider{height:480px}
  .section{padding:38px 0}
}

/* ===== SHOWCASE EDITION ===== */
/* kinetic word strip */
.kinetic{background:#fff;padding:34px 0 8px;overflow:hidden}
.kinetic h2{font-size:clamp(2.6rem,8vw,6rem);line-height:1.05;letter-spacing:-.03em;display:flex;flex-wrap:wrap;gap:.08em 22px;align-items:baseline}
.kinetic .kw{display:inline-block;position:relative}
.kinetic .kw i{font-style:normal;position:relative;z-index:1}
.kinetic .kw::after{content:"";position:absolute;left:-2%;right:-2%;bottom:8%;height:34%;background:var(--ac,#3DBA4E);opacity:.28;z-index:0;transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.kinetic .kw.in::after{transform:scaleX(1)}
.kinetic .kw:hover{color:var(--ac,#193E99)}
.kinetic .out{color:transparent;-webkit-text-stroke:1.5px #C9D2EC}
/* rotating badge */
.badge-rot{position:absolute;right:5%;bottom:-54px;width:128px;height:128px;z-index:6;animation:spin 16s linear infinite;filter:drop-shadow(0 12px 24px rgba(16,26,62,.3))}
@keyframes spin{to{transform:rotate(360deg)}}
/* chapters: per-service editorial rows */
.chapter{padding:64px 0;border-top:1px solid var(--line);position:relative;overflow:hidden}
.chapter .wrap{display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:center}
.chapter:nth-child(even) .wrap{grid-template-columns:1.1fr 1fr}
.chapter:nth-child(even) .wrap .txt{order:2}
.chapter .big{position:absolute;top:8px;right:18px;font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(4rem,11vw,9rem);line-height:1;color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--ac) 35%,transparent);user-select:none;pointer-events:none}
.chapter .eyebrow{color:var(--ac)}
.chapter .eyebrow::before{background:var(--ac)}
.chapter h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
.chapter h2 em{font-style:italic;color:var(--ac)}
.chapter p{color:var(--muted);margin-top:14px;max-width:520px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.chips span{font-size:0.8125rem;font-weight:700;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:50px;padding:6px 14px;transition:.25s}
.chips span:hover{background:var(--ac);border-color:var(--ac);color:#fff;transform:translateY(-3px) rotate(-1deg)}
.chapter .btn{margin-top:22px;background:var(--ac);color:#fff;box-shadow:0 12px 26px color-mix(in srgb,var(--ac) 40%,transparent)}
.chapter .btn:hover{transform:translateY(-3px) rotate(-1deg)}
/* polaroid collage */
.collage{position:relative;height:430px}
.collage a{position:absolute;border-radius:14px;overflow:hidden;border:8px solid #fff;box-shadow:0 22px 50px rgba(16,26,62,.22);transition:transform .5s cubic-bezier(.22,1,.36,1),box-shadow .4s;display:block}
.collage a img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.collage a:hover{transform:scale(1.05) rotate(0deg) !important;z-index:5;box-shadow:0 32px 70px rgba(16,26,62,.32)}
.collage a:hover img{transform:scale(1.06)}
.collage .c1{width:58%;height:74%;left:0;top:4%;transform:rotate(-4deg);z-index:2}
.collage .c2{width:46%;height:58%;right:0;top:0;transform:rotate(3.5deg);z-index:1}
.collage .c3{width:42%;height:46%;right:8%;bottom:0;transform:rotate(-2deg);z-index:3}
.collage .tape{position:absolute;width:90px;height:26px;background:color-mix(in srgb,var(--ac) 55%,#fff);opacity:.85;left:14%;top:0;transform:rotate(-6deg);z-index:4;border-radius:2px}
/* horizontal strip */
.hstrip{display:flex;gap:16px;overflow-x:auto;padding:10px 4px 22px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.hstrip::-webkit-scrollbar{height:8px}
.hstrip::-webkit-scrollbar-thumb{background:var(--grad);border-radius:8px}
.hstrip a{flex:0 0 280px;scroll-snap-align:start;border-radius:16px;overflow:hidden;position:relative;height:360px;transition:.35s}
.hstrip a:nth-child(even){margin-top:26px;height:334px}
.hstrip a img{width:100%;height:100%;object-fit:cover;transition:transform .8s,filter .4s;filter:saturate(.9)}
.hstrip a::after{content:attr(data-t);position:absolute;left:14px;bottom:12px;color:#fff;font-family:'Syne',sans-serif;font-weight:700;font-size:.92rem;z-index:2;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.hstrip a::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,26,62,.75));z-index:1}
.hstrip a:hover{transform:translateY(-8px) rotate(-1deg)}
.hstrip a:hover img{transform:scale(1.07);filter:saturate(1.15)}
/* studio image cards */
.st-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:30px}
.st{display:grid;grid-template-columns:200px 1fr;background:#fff;border:1.5px solid var(--line);border-radius:20px;overflow:hidden;transition:.35s;min-height:180px}
.st:hover{transform:translateY(-6px) rotate(-.4deg);box-shadow:var(--shadow-lg);border-color:var(--ac,var(--green))}
.st .im{overflow:hidden}
.st .im img{width:100%;height:100%;object-fit:cover;transition:transform .8s;filter:saturate(.92)}
.st:hover .im img{transform:scale(1.08);filter:saturate(1.1)}
.st .bd{padding:22px 24px}
.st h3{font-size:1.05rem;margin-bottom:6px}
.st p{font-size:.85rem;color:var(--muted)}
.st .go{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-weight:700;font-size:0.8125rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ac,var(--green-d))}
/* masonry showcase + filters */
.filt{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
.filt button{padding:10px 20px;border-radius:50px;border:1.5px solid var(--line);background:#fff;font-family:'Syne',sans-serif;font-weight:700;font-size:0.8125rem;color:var(--body);cursor:pointer;transition:.3s}
.filt button:hover{border-color:var(--green);transform:translateY(-2px)}
.filt button.on{background:var(--grad);color:#fff;border-color:transparent}
.mas{columns:4 240px;column-gap:14px;margin-top:26px}
.mas a{display:block;margin-bottom:14px;border-radius:16px;overflow:hidden;position:relative;break-inside:avoid;transition:.3s}
.mas a img{width:100%;display:block;transition:transform .8s,filter .4s;filter:saturate(.92)}
.mas a::after{content:attr(data-t);position:absolute;left:12px;bottom:10px;color:#fff;font-family:'Syne',sans-serif;font-weight:700;font-size:.85rem;z-index:2;text-shadow:0 2px 12px rgba(0,0,0,.6);opacity:0;transform:translateY(8px);transition:.35s}
.mas a::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(16,26,62,.8));opacity:0;transition:.35s;z-index:1}
.mas a:hover::after,.mas a:hover::before{opacity:1;transform:none}
.mas a:hover{transform:translateY(-5px)}
.mas a:hover img{transform:scale(1.06);filter:saturate(1.15)}
.mas a.hide{display:none}
/* quote polaroids */
.q-card{transform:rotate(-.6deg)}
.q-grid .q-card:nth-child(2){transform:rotate(.8deg)}
.q-grid .q-card:nth-child(3){transform:rotate(-1deg)}
.q-card:hover{transform:translateY(-6px) rotate(0)}
@media(max-width:1020px){.chapter .wrap{grid-template-columns:1fr !important}.chapter:nth-child(even) .wrap .txt{order:0}.chapter .big{display:none}.collage{height:360px}.st-grid{grid-template-columns:1fr}.mas{columns:2 180px}}
@media(max-width:760px){.collage{height:300px}.st{grid-template-columns:1fr}.st .im{height:160px}.kinetic h2{gap:0 12px}.badge-rot{display:none}.mas{columns:2 150px}}

/* CTA redesigned: ink-ticket style, distinct from gradient newsletter card */
.cta-band{background:#fff;color:var(--ink);border:2.5px solid var(--ink);border-radius:22px;box-shadow:10px 10px 0 var(--green);padding:44px 48px;transition:.3s}
.cta-band:hover{box-shadow:14px 14px 0 var(--blue);transform:translate(-3px,-3px)}
.cta-band::before{display:none}
.cta-band h2{color:var(--ink)}
.cta-band p{color:var(--muted);opacity:1}
.cta-band .btn-white{background:var(--ink);color:#fff;border-radius:14px}
.cta-band .btn-white:hover{background:var(--blue);box-shadow:0 12px 26px rgba(25,62,153,.35)}
.section:has(.cta-band){padding-bottom:30px}
.tk-track{width:max-content}

/* UX-FIX contrast overrides (WCAG AA) */
.btn-green{background-color:#2a8436 !important;color:#ffffff !important}

/* UX-FIX accent text on light bg (WCAG AA, cascade-safe) */
.eyebrow{color:#247d35}

/* UX-FIX rendered-contrast (light-bg text to AA; dark contexts restored) */
.eyebrow{color:#217431}
.mast .eyebrow,[class*="hero"] .eyebrow,.page-hero .eyebrow,.banner .eyebrow,footer .eyebrow,.foot .eyebrow,.dark .eyebrow,.invert .eyebrow,.topbar .eyebrow,.drawer .eyebrow,.overlay .eyebrow{color:#2e9e43}
.slide .cap .tag{color:#9fe6ae}
.mast .slide .cap .tag,[class*="hero"] .slide .cap .tag,.page-hero .slide .cap .tag,.banner .slide .cap .tag,footer .slide .cap .tag,.foot .slide .cap .tag,.dark .slide .cap .tag,.invert .slide .cap .tag,.topbar .slide .cap .tag,.drawer .slide .cap .tag,.overlay .slide .cap .tag{color:#9fe6ae}
.slide .cap p{color:#c9d3f0}
.mast .slide .cap p,[class*="hero"] .slide .cap p,.page-hero .slide .cap p,.banner .slide .cap p,footer .slide .cap p,.foot .slide .cap p,.dark .slide .cap p,.invert .slide .cap p,.topbar .slide .cap p,.drawer .slide .cap p,.overlay .slide .cap p{color:#c9d3f0}
.tk-track span{color:#5d6a87}
.mast .tk-track span,[class*="hero"] .tk-track span,.page-hero .tk-track span,.banner .tk-track span,footer .tk-track span,.foot .tk-track span,.dark .tk-track span,.invert .tk-track span,.topbar .tk-track span,.drawer .tk-track span,.overlay .tk-track span{color:#adc3f5}
.sv .go{color:#217431}
.mast .sv .go,[class*="hero"] .sv .go,.page-hero .sv .go,.banner .sv .go,footer .sv .go,.foot .sv .go,.dark .sv .go,.invert .sv .go,.topbar .sv .go,.drawer .sv .go,.overlay .sv .go{color:#2e9e43}
.tier .meta{color:#217431}
.mast .tier .meta,[class*="hero"] .tier .meta,.page-hero .tier .meta,.banner .tier .meta,footer .tier .meta,.foot .tier .meta,.dark .tier .meta,.invert .tier .meta,.topbar .tier .meta,.drawer .tier .meta,.overlay .tier .meta{color:#2e9e43}
.crumbs{color:#616a87}
.mast .crumbs,[class*="hero"] .crumbs,.page-hero .crumbs,.banner .crumbs,footer .crumbs,.foot .crumbs,.dark .crumbs,.invert .crumbs,.topbar .crumbs,.drawer .crumbs,.overlay .crumbs{color:#8f9bc4}
.crumbs a{color:#4f7557}
.mast .crumbs a,[class*="hero"] .crumbs a,.page-hero .crumbs a,.banner .crumbs a,footer .crumbs a,.foot .crumbs a,.dark .crumbs a,.invert .crumbs a,.topbar .crumbs a,.drawer .crumbs a,.overlay .crumbs a{color:#9fe6ae}
.f-bottom a{color:#4f7557}
.mast .f-bottom a,[class*="hero"] .f-bottom a,.page-hero .f-bottom a,.banner .f-bottom a,footer .f-bottom a,.foot .f-bottom a,.dark .f-bottom a,.invert .f-bottom a,.topbar .f-bottom a,.drawer .f-bottom a,.overlay .f-bottom a{color:#9fe6ae}

/* ============ LAUNCH 2026-07: a11y + forms ============ */
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:#0B1633;color:#fff;padding:12px 22px;border-radius:0 0 10px 0;font-weight:600}
.skip-link:focus{left:0}
.menu li:focus-within .dropdown,.menu li:focus-within .drop,nav li:focus-within .dropdown{opacity:1;visibility:visible;transform:none}
.cq-pause{position:absolute;right:18px;bottom:16px;z-index:6;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.55);background:rgba(10,16,40,.45);color:#fff;cursor:pointer;font-size:.8rem;display:grid;place-items:center;backdrop-filter:blur(4px)}
.cq-pause:hover{background:rgba(10,16,40,.75)}
.form-ok{background:#F0F7F0;border:1px solid #CFE8D2;border-left:4px solid #00800b;border-radius:12px;padding:20px 24px;font-size:.98rem;line-height:1.7}
.form-err{color:#B4232A;font-weight:600;margin-top:12px}
.consent-row{display:flex;gap:10px;align-items:flex-start;font-size:.85rem;line-height:1.6;margin:4px 0 6px;grid-column:1/-1}
.consent-row input{width:auto!important;min-height:0!important;margin-top:4px;accent-color:#00800b}
.news-consent{font-size:.75rem;margin-top:8px;opacity:.85}
.news-consent a{text-decoration:underline}
@media (prefers-reduced-motion:reduce){.cqsvc-track,.marquee-track,.tk-track{animation:none!important}.reveal{opacity:1!important;transform:none!important}}

/* ============ FAMILY FEEDBACK 2026-07: brighter secondary text on dark surfaces ============ */
.marquee span{color:#DFE7FA}.marquee i{opacity:1}
.band p,.band .proof p{color:#C6CFE8}
.stats-row span,.sigband span{opacity:.92}
.f-news p{opacity:.95}
.f-bottom a{opacity:1}
/* footer: brand block as full-width first row, columns in a wider second row */
.f-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important;width:min(1240px,92%)!important;gap:38px}
.f-grid>div:first-child,.f-grid>.f-about{grid-column:1/-1;max-width:920px}
.f-bottom .container,.f-bottom>.container{justify-content:center!important;text-align:center;flex-direction:column;gap:8px}
@media(max-width:1024px){.f-grid{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:680px){.f-grid{grid-template-columns:1fr!important}}

/* ============ FOOTER-FAMILY 2026-07: consulting-style footer ============ */
.footer{padding-top:26px}
.footer .f-news{position:relative;z-index:2;width:min(1120px,90%);margin:6px auto 0;background:linear-gradient(135deg,#10286B,#183E99);border-radius:26px;padding:26px 36px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;box-shadow:0 30px 70px rgba(11,22,51,.3)}
.footer .f-news h3{color:#fff;font-size:1.5rem;margin:0 0 4px;font-family:inherit}
.footer .f-news>div>p{color:#C7D0EC;font-size:.93rem;margin:0}
.footer .f-news-form{display:flex;align-items:center;background:#fff;border-radius:999px;padding:7px;flex:1;min-width:280px;max-width:560px}
.footer .f-news-form input[type="email"]{flex:1;border:0;outline:none;padding:11px 22px;font-family:inherit;font-size:.93rem;border-radius:999px;min-width:0;color:#13203A;background:#fff}
.footer .f-news-form button{border-radius:999px;padding:13px 26px;flex:none;border:0;cursor:pointer;background:#00800B;color:#fff;font-weight:700;font-family:inherit;font-size:.9rem;transition:.25s}
.footer .f-news-form button:hover{background:#026A0C}
.footer .news-consent{flex-basis:100%;font-size:.75rem;opacity:.9;margin:2px 0 0;color:#C7D0EC}
.footer .news-consent a{text-decoration:underline;color:#DFF3E1}
.footer .f-brandrow{width:min(1240px,92%);margin:0 auto;padding:44px 0 4px;display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.footer .f-brandrow p{font-size:.95rem;line-height:1.85;max-width:900px;margin:0}
.footer .f-brandrow .socials{margin-top:4px}
.footer .f-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important;gap:40px;width:min(1240px,92%);margin:26px auto 0;padding:34px 0;border-top:1px solid rgba(255,255,255,.12)}
.footer .f-grid>div:first-child{grid-column:auto!important;max-width:none!important}
.footer .f-sis{grid-column:1/-1!important}
.footer .f-bottom .container{flex-direction:column;justify-content:center!important;text-align:center;gap:8px}
.footer .form-ok{color:#9FE6AE;font-weight:600;padding:10px 18px}
@media(max-width:680px){.footer .f-news{padding:22px}}

.footer .f-brandrow>img,.footer .f-brandrow>a>img{height:56px;width:auto}
.footer .f-brandrow>svg{height:56px;width:auto}
.footer .f-brandrow .socials svg{height:16px;width:16px}
.footer .f-brandrow .socials a{width:42px;height:42px}

.footer .f-brandrow .brand span{color:#fff}
.footer .f-brandrow .brand small{color:#B9C6EE}
.footer .f-brandrow .brand .bx{box-shadow:0 6px 18px rgba(0,0,0,.35)}

/* FTR3 2026-07 - centred footer brand row + balanced link columns */
.f-brandrow{align-items:center;text-align:center}
.f-brandrow p{margin-left:auto;margin-right:auto;max-width:860px}
.f-brandrow .socials{justify-content:center;margin-left:auto;margin-right:auto}
.f-grid{gap:30px 44px;padding:40px 0 26px}
.f-grid ul{margin:0;padding:0;list-style:none}
.f-grid li{margin:0 0 9px;padding:0}
.f-grid li a{line-height:1.45;display:inline-block}
.f-grid h4{margin-bottom:15px}

/* A11Y 2026-07 - WCAG 2.2 AA support layer */
:focus-visible{outline:3px solid #E8772E;outline-offset:2px;border-radius:3px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:99999;background:#0B1E4B;color:#fff!important;padding:10px 18px;border-radius:0 0 10px 0;font-weight:600}
.skip-link:focus{left:0}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* FTR4 2026-07 - tight footer link rows */
.f-grid li{line-height:1.5;margin:0 0 10px;padding:0}
.f-grid li a{line-height:1.5;display:inline-block;padding:0}
.f-grid ul{margin:0;padding:0;list-style:none}
/* FTR4B 2026-07 - footer link rows at WCAG AA target size */
.f-grid li a, .foot2 li a, footer .f-links li a{min-height:24px}

/* FOOTFIX 2026-07 - restore footcenter.css centered footer grid.
   The chassis rules above force grid-template-columns:repeat(auto-fit,minmax(200px,1fr))!important
   on .f-grid/.footer .f-grid, which beats the (non-important) centered
   3-column rule shipped in footcenter.css. Re-assert it here with matching
   importance, incl. the tablet/mobile collapse so small screens still stack. */
.footer .container.f-grid,.footer .f-grid{grid-template-columns:repeat(3,minmax(220px,320px))!important;justify-content:center}
@media(max-width:1020px){.footer .container.f-grid,.footer .f-grid{grid-template-columns:repeat(2,minmax(200px,300px))!important}}
@media(max-width:640px){.footer .container.f-grid,.footer .f-grid{grid-template-columns:minmax(0,340px)!important}}

/* CINEFX 2026-07 - cinematic background video in the hero slider.
   .slide is already positioned (absolute inset:0) inside .slider (relative,
   overflow:hidden); add overflow:hidden on the slide itself and layer:
   video z-index:0 -> .shade scrim z-index:1 -> .cap caption z-index:2.
   Slider dots/arrows remain above at their existing z-index:5. */
.slider .slide{overflow:hidden}
.slider .slide video.cqfx{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:0}
.slider .slide .shade{z-index:1}
.slider .slide .cap{z-index:2}

/* ============ CINE-INTERACT 2026-07: Pigmentis layer ============ */
/* character hero panel (marker: cine-charpanel) - full-width band directly
   after the hero slider so it never crowds the slide captions; the shared
   cinema engine pointer-tilts it (.hviz) and IO-plays the video (.cqfx) */
.cine-charpanel{position:relative;width:min(1200px,92%);margin:28px auto 6px;border-radius:18px;overflow:hidden;background:var(--ink);box-shadow:0 26px 60px rgba(25,62,153,.30),0 12px 30px rgba(242,92,162,.16)}
.cine-charpanel video{display:block;width:100%;height:auto;max-height:52vh;object-fit:cover}
.cine-charpanel::after{content:"";position:absolute;left:0;right:0;bottom:0;height:44%;background:linear-gradient(180deg,rgba(16,26,62,0),rgba(16,26,62,.76));pointer-events:none}
.cine-charname{position:absolute;left:18px;bottom:16px;z-index:2;max-width:min(92%,620px);display:inline-block;background:rgba(16,26,62,.78);color:#EAF2FF;border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:9px 20px;font-family:'Syne',sans-serif;font-weight:600;font-size:.92rem;line-height:1.45;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.cine-charname b{color:#9FE6AE;font-weight:700}
@media(max-width:760px){.cine-charpanel{margin:16px auto 2px;border-radius:14px}.cine-charname{left:10px;bottom:10px;font-size:.78rem;padding:8px 14px}}
/* paint-stroke chapter reveals - wet accent leading edge (interact.js) */
.cine-inkwrap{position:relative}
.cine-inkedge{position:absolute;top:-3%;bottom:-3%;width:9%;left:-12%;z-index:6;pointer-events:none;opacity:0;filter:blur(5px);border-radius:8px}
/* draggable inspiration cards - showcase hstrip (interact.js) */
@media(pointer:fine){.section.ink .hstrip a{cursor:grab}}
.hstrip a.cine-dragging{cursor:grabbing!important;box-shadow:0 34px 64px rgba(0,0,0,.5);filter:saturate(1.1)}
/* creative work gallery (marker: cine-workgallery) */
.cine-workgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:30px}
.cine-workgrid figure{margin:0;position:relative;border-radius:18px;overflow:hidden;background:#fff;border:1.5px solid var(--line);box-shadow:var(--shadow);transition:transform .45s cubic-bezier(.22,1,.36,1),box-shadow .45s,border-color .45s}
.cine-workgrid figure img{width:100%;height:250px;object-fit:cover;filter:saturate(.92);transition:transform .8s,filter .45s}
.cine-workgrid figure::before{content:"";position:absolute;inset:-2% 0 auto 0;height:78%;background:linear-gradient(115deg,rgba(255,255,255,0) 32%,color-mix(in srgb,var(--ac,#3DBA4E) 30%,transparent) 47%,rgba(255,255,255,.35) 55%,rgba(255,255,255,0) 66%);transform:translateX(-130%) skewX(-6deg);transition:transform .75s cubic-bezier(.22,1,.36,1);z-index:2;pointer-events:none}
.cine-workgrid figure:hover::before{transform:translateX(130%) skewX(-6deg)}
.cine-workgrid figure:hover{transform:translateY(-8px) rotate(-.5deg);border-color:var(--ac,var(--green));box-shadow:0 26px 54px color-mix(in srgb,var(--ac,#193E99) 28%,rgba(16,26,62,.14))}
.cine-workgrid figure:hover img{transform:scale(1.07);filter:saturate(1.12)}
.cine-workgrid figcaption{padding:13px 16px 22px;font-family:'Syne',sans-serif;font-weight:700;font-size:.9rem;color:var(--ink);position:relative}
.cine-workgrid figcaption::after{content:"";position:absolute;left:16px;bottom:11px;width:34px;height:3px;border-radius:3px;background:var(--ac,var(--green));transition:width .4s}
.cine-workgrid figure:hover figcaption::after{width:58px}
@media(max-width:1020px){.cine-workgrid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.cine-workgrid{grid-template-columns:1fr}.cine-workgrid figure img{height:220px}}
@media (prefers-reduced-motion: reduce){.cine-inkedge{display:none}.cine-workgrid figure::before{display:none}}

/* lx:hero */
/* WHITE-FIRST HERO SLIDER (white-hero brief 2026-07): the slider section reads
   white; each slide renders copy-on-white (dark ink headline, muted lead,
   accent CTA) beside a framed rounded media card (22px radius, #E4E7EC border,
   soft shadow). Slide 1's frame holds the lx-hero-field video (engine IO-plays
   .cqfx; heroCamera in lx.js drifts it INSIDE the frame, range-limited).
   No scrims - text never sits on media. Crossfade rotation, dots/arrows and
   .slide.on .cap reveal animations unchanged. */
.slider.lx-hero{height:min(88vh,720px);background:#fff}
.slider.lx-hero .slide{display:flex;align-items:center;background:#fff}
.slider.lx-hero .slide>.container{width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,52%);gap:clamp(28px,4.5vw,60px);align-items:center}
.slider.lx-hero .slide .cap{position:static;transform:none;color:var(--body)}
.slider.lx-hero .slide .cap .tag{color:#217431}
.slider.lx-hero .slide .cap h1,.slider.lx-hero .slide .cap h2{color:var(--ink);font-size:clamp(1.85rem,3.4vw,2.9rem);max-width:560px}
.slider.lx-hero .slide .cap p{color:var(--muted);max-width:520px}
.slider.lx-hero .slide .shade{display:none}
/* framed media card (media stays inside; nothing dark on top) */
.lx-heroframe{position:relative;overflow:hidden;border-radius:22px;border:1px solid #E4E7EC;box-shadow:0 24px 60px rgba(16,24,40,.14);aspect-ratio:16/11;max-height:64vh;background:#F3F5F9}
.slider.lx-hero .slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lx-hero-field{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;border-radius:inherit}
.lx-hero-field video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 42%;will-change:transform}
/* light slide controls on the white stage */
.slider.lx-hero .sl-dots button{background:rgba(16,26,62,.22)}
.slider.lx-hero .sl-dots button.on{background:#2a8436}
.slider.lx-hero .sl-arr{background:#fff;border:1px solid #E4E7EC;box-shadow:0 10px 26px rgba(16,24,40,.12)}
@media(max-width:767px){
  .slider.lx-hero{height:min(96vh,660px)}
  .slider.lx-hero .slide>.container{grid-template-columns:1fr;gap:18px;align-content:center}
  .slider.lx-hero .slide .cap h1,.slider.lx-hero .slide .cap h2{font-size:clamp(1.5rem,6vw,1.9rem)}
  .slider.lx-hero .slide .cap p{font-size:.95rem}
  .lx-heroframe{aspect-ratio:16/9;max-height:30vh}
  .lx-hero-field video{will-change:auto}
}
/* SCROLL THE STUDIO micro-prompt: rotating plus glyph + pulsing line */
.lx-scrollprompt{display:flex;flex-direction:column;align-items:center;gap:9px;padding:22px 0 6px;pointer-events:none}
.lx-sp-top{display:inline-flex;align-items:center;gap:10px}
.lx-sp-glyph{position:relative;width:13px;height:13px;animation:lxSpSpin 7s linear infinite}
.lx-sp-glyph::before,.lx-sp-glyph::after{content:"";position:absolute;background:#F25CA2;border-radius:2px}
.lx-sp-glyph::before{left:50%;top:0;bottom:0;width:2px;margin-left:-1px}
.lx-sp-glyph::after{top:50%;left:0;right:0;height:2px;margin-top:-1px}
.lx-sp-txt{font:700 .7rem/1 Montserrat,Inter,sans-serif;letter-spacing:.34em;text-transform:uppercase;color:#1B2A5E;opacity:.62}
.lx-sp-line{width:2px;height:30px;border-radius:2px;background:linear-gradient(#193E99,rgba(25,62,153,0));transform-origin:50% 0;animation:lxSpPulse 2.3s ease-in-out infinite}
@keyframes lxSpSpin{to{transform:rotate(360deg)}}
@keyframes lxSpPulse{0%,100%{transform:scaleY(.35);opacity:.35}50%{transform:scaleY(1);opacity:.9}}
@media (prefers-reduced-motion:reduce){
  .lx-sp-glyph,.lx-sp-line{animation:none}
  .lx-sp-line{opacity:.5}
  .lx-hero-field video{transform:none!important;will-change:auto}
}
/* lx:hero end */

/* lx:stmt */
/* Oversized statement bands: masked vertical reveal + blur-to-sharp on enter;
   drifting decorative glyph behind the word (below text z-order). Palette per
   word via --lxa. PRM: static, sharp, no drift. */
.lx-stmt{position:relative;overflow:hidden;padding:clamp(30px,7vh,72px) 0;text-align:center;background:transparent}
.lx-stmt-clip{position:relative;z-index:1;overflow:hidden;padding:.06em .5rem}
.lx-stmt-word{display:block;font-family:Syne,Montserrat,Inter,sans-serif;font-weight:800;font-size:clamp(3rem,11vw,9rem);line-height:.95;letter-spacing:-.02em;color:color-mix(in srgb,var(--lxa,#193E99) 58%,#101A3E);transform:translateY(112%);filter:blur(14px);opacity:.35;transition:transform 1s cubic-bezier(.22,.7,.2,1),filter 1.15s ease .1s,opacity .9s ease}
.lx-stmt.lx-go .lx-stmt-word{transform:none;filter:blur(0);opacity:1}
.lx-stmt-glyph{position:absolute;z-index:0;left:9%;top:50%;width:clamp(120px,18vw,230px);height:clamp(120px,18vw,230px);margin-top:calc(clamp(120px,18vw,230px) / -2);border:2px solid var(--lxa,#193E99);border-radius:50%;opacity:.13;animation:lxDrift 16s ease-in-out infinite alternate;pointer-events:none}
.lx-stmt-glyph::before,.lx-stmt-glyph::after{content:"";position:absolute;background:var(--lxa,#193E99);border-radius:3px}
.lx-stmt-glyph::before{left:50%;top:22%;bottom:22%;width:3px;margin-left:-1.5px}
.lx-stmt-glyph::after{top:50%;left:22%;right:22%;height:3px;margin-top:-1.5px}
.lx-stmt.lx-alt .lx-stmt-glyph{left:auto;right:9%;animation-name:lxDriftAlt}
@keyframes lxDrift{from{transform:translate(0,-14px) rotate(0deg)}to{transform:translate(26px,14px) rotate(50deg)}}
@keyframes lxDriftAlt{from{transform:translate(0,12px) rotate(0deg)}to{transform:translate(-26px,-14px) rotate(-50deg)}}
@media (prefers-reduced-motion:reduce){
  .lx-stmt-word{transform:none!important;filter:none!important;opacity:1!important;transition:none}
  .lx-stmt-glyph{animation:none}
}
/* lx:stmt end */

/* lx:nav */
/* Discreet "Menu" trigger in the site header (cqbar untouched) + full-screen
   creative navigation overlay expanding from the right over a blurred veil.
   Links stagger in one-by-one; the inner .lx-nav-mag span carries the magnetic
   pull so it never fights the stagger transform on the <a>. Page scroll locks
   via .lx-nav-lock. PRM: overlay opens/closes instantly, nothing animates. */
.lx-nav-trigger{display:inline-flex;align-items:center;gap:9px;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--blue);font-family:'Syne',sans-serif;font-weight:700;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:border-color .3s,box-shadow .3s,transform .3s}
.lx-nav-trigger:hover{border-color:var(--blue);transform:translateY(-2px);box-shadow:0 10px 24px rgba(25,62,153,.16)}
.lx-nt-glyph{width:15px;height:15px;display:grid;grid-template-columns:1fr 1fr;gap:3px;place-items:center;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.lx-nt-glyph i{width:5px;height:5px;border-radius:50%;background:var(--blue)}
.lx-nt-glyph i:nth-child(2){background:#F25CA2}
.lx-nt-glyph i:nth-child(3){background:#E8A33D}
.lx-nt-glyph i:nth-child(4){background:var(--green)}
.lx-nav-trigger:hover .lx-nt-glyph{transform:rotate(90deg)}
.lx-nav-lock,.lx-nav-lock body{overflow:hidden}
.lx-nav{position:fixed;inset:0;z-index:300;visibility:hidden;transition:visibility 0s .7s}
.lx-nav.open{visibility:visible;transition-delay:0s}
.lx-nav-veil{position:absolute;inset:0;background:rgba(246,248,251,.55);opacity:0;transition:opacity .45s ease}
.lx-nav.open .lx-nav-veil{opacity:1}
.lx-nav-panel{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:10vh max(6vw,28px) 7vh;background:linear-gradient(120deg,rgba(255,255,255,.94),rgba(246,248,251,.92) 55%,rgba(238,243,252,.94));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transform:translateX(103%);transition:transform .62s cubic-bezier(.76,0,.19,1);overflow:auto}
.lx-nav.open .lx-nav-panel{transform:none}
.lx-nav-close{position:absolute;top:max(3.4vh,18px);right:max(4vw,20px);width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(16,26,62,.28);background:rgba(16,26,62,.05);color:#101A3E;font-size:1.05rem;cursor:pointer;display:grid;place-items:center;transition:transform .3s,background .3s}
.lx-nav-close:hover{transform:rotate(90deg);background:rgba(16,26,62,.12)}
.lx-nav-kicker{font:700 .72rem/1 Montserrat,Inter,sans-serif;letter-spacing:.4em;text-transform:uppercase;color:#1B5E20;margin:0 0 3.2vh}
.lx-nav-links{display:flex;flex-direction:column;gap:6px;max-width:880px}
.lx-nav-links a{display:flex;align-items:baseline;gap:22px;padding:12px 6px;border-bottom:1px solid rgba(16,26,62,.14);opacity:0;transform:translateY(34px);transition:opacity .5s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.lx-nav.open .lx-nav-links a{opacity:1;transform:none}
.lx-nav.open .lx-nav-links a:nth-child(1){transition-delay:.18s}
.lx-nav.open .lx-nav-links a:nth-child(2){transition-delay:.26s}
.lx-nav.open .lx-nav-links a:nth-child(3){transition-delay:.34s}
.lx-nav.open .lx-nav-links a:nth-child(4){transition-delay:.42s}
.lx-nav.open .lx-nav-links a:nth-child(5){transition-delay:.5s}
.lx-nav-links a i{font:700 .8rem 'Syne',sans-serif;font-style:normal;color:color-mix(in srgb,var(--lxa,#193E99) 62%,#101A3E);min-width:2ch}
.lx-nav-mag{display:inline-flex;flex-direction:column;gap:2px;will-change:transform;transition:transform .18s ease-out}
.lx-nav-links a b{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(1.7rem,4.6vw,3.3rem);line-height:1.06;color:#101A3E;letter-spacing:-.015em;transition:color .3s}
.lx-nav-links a em{font:600 .8rem Montserrat,Inter,sans-serif;font-style:normal;color:#475467;letter-spacing:.08em;text-transform:uppercase}
.lx-nav-links a:hover b,.lx-nav-links a:focus b{color:color-mix(in srgb,var(--lxa,#193E99) 72%,#101A3E)}
.lx-nav-links a:focus-visible{outline:2px solid var(--blue,#193E99);outline-offset:4px}
.lx-nav-foot{margin:4.4vh 0 0;font:500 .85rem Montserrat,Inter,sans-serif;color:#475467}
@media(max-width:767px){
  .lx-nav-trigger{padding:8px 13px;font-size:.7rem;letter-spacing:.12em}
  .lx-nav-panel{padding:12vh 7vw 6vh;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .lx-nav-links a{gap:14px}
  .lx-nav-links a b{font-size:clamp(1.45rem,7.4vw,2.1rem)}
}
@media (prefers-reduced-motion:reduce){
  .lx-nav,.lx-nav-veil,.lx-nav-panel,.lx-nav-links a,.lx-nav-mag,.lx-nt-glyph,.lx-nav-close,.lx-nav-trigger{transition:none!important}
  .lx-nav-panel{transform:none}
  .lx-nav-veil{opacity:1}
  .lx-nav-links a{opacity:1;transform:none}
  .lx-nav-mag{transform:none!important}
  html{scroll-behavior:auto}
}
/* lx:nav end */

/* lx:cursor */
/* Reactive studio cursor: fixed eased dot (JS rAF lerp on .lx-cur), bubble
   morphs — grow over links/buttons, PLAY pill over [data-cursor="play"],
   VIEW pill over [data-cursor="view"] — plus a paint-dust trail over the
   hero only. Active only on hover-capable fine pointers >=768px, never
   under PRM; while active the native cursor hides except over form fields. */
@media (hover:hover) and (pointer:fine) and (min-width:768px){
  .lx-cur-on,.lx-cur-on *{cursor:none!important}
  .lx-cur-on input,.lx-cur-on textarea,.lx-cur-on select{cursor:auto!important}
}
.lx-cur{position:fixed;left:0;top:0;z-index:620;pointer-events:none;opacity:0;transition:opacity .25s ease}
.lx-cur.on{opacity:1}
.lx-cur-b{position:absolute;left:0;top:0;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:999px;background:rgba(25,62,153,.9);border:1.5px solid rgba(25,62,153,0);display:flex;align-items:center;justify-content:center;transition:width .26s cubic-bezier(.22,1,.36,1),height .26s cubic-bezier(.22,1,.36,1),background .26s,border-color .26s,opacity .2s,transform .15s}
.lx-cur.is-down .lx-cur-b{transform:translate(-50%,-50%) scale(.82)}
.lx-cur-t{font:700 .58rem/1 Montserrat,Inter,sans-serif;letter-spacing:.22em;padding-left:.22em;color:#101A3E;opacity:0;transition:opacity .2s;white-space:nowrap}
.lx-cur-b.is-link{width:38px;height:38px;background:rgba(25,62,153,.14);border-color:rgba(25,62,153,.75)}
.lx-cur-b.is-play,.lx-cur-b.is-view{width:76px;height:34px;background:rgba(255,255,255,.94);border-color:rgba(16,26,62,.45)}
.lx-cur-b.is-play .lx-cur-t,.lx-cur-b.is-view .lx-cur-t{opacity:1}
.lx-cur-b.is-native{opacity:0}
.lx-dust{position:fixed;inset:0;z-index:610;pointer-events:none;overflow:hidden}
.lx-dust-p{position:fixed;left:-40px;top:-40px;width:7px;height:7px;border-radius:50%;opacity:0;will-change:transform,opacity}
.lx-dust-p.go{animation:lxDustFall .9s ease-out forwards}
@keyframes lxDustFall{
  0%{opacity:.85;transform:translate(-50%,-50%) scale(1)}
  100%{opacity:0;transform:translate(calc(-50% + var(--dx,0px)),calc(-50% + var(--dy,26px))) scale(.25)}
}
@media (max-width:767px),(pointer:coarse),(prefers-reduced-motion:reduce){
  .lx-cur,.lx-dust{display:none!important}
}
/* lx:cursor end */

/* lx:reel */
/* Cinematic showreel: a 16:9 poster stage with centred play button inside the
   ink band, plus a full-screen playlist modal (built by lx.js) — dim veil,
   4-segment progress bar across the 20s timeline, play/pause + mute/unmute
   (starts MUTED) + close. Scroll locks via .lx-reel-lock. PRM: no pulse ring,
   instant open/close — playback stays user-initiated. */
/* light re-theme: the reel band itself is a light soft-tint section; only the
   16:9 stage (framed media card) and the playback modal keep the cinema dark */
.section.ink.lx-reel{background:#F6F8FB;color:var(--body,#3E4865)}
.section.ink.lx-reel h2,.section.ink.lx-reel h3{color:var(--ink,#101A3E)}
.lx-reel-stage{position:relative;margin-top:34px;aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#0C1330;border:1px solid #E4E7EC;box-shadow:0 24px 56px rgba(16,26,62,.22)}
.lx-reel-stage>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lx-reel-shade{position:absolute;inset:0;background:radial-gradient(115% 115% at 50% 42%,rgba(8,13,34,.08) 40%,rgba(8,13,34,.62));pointer-events:none}
.lx-reel-open{position:absolute;inset:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:none;border:0;color:#fff;cursor:pointer;font-family:'Syne',sans-serif}
.lx-reel-pb{position:relative;width:clamp(74px,9vw,106px);height:clamp(74px,9vw,106px);border-radius:50%;display:grid;place-items:center;background:rgba(253,252,247,.12);border:1.5px solid rgba(255,255,255,.7);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);transition:transform .35s cubic-bezier(.22,1,.36,1),background .35s}
.lx-reel-pb svg{margin-left:5px}
.lx-reel-pb::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);animation:lxReelPulse 2.4s ease-out infinite}
.lx-reel-open:hover .lx-reel-pb,.lx-reel-open:focus-visible .lx-reel-pb{transform:scale(1.09);background:rgba(242,92,162,.85)}
.lx-reel-open:focus-visible{outline:2px solid #9FE6AE;outline-offset:-6px;border-radius:18px}
.lx-reel-pt{font-weight:700;font-size:.82rem;letter-spacing:.3em;text-transform:uppercase;text-shadow:0 2px 14px rgba(0,0,0,.55)}
.lx-reel-meta{position:absolute;left:20px;bottom:16px;font:600 .68rem Montserrat,Inter,sans-serif;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.72);pointer-events:none}
@keyframes lxReelPulse{0%{transform:scale(1);opacity:.8}70%,100%{transform:scale(1.45);opacity:0}}
.lx-reel-lock,.lx-reel-lock body{overflow:hidden}
.lx-reel-modal{position:fixed;inset:0;z-index:340;visibility:hidden;transition:visibility 0s .5s}
.lx-reel-modal.open{visibility:visible;transition-delay:0s}
.lx-rm-veil{position:absolute;inset:0;background:rgba(4,8,22,.88);opacity:0;transition:opacity .4s ease}
.lx-reel-modal.open .lx-rm-veil{opacity:1}
.lx-rm-shell{position:absolute;left:50%;top:50%;width:min(1240px,94vw);transform:translate(-50%,-50%) scale(.965);opacity:0;transition:opacity .45s ease,transform .55s cubic-bezier(.22,1,.36,1)}
.lx-reel-modal.open .lx-rm-shell{opacity:1;transform:translate(-50%,-50%)}
.lx-rm-stage{position:relative;aspect-ratio:16/9;max-height:74vh;margin:0 auto;border-radius:14px;overflow:hidden;background:#000;box-shadow:0 40px 90px rgba(0,0,0,.6)}
.lx-rm-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}
.lx-rm-close{position:absolute;right:-4px;top:-58px;width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.4);background:rgba(255,255,255,.07);color:#fff;font-size:1rem;cursor:pointer;display:grid;place-items:center;transition:transform .3s,background .3s}
.lx-rm-close:hover{transform:rotate(90deg);background:rgba(255,255,255,.18)}
.lx-rm-bar{display:flex;align-items:center;gap:16px;padding:16px 2px 0}
.lx-rm-play,.lx-rm-mute{flex:0 0 auto;width:46px;height:46px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);background:rgba(255,255,255,.07);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .3s,border-color .3s}
.lx-rm-play:hover,.lx-rm-mute:hover{background:rgba(242,92,162,.4);border-color:rgba(255,255,255,.8)}
.lx-rm-play svg,.lx-rm-mute svg{display:block}
.lx-rm-play .lx-i-b,.lx-rm-mute .lx-i-b{display:none}
.lx-rm-play.is-on .lx-i-a,.lx-rm-mute.is-on .lx-i-a{display:none}
.lx-rm-play.is-on .lx-i-b,.lx-rm-mute.is-on .lx-i-b{display:block}
.lx-rm-seg{flex:1;display:flex;gap:7px}
.lx-rm-seg i{position:relative;flex:1;height:4px;border-radius:99px;background:rgba(255,255,255,.22);overflow:hidden}
.lx-rm-seg b{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:99px;background:linear-gradient(90deg,#F25CA2,#E8A33D)}
.lx-rm-count{flex:0 0 auto;font:700 .78rem 'Syne',sans-serif;letter-spacing:.18em;color:rgba(255,255,255,.85);padding-right:14px}
.lx-rm-play:focus-visible,.lx-rm-mute:focus-visible,.lx-rm-close:focus-visible{outline:2px solid #9FE6AE;outline-offset:3px}
@media(max-width:767px){
  .lx-reel-stage{border-radius:12px}
  .lx-reel-pt{font-size:.7rem;letter-spacing:.22em}
  .lx-reel-meta{left:14px;bottom:10px;letter-spacing:.18em}
  .lx-rm-shell{width:96vw}
  .lx-rm-close{top:-54px;right:0}
  .lx-rm-bar{gap:10px}
  .lx-rm-play,.lx-rm-mute{width:42px;height:42px}
}
@media (prefers-reduced-motion:reduce){
  .lx-reel-pb::after{animation:none;opacity:0}
  .lx-reel-pb,.lx-reel-modal,.lx-rm-veil,.lx-rm-shell,.lx-rm-close,.lx-rm-play,.lx-rm-mute{transition:none!important}
  .lx-reel-modal.open .lx-rm-shell{opacity:1;transform:translate(-50%,-50%)}
}
/* lx:reel end */

/* lx:gallery */
/* Horizontal showcase: full-bleed scroll-snap track of 12 discipline cards.
   Touch swipes natively; lx.js adds grab-drag momentum, 3D tilt and hover
   video previews on desktop fine pointers only. Title slides up + category
   tag fades in on hover (always visible on touch/PRM). Card text sits over a
   steady gradient scrim — never over busy motion. Arrows + arrow keys work
   everywhere. */
.lx-gal-vp{position:relative;margin-top:34px}
.lx-gal-track{position:relative;display:flex;gap:22px;overflow-x:auto;padding:8px max(calc((100vw - 1140px)/2),5vw) 26px;scroll-snap-type:x mandatory;scroll-padding:0 max(calc((100vw - 1140px)/2),5vw);-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab}
.lx-gal-track::-webkit-scrollbar{display:none}
.lx-gal-track:focus-visible{outline:2px solid var(--blue,#193E99);outline-offset:-2px;border-radius:12px}
.lx-gal-track.lx-drag{scroll-snap-type:none;cursor:grabbing;user-select:none;-webkit-user-select:none}
.lx-gal-track.lx-drag .lx-gal-card{pointer-events:none}
.lx-gal-card{position:relative;flex:0 0 clamp(238px,24vw,320px);height:clamp(330px,30vw,430px);border-radius:16px;overflow:hidden;scroll-snap-align:start;background:#101A3E;box-shadow:0 18px 40px rgba(16,26,62,.16);will-change:transform;transition:box-shadow .35s}
.lx-gal-card:hover{box-shadow:0 30px 60px rgba(16,26,62,.28)}
.lx-gc-media{position:absolute;inset:0;display:block}
.lx-gc-media img,.lx-gc-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lx-gc-media img{transition:transform .7s cubic-bezier(.22,1,.36,1)}
.lx-gal-card:hover .lx-gc-media img{transform:scale(1.06)}
.lx-gc-vid{opacity:0;transition:opacity .4s ease}
.lx-gal-card.lx-vid-on .lx-gc-vid{opacity:1}
.lx-gc-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,26,62,.18),rgba(16,26,62,0) 34%,rgba(9,15,38,.82) 82%)}
.lx-gc-num{position:absolute;top:13px;left:15px;z-index:2;font:700 .74rem 'Syne',sans-serif;letter-spacing:.2em;color:rgba(255,255,255,.85)}
.lx-gc-tag{position:absolute;left:15px;bottom:58px;z-index:2;font:700 .64rem Montserrat,Inter,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#fff;background:color-mix(in srgb,var(--lxa,#193E99) 72%,rgba(8,13,34,.6));padding:6px 11px;border-radius:99px}
.lx-gc-title{position:absolute;left:15px;right:15px;bottom:15px;z-index:2;font:800 1.22rem/1.15 'Syne',sans-serif;color:#fff;letter-spacing:-.01em}
.lx-gal-card:focus-visible{outline:3px solid var(--lxa,#193E99);outline-offset:3px}
@media (hover:hover) and (pointer:fine) and (min-width:768px){
  .lx-gc-title{transform:translateY(14px);transition:transform .4s cubic-bezier(.22,1,.36,1)}
  .lx-gc-tag{opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .4s cubic-bezier(.22,1,.36,1)}
  .lx-gal-card:hover .lx-gc-title,.lx-gal-card:focus-visible .lx-gc-title{transform:none}
  .lx-gal-card:hover .lx-gc-tag,.lx-gal-card:focus-visible .lx-gc-tag{opacity:1;transform:none}
}
.lx-gal-arr{position:absolute;top:50%;margin-top:-34px;width:50px;height:50px;border-radius:50%;border:1.5px solid rgba(25,62,153,.28);background:#fff;color:var(--blue,#193E99);display:grid;place-items:center;cursor:pointer;z-index:3;box-shadow:0 12px 30px rgba(16,26,62,.18);transition:transform .3s,border-color .3s,box-shadow .3s}
.lx-gal-arr:hover{transform:translateY(-3px);border-color:var(--blue,#193E99);box-shadow:0 18px 38px rgba(16,26,62,.26)}
.lx-gal-arr.lx-prev{left:max(12px,2.6vw)}
.lx-gal-arr.lx-next{right:max(12px,2.6vw)}
.lx-gal-arr:focus-visible{outline:2px solid var(--blue,#193E99);outline-offset:3px}
@media(max-width:767px){
  .lx-gal-track{gap:14px;padding:6px 6vw 20px;scroll-padding:0 6vw}
  .lx-gal-card{flex-basis:72vw;height:min(88vw,400px)}
  .lx-gal-arr{width:42px;height:42px;margin-top:-28px}
  .lx-gal-arr.lx-prev{left:8px}
  .lx-gal-arr.lx-next{right:8px}
}
@media (prefers-reduced-motion:reduce){
  .lx-gal-card,.lx-gc-media img,.lx-gc-vid,.lx-gc-title,.lx-gc-tag,.lx-gal-arr{transition:none!important}
  .lx-gal-card{transform:none!important}
  .lx-gal-card:hover .lx-gc-media img{transform:none}
  .lx-gc-vid{display:none}
  .lx-gc-title,.lx-gc-tag{transform:none!important;opacity:1!important}
}
/* lx:gallery end */

/* lx:svc */
/* Service chapter bands: one themed Higgsfield loop per discipline as a
   contained panel inside its chapter (video.cqfx — playback is IO-managed by
   the cinema engine, never by lx.js), caption above a steady scrim, plus a
   per-theme motion treatment: spotlight sweep (performing), rising word/paper
   fragments (writing), flowing-fabric wipe on entry (fashion), paint-stroke
   clip reveal — the CSS twin of the interact.js brush convention (visual),
   animated equaliser bars (music) and a rotating-tools grid (other).
   PRM: bands render instantly as static posters with every fx layer hidden. */
.lx-svc-band{position:relative;width:min(1140px,92%);margin:46px auto 0;height:clamp(190px,32vh,330px);border-radius:18px;overflow:hidden;background:#101A3E;box-shadow:0 22px 50px rgba(16,26,62,.22);opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .85s cubic-bezier(.22,1,.36,1)}
.lx-svc-band.lx-go{opacity:1;transform:none}
.lx-svc-band video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lx-svc-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(9,15,38,.1) 42%,rgba(9,15,38,.74));pointer-events:none}
.lx-svc-fx{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden}
.lx-svc-cap{position:absolute;left:20px;bottom:15px;z-index:3;font:700 .68rem Montserrat,Inter,sans-serif;letter-spacing:.28em;text-transform:uppercase;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.55)}
.lx-svc-cap::before{content:"";display:inline-block;width:22px;height:2px;margin-right:10px;vertical-align:middle;background:var(--lxa,#3DBA4E)}
/* performing: a warm stage spotlight sweeps across the band */
.lx-fx-spot::before{content:"";position:absolute;top:-32%;left:-14%;width:52%;height:150%;background:radial-gradient(closest-side,rgba(255,246,214,.32),rgba(255,246,214,0) 72%);animation:lxSpotSweep 6.5s ease-in-out infinite alternate}
@keyframes lxSpotSweep{from{transform:translateX(0) rotate(-6deg)}to{transform:translateX(150%) rotate(6deg)}}
/* writing: letters and small paper fragments rise off the page */
.lx-fx-paper i{position:absolute;bottom:-14%;font:italic 600 1rem Fraunces,Georgia,serif;color:rgba(255,248,230,.78);opacity:0;animation:lxPaperRise 7s linear infinite}
.lx-fx-paper i:empty{width:9px;height:13px;background:rgba(255,248,230,.55);border-radius:1.5px}
.lx-fx-paper i:nth-child(1){left:8%;animation-delay:.2s}
.lx-fx-paper i:nth-child(2){left:22%;animation-delay:2.6s;animation-duration:8.5s}
.lx-fx-paper i:nth-child(3){left:34%;animation-delay:1.3s}
.lx-fx-paper i:nth-child(4){left:47%;animation-delay:4.2s;animation-duration:9s}
.lx-fx-paper i:nth-child(5){left:58%;animation-delay:3.1s}
.lx-fx-paper i:nth-child(6){left:70%;animation-delay:5.4s;animation-duration:8s}
.lx-fx-paper i:nth-child(7){left:81%;animation-delay:.9s}
.lx-fx-paper i:nth-child(8){left:90%;animation-delay:3.8s;animation-duration:7.5s}
@keyframes lxPaperRise{0%{transform:translateY(0) rotate(0deg);opacity:0}12%{opacity:.85}80%{opacity:.45}100%{transform:translateY(-340px) rotate(34deg);opacity:0}}
/* fashion: a silk gradient panel wipes off the band when it enters */
.lx-fx-fabric{inset:-3%;background:linear-gradient(115deg,#F25CA2 12%,#C2337D 42%,#7A4DD8 80%);border-radius:0 46% 38% 0/0 62% 48% 0;transition:transform 1.15s cubic-bezier(.76,0,.19,1) .15s}
.lx-svc-band.lx-go .lx-fx-fabric{transform:translateX(-118%) skewX(-6deg)}
/* visual: paint-stroke clip reveal on the whole band (jagged brush frontier) */
.lx-svc-visual{transform:none;clip-path:polygon(0% 0%,2% 0%,1% 14%,3.4% 28%,1.2% 43%,4% 57%,1.4% 71%,3.2% 86%,2% 100%,0% 100%);transition:opacity .6s ease,clip-path 1.25s cubic-bezier(.22,.7,.2,1)}
.lx-svc-visual.lx-go{clip-path:polygon(0% 0%,104% 0%,102% 14%,106% 28%,103% 43%,107% 57%,102% 71%,105% 86%,104% 100%,0% 100%)}
/* music: equaliser bars pulse in the lower-right corner */
.lx-fx-eq{inset:auto;right:18px;bottom:14px;height:34%;display:flex;align-items:flex-end;gap:5px;overflow:visible}
.lx-fx-eq i{width:5px;height:34%;border-radius:3px;background:linear-gradient(180deg,#7CC0F8,#19B8D8);opacity:.85;transform-origin:50% 100%;animation:lxEqPulse 1s ease-in-out infinite alternate}
.lx-fx-eq i:nth-child(2n){animation-duration:.8s;animation-delay:.15s;height:48%}
.lx-fx-eq i:nth-child(3n){animation-duration:1.25s;animation-delay:.3s;height:58%}
.lx-fx-eq i:nth-child(4n){animation-delay:.45s;height:74%}
.lx-fx-eq i:nth-child(5n){animation-duration:.9s;animation-delay:.6s;height:42%}
@keyframes lxEqPulse{from{transform:scaleY(.28)}to{transform:scaleY(1)}}
/* other: slowly rotating creative-tool glyphs over a faint 3D grid */
.lx-fx-tools{display:grid;grid-template-columns:repeat(6,1fr);place-items:center;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:44px 44px}
.lx-fx-tools i{position:relative;width:26px;height:26px;border:2px solid rgba(255,255,255,.55);opacity:.55;animation:lxToolSpin 10s linear infinite}
.lx-fx-tools i:nth-child(odd){border-radius:50%}
.lx-fx-tools i:nth-child(2){animation-direction:reverse;animation-duration:13s}
.lx-fx-tools i:nth-child(3){width:20px;height:20px}
.lx-fx-tools i:nth-child(4){animation-duration:8s}
.lx-fx-tools i:nth-child(5){animation-direction:reverse}
.lx-fx-tools i::before{content:"";position:absolute;left:50%;top:20%;bottom:20%;width:2px;margin-left:-1px;background:rgba(255,255,255,.55)}
.lx-fx-tools i::after{content:"";position:absolute;top:50%;left:20%;right:20%;height:2px;margin-top:-1px;background:rgba(255,255,255,.55)}
@keyframes lxToolSpin{to{transform:rotate(360deg)}}
@media(max-width:767px){
  .lx-svc-band{height:clamp(150px,38vw,220px);margin-top:32px;border-radius:14px}
  .lx-svc-cap{left:14px;bottom:11px;letter-spacing:.2em}
  .lx-fx-tools{grid-template-columns:repeat(3,1fr)}
  .lx-fx-tools i:nth-child(n+4){display:none}
}
@media (prefers-reduced-motion:reduce){
  .lx-svc-band{opacity:1!important;transform:none!important;transition:none;clip-path:none!important}
  .lx-svc-fx{display:none!important}
}
/* lx:svc end */

/* lx:portal */
/* Full-width portal band between the service chapters and the showcase/reel:
   glowing-doorway loop (video.cqfx — engine IO-plays it), radial scrim, copy
   above the scrim, and a gentle scroll-linked scale on the video applied by
   lx.js (desktop fine pointers, non-PRM only). PRM/mobile: static band. */
/* light re-theme: the portal is no longer a full-bleed dark band — it is a
   contained, rounded video card sitting on the white page (dark video + scrim
   with white copy stays INSIDE the frame, which the brief allows) */
.lx-portal{position:relative;overflow:hidden;width:min(1140px,92%);margin:56px auto;border-radius:22px;height:clamp(360px,54vh,560px);display:flex;align-items:center;background:#0C1330;box-shadow:0 24px 56px rgba(16,26,62,.22)}
.lx-portal-media{position:absolute;inset:0}
.lx-portal-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform-origin:50% 50%;will-change:transform}
.lx-portal-scrim{position:absolute;inset:0;background:radial-gradient(120% 130% at 50% 58%,rgba(6,10,28,.16) 28%,rgba(6,10,28,.55) 62%,rgba(6,10,28,.85));pointer-events:none}
.lx-portal-copy{position:relative;z-index:2;width:min(880px,88%);margin:0 auto;text-align:center;color:#fff}
.lx-portal-kicker{margin:0 0 12px;font:700 .72rem/1 Montserrat,Inter,sans-serif;letter-spacing:.42em;text-transform:uppercase;color:#9FE6AE}
.lx-portal-copy h2{margin:0;font-family:Syne,Montserrat,sans-serif;font-weight:800;font-size:clamp(1.9rem,4.6vw,3.5rem);line-height:1.08;letter-spacing:-.015em;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.45)}
.lx-portal-sub{margin:16px auto 0;max-width:56ch;font:500 .98rem/1.7 Montserrat,Inter,sans-serif;color:rgba(230,238,255,.85)}
@media(max-width:767px){.lx-portal{height:clamp(320px,72vw,460px);width:calc(100% - 32px);margin:40px auto;border-radius:16px}.lx-portal-media video{will-change:auto}}
@media (prefers-reduced-motion:reduce){.lx-portal-media video{transform:none!important;will-change:auto}}
/* lx:portal end */

/* lx:particles */
/* Shared canvas particle layer (built by lx.js): per-section flavours —
   gallery dust (creative work strip), floating letters (why band), tiny
   stars (awards wall), pigment motes (footer CTA). The hero is intentionally
   NOT mounted: the lx-cursor module already paints a pigment trail there.
   Low density, pointer-events none; the layer is OFF entirely under 768px
   and under PRM (JS never mounts, CSS backstops). Text always sits above
   the canvas via the z fixes below. */
.lx-pt-host{position:relative}
.lx-pt-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.lx-gallery .lx-pt-canvas{z-index:0}
.lx-gallery>.container{position:relative;z-index:1}
.cine-artband .lx-pt-canvas{z-index:1}
.awh .lx-pt-canvas{z-index:0}
.lx-cta .lx-pt-canvas{z-index:0}
.lx-cta>div,.lx-cta>a{position:relative;z-index:1}
@media (max-width:767px),(prefers-reduced-motion:reduce){.lx-pt-canvas{display:none!important}}
/* lx:particles end */

/* lx:audio */
/* Audio-visible "Studio ambience" block inside the Music Production chapter:
   a canvas waveform (drawn by lx.js — subtle at rest, fuller while the pad
   plays; a single static frame under PRM) plus CSS EQ bars. The pad itself is
   Web Audio, created ONLY on the user's click; with no AudioContext lx.js
   hides the button and the block stays visual-only. */
.lx-audio{position:relative;width:min(var(--max),calc(100% - 48px));margin:34px auto 0;background:#FFFFFF;border:1px solid #E4E7EC;border-radius:18px;padding:18px 20px 16px;color:var(--ink,#101A3E);overflow:hidden;box-shadow:0 8px 24px rgba(16,24,40,.08)}
.lx-au-head{display:flex;align-items:center;gap:14px}
.lx-au-dot{width:9px;height:9px;border-radius:50%;background:#0E7490;box-shadow:0 0 12px rgba(25,184,216,.7);flex:none;animation:lxAuDot 2.6s ease-in-out infinite}
@keyframes lxAuDot{50%{opacity:.35}}
.lx-au-tx b{display:block;font:700 1.04rem Syne,Montserrat,sans-serif;letter-spacing:-.01em;color:var(--ink,#101A3E)}
.lx-au-tx i{display:block;margin-top:2px;font:500 .82rem/1.5 Montserrat,Inter,sans-serif;font-style:normal;color:#475467}
.lx-au-toggle{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(14,116,144,.5);background:rgba(25,184,216,.1);color:#0E5666;font:700 .8rem Montserrat,Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;padding:11px 20px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s,box-shadow .25s}
.lx-au-toggle:hover{background:rgba(25,184,216,.22);box-shadow:0 6px 18px rgba(14,116,144,.2)}
.lx-au-toggle .lx-i-b{display:none}
.lx-audio.lx-on .lx-au-toggle .lx-i-a{display:none}
.lx-audio.lx-on .lx-au-toggle .lx-i-b{display:inline-block}
.lx-audio.lx-on .lx-au-toggle{background:#0E7490;color:#fff;border-color:#0E7490}
.lx-au-viz{position:relative;height:96px;margin-top:14px;border-radius:12px;background:#F0F7FA;border:1px solid #E4E7EC;overflow:hidden}
.lx-au-wave{position:absolute;inset:0;width:100%;height:100%;display:block}
.lx-au-eq{position:absolute;right:12px;bottom:9px;height:58%;display:flex;align-items:flex-end;gap:4px}
.lx-au-eq i{width:4px;height:32%;border-radius:2px;background:linear-gradient(180deg,#19B8D8,#0E7490);opacity:.7;transform-origin:50% 100%;animation:lxAuEq 1.1s ease-in-out infinite alternate}
.lx-au-eq i:nth-child(2n){height:52%;animation-duration:.85s;animation-delay:.12s}
.lx-au-eq i:nth-child(3n){height:66%;animation-duration:1.3s;animation-delay:.28s}
.lx-au-eq i:nth-child(4n){height:78%;animation-delay:.42s}
.lx-au-eq i:nth-child(5n){height:44%;animation-duration:.95s;animation-delay:.56s}
@keyframes lxAuEq{from{transform:scaleY(.3)}to{transform:scaleY(1)}}
.lx-audio.lx-on .lx-au-eq i{opacity:.95;animation-duration:.55s}
.lx-audio.lx-on .lx-au-eq i:nth-child(2n){animation-duration:.42s}
.lx-audio.lx-on .lx-au-eq i:nth-child(3n){animation-duration:.66s}
.lx-au-state{display:block;margin-top:10px;font:600 .72rem Montserrat,Inter,sans-serif;letter-spacing:.22em;text-transform:uppercase;color:#475467}
@media(max-width:767px){
  .lx-au-head{flex-wrap:wrap}
  .lx-au-tx{flex:1 1 100%;order:3}
  .lx-au-toggle{margin-left:auto}
  .lx-au-viz{height:78px}
}
@media (prefers-reduced-motion:reduce){
  .lx-au-dot,.lx-au-eq i{animation:none}
}
/* lx:audio end */

/* lx:3d */
/* "Pigmentis in 3D" panel: static poster fallback in the HTML; lx.js swaps in
   a <model-viewer> (camera-controls + auto-rotate, module lazy-loaded from
   unpkg) only when the stage nears the viewport on non-PRM screens >767px.
   Until the model's own load event fires the poster stays visible beneath. */
.lx-3d{width:min(var(--max),calc(100% - 48px));margin:44px auto 10px;display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:center}
.lx-3d-copy p{max-width:46ch;color:var(--muted)}
.lx-3d-hint{display:inline-flex;align-items:center;gap:8px;margin-top:18px;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font:700 .72rem Montserrat,Inter,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--body);background:#fff}
.lx-3d-stage{position:relative;height:clamp(300px,42vw,460px);border-radius:20px;overflow:hidden;background:radial-gradient(120% 130% at 50% 20%,#FDFCF7,#E9E2F8 72%);border:1px solid #E4E7EC;box-shadow:0 8px 24px rgba(16,24,40,.08)}
.lx-3d-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .5s ease}
.lx-3d-stage model-viewer{position:absolute;inset:0;width:100%;height:100%;background:transparent;--poster-color:transparent}
.lx-3d-stage.lx-3d-live .lx-3d-fallback{opacity:0}
@media(max-width:767px){.lx-3d{grid-template-columns:1fr;gap:20px}.lx-3d-stage{height:clamp(240px,64vw,340px)}}
/* lx:3d end */

/* lx:awards */
/* Awards museum wall: glowing gold-on-navy plaque cards on a duplicated track
   (translateX(-50%) keyframe = seamless loop). Hover pauses the wall and
   gives the plaque a subtle 3D tilt. PRM: the duplicate set is hidden and the
   first set wraps into a static grid. Pure CSS — no JS involved. */
.lx-aw-vp{position:relative;overflow:hidden;margin:26px 0 30px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.lx-aw-track{display:flex;width:max-content;animation:lxAwSlide 48s linear infinite}
.lx-aw-vp:hover .lx-aw-track{animation-play-state:paused}
@keyframes lxAwSlide{to{transform:translateX(-50%)}}
.lx-aw-set{display:flex;gap:16px;padding-right:16px}
.lx-aw-card{position:relative;flex:none;width:232px;padding:18px 18px 16px;border-radius:12px;text-align:left;background:#FFFFFF;border:1px solid rgba(201,162,39,.4);box-shadow:0 8px 24px rgba(16,24,40,.08);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s,border-color .45s}
.lx-aw-card:hover{transform:perspective(700px) rotateX(4deg) rotateY(-5deg) translateY(-5px);border-color:rgba(201,162,39,.9);box-shadow:0 0 22px rgba(201,162,39,.22),0 18px 38px rgba(16,24,40,.14)}
.lx-aw-medal{display:block;width:26px;height:26px;border-radius:50%;border:2px solid #C9A227;position:relative;margin-bottom:12px;box-shadow:0 0 10px rgba(201,162,39,.35)}
.lx-aw-medal::after{content:"";position:absolute;inset:5px;border-radius:50%;background:linear-gradient(140deg,#F6E7AE,#C9A227)}
.lx-aw-card b{display:block;font:700 .93rem/1.32 Syne,Montserrat,sans-serif;letter-spacing:-.01em;color:#101A3E}
.lx-aw-card em{display:block;margin-top:7px;font:600 .7rem Montserrat,Inter,sans-serif;font-style:normal;letter-spacing:.16em;text-transform:uppercase;color:#7A5D10}
@media(max-width:767px){.lx-aw-card{width:196px;padding:15px 15px 13px}.lx-aw-track{animation-duration:38s}}
@media (prefers-reduced-motion:reduce){
  .lx-aw-vp{-webkit-mask-image:none;mask-image:none}
  .lx-aw-track{animation:none;width:auto}
  .lx-aw-set{flex-wrap:wrap;justify-content:center;padding-right:0}
  .lx-aw-set[aria-hidden="true"]{display:none}
  .lx-aw-card:hover{transform:none}
}
/* lx:awards end */

/* lx:cta */
/* Footer CTA scene, immediately before the untouched global footer: the
   cta-loop bokeh video (engine IO-plays .cqfx) under a radial scrim, copy
   above it, and a magnetic booking pill (transform applied by lx.js to the
   inner .lx-cta-mag on desktop fine pointers only; PRM forces it static). */
/* light re-theme: the CTA scene is a contained, rounded video card on the
   white page (cta-loop + scrim + white copy INSIDE the frame — allowed),
   not a full-bleed dark band */
.lx-cta{position:relative;overflow:hidden;width:min(1140px,92%);margin:56px auto 64px;border-radius:22px;min-height:clamp(380px,48vh,540px);display:flex;align-items:center;background:#0C1330;text-align:center;box-shadow:0 24px 56px rgba(16,26,62,.22)}
.lx-cta-media{position:absolute;inset:0}
.lx-cta-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lx-cta-scrim{position:absolute;inset:0;background:radial-gradient(115% 125% at 50% 58%,rgba(6,10,28,.3) 22%,rgba(6,10,28,.62) 58%,rgba(6,10,28,.88));pointer-events:none}
.lx-cta-copy{position:relative;z-index:2;width:min(920px,90%);margin:0 auto;padding:72px 0;color:#fff}
.lx-cta-kicker{margin:0 0 14px;font:700 .72rem/1 Montserrat,Inter,sans-serif;letter-spacing:.42em;text-transform:uppercase;color:#9FE6AE}
.lx-cta-copy h2{margin:0;font-family:Syne,Montserrat,sans-serif;font-weight:800;font-size:clamp(2rem,5.4vw,4rem);line-height:1.06;letter-spacing:-.02em;color:#fff;text-shadow:0 4px 34px rgba(0,0,0,.5)}
.lx-cta-sub{margin:18px auto 0;max-width:52ch;font:500 1rem/1.7 Montserrat,Inter,sans-serif;color:rgba(230,238,255,.85)}
.lx-cta-btn{display:inline-block;margin-top:30px;padding:16px;border-radius:999px}
.lx-cta-mag{display:inline-flex;align-items:center;gap:12px;background:linear-gradient(110deg,#3DBA4E,#19B8D8);color:#fff;font:700 1rem Syne,Montserrat,sans-serif;letter-spacing:.01em;padding:18px 36px;border-radius:999px;box-shadow:0 18px 44px rgba(25,184,216,.35);transition:box-shadow .3s;will-change:transform}
.lx-cta-btn:hover .lx-cta-mag{box-shadow:0 22px 54px rgba(61,186,78,.45)}
@media(max-width:767px){.lx-cta{min-height:clamp(340px,70vw,440px);width:calc(100% - 32px);margin:40px auto 48px;border-radius:16px}.lx-cta-copy{padding:56px 0}.lx-cta-mag{will-change:auto}}
@media (prefers-reduced-motion:reduce){.lx-cta-mag{transform:none!important;will-change:auto}}
/* lx:cta end */
/* lx:launcher-headings — launcher group titles are <p class="cq3-ht"> (was h6, broke the outline);
   mirrors the .cq3-pane h6 rules in cq.css (engine file, untouched) */
.cq3-pane .cq3-ht{display:none;margin:16px 0 10px;color:#5d677a;font-size:0.8125rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.cq3-panes.f .cq3-pane .cq3-ht{display:block}
.cq3-pane:first-child .cq3-ht{margin-top:0}
.mast .cq3-pane .cq3-ht,[class*="hero"] .cq3-pane .cq3-ht,.page-hero .cq3-pane .cq3-ht,.banner .cq3-pane .cq3-ht,footer .cq3-pane .cq3-ht,.foot .cq3-pane .cq3-ht,.dark .cq3-pane .cq3-ht,.invert .cq3-pane .cq3-ht,.topbar .cq3-pane .cq3-ht,.drawer .cq3-pane .cq3-ht,.overlay .cq3-pane .cq3-ht{color:#7e8ca6}

/* lx:darkcut — the retired dark hero loop as ONE contained archive card in a light frame.
   Engine IO-plays the .cqfx video (no autoplay attribute, preload=none, poster). */
.lx-darkcut-card{max-width:920px;margin:0 auto;padding:14px;background:#FFFFFF;border:1px solid #E4E7EC;border-radius:20px;box-shadow:0 12px 32px rgba(16,24,40,.08)}
.lx-darkcut-card video{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;background:#0A0E1A}
.lx-darkcut-card figcaption{margin:12px 4px 2px;text-align:center;color:#667085;font:400 .9rem/1.55 Montserrat,Inter,sans-serif}
@media (prefers-reduced-motion:reduce){
.lx-darkcut-card,.lx-darkcut-card video{transition:none}
}
@media (max-width:767px){
.lx-darkcut-card{padding:10px;border-radius:18px}
.lx-darkcut-card video{border-radius:10px}
.lx-darkcut-card figcaption{font-size:.82rem}
}
/* lx:darkcut:end */

/* cq-mega two-section header reconcile: the fullscreen lx-nav overlay (z 300)
   must paint ABOVE the mega bar; the re-homed Menu trigger docks bottom-right
   below the overlay so it disappears while the overlay is open. */
nav#cqMega{z-index:150}
.cq-lx-dock{position:fixed;right:20px;bottom:20px;z-index:210}
.cq-lx-dock .lx-nav-trigger{background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(16,24,40,.22)}

/* cq-foot-v3 */
.cqf3{background:#121C36;color:#E9ECF3;font-size:.95rem;line-height:1.7;margin-top:0}
.cqf3 a{color:#ABBBE3;text-decoration:none}
.cqf3 a:hover{color:#fff;text-decoration:underline}
.cqf3 h4{color:#B6C5ED;font-size:.9rem;letter-spacing:.07em;text-transform:uppercase;margin:0 0 14px;font-weight:700}
.cqf3-wrap{max-width:1200px;margin:0 auto;padding:64px 24px 26px}
.cqf3-cols{display:grid;grid-template-columns:1.4fr 1fr 1.1fr 1.2fr;gap:42px}
.cqf3 ul{list-style:none;margin:0;padding:0}
.cqf3 li{margin:0 0 9px}
.cqf3-logo{max-width:220px;height:auto;display:block;margin:0 0 16px}
.cqf3-blurb{margin:0 0 16px}
.cqf3-socials{display:flex;gap:10px;margin:0 0 22px}
.cqf3-socials a{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.09)}
.cqf3-socials a:hover{background:rgba(255,255,255,.18)}
.cqf3-socials svg{width:17px;height:17px;fill:#ABBBE3}
.cqf3-socials a:hover svg{fill:#fff}
.cqf3-news form{display:flex;gap:8px;flex-wrap:wrap;margin:0;background:transparent;border-radius:0;padding:0;min-width:0;max-width:none;box-shadow:none}
.cqf3-news form input[type=email]{flex:1 1 170px;min-width:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:10px 12px;color:#fff;font:inherit}
.cqf3-news form button{flex:none;border-radius:8px;padding:10px 18px}
.cqf3-news input[type=email]{flex:1 1 170px;min-width:0;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:10px 12px;color:#fff;font:inherit}
.cqf3-news input[type=email]::placeholder{color:#AEB3C2}
.cqf3-news button{background:#95ACE4;color:#121C36;border:0;border-radius:8px;padding:10px 18px;font-weight:700;font-family:inherit;cursor:pointer}
.cqf3-news button:hover{filter:brightness(1.08)}
.cqf3-news .news-consent{font-size:.8rem;color:#AEB3C2;margin:8px 0 0;flex-basis:100%}
.cqf3-info b{display:block;color:#B6C5ED;font-weight:600}
.cqf3-info li{margin:0 0 13px}
.cqf3-band{border-top:1px solid rgba(255,255,255,.13);margin-top:44px;padding-top:20px}
.cqf3-band h4{margin-bottom:10px}
.cqf3-band ul{display:flex;flex-wrap:wrap;gap:6px 26px}
.cqf3-band li{margin:0}
.cqf3-bottom{border-top:1px solid rgba(255,255,255,.13);margin-top:30px;padding-top:20px;font-size:.85rem;color:#AEB3C2;text-align:center}
@media(max-width:1020px){.cqf3-cols{grid-template-columns:1fr 1fr;gap:34px}}
@media(max-width:600px){.cqf3-cols{grid-template-columns:1fr}.cqf3-wrap{padding:48px 18px 22px}}
/* /cq-foot-v3 */

/* cq-foot-top */
.cqft{position:relative;background:#F7F8FA;padding:56px 0 0;overflow:hidden}
.cqft-card{position:relative;z-index:2;max-width:1180px;margin:0 auto;background:#1547C1;border-radius:24px;padding:52px 56px;display:flex;align-items:center;justify-content:space-between;gap:14px 36px;flex-wrap:wrap}
.cqft-copy h2{color:#fff;font-size:2.35rem;font-weight:700;margin:0 0 6px;line-height:1.15}
.cqft-copy p{color:#DFE6F6;font-size:1.1rem;margin:0}
.cqft-card form{display:flex;flex:1 1 420px;max-width:620px;background:#fff;border-radius:999px;padding:5px;align-items:center;gap:0;margin:0;flex-wrap:nowrap;border:0;box-shadow:none;min-width:0}
.cqft-card form input[type=email]{flex:1 1 auto;border:0;background:transparent;padding:14px 24px;font-family:inherit;font-size:1rem;font-weight:500;color:#202233;min-width:0;outline-offset:2px;border-radius:999px;box-shadow:none}
.cqft-card form input[type=email]::placeholder{color:#8A8FA3}
.cqft-card form button{flex:none;background:#936F15;color:#fff;border:0;border-radius:999px;padding:16px 34px;font-family:inherit;font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:filter .3s;white-space:nowrap}
.cqft-card form button:hover{filter:brightness(1.12)}
.cqft-card form button:focus-visible{outline:2px solid #202233;outline-offset:2px}
.cqft-card .cqft-consent{flex-basis:100%;color:rgba(255,255,255,.88);font-size:.85rem;margin:0}
.cqft-card .cqft-consent a{color:#fff;text-decoration:underline}
.cqft-curve{position:relative;z-index:1;margin:34px 0 0;line-height:0}
.cqft-curve svg{width:100%;height:140px;display:block}
.cqft+.cqf3{margin-top:0}
@media (max-width:760px){.cqft-card{padding:36px 24px;border-radius:18px;margin-inline:16px}.cqft-copy h2{font-size:1.7rem}.cqft-card form{flex:1 1 100%}.cqft-card form button{padding:14px 22px}.cqft-curve svg{height:90px}}
/* /cq-foot-top */


/* cq-lightfix */
/* ============================================================
   CAQA family wall (.cqsvc, engine cq.css) — page-scoped LIGHT
   override per light-first mandate (2026-07-12 dark audit).
   Precedents: caqa-data lightfirst.css §3 / VET Website v3.css §5.
   White/ivory wall, white cards, accent-ink labels, dark ink
   titles. !important required: this sheet loads before cq.css.
   ============================================================ */
.cqsvc,.cqsvc::after{background:linear-gradient(180deg,#FFFFFF 0%,#EEF9E9 100%)!important}
.cqsvc{border-top:1px solid #E0E4F0}
.cqsvc::before{background-image:linear-gradient(rgba(25,62,153,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(25,62,153,.05) 1px,transparent 1px)!important}
.cqsvc-head .t{color:#193E99!important}
.cqsvc-head h2{color:var(--ink)!important}
.cqsvc-head p{color:var(--muted)!important}
.cqsvc-card{background:#fff!important;border:1px solid #E0E4F0!important;box-shadow:0 8px 24px rgba(16,24,40,.06)!important}
.cqsvc-card::before{background:linear-gradient(110deg,#193E99,#3DBA4E)!important}
.cqsvc-card:hover{background:#fff!important;border-color:rgba(25,62,153,.45)!important;box-shadow:0 18px 40px rgba(16,24,40,.14)!important}
.cqsvc-card .b{color:#193E99!important}
.cqsvc-card .s{color:var(--ink)!important}
.cqsvc-card .g{color:var(--muted)!important}
.cqsvc-card:hover .g{color:#193E99!important}
/* /cq-lightfix */

/* cq-audit-13jul: WCAG text-contrast fix - ticker labels sit on navy .ticker band only; lighten within that dark context */
.ticker .tk-track span{color:#AEBBDD}

/* cq-audit-13jul-3: light accents darkened for TEXT and white-text BUTTONS only (decorative uses keep original hues) */
[style*="F25CA2"] .eyebrow{color:#B72E6F}
[style*="E8A33D"] .eyebrow{color:#96660F}
[style*="19B8D8"] .eyebrow{color:#0E7A91}
[style*="E2354B"] .eyebrow{color:#C22036}
[style*="F25CA2"] .btn{background:#C23374}
[style*="E8A33D"] .btn{background:#A9750F}
[style*="19B8D8"] .btn{background:#0E86A0}

/* ccx-band (22 Jul): contained cinematic manifesto band from the owner's
   Codex pack - dark only inside the framed panel, dense two-column layout. */
.ccx-band{background:#0b0b0e;color:#fff;padding:0;overflow:hidden}
.ccx-inner{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1.1fr;gap:0;align-items:stretch;min-height:460px}
.ccx-copy{padding:56px 48px;display:flex;flex-direction:column;justify-content:center;gap:18px}
.ccx-eyebrow{font-size:.65rem;letter-spacing:.28em;font-weight:700;color:#d7ff00;margin:0}
.ccx-h{margin:0;font-size:clamp(2.4rem,4.6vw,4rem);line-height:.9;letter-spacing:-.04em;font-weight:900;color:#fff}
.ccx-h em{font-style:italic;font-weight:400;color:transparent;-webkit-text-stroke:1.5px #fff}
.ccx-lead{margin:0;font-size:1.05rem;line-height:1.6;color:#E8EAF2;max-width:44ch}
.ccx-lead b{color:#d7ff00}
.ccx-micro{margin:0;font-size:.8rem;letter-spacing:.06em;color:#A9AFC4}
.ccx-cta{display:inline-flex;align-items:center;gap:12px;margin-top:8px;font-size:.75rem;font-weight:800;letter-spacing:.16em;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:10px;width:fit-content;transition:border-color .25s,color .25s}
.ccx-cta b{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#d7ff00;color:#000;font-style:normal}
.ccx-cta:hover{color:#d7ff00;border-color:#d7ff00}
.ccx-film{position:relative;min-height:320px}
.ccx-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.3) contrast(1.08)}
.ccx-note{position:absolute;right:14px;bottom:12px;font-size:.58rem;letter-spacing:.24em;color:rgba(255,255,255,.75);background:rgba(0,0,0,.35);padding:6px 10px;border-radius:4px}
@media (max-width:860px){.ccx-inner{grid-template-columns:1fr;min-height:0}.ccx-copy{padding:40px 24px}.ccx-film{min-height:240px}}
@media (prefers-reduced-motion:reduce){.ccx-film video{display:none}.ccx-film{background:url("../img/higgsfield-colour-storm.webp") center/cover}}
