/* Титаны Драйва — About · cinematic scrollytelling (GSAP + Lenis) */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
:root{
  --bg:#0b0b0d;--ink:#f4f1ea;--dim:rgba(244,241,234,.55);
  --paper:#efece3;--paperink:#141416;--red:#ff3b30;--line:rgba(255,255,255,.14);
  --disp:'Russo One','Arial Black',sans-serif;--body:'Inter',system-ui,sans-serif;
}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
::selection{background:var(--red);color:#fff}

.noise{position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.05;background-image:url('../img/noise.png');background-size:180px;mix-blend-mode:overlay}
.aprog{position:fixed;top:0;left:0;height:3px;width:0;background:var(--red);z-index:9997}
.badge{position:fixed;right:14px;bottom:14px;z-index:9999;background:var(--red);color:#fff;font-weight:700;font-size:11px;letter-spacing:.14em;padding:6px 10px;border-radius:6px;pointer-events:none}

.pre{position:fixed;inset:0;z-index:10000;background:#0b0b0d;display:flex;align-items:flex-end;justify-content:space-between;padding:40px;transition:opacity .6s ease;animation:preFail 1s ease 7s forwards}
.pre.done{opacity:0;pointer-events:none}
@keyframes preFail{to{opacity:0;visibility:hidden;pointer-events:none}}
.pre__num{font-family:var(--disp);font-size:clamp(4rem,18vw,15rem);line-height:.8;color:var(--ink)}
.pre__lbl{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);text-align:right}

.nav{position:fixed;top:0;left:0;width:100%;z-index:9000;display:flex;align-items:center;justify-content:space-between;padding:20px clamp(18px,4vw,48px);transition:background .4s ease,padding .4s ease,border-color .4s ease;border-bottom:1px solid transparent}
.nav.solid{background:rgba(11,11,13,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--line);padding-top:14px;padding-bottom:14px}
.nav__logo{font-family:var(--disp);font-size:16px;letter-spacing:.02em;transition:color .3s ease,text-shadow .3s ease}
.nav__logo:hover{color:var(--red);text-shadow:0 0 10px rgba(255,59,48,.85),0 0 24px rgba(255,59,48,.5)}
.nav__logo b{color:var(--red)}
.nav__right{display:flex;gap:22px;align-items:center;font-size:13px;letter-spacing:.04em}
.nav__link{color:var(--dim);transition:color .3s ease}
.nav__link:hover{color:var(--ink)}
.nav__cta{border:1px solid var(--line);border-radius:100px;padding:9px 18px;transition:.3s ease}
.nav__cta:hover{background:var(--red);border-color:var(--red);color:#fff}
@media(max-width:720px){.nav__link{display:none}}

.hero{position:relative;height:100vh;min-height:600px;background:#000}
.hero__stage{position:sticky;top:0;height:100vh;min-height:600px;overflow:hidden;display:flex;align-items:flex-end;background:#000}
.curt{position:absolute;inset:0;z-index:0}
.curt__layer{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.12);will-change:clip-path,transform}
.curt__layer--static{transform:none;clip-path:none;will-change:auto}
.curt__dots{position:absolute;right:24px;bottom:24px;z-index:3;display:flex;gap:8px}
.curt__dots i{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.32);transition:.35s}
.curt__dots i.on{width:22px;border-radius:4px;background:#ff3b30}
.hero__fold{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;perspective:1700px;perspective-origin:50% 46%;will-change:transform}
.fold__stage{display:flex;gap:0;transform-style:preserve-3d;height:102%;width:100%;transform:rotateX(6deg);will-change:transform}
.fold__panel{position:relative;flex:0 0 auto;width:calc(100%/6 + 2.8%);margin:0 -1.4%;height:100%;transform-style:preserve-3d;will-change:transform;overflow:hidden}
.fold__panel:nth-child(odd){transform-origin:50% 50%}
.fold__panel:nth-child(even){transform-origin:50% 50%}
.fold__face{position:absolute;inset:0;background-size:cover;background-position:center;backface-visibility:hidden;overflow:hidden}
.hero__grad{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(11,11,13,.38) 0%,rgba(11,11,13,0) 32%,rgba(11,11,13,.15) 56%,rgba(11,11,13,.97) 100%)}
.hero__inner{position:relative;z-index:2;padding:0 clamp(18px,4vw,48px) clamp(40px,7vh,90px);width:100%}
.hero__eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);margin-bottom:16px}
.hero__eyebrow::before{content:'';width:34px;height:1px;background:var(--red)}
.hero__sub{max-width:560px;margin:0;color:rgba(244,241,234,.9);font-size:clamp(1.02rem,1.5vw,1.25rem);line-height:1.45}
.hero__cue{position:absolute;right:clamp(18px,4vw,48px);bottom:clamp(40px,7vh,90px);z-index:2;writing-mode:vertical-rl;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);display:flex;align-items:center;gap:12px}
.hero__cue::after{content:'';width:1px;height:52px;background:linear-gradient(var(--red),transparent)}
@media(max-width:720px){.hero__cue{display:none}.fold__stage{height:92%}}

