:root{--bg:#05080D;--panel:#0C1118;--text:#F5F8FC;--muted:#AAB5C3;--accent:#0B63CE;--line:#292929;--max:1180px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}.wrap{width:min(92%,var(--max));margin:auto}header{position:sticky;top:0;z-index:20;background:rgba(8,8,8,.94);backdrop-filter:blur(14px);border-bottom:1px solid #1d1d1d}nav{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.logo{display:flex;align-items:center;padding:0}.logo img{height:58px;width:auto;display:block;filter:drop-shadow(0 4px 16px rgba(11,99,206,.10))}.navlinks{display:flex;gap:24px;font-size:14px;color:#ddd}.navlinks a:hover{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border-radius:999px;font-weight:800;border:1px solid #444}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.hero{padding:90px 0 70px;background:linear-gradient(90deg,rgba(0,0,0,.96),rgba(0,0,0,.55)),url('assets/project-1.jpeg') center/cover no-repeat}.eyebrow{color:var(--accent);font-weight:800;letter-spacing:.16em;text-transform:uppercase;font-size:12px}.crumb{font-size:13px;color:#999;margin-bottom:22px}.crumb a{color:#ccc}.hero h1{font-size:clamp(42px,7vw,78px);line-height:1.02;max-width:850px;margin:14px 0 20px}.hero h1 span{color:var(--accent)}.hero p{font-size:19px;color:#ddd;max-width:730px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}section{padding:78px 0}.sectionhead{margin-bottom:28px}h2{font-size:clamp(30px,4vw,48px);line-height:1.08;margin:0 0 12px}.lead{color:var(--muted);max-width:760px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:26px}.card h3{margin:8px 0;font-size:20px}.card p{color:var(--muted);margin:0}.split{display:grid;grid-template-columns:2fr 1fr;gap:18px}.box{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:30px}.box ul{padding-left:20px;color:#ccc}.box li{margin:9px 0}.contact{background:linear-gradient(135deg,#08111F,#111);border:1px solid #16375F;border-radius:22px;padding:38px}.socials{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px;align-items:center}.social-icon{width:50px;height:50px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(11,99,206,.45);background:#0d0d0d;color:#0B63CE;transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease;animation:socialFloat 3.8s ease-in-out infinite,socialPulse 2.4s ease-in-out infinite}.social-icon:nth-child(2){animation-delay:.35s}.social-icon:nth-child(3){animation-delay:.7s}.social-icon svg{width:24px;height:24px;fill:currentColor}.social-icon:hover{background:#0B63CE;color:#fff;border-color:#0B63CE;box-shadow:0 10px 30px rgba(11,99,206,.32);transform:translateY(-5px) scale(1.07)}.social-icon:active{transform:scale(.94)}@keyframes socialFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes socialPulse{0%,100%{filter:drop-shadow(0 0 0 rgba(11,99,206,0))}50%{filter:drop-shadow(0 0 9px rgba(11,99,206,.45))}}footer{padding:36px 0;border-top:1px solid var(--line);color:#aaa;font-size:13px}@media(max-width:800px){.navlinks{display:none}.grid,.split{grid-template-columns:1fr}.hero{padding:70px 0 55px}section{padding:60px 0}}



.related-services{margin:48px 0 20px;padding:28px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(255,255,255,.035)}
.related-services h2{margin:0 0 16px;font-size:1.35rem}
.related-services-grid{display:flex;flex-wrap:wrap;gap:10px}
.related-services-grid a{display:inline-block;padding:10px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;text-decoration:none}

/* Responsive menu upgrade */
.mobile{display:none;background:none;border:0;color:#fff;cursor:pointer}.menu-toggle{width:44px;height:44px;padding:9px;border-radius:12px;border:1px solid #333;flex-direction:column;justify-content:center;gap:5px}.menu-toggle span{display:block;width:22px;height:2px;background:#fff;border-radius:2px}.mobile-menu{position:absolute;top:73px;left:0;right:0;background:rgba(8,8,8,.98);border-bottom:1px solid #262626;padding:14px 4%;box-shadow:0 18px 40px rgba(0,0,0,.35);z-index:30}.mobile-menu a{display:block;padding:13px 8px;color:#eee;border-bottom:1px solid #1c1c1c}.mobile-menu a:last-child{border-bottom:0}.mobile-menu-cta{margin-top:8px;text-align:center;border-radius:999px!important;background:var(--accent);color:#fff!important;font-weight:800}.actions .btn{min-width:0}@media(max-width:800px){.mobile{display:flex}.actions .btn{width:100%;text-align:center}.hero h1{font-size:clamp(38px,12vw,62px)}.hero p{font-size:18px}.card{padding:22px}.box{padding:24px}.wrap{width:min(92%,var(--max))}}@media(max-width:420px){.hero{padding:58px 0 48px}.actions{flex-direction:column}.actions .btn{width:100%}}

/* SLV Premium Typography V4 — font-only refresh */
:root{
  --font-body: -apple-system, BlinkMacSystemFont, "Avenir Next", "Segoe UI", Inter, Arial, sans-serif;
  --font-display: "Bodoni 72", Didot, "Didot LT STD", "Baskerville", Georgia, "Times New Roman", serif;
}
body{font-family:var(--font-body)}
h1,h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.025em}
h3,h4,h5,h6{font-family:var(--font-body);font-weight:750;letter-spacing:-.01em}
.hero h1{letter-spacing:-.035em}
.eyebrow,.btn,.navlinks,.crumb{font-family:var(--font-body)}


/* SLV Premium Motion System V5 — subtle cinematic animation, no external dependencies */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--motion-fast:240ms;--motion-med:650ms}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{overflow-x:hidden}
header{transition:background .35s ease,box-shadow .35s ease,border-color .35s ease,transform .35s var(--motion-ease)}
header.scrolled{background:rgba(5,8,13,.96);box-shadow:0 10px 40px rgba(0,0,0,.28);border-bottom-color:rgba(11,99,206,.18)}
.logo img{transition:transform .45s var(--motion-ease),filter .45s ease}
.logo:hover img{transform:scale(1.035)}
.navlinks a{position:relative;transition:color .25s ease}
.navlinks a:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:center;transition:transform .3s var(--motion-ease)}
.navlinks a:hover:after,.navlinks a:focus-visible:after{transform:scaleX(1)}
.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .3s var(--motion-ease),box-shadow .3s ease,border-color .3s ease}
.btn:before{content:"";position:absolute;inset:-40% auto -40% -30%;width:24%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:translateX(-220%) rotate(12deg);transition:transform .8s var(--motion-ease);z-index:-1}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(11,99,206,.22)}
.btn:hover:before{transform:translateX(620%) rotate(12deg)}
.btn:active{transform:translateY(0) scale(.985)}
.hero:before{transition:transform 1.2s ease;transform:scale(1.03);animation:heroDrift 16s ease-in-out infinite alternate}
.hero .wrap{animation:heroEnter .9s var(--motion-ease) both}
.eyebrow{animation:eyebrowIn .8s var(--motion-ease) both}
h1{text-wrap:balance}
h1,h2{font-family:var(--font-display);font-feature-settings:"liga" 1,"kern" 1}
section{position:relative}
.sectionhead{position:relative}
.sectionhead:after{content:"";display:block;width:54px;height:2px;margin-top:18px;background:linear-gradient(90deg,var(--accent),transparent);transform-origin:left;opacity:.75}
body.motion-ready .reveal{opacity:0;transform:translateY(34px) scale(.985);transition:opacity .75s var(--motion-ease),transform .75s var(--motion-ease)}
body.motion-ready .reveal.is-visible{opacity:1;transform:none}
body.motion-ready .reveal-delay-1{transition-delay:.06s}.reveal-delay-2{transition-delay:.12s}.reveal-delay-3{transition-delay:.18s}.reveal-delay-4{transition-delay:.24s}.reveal-delay-5{transition-delay:.30s}.reveal-delay-6{transition-delay:.36s}
.card,.box,.step,.review,.contact,.stat,.project,.related-services{transition:transform .4s var(--motion-ease),border-color .35s ease,box-shadow .4s ease,background .4s ease}
.card:hover,.box:hover,.step:hover{transform:translateY(-6px);border-color:rgba(11,99,206,.42);box-shadow:0 18px 45px rgba(0,0,0,.22)}
.project{cursor:zoom-in}
.project img{transition:transform .9s var(--motion-ease),filter .6s ease}
.project:hover img{transform:scale(1.055);filter:saturate(1.06) contrast(1.03)}
.project .label{transition:transform .45s var(--motion-ease),opacity .35s ease}
.project:hover .label{transform:translateY(-4px)}
.stat strong{transition:transform .4s var(--motion-ease),text-shadow .4s ease}
.stat:hover strong{transform:translateY(-3px);text-shadow:0 0 22px rgba(11,99,206,.35)}
.mobile-menu{animation:menuDrop .32s var(--motion-ease)}
.mobile-menu a{transition:color .2s ease,padding-left .25s var(--motion-ease),background .25s ease}
.mobile-menu a:hover{padding-left:16px;background:rgba(11,99,206,.07);color:#fff}
.social-icon{transition:transform .35s var(--motion-ease),box-shadow .35s ease,background .35s ease}
.map-card iframe{transition:filter .5s ease}
.map-card:hover iframe{filter:saturate(1) contrast(1.04)}
.lightbox{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.lightbox-content{animation:lightboxIn .45s var(--motion-ease) both}
.lightbox-close{transition:transform .3s var(--motion-ease),background .3s ease,border-color .3s ease}
.lightbox-close:hover{transform:rotate(90deg) scale(1.05);background:#111;border-color:rgba(11,99,206,.7)}
.form-submit{min-height:54px}
.form-submit:hover{box-shadow:0 16px 38px rgba(11,99,206,.28)}
@keyframes heroDrift{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.07) translate3d(0,-8px,0)}}
@keyframes heroEnter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes eyebrowIn{from{opacity:0;letter-spacing:.06em}to{opacity:1;letter-spacing:.16em}}
@keyframes menuDrop{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes lightboxIn{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:800px){.sectionhead:after{margin-top:14px}.card:hover,.box:hover,.step:hover{transform:none;box-shadow:none}.btn:hover{transform:none}.project:hover img{transform:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}body.motion-ready .reveal{opacity:1!important;transform:none!important}.hero:before{transform:none}}

/* SLV Cinematic Motion V6 — restrained premium motion layer */
:root{
  --motion-ease:cubic-bezier(.22,1,.36,1);
  --hero-shift:0px;
  --hero-scale:1.03;
}

/* Thin reading/progress cue — keeps long pages feeling responsive. */
.scroll-progress{
  position:fixed;left:0;top:0;width:100%;height:2px;z-index:10050;
  pointer-events:none;background:transparent;overflow:hidden;
}
.scroll-progress:after{
  content:"";display:block;height:100%;width:100%;transform-origin:left center;
  transform:scaleX(var(--scroll-progress,0));
  background:var(--accent);box-shadow:0 0 14px rgba(11,99,206,.45);
}

/* More cinematic hero depth without adding libraries. */
.hero:before{
  transform:translate3d(0,var(--hero-shift),0) scale(var(--hero-scale));
  will-change:transform;
}
.hero .wrap{will-change:transform}

/* Soft focus-in for major headings and copy. */
body.motion-ready .hero .eyebrow{animation:eyebrowIn .8s var(--motion-ease) both}
body.motion-ready .hero h1{animation:heroTitleIn .95s .08s var(--motion-ease) both}
body.motion-ready .hero p{animation:heroCopyIn .85s .18s var(--motion-ease) both}
body.motion-ready .hero .actions{animation:heroCopyIn .85s .28s var(--motion-ease) both}
body.motion-ready .hero .hero-trust{animation:heroCopyIn .85s .38s var(--motion-ease) both}

/* Section headings get a subtle line reveal when they enter view. */
body.motion-ready .sectionhead:after{
  transform:scaleX(0);transition:transform .8s .16s var(--motion-ease);
}
body.motion-ready .sectionhead.is-visible:after{transform:scaleX(1)}

/* Gentle depth on interactive surfaces. */
.card,.box,.step,.review,.contactbox,.brandbox,.feature,.quote-form-wrap,.estimator-controls,.estimate-result{
  will-change:transform;
}
.card:hover,.box:hover,.step:hover,.feature:hover,.brandbox:hover{
  transform:translateY(-7px) scale(1.005);
}

/* Project overlays breathe slightly instead of snapping. */
.project:after{transition:opacity .55s ease;opacity:.92}
.project:hover:after{opacity:1}
.project .label{will-change:transform}

/* Better mobile touch feedback without hover-style lifting. */
@media(max-width:800px){
  .card:active,.box:active,.step:active,.feature:active,.brandbox:active{transform:scale(.995)}
  .project:active img{transform:scale(1.018)}
}

@keyframes heroTitleIn{from{opacity:0;transform:translateY(28px) scale(.985);filter:blur(5px)}to{opacity:1;transform:none;filter:none}}
@keyframes heroCopyIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  .scroll-progress{display:none}
  .hero:before{transform:none!important}
  body.motion-ready .hero h1,body.motion-ready .hero p,body.motion-ready .hero .actions,body.motion-ready .hero .hero-trust{animation:none!important}
  .card:hover,.box:hover,.step:hover,.feature:hover,.brandbox:hover{transform:none!important}
}

