:root{color-scheme:dark;--bg:#161314;--bg2:#1d191a;--card:#231F20;--fg:#fff;--mute:#b3adaa;--y:#FECF01;--c:#00AEEF;--r:#F8011A;--line:#383233;--h:'Michroma','Eurostile','Arial Black',system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.6;overflow-x:hidden;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1160px;margin:0 auto;padding:0 20px}
h1,h2,h3{font-family:var(--h);font-weight:400;line-height:1.15;margin:0}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:rgba(22,19,20,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.logo{display:block;height:38px}.logo img{height:100%;width:auto;display:block}
.menu{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.menu>li{position:relative}
.menu>li>a{display:block;padding:10px 12px;text-decoration:none;color:var(--mute);font-size:.9rem;white-space:nowrap}
.menu>li>a:hover,.menu>li>a.on{color:var(--fg)}
.menu>li>a.on{box-shadow:inset 0 -3px 0 var(--y)}
.sub{display:none;position:absolute;top:100%;left:0;min-width:270px;background:var(--card);border-top:4px solid var(--y);list-style:none;margin:0;padding:8px 0;box-shadow:0 20px 40px rgba(0,0,0,.45)}
.sub a{display:block;padding:9px 18px;text-decoration:none;font-size:.9rem;color:#e6e1de}
.sub a:hover{background:var(--bg);color:var(--y)}
.has:hover .sub,.has:focus-within .sub{display:block}
.burger{display:none;border:0;background:none;color:var(--fg);width:44px;height:44px;cursor:pointer;padding:10px}
.burger span{display:block;height:2px;background:currentColor;margin:5px 0}

/* buttons */
.btn{display:inline-block;background:var(--y);color:#161314;padding:13px 24px;font-weight:800;text-decoration:none;font-size:.92rem;border:0;cursor:pointer;font-family:inherit;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);transition:.2s}
.btn:hover{background:#fff;transform:translateY(-2px)}
.btn.c{background:var(--c)}.btn.k{background:#161314;color:#fff}.btn.wa{background:#25d366;color:#fff}
.btn.o{background:none;box-shadow:inset 0 0 0 2px #fff;color:#fff}
.btn.sm{padding:10px 18px;font-size:.85rem}
.acts{display:flex;gap:12px;flex-wrap:wrap}

/* hero */
.hero{position:relative;min-height:calc(100svh - 68px);display:flex;align-items:center;overflow:hidden}
.st{position:absolute;bottom:-10%;height:120%;width:11vw;transform:skewX(-30deg) translateY(110%);animation:up 1s cubic-bezier(.2,.8,.2,1) forwards}
.st.a{background:var(--y);right:26vw;animation-delay:.1s}.st.b{background:var(--c);right:13vw;animation-delay:.25s}.st.d{background:var(--r);right:0;animation-delay:.4s}
@keyframes up{to{transform:skewX(-30deg) translateY(0)}}
.hero .wrap{position:relative;z-index:2;padding-top:40px;padding-bottom:40px;width:100%}
.tag{display:inline-block;border:1px solid var(--line);padding:7px 14px;font-size:.78rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:22px;background:rgba(22,19,20,.75)}
.tag b{color:var(--y)}
.hero h1{font-size:clamp(2.1rem,8.6vw,5.6rem);letter-spacing:-1px;text-transform:uppercase;text-shadow:0 4px 24px rgba(0,0,0,.6)}
.y{color:var(--y)}.hero h1 .y{text-shadow:0 0 12px rgba(254,207,1,.7),0 0 40px rgba(254,207,1,.4);animation:fl 4s infinite}
.cc{color:var(--c)}.hero h1 .cc{text-shadow:0 0 14px rgba(0,174,239,.6)}
@keyframes fl{0%,18%,22%,62%,100%{opacity:1}20%,60%{opacity:.55}}
.hero p{max-width:500px;font-size:1.1rem;color:#e6e1de;margin:22px 0 30px;text-shadow:0 2px 12px #000}

/* page hero (subpages) */
.ph{position:relative;overflow:hidden;padding:72px 0 60px;border-bottom:1px solid var(--line)}
.ph::before,.ph::after,.ph i{content:"";position:absolute;top:-30%;height:160%;width:60px;transform:skewX(-30deg);right:14%;background:var(--y)}
.ph::after{right:8%;background:var(--c)}.ph i{right:2%;background:var(--r)}
.ph .wrap{position:relative;z-index:1}
.crumb{font-size:.82rem;color:var(--mute);margin-bottom:16px}.crumb a{text-decoration:none}.crumb a:hover{color:var(--y)}
.ph h1{font-size:clamp(1.7rem,6vw,3.2rem);text-transform:uppercase;max-width:760px}
.ph p{color:#e0dad7;max-width:600px;margin:18px 0 0;font-size:1.05rem}

/* marquee */
.mq{background:var(--y);color:#161314;overflow:hidden;white-space:nowrap;border-block:3px solid #161314}
.mq div{display:inline-block;padding:14px 0;font-family:var(--h);font-size:.85rem;animation:mq 34s linear infinite}
.mq span{margin:0 26px}.mq i{font-style:normal;color:var(--r)}
@keyframes mq{to{transform:translateX(-50%)}}

/* sections */
section{padding:80px 0}
section.alt{background:var(--bg2)}
.eb{font-size:.78rem;letter-spacing:3px;text-transform:uppercase;color:var(--c);margin-bottom:12px;display:block}
h2{font-size:clamp(1.4rem,4.6vw,2.4rem);text-transform:uppercase}
h2::after{content:"";display:block;width:120px;height:6px;margin-top:18px;background:linear-gradient(90deg,var(--y) 33%,var(--c) 33% 66%,var(--r) 66%)}
.sub-t{color:var(--mute);max-width:600px;margin:18px 0 38px}
h3.gh{font-size:1.05rem;text-transform:uppercase;margin:44px 0 18px;display:flex;align-items:center;gap:12px}
h3.gh::before{content:"";width:14px;height:14px;background:var(--a,var(--y));transform:skewX(-20deg)}

/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.card{--a:var(--y);display:flex;flex-direction:column;text-decoration:none;position:relative;background:var(--card);padding:26px;border-top:5px solid var(--a);transition:.25s}
.grid>.card:nth-child(3n+2){--a:var(--c)}.grid>.card:nth-child(3n){--a:var(--r)}
a.card:hover{transform:translateY(-6px);box-shadow:0 14px 0 -6px var(--a)}
.card svg{width:52px;height:52px;stroke:var(--a);fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px var(--a));margin-bottom:18px}
.card h3{font-size:.98rem;margin-bottom:10px;text-transform:uppercase}
.card p{margin:0;color:var(--mute);font-size:.93rem}
.card ul{margin:14px 0 0;padding:0;list-style:none;font-size:.9rem;color:#e0dad7}
.card li{padding:5px 0 5px 18px;position:relative;border-top:1px solid var(--line)}
.card li::before{content:"";position:absolute;left:0;top:13px;width:8px;height:8px;background:var(--a);transform:skewX(-20deg)}
.card .more{margin-top:auto;padding-top:18px;color:var(--a);font-size:.86rem;font-weight:700;text-decoration:none}
.card .more:hover{text-decoration:underline}

/* about */
.about{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
.big{font-family:var(--h);font-size:clamp(5rem,20vw,11rem);line-height:.9;background:linear-gradient(100deg,var(--y) 0 33%,var(--c) 33% 66%,var(--r) 66%);-webkit-background-clip:text;background-clip:text;color:transparent}
.big small{display:block;font-size:.2em;color:var(--mute);-webkit-text-fill-color:var(--mute);letter-spacing:4px;margin-top:10px}
.about p{color:#e0dad7}
.pts{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px;text-align:center}
.pts div{border:1px solid var(--line);padding:14px 6px;font-size:.82rem}.pts b{display:block;font-family:var(--h);color:var(--y);font-size:.85rem;margin-bottom:4px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;counter-reset:s}
.steps div{counter-increment:s;background:var(--card);padding:24px}
.steps div::before{content:"0" counter(s);font-family:var(--h);font-size:2.1rem;color:var(--c);display:block;margin-bottom:8px}
.steps b{text-transform:uppercase;font-size:.88rem}.steps p{margin:6px 0 0;color:var(--mute);font-size:.92rem}

/* portfolio */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px}
.tabs button{border:1px solid var(--line);background:var(--card);color:var(--fg);font:inherit;font-size:.86rem;padding:9px 16px;cursor:pointer}
.tabs button.on{background:var(--y);color:#161314;border-color:var(--y);font-weight:700}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.gal div{aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:flex-end;padding:14px;font-size:.8rem;color:var(--mute);background:linear-gradient(135deg,transparent 58%,rgba(254,207,1,.16) 58% 71%,rgba(0,174,239,.16) 71% 84%,rgba(248,1,26,.16) 84%),var(--card);border:1px dashed var(--line)}
.gal b{color:var(--fg);font-size:.86rem;font-weight:600}

/* cta band */
.cta{background:var(--y);color:#161314;padding:70px 0;position:relative;overflow:hidden}
.cta::before,.cta::after{content:"";position:absolute;top:-20%;height:140%;width:70px;transform:skewX(-30deg);right:12%;background:var(--c)}.cta::after{right:5%;background:var(--r)}
.cta .wrap{position:relative;z-index:1}.cta h2{color:#161314;max-width:620px}.cta h2::after{display:none}.cta p{max-width:500px;margin:16px 0 28px;font-weight:500}
.cta .btn.o{box-shadow:inset 0 0 0 2px #161314;color:#161314}

/* forms */
.form{background:var(--card);padding:28px;display:grid;gap:18px;border-top:5px solid var(--y)}
.form h3{font-size:.95rem;text-transform:uppercase;padding-bottom:10px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}
.form h3 span{font-family:var(--h);color:var(--c);font-size:.8rem}
label{display:grid;gap:6px;font-size:.88rem;font-weight:600}
input,select,textarea{font:inherit;font-weight:400;color:var(--fg);background:var(--bg);border:1px solid var(--line);padding:12px;width:100%;border-radius:0}
input:focus,select:focus,textarea:focus{outline:2px solid var(--y);outline-offset:-1px}
textarea{min-height:100px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.opts{display:flex;gap:10px;flex-wrap:wrap}
.opts label{flex:1;min-width:140px;display:flex;align-items:center;gap:10px;font-weight:500;border:1px solid var(--line);padding:11px 14px;cursor:pointer;background:var(--bg)}
.opts input{width:auto;accent-color:var(--y)}
.drop{border:2px dashed var(--line);padding:22px;text-align:center;color:var(--mute);font-weight:400;cursor:pointer;background:var(--bg)}
.drop:hover{border-color:var(--y)}.drop input{display:none}
.files{font-size:.85rem;color:var(--y);font-weight:500}
.note{font-size:.84rem;color:var(--mute);border-left:3px solid var(--c);padding:10px 14px;background:var(--bg);font-weight:400}
.err{color:var(--r);font-size:.88rem;display:none;font-weight:600}
.lay{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:start}
.side{display:grid;gap:18px;position:sticky;top:90px}

/* contact */
.ct{display:grid;gap:18px}
.ct div{border-left:4px solid var(--c);padding:4px 0 4px 18px}.ct div:nth-child(2){border-color:var(--y)}.ct div:nth-child(3){border-color:var(--r)}
.ct small{display:block;color:var(--mute);text-transform:uppercase;letter-spacing:2px;font-size:.7rem}
.ct a{text-decoration:none;font-weight:600}.ct a:hover{color:var(--y)}
.map{background:var(--card);padding:26px;display:grid;gap:12px;position:relative;overflow:hidden}
.map::after{content:"";position:absolute;right:-20px;top:-20px;width:120px;height:120px;border:14px solid var(--c);border-radius:50% 50% 50% 0;transform:rotate(-45deg);opacity:.25}

/* footer */
footer{border-top:1px solid var(--line);padding:56px 0 28px;color:var(--mute);font-size:.88rem}
.fcols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:28px}
footer h4{color:var(--fg);font-family:var(--h);font-weight:400;font-size:.8rem;text-transform:uppercase;margin:0 0 14px}
footer ul{list-style:none;margin:0;padding:0}footer li{padding:3px 0}
footer a{text-decoration:none}footer a:hover{color:var(--y)}
.fb{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1px solid var(--line);margin-top:40px;padding-top:20px;font-size:.8rem}
.stripe{height:6px;background:linear-gradient(90deg,var(--y) 33%,var(--c) 33% 66%,var(--r) 66%)}

/* reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:.7s}.js .rv.in{opacity:1;transform:none}

/* responsive */
@media(max-width:980px){
 .burger{display:block}
 .menu{display:none;position:absolute;top:68px;left:0;right:0;background:var(--bg);flex-direction:column;align-items:stretch;padding:10px 20px 24px;border-bottom:1px solid var(--line);max-height:calc(100svh - 68px);overflow:auto;gap:0}
 .menu.open{display:flex}
 .menu>li>a{padding:13px 0;border-bottom:1px solid var(--line);font-size:1rem;color:var(--fg)}
 .menu>li>a.on{box-shadow:none;color:var(--y)}
 .sub{display:block;position:static;box-shadow:none;border:0;background:none;padding:0 0 8px 14px;min-width:0}
 .sub a{padding:8px 0;color:var(--mute)}
 .menu .btn{margin-top:16px;text-align:center}
 .fcols{grid-template-columns:1fr 1fr}
 .lay{grid-template-columns:1fr}.side{position:static}
}
@media(max-width:640px){
 .about{grid-template-columns:1fr}.st{width:16vw}.st.a{right:34vw}.st.b{right:17vw}.hero .st{opacity:.45}
 section{padding:60px 0}.two,.three{grid-template-columns:1fr}.fcols{grid-template-columns:1fr}
 .ph::before,.ph::after,.ph i{opacity:.35}.form{padding:20px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.st{transform:skewX(-30deg)}}
.menu>li>a.btn{color:#161314;padding:10px 18px;margin-left:8px}
.menu>li>a.btn:hover{color:#161314}

/* hero video */
.hv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hov{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(22,19,20,.92) 0%,rgba(22,19,20,.72) 45%,rgba(22,19,20,.35) 100%)}
.hero .st{z-index:1;opacity:.85}
.hero .wrap{z-index:3}

/* work gallery */
.works{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.wk{position:relative;display:block;padding:0;border:0;background:var(--card);cursor:pointer;overflow:hidden;aspect-ratio:4/3;text-align:left;color:#fff;font:inherit}
.wk img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.wk:hover img,.wk:focus-visible img{transform:scale(1.06)}
.wk::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.85))}
.wk .wt{position:absolute;left:14px;right:14px;bottom:12px;z-index:2;display:grid;gap:1px}
.wk b{font-size:.92rem}.wk small{color:#d8d2cf;font-size:.78rem}
.wk::before{content:"";position:absolute;left:0;top:0;width:0;height:5px;background:var(--y);z-index:2;transition:width .3s}
.wk:hover::before,.wk:focus-visible::before{width:100%}
.wk:nth-child(3n+2)::before{background:var(--c)}.wk:nth-child(3n)::before{background:var(--r)}
.play{position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;border-radius:50%;background:rgba(254,207,1,.95);box-shadow:0 0 0 6px rgba(254,207,1,.25)}
.play::after{content:"";position:absolute;left:15px;top:12px;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #161314}
.wk.hide{display:none}

/* lightbox */
#lb{border:0;padding:0;background:transparent;max-width:min(1100px,94vw);max-height:92vh;overflow:visible}
#lb::backdrop{background:rgba(10,8,9,.92)}
#lb .lbm img,#lb .lbm video{display:block;max-width:min(1100px,94vw);max-height:80vh;margin:0 auto;border-top:5px solid var(--y)}
#lb .lbc{color:#fff;text-align:center;margin:12px 0 0;font-size:.95rem}
#lb .lbx{position:absolute;top:-46px;right:0;width:40px;height:40px;border:0;background:var(--y);color:#161314;font-size:1.6rem;line-height:1;cursor:pointer}
@media(max-width:640px){.hero .st{opacity:.25}.hov{background:rgba(22,19,20,.7)}}
