
body{margin:0;background:#0A0E12}
a{color:#F1F4F6}a:hover{color:#FF5E1A}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;box-sizing:border-box}
.disp{font-family:'Barlow Condensed',sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:-.5px}
.btn{cursor:pointer;transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,background .2s ease,color .2s ease}
.btn:hover{transform:translateY(-2px)}
.btn-neon{background:var(--neon);color:#0A0E12}
.btn-neon:hover{box-shadow:0 0 28px -4px var(--neon);color:#0A0E12}
.pulse{animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,94,26,.55)}70%{box-shadow:0 0 0 18px rgba(255,94,26,0)}100%{box-shadow:0 0 0 0 rgba(255,94,26,0)}}
.chip{cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}
.chip:hover{transform:translateY(-2px);border-color:var(--neon) !important}
.ul{position:relative;text-decoration:none}
.ul::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--neon);transform:scaleX(var(--on,0));transform-origin:left;transition:transform .35s ease}
.ul:hover::after{transform:scaleX(1)}
.grid-bg{background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:64px 64px}
.ld{animation:rise 1s cubic-bezier(.2,.8,.2,1) both}
.ld1{animation-delay:1.9s}.ld2{animation-delay:2.05s}.ld3{animation-delay:2.2s}.ld4{animation-delay:2.35s}.ld5{animation-delay:2.5s}
@keyframes rise{from{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}
.intro{position:fixed;inset:0;z-index:100;background:#0A0E12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;pointer-events:none;animation:introOut .8s cubic-bezier(.7,0,.2,1) 1.75s forwards}
.intro-logo{width:340px;height:auto;animation:wipe 1.2s cubic-bezier(.7,0,.2,1) both}
.intro-line{width:340px;height:3px;background:var(--neon);box-shadow:0 0 14px var(--neon);transform-origin:left;animation:sweep 1.2s cubic-bezier(.7,0,.2,1) both}
@keyframes wipe{from{clip-path:inset(0 100% 0 0);transform:translateX(-14px)}to{clip-path:inset(0 0 0 0);transform:none}}
@keyframes introOut{to{transform:translateY(-100%)}}
@keyframes sweep{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.brand img{transition:filter .3s ease,height .35s ease}
.brand:hover img{filter:drop-shadow(0 0 12px rgba(255,94,26,.55))}
.glow-logo{transition:filter .4s ease,transform .4s ease}
.glow-logo:hover{filter:drop-shadow(0 0 28px rgba(255,94,26,.55));transform:scale(1.03)}
.js .rv{opacity:0;transform:translateY(48px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.js .rv.rs{transform:scale(.94)}
.js .rv.rl{transform:translateX(-60px)}
.js .rv.rr{transform:translateX(60px)}
.js .rv.in{opacity:1;transform:none}
.d1{transition-delay:.06s !important}.d2{transition-delay:.12s !important}.d3{transition-delay:.18s !important}.d4{transition-delay:.24s !important}
.mask{display:block;overflow:hidden}
.mask>span{display:block}
.js .rv .mask>span{transform:translateY(105%);transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.js .rv.in .mask>span{transform:none}
.mq{overflow:hidden}
.mq-track{display:flex;width:max-content;animation:mq 34s linear infinite}
.mq:hover .mq-track{animation-play-state:paused}
.ico svg{transform-box:fill-box;transform-origin:center}
.a-bob svg{animation:bob 1.6s ease-in-out infinite}
.a-drip svg{animation:drip 1.4s ease-in infinite}
.a-pulse svg{animation:ipulse 1.8s ease-in-out infinite}
.a-swing svg{transform-origin:80% 20%;animation:swing 1.1s ease-in-out infinite}
.a-slide svg{animation:slide 1.8s ease-in-out infinite}
.a-wave svg{animation:wavey 1.5s ease-in-out infinite}
.a-wiggle svg{animation:wiggle 1.3s ease-in-out infinite}
.a-spin svg{animation:spin360 3s linear infinite}
@keyframes bob{50%{transform:translateY(-4px)}}
.pin-bob{animation:bob 1.4s ease-in-out infinite;transform-box:fill-box}
@keyframes drip{0%{transform:translateY(-3px);opacity:.4}60%{transform:translateY(2px);opacity:1}100%{transform:translateY(4px);opacity:.2}}
@keyframes ipulse{50%{transform:scale(1.18)}}
@keyframes swing{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(18deg)}}
@keyframes slide{0%,100%{transform:translateX(-3px)}50%{transform:translateX(3px)}}
@keyframes wavey{0%,100%{transform:translate(-2px,0)}50%{transform:translate(2px,-2px)}}
@keyframes wiggle{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}
@keyframes spin360{to{transform:rotate(360deg)}}
@keyframes mq{to{transform:translateX(-50%)}}
.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s ease,border-color .2s ease}
.tilt:hover{border-color:var(--neon) !important}
.zoom img{transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.zoom:hover img{transform:scale(1.07)}
.svc{transition:flex .7s cubic-bezier(.2,.8,.2,1),border-color .3s ease;cursor:pointer}
.svc-img{transition:opacity .7s ease,filter .7s ease,transform 1.4s cubic-bezier(.2,.8,.2,1)}
.svc:hover .svc-img{transform:scale(1.05)}
.bar{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:left;transform:scaleX(var(--prog,0));background:var(--neon);z-index:60;box-shadow:0 0 12px var(--neon)}
.par{transform:translateY(calc(var(--sy,0) * .22px))}
.fab{position:fixed;right:24px;bottom:24px;z-index:50;transition:opacity .4s ease,transform .4s cubic-bezier(.2,.8,.2,1)}
input:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--neon);outline-offset:2px}
@media (max-width:960px){
.hero-grid,.two{grid-template-columns:1fr !important}
.h1{font-size:64px !important}
.h2{font-size:46px !important}
.four{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.proj{grid-template-columns:repeat(2,minmax(0,1fr)) !important;grid-auto-rows:220px !important}
.proj>*{grid-column:auto !important;grid-row:auto !important}
.svc-row{flex-direction:column !important;height:auto !important}
.svc{min-height:110px}
.hide-sm{display:none !important}
.sticky-wrap{height:auto !important}
.sticky-in{position:relative !important;height:auto !important;padding:80px 0}
.proc-card{height:380px !important}
.adam-photos{height:520px !important}
}
@media (max-width:560px){.four,.proj{grid-template-columns:1fr !important}.wrap{padding:0 18px}.h1{font-size:52px !important}}
@media (prefers-reduced-motion:reduce){.intro{display:none !important}*{animation:none !important;transition:none !important}.js .rv{opacity:1;transform:none}.js .rv .mask>span{transform:none}}

/* ===== production additions ===== */
:root{--neon:#FF5E1A}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{color:#F1F4F6;font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img,video,svg{max-width:100%}
.root{background:#0A0E12;width:100%;overflow-x:clip}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--neon);color:#0A0E12;padding:10px 16px;border-radius:30px;font-weight:700}
.skip:focus{left:12px}
/* header */
.site-header{position:sticky;top:0;z-index:40;transition:background .35s ease,border-color .35s ease;background:rgba(10,14,18,0);border-bottom:1px solid rgba(31,42,51,0);backdrop-filter:blur(12px)}
.site-header .bar-in{display:flex;align-items:center;justify-content:space-between;gap:16px;height:96px;transition:height .35s ease}
.site-header.scrolled{background:rgba(10,14,18,.88);border-bottom-color:#1F2A33}
.site-header.scrolled .bar-in{height:68px}
.brand .logo-full{display:block;height:76px;width:auto}
.brand .logo-mark{display:none;height:42px;width:auto}
.site-header.scrolled .logo-full{display:none}
.site-header.scrolled .logo-mark{display:block}
.nav a{color:#C9D3DB}
.nav a.on{color:#fff;--on:1}
/* rotating word */
.word-track{display:block;transition:transform .7s cubic-bezier(.7,0,.2,1)}
/* wizard */
.wiz-step{display:none;flex-direction:column;gap:14px}
.wiz-step.active{display:flex}
.chip-btn{font-family:Inter,sans-serif;font-size:14px;font-weight:600;padding:14px 8px;min-height:52px;border-radius:12px;border:1.5px solid #2B3A46;background:rgba(255,255,255,.03);color:#F1F4F6}
.chip-btn[aria-pressed="true"]{background:var(--neon);border-color:var(--neon);color:#0A0E12}
.field{font-family:Inter,sans-serif;font-size:16px;padding:14px;border-radius:12px;border:1.5px solid #33434F;background:#0A0E12;color:#F1F4F6;width:100%}
.field[aria-invalid="true"]{border-color:#FF8A5C}
.seg{height:5px;border-radius:3px;background:#26333E;transition:background .4s ease,box-shadow .4s ease}
.seg.on{background:var(--neon)}
.seg.cur{box-shadow:0 0 10px var(--neon)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{margin:0;font-size:13px;font-weight:700;color:#FF8A5C}
[hidden]{display:none !important}
/* services */
.svc{position:relative;overflow:hidden;border-radius:20px;border:1px solid #26333E;flex:1 1 0%;background:#11181F;min-width:0}
.svc.open{flex:5 1 0%;border-color:var(--neon)}
.svc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;filter:grayscale(1) brightness(.7)}
.svc.open .svc-img{opacity:1;filter:none}
.svc-shade{position:absolute;inset:0;transition:background .6s ease;background:rgba(10,14,18,.62)}
.svc.open .svc-shade{background:linear-gradient(180deg,rgba(10,14,18,.25) 0%,rgba(10,14,18,.35) 40%,rgba(10,14,18,.92) 100%)}
.svc-in{position:relative;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:26px}
.svc-num{font-size:22px;color:#C9D3DB}
.svc.open .svc-num{color:var(--neon)}
.svc-ic{width:40px;height:40px;border-radius:20px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .5s ease,background .3s ease;background:rgba(255,255,255,.1);transform:rotate(45deg);color:#F1F4F6}
.svc.open .svc-ic{background:var(--neon);transform:none;color:#0A0E12}
.svc-closed{font-size:30px;line-height:1;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
.svc-body{display:none;flex-direction:column;gap:16px;max-width:540px}
.svc.open .svc-closed{display:none}
.svc.open .svc-body{display:flex}
.tag{border:1px solid rgba(241,244,246,.35);background:rgba(10,14,18,.45);backdrop-filter:blur(6px);border-radius:40px;padding:8px 14px;font-size:13px;font-weight:600}
/* before/after */
.ba-tab{font-family:Inter,sans-serif;font-size:14px;font-weight:600;padding:12px 18px;min-height:46px;border-radius:40px;border:1.5px solid #33434F;background:transparent;color:#F1F4F6}
.ba-tab[aria-pressed="true"]{background:#F1F4F6;color:#0A0E12;border-color:#F1F4F6}
.ba{position:relative;height:620px;border-radius:24px;overflow:hidden;border:1px solid #26333E;user-select:none;background:#11181F;--ba:50%}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 55%}
.ba .after{clip-path:inset(0 calc(100% - var(--ba)) 0 0)}
.ba .line{position:absolute;top:0;bottom:0;width:3px;margin-left:-1.5px;background:var(--neon);box-shadow:0 0 18px var(--neon);left:var(--ba)}
.ba .knob{position:absolute;top:50%;width:64px;height:64px;margin:-32px 0 0 -32px;border-radius:32px;background:var(--neon);display:flex;align-items:center;justify-content:center;box-shadow:0 0 30px rgba(255,94,26,.6);left:var(--ba);pointer-events:none}
.ba input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.pill{position:absolute;font-size:18px;letter-spacing:2px;padding:8px 14px;border-radius:30px;background:rgba(10,14,18,.75);pointer-events:none}
/* process */
.step-btn{position:relative;text-align:left;background:transparent;border:none;cursor:pointer;font-family:Inter,sans-serif;padding:12px 0;display:flex;flex-direction:column;gap:2px;color:#F1F4F6}
.step-btn .dot{position:absolute;left:-38px;top:16px;width:20px;height:20px;border-radius:10px;border:2px solid #33434F;background:#0A0E12;transition:background .3s,border-color .3s}
.step-btn .ttl{font-size:30px;line-height:1;color:#4A5863;transition:color .3s}
.step-btn.done .ttl{color:#9AA8B4}
.step-btn.cur .ttl{color:#F1F4F6}
.step-btn.done .dot,.step-btn.cur .dot{border-color:var(--neon);background:var(--neon)}
.pcard{position:absolute;width:150px;padding:6px 6px 8px;background:#F1F4F6;border-radius:6px;box-shadow:0 18px 40px rgba(0,0,0,.45);opacity:var(--t)}
.pcard img{display:block;width:138px;height:96px;object-fit:cover;border-radius:3px}
.pcard span{display:block;margin-top:6px;font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:14px;letter-spacing:1px;color:#0A0E12;text-transform:uppercase}
/* reviews */
.dot-btn{height:10px;width:10px;border-radius:5px;border:none;cursor:pointer;transition:width .3s,background .3s;background:#C9C3B8}
.dot-btn[aria-current="true"]{width:34px;background:var(--neon)}
.fab{opacity:0;transform:translateY(20px);pointer-events:none}
.fab.show{opacity:1;transform:none;pointer-events:auto}
@media (max-width:960px){.ba{height:420px}.svc-body{max-width:none}}
/* mobile quick-call button: always visible on phones and tablets */
.call-fab{display:none}
@media (max-width:960px){
.call-fab{display:flex;position:fixed;left:16px;bottom:16px;z-index:55;width:64px;height:64px;border-radius:32px;align-items:center;justify-content:center;background:var(--neon);color:#0A0E12;box-shadow:0 12px 30px rgba(0,0,0,.45);text-decoration:none}
.call-fab svg{animation:ring-shake 2.6s ease-in-out infinite;transform-origin:50% 50%}
.call-fab .ring{position:absolute;inset:0;border-radius:32px;border:2px solid var(--neon);animation:ring-out 2s ease-out infinite}
.call-fab:active{transform:scale(.94)}
.fab{right:16px;bottom:20px;padding:14px 18px !important;font-size:14px !important}
}
@keyframes ring-out{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}
@keyframes ring-shake{0%,70%,100%{transform:rotate(0)}74%{transform:rotate(-14deg)}78%{transform:rotate(12deg)}82%{transform:rotate(-10deg)}86%{transform:rotate(8deg)}90%{transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){.call-fab svg,.call-fab .ring{animation:none}}
