:root{--bk:#08090B;--bk2:#121418;--wh:#F5F3EF;--yl:#FFC900;--mut:#9AA0AA;--ml:#555B64;--paper:#F5F3EF;--f:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;--pd:clamp(20px,5vw,64px);color-scheme:light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--paper:#ECE9E2;color-scheme:dark}}
:root[data-theme="dark"]{--paper:#ECE9E2;color-scheme:dark}
html{scroll-behavior:smooth;scroll-padding-top:84px}
*{box-sizing:border-box;margin:0}
body{font-family:var(--f);background:var(--bk);color:var(--wh);line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.w{max-width:1280px;margin:0 auto;padding:0 var(--pd)}
.y{color:var(--yl)}
.eb{display:inline-flex;align-items:center;gap:10px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--mut)}
.eb::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--yl)}
h2{font-size:clamp(2.2rem,6.4vw,5rem);line-height:.98;font-weight:800;letter-spacing:-.035em;margin-top:16px}
section{padding:clamp(76px,11vw,140px) 0;content-visibility:auto;contain-intrinsic-size:auto 700px}
.lt{background:var(--paper);color:var(--bk)}.lt .eb{color:var(--ml)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 30px;border-radius:60px;font-weight:600;font-size:1rem;border:1.5px solid transparent;transition:background .25s,color .25s,transform .25s;will-change:transform}
.by{background:var(--yl);color:var(--bk)}.by:hover{background:var(--wh)}
.bo{border-color:rgba(245,243,239,.45)}.bo:hover{border-color:var(--yl);color:var(--yl)}
.bk{background:var(--bk);color:var(--wh)}.bk:hover{background:var(--wh);color:var(--bk)}
/* progress + cursor */
.pg{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));width:54px;height:54px;z-index:80;border:0;background:var(--bk);border-radius:50%;color:var(--yl);font-size:1.2rem;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.4);display:grid;place-items:center}
.pg svg{position:absolute;inset:0;transform:rotate(-90deg)}.pg circle{fill:none;stroke-width:3}
.cur{position:fixed;left:0;top:0;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--yl);z-index:90;pointer-events:none;opacity:0;transition:opacity .3s,width .25s,height .25s,margin .25s;mix-blend-mode:difference}
.cur.on{opacity:1}.cur.big{width:54px;height:54px;margin:-27px 0 0 -27px}
/* nav */
nav{position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);left:0;right:0;z-index:70;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
nav.hd{transform:translateY(-140%)}
nav .in{max-width:1180px;margin:0 12px;display:flex;justify-content:space-between;align-items:center;padding:8px 8px 8px 24px;border-radius:60px;background:rgba(18,20,24,.88);border:1px solid rgba(245,243,239,.12)}
@media(min-width:1204px){nav .in{margin:0 auto}}
.lg{font-weight:800;font-size:1.45rem;letter-spacing:-.04em}
.lk{display:flex;gap:30px;font-weight:500;font-size:.95rem}
.lk a{opacity:.8;transition:opacity .2s,color .2s}.lk a:hover{opacity:1;color:var(--yl)}
.mb{display:none;width:46px;height:46px;border-radius:50%;border:0;background:var(--yl);cursor:pointer;position:relative}
.mb i{position:absolute;left:14px;right:14px;height:2px;background:var(--bk);transition:transform .3s,top .3s}.mb i:nth-child(1){top:19px}.mb i:nth-child(2){top:26px}
.mo .mb i:nth-child(1){top:22px;transform:rotate(45deg)}.mo .mb i:nth-child(2){top:22px;transform:rotate(-45deg)}
.mm{position:fixed;inset:0;z-index:65;background:var(--bk);display:flex;flex-direction:column;justify-content:center;gap:8px;padding:0 var(--pd);opacity:0;visibility:hidden;transform:translateY(-20px);transition:opacity .35s,transform .35s,visibility .35s}
.mo .mm{opacity:1;visibility:visible;transform:none}
.mm a{font-size:clamp(2.4rem,11vw,4rem);font-weight:800;letter-spacing:-.03em;padding:6px 0}.mm a:hover{color:var(--yl)}
/* hero */
.hero{padding:clamp(120px,16vw,170px) 0 70px;position:relative;overflow:hidden;content-visibility:visible}
.hero .w{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(245,243,239,.2);padding:8px 16px;border-radius:40px;font-size:.82rem;margin-bottom:26px}
.pill i{width:8px;height:8px;border-radius:50%;background:#3DDC84;animation:ping 1.6s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(61,220,132,.6)}100%{box-shadow:0 0 0 10px rgba(61,220,132,0)}}
h1{font-size:clamp(2.9rem,8.6vw,7.4rem);line-height:.93;font-weight:800;letter-spacing:-.045em}
h1 .l{display:block;overflow:hidden;padding-bottom:.07em}
h1 .l span{display:inline-block;transform:translate3d(0,110%,0);animation:up .95s cubic-bezier(.2,.8,.2,1) forwards}
h1 .l:nth-child(2) span{animation-delay:.1s}h1 .l:nth-child(3) span{animation-delay:.2s}
@keyframes up{to{transform:none}}
.hero p.ld{font-size:clamp(1.02rem,1.6vw,1.2rem);color:var(--mut);max-width:520px;margin:26px 0 34px;opacity:0;animation:fi .8s .5s forwards}
.cta{display:flex;gap:12px;flex-wrap:wrap;opacity:0;animation:fi .8s .65s forwards}
@keyframes fi{to{opacity:1}}
.vis{position:relative;width:min(100%,460px);aspect-ratio:1;margin:0 auto;justify-self:center}
.sun{position:absolute;inset:11%;border-radius:50%;background:var(--yl);animation:pulse 4s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.045)}}
.bolt{position:absolute;inset:24%;width:52%;height:52%;animation:flick 3s ease-in-out infinite}
@keyframes flick{0%,100%{transform:translate3d(0,0,0) rotate(-4deg)}50%{transform:translate3d(0,-10px,0) rotate(3deg)}}
.ring{position:absolute;inset:0;border:1.5px dashed rgba(245,243,239,.28);border-radius:50%}
.ring2{inset:-9%;border-style:solid;border-color:rgba(245,243,239,.1)}
.orb{position:absolute;inset:0;animation:spin 26s linear infinite}
.orb b{position:absolute;padding:8px 16px;border-radius:30px;background:var(--wh);color:var(--bk);font-size:.8rem;font-weight:700;animation:spin 26s linear infinite reverse;white-space:nowrap}
.orb b:nth-child(1){left:50%;top:0;margin:-17px 0 0 -26px}.orb b:nth-child(2){right:0;top:50%;margin:-17px -22px 0 0}.orb b:nth-child(3){left:50%;bottom:0;margin:0 0 -17px -32px}.orb b:nth-child(4){left:0;top:50%;margin:-17px 0 0 -22px}
@keyframes spin{to{transform:rotate(360deg)}}
.paused,.paused *{animation-play-state:paused!important}
.st{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:clamp(40px,6vw,76px);border-top:1px solid rgba(245,243,239,.14);padding-top:26px}
.st b{display:block;font-size:clamp(2rem,5vw,3.6rem);font-weight:800;letter-spacing:-.04em;color:var(--yl);line-height:1}
.st span{font-size:.85rem;color:var(--mut)}
/* marquee */
.mq{background:var(--yl);color:var(--bk);overflow:hidden;white-space:nowrap;transform:rotate(-2deg) scale(1.04);padding:16px 0;margin:30px 0}
.mq div{display:inline-flex;gap:32px;animation:mq 26s linear infinite;font-size:clamp(1.5rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-.03em;text-transform:uppercase}
.mq span::after{content:"⚡";margin-left:32px}
@keyframes mq{to{transform:translate3d(-50%,0,0)}}
/* about */
.big{font-size:clamp(1.9rem,4.8vw,4rem);line-height:1.1;font-weight:700;letter-spacing:-.03em;margin:22px 0 56px;max-width:1050px}
.big .wd{opacity:.18;transition:opacity .25s}.big .wd.on{opacity:1}
.f3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.fc{background:var(--bk2);border:1px solid rgba(245,243,239,.1);border-radius:26px;padding:34px;transition:transform .35s,border-color .35s}
.fc:hover{transform:translate3d(0,-8px,0);border-color:var(--yl)}
.fc .ic{width:54px;height:54px;border-radius:16px;background:var(--yl);color:var(--bk);display:grid;place-items:center;font-size:1.5rem;margin-bottom:24px}
.fc h3{font-size:1.45rem;letter-spacing:-.02em;margin-bottom:8px}.fc p{color:var(--mut);font-size:.98rem}
/* services rows */
.rws{margin-top:48px;border-top:1.5px solid var(--bk)}
.rw{position:relative;display:grid;grid-template-columns:80px 1.1fr 1.2fr 50px;gap:18px;align-items:center;padding:30px 4px;border-bottom:1.5px solid var(--bk);overflow:hidden;isolation:isolate}
.rw::before{content:"";position:absolute;inset:0;background:var(--yl);transform:scaleY(0);transform-origin:bottom;transition:transform .45s cubic-bezier(.2,.8,.2,1);z-index:-1}
.rw .n{font-weight:600;color:var(--ml)}.rw h3{font-size:clamp(1.6rem,3.6vw,3rem);font-weight:800;letter-spacing:-.035em;line-height:1;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.rw p{color:var(--ml);font-size:1rem}.rw i{font-style:normal;font-size:1.8rem;text-align:right;transition:transform .4s}
@media(hover:hover){.rw:hover::before{transform:scaleY(1)}.rw:hover h3{transform:translate3d(16px,0,0)}.rw:hover i{transform:rotate(-45deg)}.rw:hover p,.rw:hover .n{color:var(--bk)}}
/* process */
.pr .w{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,90px)}
.sk{position:sticky;top:110px;align-self:start}.sk p{color:var(--mut);margin:20px 0 30px;max-width:420px}
.tl{position:relative;padding-left:46px}
.tl::before,.tl .fl{content:"";position:absolute;left:11px;top:6px;bottom:6px;width:2px;background:rgba(245,243,239,.15)}
.tl .fl{background:var(--yl);transform-origin:top;transform:scaleY(var(--p,0));will-change:transform}
.sp{position:relative;padding:0 0 54px}.sp:last-child{padding-bottom:0}
.sp::before{content:"";position:absolute;left:-43px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--bk);border:2px solid var(--yl)}
.sp small{color:var(--yl);font-weight:700;letter-spacing:.14em}
.sp h3{font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:-.03em;margin:6px 0 8px}.sp p{color:var(--mut);max-width:440px}
/* work */
.wk{background:var(--bk2);padding-bottom:clamp(60px,8vw,100px)}
.hd2{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.ar{display:flex;gap:10px}.ar button{width:54px;height:54px;border-radius:50%;border:1.5px solid rgba(245,243,239,.35);background:none;color:var(--wh);font-size:1.3rem;cursor:pointer;transition:.25s}.ar button:hover{background:var(--yl);border-color:var(--yl);color:var(--bk)}
.rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:44px var(--pd) 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.rail::-webkit-scrollbar{display:none}
.cd{flex:0 0 min(86vw,450px);scroll-snap-align:center;border-radius:30px;padding:32px;min-height:500px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;transition:transform .4s}
.cd:hover{transform:translate3d(0,-8px,0)}
.c1{background:var(--yl);color:var(--bk)}.c2{background:var(--wh);color:var(--bk)}.c3{background:var(--bk);border:1.5px solid var(--yl)}.c4{background:#1E2127}
.cd small{font-weight:700;letter-spacing:.14em;font-size:.75rem}
.cd h3{font-size:clamp(1.7rem,3.2vw,2.3rem);line-height:1.05;letter-spacing:-.03em;margin:14px 0}
.cd b{font-size:clamp(4.2rem,11vw,6.6rem);font-weight:800;letter-spacing:-.05em;line-height:.9;display:block}
.c3 b,.c4 b{color:var(--yl)}
.cd .sh{position:absolute;right:-60px;top:-60px;width:200px;height:200px;border-radius:50%;border:34px solid rgba(8,9,11,.1)}
.c3 .sh,.c4 .sh{border-color:rgba(255,201,0,.12)}
/* logos */
.lgs{overflow:hidden;padding:clamp(56px,8vw,90px) 0}
.lgr{display:flex;gap:54px;width:max-content;margin-top:30px;animation:mq 30s linear infinite}
.lgr span{font-size:clamp(1.5rem,3vw,2.2rem);font-weight:800;letter-spacing:-.03em;opacity:.4;white-space:nowrap}
/* cta */
.ct{background:var(--yl);color:var(--bk);text-align:center;overflow:hidden}
.ct .eb,.ct .eb::before{color:var(--bk)}.ct .eb::before{background:var(--bk)}
.ct h2{font-size:clamp(3.2rem,13vw,11rem);line-height:.88;margin:22px 0 26px;letter-spacing:-.05em}
.ct p{max-width:520px;margin:0 auto 34px;font-size:1.1rem}
/* faq + footer */
.fq .w{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(30px,6vw,80px)}
details{border-bottom:1px solid rgba(245,243,239,.16);padding:22px 0}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;font-size:clamp(1.1rem,2vw,1.4rem);font-weight:600;letter-spacing:-.02em;min-height:44px;align-items:center}
summary::-webkit-details-marker{display:none}summary::after{content:"+";color:var(--yl);font-size:1.9rem;transition:transform .3s}
details[open] summary::after{transform:rotate(135deg)}details p{color:var(--mut);margin-top:10px;max-width:560px}
footer{padding:80px 0 0;overflow:hidden;border-top:1px solid rgba(245,243,239,.12);content-visibility:visible}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:30px}
footer h4{color:var(--yl);font-size:.75rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px}
footer li{list-style:none;margin-bottom:9px;color:var(--mut);font-size:.95rem}footer li:hover{color:var(--yl)}
.cp{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:44px;color:var(--ml);font-size:.82rem}
.wm{font-size:clamp(6rem,30vw,30rem);font-weight:800;letter-spacing:-.07em;line-height:.78;text-align:center;margin-top:26px;transform:translate3d(0,14%,0)}
.wm i{color:var(--yl);font-style:normal}
.rv{transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}.js .rv{opacity:0;transform:translate3d(0,40px,0)}.js .rv.in{opacity:1;transform:none}
@media(max-width:900px){
.lk{display:none}.mb{display:block}.hero .w,.pr .w,.fq .w{grid-template-columns:1fr}.f3{grid-template-columns:1fr}.fg{grid-template-columns:1fr 1fr}
.rw{grid-template-columns:44px 1fr 36px;padding:24px 2px}.rw p{grid-column:2/3;grid-row:2}.rw i{grid-row:1;grid-column:3}
.sk{position:static}.vis{width:min(84%,380px);margin-top:10px}.mq{transform:rotate(-1.5deg) scale(1.06)}}
@media(max-width:520px){.st{gap:8px}.fg{grid-template-columns:1fr}.btn{width:100%}.cta{width:100%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}h1 .l span{transform:none}.hero p.ld,.cta{opacity:1}.js .rv{opacity:1;transform:none}}
/* refined motion: smooth, energetic, and respectful of reduced-motion settings */
:root{--ease-smooth:cubic-bezier(.16,1,.3,1);--ease-soft:cubic-bezier(.22,.68,0,1)}
html{scroll-behavior:smooth}
h1 .l span{animation-timing-function:var(--ease-smooth)}
.rv{transition:opacity .85s var(--ease-smooth),transform .85s var(--ease-smooth),filter .85s var(--ease-smooth);filter:blur(0)}
.js .rv{opacity:0;transform:translate3d(0,30px,0) scale(.985);filter:blur(7px)}
.js .rv.in{opacity:1;transform:none;filter:blur(0)}
.f3 .fc:nth-child(2){transition-delay:.1s}.f3 .fc:nth-child(3){transition-delay:.2s}
#about .f3 .fc.rv{transition-duration:1.05s;transition-timing-function:var(--ease-smooth)}
#about .f3 .fc:nth-child(1){transition-delay:.06s}#about .f3 .fc:nth-child(2){transition-delay:.2s}#about .f3 .fc:nth-child(3){transition-delay:.34s}
.js #about .f3 .fc.rv{opacity:0;transform:translate3d(0,56px,0) scale(.96);filter:blur(7px)}
.js #about .f3 .fc.rv.in{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
.js #about .f3 .fc.rv.in:hover{transform:translate3d(0,-10px,0) scale(1.01)}
.rws .rw:nth-child(2){transition-delay:.04s}.rws .rw:nth-child(3){transition-delay:.08s}.rws .rw:nth-child(4){transition-delay:.12s}.rws .rw:nth-child(5){transition-delay:.16s}.rws .rw:nth-child(6){transition-delay:.2s}
.tl .sp:nth-child(3){transition-delay:.09s}.tl .sp:nth-child(4){transition-delay:.18s}.tl .sp:nth-child(5){transition-delay:.27s}
.sun{box-shadow:0 0 56px rgba(255,201,0,.16);animation:pulse 5s var(--ease-soft) infinite,sun-glow 5s ease-in-out infinite}
@keyframes sun-glow{0%,100%{box-shadow:0 0 34px rgba(255,201,0,.13)}50%{box-shadow:0 0 76px rgba(255,201,0,.32)}}
.hero{isolation:isolate}
.hero::before{content:"";position:absolute;inset:-5% -4%;z-index:0;pointer-events:none;opacity:.55;background:radial-gradient(circle at 8% 24%,rgba(255,201,0,.48) 0 2px,transparent 3px),radial-gradient(circle at 19% 67%,rgba(245,243,239,.25) 0 1.5px,transparent 3px),radial-gradient(circle at 37% 16%,rgba(255,201,0,.28) 0 1.5px,transparent 3px),radial-gradient(circle at 57% 78%,rgba(245,243,239,.22) 0 2px,transparent 3.5px),radial-gradient(circle at 78% 29%,rgba(255,201,0,.32) 0 2px,transparent 3px),radial-gradient(circle at 91% 65%,rgba(245,243,239,.25) 0 1.5px,transparent 3px);animation:kwik-particle-drift 16s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;right:8%;top:23%;width:min(68vw,520px);aspect-ratio:1;z-index:0;pointer-events:none;border-radius:50%;background:radial-gradient(circle,rgba(255,201,0,.055),transparent 68%);filter:blur(18px);animation:kwik-ambient-glow 8s ease-in-out infinite}
.hero>.w{position:relative;z-index:1}
@keyframes kwik-particle-drift{from{transform:translate3d(0,9px,0)}to{transform:translate3d(0,-15px,0)}}
@keyframes kwik-ambient-glow{0%,100%{transform:translate3d(0,0,0) scale(.95)}50%{transform:translate3d(0,-16px,0) scale(1.05)}}
.pill{animation:kwik-pill-glow 4.4s ease-in-out infinite}
@keyframes kwik-pill-glow{0%,100%{box-shadow:0 0 14px rgba(255,201,0,.025);border-color:rgba(245,243,239,.2)}50%{box-shadow:0 0 24px rgba(255,201,0,.12);border-color:rgba(255,201,0,.4)}}
@supports (background-clip:text){.hero h1 .y{color:transparent;background-image:linear-gradient(110deg,var(--yl) 0%,var(--yl) 38%,#fff0a8 50%,var(--yl) 62%,var(--yl) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;animation:up .95s var(--ease-smooth) .2s forwards,kwik-sheen 5.5s ease-in-out infinite}}
@keyframes kwik-sheen{0%,100%{background-position:100% 50%}50%{background-position:0% 50%}}
.ring{animation:ring-breathe 7s ease-in-out infinite alternate}
.ring2{animation:ring-turn 38s linear infinite}
@keyframes ring-breathe{from{opacity:.62;transform:scale(.985)}to{opacity:1;transform:scale(1.015)}}
@keyframes ring-turn{to{transform:rotate(360deg)}}
.orb{animation-duration:32s}.orb b{animation-duration:32s}
.fc,.cd,.ar button,.rw,.btn,.pg,.mb{transition-timing-function:var(--ease-smooth)}
.fc .ic{transition:transform .45s var(--ease-smooth)}
.fc:hover .ic{transform:rotate(-8deg) scale(1.08)}
.fc:hover{transform:translate3d(0,-10px,0) scale(1.01)}
.cd:hover{transform:translate3d(0,-10px,0) scale(1.008)}
.btn{transition:background .3s,color .3s,transform .45s var(--ease-smooth),box-shadow .3s}
.btn:hover{box-shadow:0 12px 28px rgba(255,201,0,.15)}
.btn:active{transform:scale(.97)}
.ar button:hover,.mb:hover,.pg:hover{transform:translateY(-3px)}
.lk a{position:relative}
.lk a::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;background:var(--yl);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-smooth)}
.lk a:hover::after{transform:scaleX(1)}
.lgr span{transition:opacity .35s,transform .45s var(--ease-smooth)}
.lgr span:hover{opacity:1;transform:translateY(-4px)}
.big .wd{transition:opacity .45s var(--ease-smooth),color .45s var(--ease-smooth)}
:focus-visible{outline:3px solid var(--yl);outline-offset:4px;border-radius:4px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.rv,.js .rv,.js .rv.in{transition:none!important;opacity:1!important;transform:none!important;filter:none!important}.sun,.ring,.ring2,.orb,.orb b,.mq div,.lgr,.hero::before,.hero::after,.hero h1 .y,.pill{animation:none!important}}
