:root{
  --night:#1b0e38; --night2:#2a1350; --grape:#4a1d80; --cyan:#03d0ff; --cyan-dk:#00a6cf;
  --pink:#fc2560; --pink-dk:#d3134a; --gold:#ffd23e; --green:#39c26a; --blue:#2b7bff;
  --purple:#a03bd6; --cream:#fff7ec; --ink:#160a2e; --paper:#f6efff;
  --disp:"Anton",Impact,"Arial Narrow Bold",sans-serif;
  --body:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --maxw:1160px;
}
@font-face{font-family:"Anton";src:url("/fonts/anton.woff2") format("woff2");font-weight:400;font-display:swap}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--night);color:var(--cream);line-height:1.65;overflow-x:hidden;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:var(--cyan)}
h1,h2,h3,h4,.fh{font-family:var(--disp);font-weight:400;letter-spacing:.01em;line-height:1.02;text-transform:uppercase}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px;z-index:200;background:var(--gold);color:var(--ink);padding:.6rem 1rem;font-weight:800;font-family:var(--body)}
.skip:focus{left:1rem;top:1rem}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.prose p{margin-bottom:1.05em}
.prose p:last-child{margin-bottom:0}

/* starfield + sparkles */
.stars{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.stars i{position:absolute;width:var(--s,3px);height:var(--s,3px);background:#fff;border-radius:50%;opacity:.85;box-shadow:0 0 var(--s,3px) #fff;animation:tw var(--d,3s) ease-in-out var(--t,0s) infinite}
@keyframes tw{0%,100%{opacity:.15;transform:scale(.6)}50%{opacity:1;transform:scale(1.1)}}
.spark{position:absolute;color:var(--gold);pointer-events:none;font-size:var(--sz,18px);filter:drop-shadow(0 0 6px rgba(255,210,62,.7));animation:sp var(--sd,2.6s) ease-in-out var(--st,0s) infinite;z-index:2}
@keyframes sp{0%,100%{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1) rotate(90deg)}}

/* nav */
nav.top{position:sticky;top:0;z-index:90;background:rgba(20,10,40,.94);backdrop-filter:saturate(1.4) blur(6px);border-bottom:2px solid rgba(3,208,255,.35)}
nav.top .wrap{display:flex;align-items:center;gap:14px;padding:9px 22px}
nav.top .brand{display:flex;align-items:center;gap:9px;text-decoration:none;flex:none}
nav.top .brand img.m{width:38px;height:auto;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}
nav.top .brand img.w{height:24px;width:auto}
nav.top .links{margin-left:auto;display:flex;gap:2px;align-items:center}
nav.top .links > a,.navdrop > button{color:#e9dcff;background:none;border:none;cursor:pointer;font-family:var(--body);text-decoration:none;font-weight:700;font-size:13.5px;letter-spacing:.04em;text-transform:uppercase;padding:8px 11px;border-radius:6px}
nav.top .links > a:hover,.navdrop > button:hover,nav.top .links > a[aria-current]{background:rgba(3,208,255,.16);color:var(--cyan)}
.navdrop{position:relative}
.navdrop .menu{display:none;position:absolute;top:calc(100% + 6px);left:0;min-width:230px;background:#241147;border:1.5px solid rgba(3,208,255,.3);border-radius:12px;padding:6px;box-shadow:0 16px 34px rgba(0,0,0,.5);z-index:95}
.navdrop:hover .menu,.navdrop:focus-within .menu{display:block}
/* transparent bridge across the 6px gap so the menu survives the pointer travelling from button to menu */
.navdrop::after{content:"";position:absolute;left:0;top:100%;width:100%;height:10px}
.navdrop .menu a{display:block;color:#e9dcff;text-decoration:none;font-weight:650;font-size:14px;padding:9px 12px;border-radius:6px}
.navdrop .menu a:hover{background:rgba(3,208,255,.16);color:var(--cyan)}
.btn{display:inline-block;font-family:var(--body);font-weight:800;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;border:none;cursor:pointer;font-size:14px;padding:12px 22px;border-radius:100px;background:linear-gradient(180deg,#dd1650,#b8123c);color:#fff;box-shadow:0 6px 0 -1px var(--pink-dk),0 10px 20px rgba(252,37,96,.35);transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 0 -1px var(--pink-dk),0 14px 26px rgba(252,37,96,.45);color:#fff}
.btn:active{transform:translateY(2px);box-shadow:0 3px 0 -1px var(--pink-dk)}
.btn.cyan{background:linear-gradient(180deg,var(--cyan),var(--cyan-dk));color:var(--ink);box-shadow:0 6px 0 -1px var(--cyan-dk),0 10px 20px rgba(3,208,255,.35)}
.btn.gold{background:linear-gradient(180deg,var(--gold),#e9b400);color:var(--ink);box-shadow:0 6px 0 -1px #b98d00}
.btn.sm{font-size:13px;padding:12px 18px}
.menu-btn{display:none;margin-left:auto;background:none;border:2px solid rgba(255,255,255,.35);border-radius:6px;color:#fff;font-family:var(--body);font-weight:800;font-size:12px;letter-spacing:.1em;padding:13px 16px;cursor:pointer}
.mobile{display:none;background:rgba(20,10,40,.98);border-top:1px solid rgba(3,208,255,.25)}
.mobile a{display:block;padding:12px 22px;color:#e9dcff;text-decoration:none;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:14.5px;border-bottom:1px solid rgba(255,255,255,.07)}
.mobile a.sub{padding-left:38px;font-size:13px;text-transform:none;letter-spacing:0;font-weight:600;color:#c9b6ef}
body.nav-open .mobile{display:block}
@media(max-width:980px){nav.top .links{display:none}.menu-btn{display:block}}

/* page hero (interior) */
.phero{position:relative;overflow:hidden;padding:52px 0 40px;text-align:center;background:radial-gradient(120% 90% at 50% -20%,#5a2596,#2a1350 55%,#1b0e38)}
.phero .wrap{position:relative;z-index:2}
.crumb{font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:#b6a3e0;margin-bottom:14px}
.crumb a{color:#b6a3e0;text-decoration:none}.crumb a:hover{color:var(--cyan)}
.phero h1{color:#fff;font-size:clamp(30px,5.4vw,54px);text-shadow:0 3px 0 rgba(0,0,0,.35);margin-bottom:12px}
.phero h1 .c{color:var(--cyan)}.phero h1 .p{color:var(--pink)}
.phero p.lede{color:#dfe6ff;font-size:18px;max-width:60ch;margin:0 auto 22px}
.phero .cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.stripe{height:12px;background:repeating-linear-gradient(115deg,var(--cyan) 0 24px,#0bb4e6 24px 48px)}

/* home hero */
.hero{position:relative;text-align:center;overflow:hidden;padding:30px 0 0;background:radial-gradient(120% 90% at 50% -10%,#5a2596 0%,#2a1350 45%,#1b0e38 100%)}
.hero .wrap{position:relative;z-index:3}
.hero-word{width:min(660px,88vw);margin:6px auto 0;position:relative;overflow:hidden}
.hero-word img{width:100%;filter:drop-shadow(0 10px 22px rgba(0,0,0,.5))}
.hero-word::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);animation:shine 5.5s ease-in-out 1.5s infinite}
@keyframes shine{0%,72%{left:-60%}86%,100%{left:130%}}
.hero-cta{margin:20px 0 6px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hero-guy{position:relative;width:min(320px,70vw);margin:8px auto -4px;z-index:3}
.hero-guy img{width:100%;animation:bob 4.2s ease-in-out infinite;filter:drop-shadow(0 14px 24px rgba(0,0,0,.5))}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-14px) rotate(.6deg)}}
.orb{position:absolute;left:24%;top:73%;width:112px;height:112px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 42% 38%,rgba(255,255,255,.6),rgba(3,208,255,.28) 52%,transparent 72%);filter:blur(6px);animation:pulse 3s ease-in-out infinite;pointer-events:none;z-index:2}
@keyframes pulse{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}}

/* generic sections */
section{position:relative}
.band{background:linear-gradient(90deg,#3a1170,#5a2596,#3a1170);text-align:center;padding:24px 0}
.band h2{color:#fff;font-size:clamp(22px,4vw,40px);letter-spacing:.06em;text-shadow:0 0 22px rgba(3,208,255,.5)}
.sec{padding:60px 0}
.sec.alt{background:radial-gradient(80% 70% at 50% 0%,#2a1350,#1b0e38)}
.sec.intro-blue{background:radial-gradient(90% 80% at 20% 20%,#28577a,#1b3a63 60%,#122a4d)}
.sec h2.big{text-align:center;color:#fff;font-size:clamp(26px,5vw,46px);margin-bottom:8px}
.sec .sub{text-align:center;color:#c9b6ef;max-width:62ch;margin:0 auto 30px}
.card-white{max-width:600px;margin:0 auto;background:#fff;color:#241a33;border-radius:14px;padding:30px 32px;box-shadow:0 22px 54px rgba(0,0,0,.4)}
.card-white h2{color:var(--purple);font-size:clamp(24px,4vw,36px);margin-bottom:12px}
.card-white p{color:#3a3348;margin-bottom:12px}.card-white p b{color:var(--pink-dk)}
.introcols{display:grid;grid-template-columns:1fr 1fr;gap:34px;align-items:center;max-width:1060px;margin:0 auto}
.introcols img{width:100%;height:100%;max-height:470px;object-fit:cover;border-radius:14px;border:3px solid rgba(255,255,255,.18);box-shadow:0 18px 42px rgba(0,0,0,.45)}
.introcols .card-white{margin:0}
@media(max-width:820px){.introcols{grid-template-columns:1fr;gap:22px}.introcols img{max-height:300px}}

/* logos marquee */
.logos{background:#fff;padding:24px 0;overflow:hidden}
.logos p{text-align:center;color:#635c72;font-weight:800;text-transform:uppercase;letter-spacing:.16em;font-size:12px;margin-bottom:14px}
.track{display:flex;gap:52px;align-items:center;width:max-content;animation:mq 26s linear infinite}
.track img{height:36px;width:auto;opacity:.85}
@keyframes mq{to{transform:translateX(-50%)}}

/* service cards (rainbow) */
.services{position:relative;padding:60px 0;overflow:hidden;background:linear-gradient(180deg,#7a1020,#5c0d1a)}
.services::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,.14) 0 44px,transparent 44px 88px);pointer-events:none}
.services h2.big{color:var(--gold);text-shadow:0 3px 0 rgba(0,0,0,.4)}
.services .sub{color:#ffd9df}
.cards{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:900px){.cards{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.cards{grid-template-columns:1fr}}
.card2{position:relative;border-radius:14px;overflow:hidden;min-height:250px;padding:24px 20px;display:flex;flex-direction:column;justify-content:flex-end;text-decoration:none;color:#fff;box-shadow:0 16px 30px rgba(0,0,0,.4);transition:transform .18s}
.card2:hover{transform:translateY(-8px) rotate(-.5deg)}
.card2::after{content:"";position:absolute;top:0;left:-70%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-18deg);transition:left .5s}
.card2:hover::after{left:130%}
.c-green{background:linear-gradient(160deg,#3fb56e,#16773a)}
.c-blue{background:linear-gradient(160deg,#59a6ff,#1f5fd6)}
.c-pink{background:linear-gradient(160deg,#ff5f96,#d3134a)}
.c-purple{background:linear-gradient(160deg,#c569ee,#7a1fb8)}
.c-teal{background:linear-gradient(160deg,#3ad6c9,#128a80)}
.c-orange{background:linear-gradient(160deg,#ff9d4a,#d1600f)}
.card2 .ico{font-size:28px;margin-bottom:auto}
.card2 h3{font-size:20px;margin-bottom:6px;text-shadow:0 2px 0 rgba(0,0,0,.25)}
.card2 p{font-size:14px;margin-bottom:14px;color:rgba(255,255,255,.96)}
.card2 .go{align-self:flex-start;font-family:var(--body);font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;border:2px solid #fff;border-radius:100px;padding:7px 15px}

/* gallery */
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:900px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.grid{grid-template-columns:repeat(2,1fr)}}
.ph{position:relative;border-radius:12px;overflow:hidden;aspect-ratio:1/1;background:#2a1350;border:2px solid rgba(255,255,255,.08)}
.ph img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.ph:hover img{transform:scale(1.09)}
.ph.big{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.ph::before{content:"\2726";position:absolute;top:8px;right:10px;color:var(--gold);opacity:0;font-size:16px;transition:opacity .3s;text-shadow:0 0 8px rgba(255,210,62,.9);z-index:2}
.ph:hover::before{opacity:1}

/* two-col content (service/city pages) */
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center}
@media(max-width:820px){.split{grid-template-columns:1fr;gap:24px}}
.split img{border-radius:14px;border:3px solid rgba(3,208,255,.25);box-shadow:0 16px 34px rgba(0,0,0,.4)}
.split h2{color:#fff;font-size:clamp(24px,3.6vw,38px);margin-bottom:12px}
.split h2 .c{color:var(--cyan)}
.split .prose{color:#dbcffa}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:16px 30px;margin-top:8px}
@media(max-width:640px){.feature{grid-template-columns:1fr}}
.feature h3{color:var(--gold);font-size:18px;margin-bottom:5px}
.feature p{color:#cdbdf0;font-size:15px}
.checklist{list-style:none;margin:8px 0;display:grid;gap:9px}
.checklist li{padding-left:30px;position:relative;color:#dbcffa}
.checklist li::before{content:"\2726";position:absolute;left:0;color:var(--gold)}

/* offerings / red */
.offer{padding:58px 0;background:linear-gradient(180deg,#6a0f1e,#3f0a14)}
.offer h2.big{color:#fff}.offer .sub{color:#ffd9df}
.ocols{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px;max-width:900px;margin:0 auto}
@media(max-width:700px){.ocols{grid-template-columns:1fr}}
.ocols h3{color:var(--gold);font-size:19px;margin-bottom:5px}
.ocols p{color:#f3dfe2;font-size:15px}

/* testimonials */
.quote{padding:54px 0;background:#1b0e38}
.tgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:940px;margin:0 auto}
@media(max-width:760px){.tgrid{grid-template-columns:1fr}}
.tcard{background:linear-gradient(160deg,#2f1a5c,#241147);border:2px solid rgba(3,208,255,.28);border-radius:14px;padding:24px;box-shadow:0 16px 40px rgba(0,0,0,.35)}
.tcard .stars5{color:var(--gold);font-size:18px;letter-spacing:3px;margin-bottom:10px;text-shadow:0 0 10px rgba(255,210,62,.6)}
.tcard blockquote{font-size:17px;color:#fff;font-style:italic;margin-bottom:12px;line-height:1.5}
.tcard cite{color:var(--cyan);font-style:normal;font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.05em}

/* CTA band */
.ctaband{position:relative;overflow:hidden;padding:52px 0;text-align:center;background:linear-gradient(150deg,#0f5fb0,#0b3f80)}
.ctaband h2{color:#fff;font-size:clamp(26px,4.6vw,44px);text-shadow:0 3px 0 rgba(0,0,0,.3);margin-bottom:10px}
.ctaband p{color:#dbeeff;max-width:56ch;margin:0 auto 20px}

/* form */
.formwrap{max-width:720px;margin:0 auto;background:rgba(255,255,255,.05);border:2px solid rgba(3,208,255,.25);border-radius:14px;padding:28px}
.formrow{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:600px){.formrow{grid-template-columns:1fr}}
.field label{display:block;color:#e9dcff;font-weight:700;font-size:13.5px;margin-bottom:6px}
.field label .req{color:var(--pink)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:15px;padding:12px 13px;border-radius:8px;border:2px solid rgba(255,255,255,.16);background:rgba(255,255,255,.96);color:var(--ink)}
.field input::placeholder,.field textarea::placeholder{color:#7a7288}
.field textarea{min-height:110px;resize:vertical}
.form-note{font-size:13px;color:#b7a6d8;margin-top:6px}
.hp{position:absolute;left:-5000px}

/* footer */
footer.site{position:relative;overflow:hidden;background:radial-gradient(90% 90% at 50% 0%,#3a1170,#140826);padding:52px 0 0}
footer.site .cols{position:relative;z-index:2;display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:28px}
@media(max-width:860px){footer.site .cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){footer.site .cols{grid-template-columns:1fr}}
footer.site .fh{color:var(--gold);font-size:15px;letter-spacing:.06em;margin-bottom:12px}
footer.site a{color:#d9c9f5;text-decoration:none;font-size:14.5px;display:block;padding:3px 0}
footer.site a:hover{color:var(--cyan)}
footer.site .brandcol .tel{font-family:var(--disp);color:var(--cyan);font-size:26px;text-decoration:none;display:inline-block;margin:6px 0}
footer.site .brandcol p{color:#cdbdf0;font-size:14px;margin:6px 0}
footer.site .social{display:flex;gap:9px;margin-top:10px}
footer.site .social a{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);display:grid;place-items:center;color:#fff;font-weight:800;padding:0}
footer.site .social a:hover{background:var(--pink);color:#fff}
footer.site .citywrap a{display:inline;padding:0}
footer.site .barrow{position:relative;z-index:2;margin-top:40px;border-top:1px solid rgba(255,255,255,.12);padding:16px 0;text-align:center;color:#b7a6d8;font-size:13px}

/* reveal */
.rv{opacity:0;transform:translateY(24px)}
.rv.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1)}
.rv.pop.in{animation:pop .6s cubic-bezier(.16,1,.3,1) both}
@keyframes pop{0%{opacity:0;transform:scale(.85) rotate(-2deg)}60%{transform:scale(1.04)}100%{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .rv{opacity:1!important;transform:none!important}
}
