/* Rack Rank home (Nov 2026 redesign): blackout, HUD details, real app screens, depth and motion.
   Red-to-orange gradient only on awards (crowns, champs). Everything else solid white, red for actions and live numbers. */
:root{
  --bg:#050506; --bg2:#0B0B0D; --sf:#111114; --sf2:#17171B; --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.16);
  --ink:#F4F4F5; --mut:rgba(244,244,245,.64); --dim:rgba(244,244,245,.42);
  --red:#E5242F; --red2:#FF5A4A; --grad:linear-gradient(170deg,#FF8A4C,#E5242F 45%,#9E0F2A);
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --body:"Barlow","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 var(--body);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--red2);outline-offset:3px;border-radius:6px}
.wrap{max-width:1200px;margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px))}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;background:#fff;color:#000;padding:8px 12px;z-index:99}
.mono{font-family:var(--mono)}
.gr{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
h1,h2,h3{font-family:var(--display);font-weight:900;margin:0;letter-spacing:0;text-wrap:balance}

/* ambient layers */
.noise{position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
.glow{position:absolute;pointer-events:none;border-radius:50%;filter:blur(10px)}
.grid-bg{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(70% 60% at 70% 30%,#000 20%,transparent 75%);mask-image:radial-gradient(70% 60% at 70% 30%,#000 20%,transparent 75%)}
.progress{position:fixed;left:0;top:0;height:2px;width:100%;transform-origin:0 50%;transform:scaleX(var(--p,0));background:var(--red);z-index:60}

/* nav */
.nav{position:fixed;left:0;right:0;top:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent}
.nav.solid{background:rgba(5,5,6,.72);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border-color:var(--line)}
.nav .wrap{display:flex;align-items:center;gap:8px;height:68px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font:900 25px/1 var(--display);flex:1}
.mark{position:relative;width:32px;height:32px;flex:none}
.mark i{position:absolute;border-radius:3px}
.mark .b{left:8%;top:46%;width:84%;height:8%;background:#E9EBEC;border-radius:2px}
.mark .p1{left:22%;top:12%;width:15%;height:76%;background:#E5242F}.mark .p2{left:42.5%;top:21%;width:15%;height:58%;background:#2F6FE8}.mark .p3{left:63%;top:30%;width:15%;height:40%;background:#FFC61A}
.nav nav{display:flex;align-items:center;gap:4px}
.nav nav a{text-decoration:none;font:500 15px var(--body);color:var(--mut);padding:8px 14px;border-radius:10px;transition:color .2s,background .2s}
.nav nav a:hover{color:var(--ink);background:rgba(255,255,255,.05)}
.nav nav a.cta{color:#fff;background:var(--red);font-weight:600;margin-left:6px}
.nav nav a.cta:hover{background:#F0353F}
@media(max-width:760px){.nav nav a:not(.cta){display:none}}

/* buttons + form */
.join{display:flex;gap:10px;max-width:480px}
.join input{flex:1;min-width:0;font:500 16px var(--body);color:var(--ink);background:rgba(255,255,255,.04);border:1px solid var(--line2);border-radius:10px;padding:15px 16px;outline:none;transition:border-color .2s,background .2s}
.join input::placeholder{color:var(--dim)}
.join input:focus{border-color:var(--red2);background:rgba(255,255,255,.06)}
.btn{position:relative;overflow:hidden;border:0;cursor:pointer;font:700 16px var(--body);color:#fff;background:var(--red);border-radius:10px;padding:15px 22px;white-space:nowrap;transition:transform .2s var(--ease),background .2s}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--ease)}
.btn:hover{background:#F0353F}.btn:hover::after{transform:translateX(120%)}.btn:active{transform:scale(.97)}
.fine{font:500 13px var(--body);color:var(--dim);margin:12px 0 0}
@media(max-width:520px){.join{flex-direction:column}}

/* labels */
.tag{display:inline-flex;align-items:center;gap:10px;font:600 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.tag .dot{width:8px;height:8px;border-radius:50%;background:var(--red);animation:pulse 1.8s infinite}
.tag .n{color:var(--red2)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(229,36,47,.7)}70%{box-shadow:0 0 0 10px rgba(229,36,47,0)}100%{box-shadow:0 0 0 0 rgba(229,36,47,0)}}

/* reveal */
.rv{opacity:0;transform:translateY(28px);filter:blur(6px);transition:opacity .9s var(--ease),transform .9s var(--ease),filter .9s var(--ease);transition-delay:var(--d,0s)}
.rv.in{opacity:1;transform:none;filter:none}
.lines .ln{display:block;overflow:hidden;padding-bottom:.04em}
.lines .ln>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s var(--ease);transition-delay:var(--d,0s)}
.ready .lines .ln>span{transform:none}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;padding-top:120px;padding-bottom:40px;overflow:hidden;display:flex;flex-direction:column}
.hero .glow.a{right:-220px;top:-260px;width:820px;height:640px;background:radial-gradient(closest-side,rgba(229,36,47,.34),rgba(229,36,47,.08) 55%,transparent)}
.hero-grid{position:relative;flex:1;display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center}
.hero h1{font-size:clamp(64px,9.4vw,138px);line-height:.86;margin-top:22px}
.hero h1 .gh{position:absolute;left:-.04em;top:-.55em;font-size:1.9em;color:rgba(255,255,255,.035);white-space:nowrap;pointer-events:none;z-index:-1}
.hero .lede{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--mut);max-width:520px;margin:26px 0 30px}
.facts{display:flex;gap:34px;margin-top:36px;flex-wrap:wrap}
.facts div b{display:block;font:900 40px/1 var(--display)}
.facts div span{font:600 10.5px var(--mono);letter-spacing:.14em;color:var(--dim);text-transform:uppercase}

/* 3D phone stage */
.stage{position:relative;height:min(78vh,680px);perspective:1400px;display:grid;place-items:center}
.rig{position:relative;width:300px;height:620px;transform-style:preserve-3d;transform:rotateX(var(--rx,3deg)) rotateY(var(--ry,-8deg));transition:transform .5s var(--ease)}
.phone{position:absolute;inset:0;border-radius:46px;padding:9px;background:linear-gradient(145deg,#2a2a30,#0d0d10 40%,#1c1c21);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),0 50px 90px -30px rgba(0,0,0,.9),0 0 0 1px rgba(0,0,0,.6);transform-style:preserve-3d}
.phone .scr{position:relative;width:100%;height:100%;border-radius:38px;overflow:hidden;background:#09090A;padding-top:30px}
.phone .scr img{width:100%;height:100%;object-fit:cover;object-position:top}
.phone .scr::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.1),transparent 35%);pointer-events:none}
.phone .isl{position:absolute;left:50%;top:17px;width:88px;height:24px;margin-left:-44px;border-radius:14px;background:#000;z-index:2}
.rig .shadow{position:absolute;left:10%;right:10%;bottom:-60px;height:40px;background:radial-gradient(closest-side,rgba(0,0,0,.8),transparent);transform:translateZ(-80px) rotateX(90deg)}
.chip{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;background:rgba(17,17,20,.78);border:1px solid var(--line2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font:700 14px var(--body);white-space:nowrap;box-shadow:0 20px 40px -16px rgba(0,0,0,.9);transform-style:preserve-3d}
.chip small{display:block;font:600 10px var(--mono);letter-spacing:.14em;color:var(--dim)}
.chip .ok{width:24px;height:24px;border-radius:50%;background:var(--red);display:grid;place-items:center;font-size:13px}
.chip .rk{font:900 24px var(--display);color:var(--red2)}
.ring{width:30px;height:30px;border-radius:50%;padding:2px;background:linear-gradient(135deg,#FF7A45,#E5242F 50%,#B3123A);flex:none}
.ring i{display:block;width:100%;height:100%;border-radius:50%;border:2px solid #111114;background:#C7C7CC url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><circle cx='50' cy='39' r='17' fill='white'/><path d='M14 96c3-21 18-33 36-33s33 12 36 33z' fill='white'/></svg>") center/cover}
.c1{left:-150px;top:90px;transform:translateZ(90px)}
.c2{right:-170px;top:250px;transform:translateZ(140px)}
.c3{left:-110px;bottom:110px;transform:translateZ(60px)}
.brk{position:absolute;inset:-30px -60px;pointer-events:none;transform:translateZ(-40px)}
.brk i{position:absolute;width:28px;height:28px;border:2px solid rgba(255,255,255,.28)}
.brk i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}.brk i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}.brk i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}.brk i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.scanline{position:absolute;left:-60px;right:-60px;height:1px;top:0;background:linear-gradient(90deg,transparent,rgba(229,36,47,.8),transparent);animation:scan 4.5s ease-in-out infinite;transform:translateZ(-30px)}
@keyframes scan{0%,100%{top:-20px;opacity:0}10%{opacity:1}90%{opacity:1}50%{top:640px}}
.float{animation:float 6s ease-in-out infinite}
@keyframes float{0%,100%{translate:0 0}50%{translate:0 -12px}}

/* ticker */
.ticker{position:relative;z-index:2;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.015)}
.ticker .tr{display:flex;gap:48px;width:max-content;padding:16px 0;animation:marq 48s linear infinite}
.ticker span{font:500 13px var(--mono);letter-spacing:.06em;color:var(--mut);white-space:nowrap}
.ticker span b{color:var(--ink);font-weight:600}.ticker span em{font-style:normal;color:var(--red2)}
.ticker span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:14px;vertical-align:middle}
@keyframes marq{to{transform:translateX(-50%)}}

/* sections */
section{position:relative}
.sec{padding:140px 0}
.shead{max-width:760px}
.shead h2{font-size:clamp(46px,6.2vw,88px);line-height:.88;margin-top:18px}
.shead p{font-size:18px;color:var(--mut);margin:20px 0 0;max-width:600px}
.idx{font:600 12px var(--mono);letter-spacing:.14em;color:var(--dim)}

/* how it works: sticky phone */
.how{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:70px}
.steps{display:flex;flex-direction:column}
.step{min-height:70vh;display:flex;flex-direction:column;justify-content:center;opacity:.28;transition:opacity .5s var(--ease)}
.step.on{opacity:1}
.step .num{font:600 13px var(--mono);letter-spacing:.14em;color:var(--red2)}
.step h3{font-size:clamp(40px,4.6vw,64px);line-height:.9;margin-top:14px}
.step p{color:var(--mut);font-size:18px;max-width:440px;margin:16px 0 0}
.step .bar{margin-top:26px;height:2px;width:200px;background:var(--line);overflow:hidden}
.step .bar i{display:block;height:100%;width:0;background:var(--red);transition:width 1.2s var(--ease)}
.step.on .bar i{width:100%}
.sticky{position:sticky;top:0;height:100vh;display:grid;place-items:center;perspective:1400px}
.sticky .rig{--rx:4deg;--ry:-10deg}
.sticky .scr img{position:absolute;inset:30px 0 0;height:calc(100% - 30px)!important;opacity:0;transform:scale(1.04);transition:opacity .6s var(--ease),transform .8s var(--ease)}
.sticky .scr img.on{opacity:1;transform:none}
.dots{position:absolute;right:calc(50% - 210px);top:50%;display:flex;flex-direction:column;gap:10px;transform:translateY(-50%)}
.dots i{width:4px;height:26px;border-radius:2px;background:var(--line2);transition:background .3s,height .3s}
.dots i.on{background:var(--red);height:40px}

/* gym leaders */
.leaders{overflow:hidden}
.leaders .gh{position:absolute;left:50%;top:120px;transform:translateX(-50%);font:900 clamp(160px,26vw,380px)/.8 var(--display);color:rgba(255,255,255,.035);white-space:nowrap;pointer-events:none}
.leaders .shead{margin:0 auto;text-align:center}
.leaders .shead p{margin-left:auto;margin-right:auto}
.lgrid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:70px}
.ld{display:flex;flex-direction:column;align-items:center;text-align:center;padding:30px 12px 34px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.01));border:1px solid var(--line);transition:transform .5s var(--ease),border-color .3s}
.ld:hover{transform:translateY(-8px);border-color:rgba(229,36,47,.45)}
.ld svg{width:min(190px,100%);height:auto;filter:drop-shadow(0 22px 26px rgba(0,0,0,.7));transform:rotate(var(--spin,0deg));transition:transform .2s linear}
.ld .w{font:900 34px/.9 var(--display);margin-top:16px}
.ld .ring{width:84px;height:84px;padding:4px;margin-top:16px}.ld .ring i{border-width:3px;border-color:#0b0b0d}
.ld .nm{font:900 30px/.95 var(--display);margin-top:12px;text-transform:uppercase}
.ld .hd{font:500 13px var(--mono);color:var(--dim);margin-top:4px}
.ld.open .dash{width:84px;height:84px;border-radius:50%;border:2px dashed rgba(255,255,255,.3);margin-top:16px}
.ld.open .nm{color:var(--dim);font-size:24px}

/* share: 3D fan */
.share{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center}
.fan{position:relative;height:620px;perspective:1600px}
.fan .card{position:absolute;left:50%;top:50%;width:270px;margin:-240px 0 0 -135px;border-radius:18px;overflow:hidden;box-shadow:0 40px 80px -30px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.08);transition:transform 1.2s var(--ease)}
.fan .card img{width:100%;height:auto}
.fan .k1{transform:translateX(0) rotate(0) translateZ(0)}
.fan .k2{transform:translateX(0) rotate(0) translateZ(-20px)}
.fan .k3{transform:translateX(0) rotate(0) translateZ(-40px)}
.fan.in .k1{transform:translateX(-190px) rotate(-9deg) rotateY(14deg) translateZ(-40px)}
.fan.in .k2{transform:translateX(0) translateY(-20px) translateZ(60px)}
.fan.in .k3{transform:translateX(190px) rotate(9deg) rotateY(-14deg) translateZ(-40px)}
.ul{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-direction:column;gap:14px}
.ul li{position:relative;padding-left:22px;color:var(--mut)}
.ul li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;background:var(--red)}

/* fair by design: bento with spotlight */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:60px}
.gc{position:relative;grid-column:span 2;padding:28px;border-radius:16px;background:var(--sf);border:1px solid var(--line);overflow:hidden;isolation:isolate}
.gc.w4{grid-column:span 4}
.gc::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--mx,-999px) var(--my,-999px),rgba(229,36,47,.14),transparent 45%);opacity:0;transition:opacity .3s}
.gc::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:radial-gradient(300px circle at var(--mx,-999px) var(--my,-999px),rgba(255,90,74,.7),transparent 50%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:0;transition:opacity .3s}
.gc:hover::before,.gc:hover::after{opacity:1}
.gc .ic{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:rgba(229,36,47,.1);border:1px solid rgba(229,36,47,.3);color:var(--red2)}
.gc .ic svg{width:20px;height:20px}
.gc h3{font-size:28px;line-height:1;margin-top:20px}
.gc p{color:var(--mut);font-size:15.5px;margin:10px 0 0}
.gc .big{font:900 92px/.85 var(--display);color:var(--red2)}
.gc .mono{font-size:11px;letter-spacing:.14em;color:var(--dim);text-transform:uppercase;display:block;margin-bottom:12px}