.marq{background:var(--red);color:#0b0b0d;padding:16px 0;overflow:hidden;white-space:nowrap}
.marq__row{display:inline-flex;animation:marq 28s linear infinite;will-change:transform}
.marq__row span{font-family:var(--disp);font-size:clamp(1.1rem,2.4vw,2rem);text-transform:uppercase;padding:0 26px;display:inline-flex;align-items:center}
.marq__row span::after{content:'✦';font-size:.6em;margin-left:52px;opacity:.7}
@keyframes marq{to{transform:translateX(-50%)}}

.intro{position:relative;overflow:hidden;background:#0e0e11;color:var(--ink);padding:clamp(50px,7vh,96px) clamp(18px,4vw,48px)}
.intro__bgword{position:absolute;top:3%;left:0;width:max-content;display:flex;white-space:nowrap;pointer-events:none;font-family:var(--disp);font-size:clamp(4.5rem,16vw,15rem);line-height:.9;color:transparent;-webkit-text-stroke:1.4px rgba(244,241,234,.16);animation:introMarq 42s linear infinite}
.intro__bgword span{padding-right:.28em}
.intro__wrap{position:relative;z-index:1;max-width:1180px;margin:0 auto}
.intro__top{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:34px}
.intro__tag{font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--red);display:inline-flex;align-items:center;gap:12px}
.intro__tag::before{content:'';width:30px;height:1px;background:var(--red)}
.intro__seal{position:relative;width:clamp(80px,9vw,116px);height:clamp(80px,9vw,116px);flex:0 0 auto}
.intro__seal svg{width:100%;height:100%;animation:introSpin 16s linear infinite}
.intro__seal text{font-family:var(--body);font-weight:600;font-size:10.2px;letter-spacing:.1em;fill:var(--ink);text-transform:uppercase}
.intro__seal-dot{position:absolute;top:50%;left:50%;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--red)}
.intro__lead{font-family:var(--disp);font-weight:400;font-size:clamp(1.9rem,4.4vw,4rem);line-height:1.14;text-transform:uppercase;margin:0;max-width:none}
.intro__lead .w{display:inline-block}
.intro__cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,64px);margin-top:clamp(40px,6vh,72px)}
.intro__body{margin:0;font-size:clamp(1.08rem,1.5vw,1.32rem);color:rgba(244,241,234,.78);line-height:1.75}
.intro__marks{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(50px,8vh,90px);border-top:1px solid var(--line)}
.imark{padding:26px 20px 0 0;border-right:1px solid var(--line)}
.imark:last-child{border-right:0}
.imark__n{display:block;font-family:var(--disp);font-size:13px;color:var(--red);margin-bottom:10px}
.imark__t{display:block;font-family:var(--disp);font-size:clamp(1rem,1.5vw,1.35rem);text-transform:uppercase;line-height:1.05}
@media(max-width:860px){.intro__cols{grid-template-columns:1fr}.intro__marks{grid-template-columns:1fr 1fr}.imark:nth-child(2){border-right:0}.imark{border-bottom:1px solid var(--line)}}

.hgal{background:var(--bg);position:relative;overflow:hidden}
.hgal__head{display:flex;justify-content:space-between;align-items:flex-end;padding:clamp(60px,10vh,120px) clamp(18px,4vw,48px) 30px;flex-wrap:wrap;gap:16px}
.hgal__title{font-family:var(--disp);font-size:clamp(1.6rem,4vw,3.4rem);text-transform:uppercase;margin:0;line-height:1}
.hgal__hint{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.hgal__view{overflow:hidden}
.hgal__track{display:flex;gap:clamp(16px,2vw,32px);padding:0 clamp(18px,4vw,48px) clamp(60px,10vh,120px);will-change:transform}
.hgal__item{position:relative;flex:0 0 auto;width:clamp(260px,42vw,600px);height:clamp(340px,64vh,700px);border-radius:14px;overflow:hidden}
.hgal__img{position:absolute;inset:-8%;background-size:cover;background-position:center;will-change:transform}
.hgal__item::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 45%,rgba(11,11,13,.85))}
.hgal__cap{position:absolute;left:0;bottom:0;z-index:2;padding:20px 22px;font-family:var(--disp);font-size:clamp(1rem,1.6vw,1.5rem);text-transform:uppercase}
.hgal__num{position:absolute;right:16px;top:14px;z-index:2;font-size:12px;letter-spacing:.14em;color:var(--dim)}
@media(max-width:760px){.hgal__view{overflow-x:auto;-webkit-overflow-scrolling:touch}}