/* crew + profile: depth pair */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}
.duo{position:relative;height:640px;perspective:1600px}
.duo .rig{position:absolute;top:10px;width:270px;height:560px}
.duo .r1{left:6%;--rx:4deg;--ry:16deg}
.duo .r2{right:6%;top:70px;--rx:4deg;--ry:-16deg}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.pills span{font:600 13px var(--body);padding:9px 14px;border-radius:999px;border:1px solid var(--line2);color:var(--mut)}
.pills span.soon{border-style:dashed;color:var(--dim)}

/* faq */
.faq{margin-top:50px;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 4px;font:700 19px var(--body)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 26px/1 var(--mono);color:var(--red2);transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{margin:0;padding:0 4px 24px;color:var(--mut);max-width:780px}
.faqgrid{display:grid;grid-template-columns:.8fr 1.2fr;gap:60px}
.faqgrid .shead{position:sticky;top:110px;align-self:start}

/* closer */
.closer{position:relative;overflow:hidden;text-align:center;padding:170px 0 160px}
.closer .gh{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:900 clamp(200px,34vw,520px)/.8 var(--display);color:rgba(255,255,255,.035);white-space:nowrap;pointer-events:none}
.closer .glow.b{left:50%;bottom:-340px;width:1000px;height:600px;margin-left:-500px;background:radial-gradient(closest-side,rgba(229,36,47,.28),transparent)}
.closer h2{position:relative;font-size:clamp(56px,8.4vw,128px);line-height:.86}
.closer .join{margin:40px auto 0;position:relative}
.closer .fine{position:relative}

/* footer */
footer{border-top:1px solid var(--line);padding:60px 0 calc(40px + env(safe-area-inset-bottom,0px))}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px}
footer h4{margin:0 0 14px;font:600 11px var(--mono);letter-spacing:.16em;color:var(--dim);text-transform:uppercase}
footer a{display:block;text-decoration:none;color:var(--mut);font-size:15px;padding:4px 0}
footer a:hover{color:var(--ink)}
footer .legal{margin:50px 0 0;font:500 12px var(--mono);color:var(--dim)}

/* responsive */
@media(max-width:1000px){
  .hero-grid,.how,.share,.pair,.faqgrid{grid-template-columns:1fr}
  .hero{padding-top:100px}
  .stage{height:600px}
  .c1{left:-40px}.c2{right:-40px}.c3{left:-20px}
  .how .sticky{display:none}
  .step{min-height:0;padding:30px 0;opacity:1}
  .step .shot{display:block;margin-top:24px;width:260px;border-radius:28px;overflow:hidden;border:7px solid #1d1d22}
  .lgrid{grid-template-columns:repeat(2,1fr)}
  .bento{grid-template-columns:1fr 1fr}.gc,.gc.w4{grid-column:span 2}
  .faqgrid .shead{position:static}
  footer .cols{grid-template-columns:1fr 1fr}
}
@media(min-width:1001px){.step .shot{display:none}}
@media(max-width:560px){
  .sec{padding:90px 0}
  .rig{width:250px;height:520px}
  .stage{height:560px}
  .chip{font-size:12.5px;padding:8px 11px}
  .c1{left:-30px;top:40px}.c2{right:-34px;top:230px}.c3{left:-24px;bottom:60px}
  .facts{gap:22px}.facts div b{font-size:32px}
  .lgrid{gap:12px}.ld{padding:20px 8px 24px}.ld .nm{font-size:22px}.ld .w{font-size:26px}.ld .ring,.ld.open .dash{width:64px;height:64px}
  .fan{height:500px}.fan .card{width:200px;margin:-180px 0 0 -100px}
  .fan.in .k1{transform:translateX(-110px) rotate(-8deg) translateZ(-40px)}.fan.in .k3{transform:translateX(110px) rotate(8deg) translateZ(-40px)}
  .duo{height:520px}.duo .rig{width:200px;height:420px}.duo .r1{left:0}.duo .r2{right:0}
  .gc .big{font-size:72px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none;filter:none}.lines .ln>span{transform:none}
}