.stats{background:var(--bg);padding:clamp(60px,10vh,120px) clamp(18px,4vw,48px);border-top:1px solid var(--line)}
.stats__grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.stat__num{font-family:var(--disp);font-size:clamp(2.6rem,7vw,5.6rem);line-height:1;color:var(--ink)}
.stat__num em{color:var(--red);font-style:normal}
.stat__lbl{margin-top:12px;font-size:13px;color:var(--dim);letter-spacing:.04em;text-transform:uppercase}
@media(max-width:860px){.stats__grid{grid-template-columns:repeat(2,1fr);gap:30px}}

.work{background:var(--bg)}
.work__row{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(24px,5vw,90px);max-width:1300px;margin:0 auto;padding:clamp(40px,8vh,100px) clamp(18px,4vw,48px)}
.work__row:nth-child(even) .work__media{order:2}
.work__media{position:relative;height:clamp(300px,58vh,600px);border-radius:14px;overflow:hidden}
.work__img{position:absolute;inset:-8%;background-size:cover;background-position:center;will-change:transform}
.work__no{font-family:var(--disp);font-size:14px;color:var(--red);letter-spacing:.14em;margin-bottom:18px}
.work__title{font-family:var(--disp);font-size:clamp(1.8rem,4.4vw,3.6rem);text-transform:uppercase;line-height:1;margin:0 0 18px}
.work__txt{color:rgba(244,241,234,.72);font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.75;max-width:480px}
@media(max-width:820px){.work__row{grid-template-columns:1fr}.work__row:nth-child(even) .work__media{order:0}}

.quote{position:relative;height:80vh;min-height:460px;display:flex;align-items:center;justify-content:center;overflow:hidden;text-align:center}
.quote__bg{position:absolute;inset:-8%;background-size:cover;background-position:center;z-index:0;will-change:transform}
.quote__bg::after{content:'';position:absolute;inset:0;background:rgba(11,11,13,.62)}
.quote__txt{position:relative;z-index:1;font-family:var(--disp);font-size:clamp(1.6rem,4.6vw,4rem);text-transform:uppercase;line-height:1.06;max-width:1100px;padding:0 24px}
.quote__txt em{color:var(--red);font-style:normal}

.cta{position:relative;overflow:hidden;padding:clamp(90px,16vh,200px) clamp(18px,4vw,48px);text-align:center}
.cta__bg{position:absolute;inset:-8%;background-size:cover;background-position:center;z-index:0;will-change:transform}
.cta__bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.72),rgba(11,11,13,.86))}
.cta__inner{position:relative;z-index:1}
.cta__title{font-family:var(--disp);font-size:clamp(2.2rem,7vw,6rem);text-transform:uppercase;line-height:.98;margin:0 0 34px}
.cta__btn{display:inline-flex;align-items:center;gap:14px;background:var(--red);color:#fff;font-family:var(--disp);font-size:clamp(1rem,1.6vw,1.4rem);text-transform:uppercase;padding:20px 44px;border-radius:100px;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 16px 50px rgba(255,59,48,.4)}
.cta__btn:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 22px 66px rgba(255,59,48,.6)}
.cta__btn span{transition:transform .3s ease}
.cta__btn:hover span{transform:translateX(6px)}

.foot{background:#08080a;padding:50px clamp(18px,4vw,48px);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;border-top:1px solid var(--line)}
.foot__logo{font-family:var(--disp);font-size:15px}
.foot__logo b{color:var(--red)}
.foot small{color:var(--dim);font-size:12px}
.foot__links{display:flex;gap:20px;font-size:13px}
.foot a{color:var(--dim);transition:color .3s}
.foot a:hover{color:var(--ink)}

/* animation start states (only when GSAP active) */
.gsap [data-reveal]{opacity:0;transform:translateY(46px)}
.gsap .hero__sub,.gsap .hero__eyebrow{opacity:0;transform:translateY(20px)}
.gsap .intro__lead .w{opacity:.14}
.gsap .work__media{clip-path:inset(0 0 100% 0)}

@keyframes introMarq{to{transform:translateX(-50%)}}
@keyframes introSpin{to{transform:rotate(360deg)}}

/* v7 premium interactions */
.ch{display:inline-block;will-change:transform,opacity}
.wrd{display:inline-block;white-space:nowrap}
[data-splitchars]{display:block}
.gsap [data-splitchars] .ch{opacity:0}
.work__media,.hgal__item{will-change:transform}
.cta__btn{will-change:transform}


/* ==================== v20 — mobile polish ==================== */
.badge{display:none!important}
@media(max-width:720px){
  .hero,.hero__stage{height:66vh;min-height:0}
  .hero__stage .curt__layer--static{background-size:contain!important;background-repeat:no-repeat;background-position:center}
  .cta__title{font-size:clamp(1.9rem,8.5vw,3rem)}
}
