:root{
  --paper:#F4ECDD; --paper-2:#E9DCC3; --card:#FFFBF3;
  --ink:#120D0D; --muted:#5E5249;
  --maroon:#7A1C1C; --maroon-deep:#3B0D0D;
  --peach:#E39B6B; --sun:#F2B33D; --pine:#2F6B4F;
  --line:2px solid var(--ink);
  --shadow:6px 6px 0 var(--ink);
  --shadow-sm:4px 4px 0 var(--ink);
  --display:"Barlow Condensed", Impact, "Arial Narrow", sans-serif;
  --body:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --mono:"Fragment Mono", ui-monospace, "Cascadia Mono", monospace;
  --topo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640' viewBox='0 0 640 640' fill='none' stroke='%23120D0D' stroke-opacity='.07' stroke-width='1.5'%3E%3Cpath d='M320 110c100 0 190 66 190 166s-70 214-190 214-200-80-200-190 100-190 200-190z'/%3E%3Cpath d='M320 165c68 0 128 45 128 116s-50 146-128 146-138-55-138-132 70-130 138-130z'/%3E%3Cpath d='M320 222c38 0 70 26 70 64s-28 78-70 78-76-30-76-72 38-70 76-70z'/%3E%3Cpath d='M0 590c90-64 150-40 226-86s166-22 250-98 164-44 164-44'/%3E%3Cpath d='M0 500c70-34 128-12 182-56s120-64 172-118'/%3E%3Cpath d='M380 0c-10 50 30 80 90 96s110 60 170 46'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:92px;-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--sun);color:var(--ink)}
.wrap{width:min(1180px,100% - 32px);margin-inline:auto}
section{position:relative}
.grain::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.3 0 0 0 0 0.2 0 0 0 0 0.1 0 0 0 .35 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.topo{background-image:var(--topo);background-size:640px}
.grain>*{position:relative}
.skip{position:absolute;left:16px;top:-80px;z-index:100;background:var(--sun);border:var(--line);border-radius:999px;padding:10px 18px;font-weight:700;text-decoration:none}
.skip:focus{top:16px}
.label{font-family:var(--mono);font-size:13px;letter-spacing:.28em;text-transform:uppercase}
.h2{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.9;font-size:clamp(44px,7vw,84px);letter-spacing:-.01em;text-wrap:balance}
.h2 em{font-style:normal;color:var(--maroon)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--body);font-weight:700;font-size:16px;line-height:1.2;text-decoration:none;
  min-height:48px;padding:12px 24px;border:var(--line);border-radius:999px;box-shadow:var(--shadow-sm);background:var(--card);color:var(--ink);
  transition:transform .14s ease,box-shadow .14s ease,background .14s;cursor:pointer;-webkit-tap-highlight-color:transparent}
.btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.btn:active{transform:translate(4px,4px);box-shadow:0 0 0 var(--ink)}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
.btn:focus-visible{border-radius:999px}
.btn-maroon{background:var(--maroon);color:#fff}
.btn-sun{background:var(--sun)}
.btn .arrow{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid currentColor;font-size:13px;transition:transform .2s}
.btn:hover .arrow{transform:rotate(45deg)}

/* nav */
.nav{position:fixed;inset:max(14px,env(safe-area-inset-top)) 0 auto;z-index:50;pointer-events:none;transition:transform .3s ease}
.nav.hide{transform:translateY(-130%)}
.nav .bar{pointer-events:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;
  background:var(--card);border:var(--line);border-radius:999px;box-shadow:var(--shadow-sm);padding:8px 8px 8px 22px}
.nav .logo img{height:22px;width:auto}
.nav ul{display:flex;gap:4px;list-style:none}
.nav ul a{display:block;padding:8px 14px;border-radius:999px;text-decoration:none;font-weight:500;font-size:15px;transition:background .15s}
.nav ul a:hover{background:var(--paper-2)}
.nav .btn{min-height:42px;padding:8px 18px;font-size:15px;box-shadow:none}
.nav .btn:hover{transform:none;background:var(--maroon-deep)}

/* 1. HERO */
.hero{min-height:100svh;padding:112px 0 0;overflow:hidden;display:flex;flex-direction:column}
.hero-grid{z-index:2;display:grid;grid-template-columns:1.3fr .85fr;gap:40px;align-items:center;flex:1}
.hero h1{font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:.86;font-size:clamp(54px,7.4vw,112px);letter-spacing:-.015em}
.hero h1 .kicker{display:block;font-family:var(--mono);font-weight:400;font-size:13px;letter-spacing:.28em;line-height:1.4;margin-bottom:16px}
.hero h1 .row{display:block}
.hero h1 .row:nth-child(3){color:var(--maroon)}
.tag{display:inline-block;font-family:var(--display);font-weight:900;text-transform:uppercase;line-height:1;padding:.14em .34em .06em;border:var(--line);border-radius:14px;box-shadow:var(--shadow-sm);color:#fff}
.tag.run{background:var(--maroon);transform:rotate(-4deg)}
.tag.trek{background:var(--pine);transform:rotate(3deg)}
.tags{display:flex;gap:12px;margin-top:20px;font-size:28px}
.hero-copy{margin-top:22px;max-width:480px;font-size:19px;color:var(--muted)}
.hero-copy strong{color:var(--ink);font-weight:700}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
.hero-side{position:relative}
.ticket{position:relative;background:var(--card);border:var(--line);border-radius:22px;box-shadow:var(--shadow);transform:translateY(var(--py,0px)) rotate(calc(var(--tr,2.5deg) + var(--pr,0deg)));padding:22px;transition:transform .3s ease}
.ticket:hover{--tr:0deg}
.ticket .tape{position:absolute;top:-16px;left:50%;width:120px;height:30px;background:rgba(242,179,61,.75);transform:translateX(-50%) rotate(-5deg);border:1px solid rgba(0,0,0,.08)}
.ticket .when{display:flex;align-items:center;gap:16px;margin-top:10px}
.ticket .date{flex:none;width:100px;height:100px;border-radius:50%;background:var(--maroon);color:#fff;border:var(--line);display:grid;place-items:center;align-content:center;text-align:center;font-family:var(--display);font-weight:900;line-height:.85;font-size:32px;transform:rotate(-8deg)}
.ticket .date small{display:block;font-family:var(--mono);font-weight:400;font-size:10px;letter-spacing:.15em;margin-top:6px}
.ticket h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:36px;line-height:.95}
.ticket p{color:var(--muted);font-size:15px;margin-top:6px}
.ticket .foot{margin-top:16px;padding-top:14px;border-top:2px dashed var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px}
.ticket .foot .label{font-size:11px;letter-spacing:.2em;color:var(--maroon)}
.ticket .foot .btn{min-height:40px;padding:8px 16px;font-size:14px}
.badge{position:absolute;z-index:3;right:-14px;top:-62px;width:124px;height:124px;border-radius:50%;background:var(--sun);border:var(--line);box-shadow:var(--shadow-sm);display:grid;place-items:center}
.badge svg{position:absolute;inset:0;animation:spin 16s linear infinite}
.badge b{font-family:var(--display);font-weight:900;font-size:24px;line-height:.88;text-align:center;text-transform:uppercase}
@keyframes spin{to{transform:rotate(360deg)}}

/* Signature: Siliguri -> Darjeeling -> Sikkim -> Leh -> Everest elevation profile */
.profile{position:relative;z-index:1;margin-top:36px;height:clamp(150px,19vw,260px)}
.profile svg{position:absolute;inset:0;width:100%;height:100%}
/* the sun sinks behind the range but is clipped at the foot of the mountains, never below them */
.sunclip{position:absolute;left:0;right:0;top:-60%;bottom:0;overflow:hidden;pointer-events:none}
/* light snowfall over the high Himalaya */
.snowfall{position:absolute;left:58%;right:0;top:-45%;bottom:0;z-index:1;pointer-events:none;
  background-image:radial-gradient(circle at 18% 22%,#FFFBF3 1.6px,transparent 2.2px),radial-gradient(circle at 71% 63%,#FFFBF3 1.1px,transparent 1.7px),
    radial-gradient(circle at 44% 81%,#FFFBF3 1.9px,transparent 2.5px),radial-gradient(circle at 83% 9%,#FFFBF3 1.3px,transparent 1.9px),radial-gradient(circle at 27% 56%,#FFFBF3 1px,transparent 1.6px);
  background-size:97px 89px,131px 149px,173px 163px,211px 197px,241px 229px;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 22%),linear-gradient(to bottom,transparent,#000 30%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent,#000 22%),linear-gradient(to bottom,transparent,#000 30%);mask-composite:intersect;
  animation:snowfall 14s linear infinite}
@keyframes snowfall{to{background-position:-97px 445px,131px 596px,-173px 489px,211px 591px,-241px 458px}}
@media (prefers-reduced-motion:reduce){.snowfall{animation:none}}
/* the sun sits over the dip between Darjeeling and Sikkim; it sinks behind the hills as you scroll down and rises as you scroll back up */
.profile .sun{position:absolute;left:calc(32.5% - clamp(35px,4.5vw,64px));top:46.25%;translate:0 var(--sy,0px);width:clamp(70px,9vw,128px);aspect-ratio:1;border-radius:50%;background:var(--peach);border:var(--line)}
.pin{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;line-height:1.2;pointer-events:none}
.pin b{font-weight:400;background:var(--card);border:var(--line);border-radius:8px;padding:4px 8px;box-shadow:2px 2px 0 var(--ink);white-space:nowrap}
.pin::after{content:"";width:2px;height:22px;background:var(--ink);margin-left:12px}
.pin.start{left:2.5%;bottom:24%}
.pin.mid,.pin.end{align-items:flex-end;transform:translateX(calc(-100% + 13px))}
.pin.end{top:-24%}
.pin.mid::after,.pin.end::after{margin:0 12px 0 0}
.pin.mid.right{align-items:flex-start;transform:translateX(-13px)}
.pin.mid.right::after{margin:0 0 0 12px}
.pin.tall::after{height:36px}
.runner{position:absolute;left:0;top:82%;z-index:2;pointer-events:none;transform:translate(-50%,-50%)}
.runner i{display:block;width:18px;height:18px;border-radius:50%;background:var(--sun);border:var(--line);box-shadow:0 0 0 6px rgba(242,179,61,.35)}
.runner b{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.12em;white-space:nowrap;background:var(--ink);color:var(--paper);border-radius:6px;padding:4px 8px}
.runner b::after{content:"";position:absolute;left:50%;top:100%;margin-left:-5px;border:5px solid transparent;border-top-color:var(--ink)}

/* marquee */
.marquee{background:var(--sun);border-block:var(--line);overflow:hidden;padding:14px 0}
.marquee .track{display:flex;width:max-content;animation:slide 32s linear infinite}
.marquee:hover .track{animation-play-state:paused}
.marquee span{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:36px;line-height:1;white-space:nowrap;padding-right:26px}
.marquee span i{font-style:normal;color:var(--maroon);padding-left:26px}
@keyframes slide{to{transform:translateX(-50%)}}

/* 2. WHAT'S COMING: trail passes */
.coming{padding:84px 0 96px;overflow:hidden}
.faq{overflow-x:clip}
.coming .head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px 40px}
.coming .head p{max-width:420px;color:var(--muted)}
.coming .head p strong{color:var(--ink)}
.passes{display:grid;grid-template-columns:repeat(2,1fr);gap:36px;margin-top:48px}
.pass{--bg:var(--maroon);--fg:#fff;position:relative;background:var(--bg);color:var(--fg);border:var(--line);border-radius:24px;box-shadow:8px 8px 0 var(--ink);display:flex;flex-direction:column;transition:transform .25s ease;transform-style:preserve-3d;will-change:transform}
.pass:nth-child(1){transform:rotate(-2deg)}
.pass:nth-child(2){--bg:var(--pine);transform:rotate(1.5deg) translateY(12px)}
.pass:nth-child(3){--bg:var(--peach);--fg:var(--ink);transform:rotate(-1deg)}
.pass .body{padding:24px 24px 20px;flex:1}
.pass .top{display:flex;justify-content:space-between;align-items:center}
.pass .no{font-family:var(--mono);font-size:12px;letter-spacing:.2em;opacity:.85}
.pass svg{width:52px;height:52px}
.pass h3{font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:56px;line-height:.9;margin-top:26px}
.pass p{margin-top:8px;font-size:16px}
.pass .stub{position:relative;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 24px 16px;border-top:2px dashed currentColor;font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.pass .stub::before,.pass .stub::after{content:"";position:absolute;top:-13px;width:24px;height:24px;border-radius:50%;background:var(--paper);border:var(--line)}
.pass .stub::before{left:-13px;clip-path:inset(0 0 0 50%)}
.pass .stub::after{right:-13px;clip-path:inset(0 50% 0 0)}
.pass .stub b{font-weight:400;background:var(--card);color:var(--ink);border:var(--line);border-radius:999px;padding:4px 12px}

/* 3. FAQ (compact accordion) */
.faq{padding:0 0 96px}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}
.faq-intro p{margin-top:14px;color:var(--muted);max-width:340px}
.faq-list{display:grid;gap:12px}
.faq details{background:var(--card);border:var(--line);border-radius:18px;box-shadow:var(--shadow-sm);transition:box-shadow .15s,transform .15s}
.faq details[open]{box-shadow:var(--shadow)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:24px;line-height:1.05}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:var(--line);background:var(--sun);font-family:var(--body);font-size:20px;font-weight:700;transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 20px 18px;color:var(--muted);max-width:620px}

/* 4. JOIN + FOOTER */
.join{background:var(--maroon);color:#fff;padding:88px 0 0;overflow:hidden}
.join.topo{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640' viewBox='0 0 640 640' fill='none' stroke='%23FFFFFF' stroke-opacity='.07' stroke-width='1.5'%3E%3Cpath d='M320 110c100 0 190 66 190 166s-70 214-190 214-200-80-200-190 100-190 200-190z'/%3E%3Cpath d='M320 165c68 0 128 45 128 116s-50 146-128 146-138-55-138-132 70-130 138-130z'/%3E%3Cpath d='M320 222c38 0 70 26 70 64s-28 78-70 78-76-30-76-72 38-70 76-70z'/%3E%3Cpath d='M0 590c90-64 150-40 226-86s166-22 250-98 164-44 164-44'/%3E%3Cpath d='M0 500c70-34 128-12 182-56s120-64 172-118'/%3E%3C/svg%3E")}
.join .label{color:var(--sun)}
.join .h2 em{color:var(--sun)}
.join .center{text-align:center}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:44px;counter-reset:s}
.step{background:var(--card);color:var(--ink);border:var(--line);border-radius:22px;box-shadow:8px 8px 0 var(--ink);padding:22px 24px;display:flex;gap:16px;align-items:flex-start}
.step:nth-child(2){transform:rotate(1deg)}
.step .n{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:var(--line);background:var(--peach);font-family:var(--display);font-weight:900;font-size:24px}
.step h3{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:28px;line-height:1}
.step p{margin-top:4px;color:var(--muted);font-size:15px}
.step code{font-family:var(--mono);background:var(--sun);color:var(--ink);padding:0 6px;border:1.5px solid var(--ink);border-radius:6px}
.join .ctas{margin-top:48px;text-align:center}
.join .ctas .btn{font-size:18px;padding:14px 28px}
.join .fine{margin-top:18px;font-size:15px;color:#F3DCCB}
footer{margin-top:80px;background:var(--ink);color:var(--paper);padding:28px 0 max(28px,env(safe-area-inset-bottom))}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px}
footer img{height:24px;width:auto}
footer nav{display:flex;gap:20px;font-size:15px}
footer nav a{text-decoration:none}
footer nav a:hover{color:var(--peach)}
footer small{color:#B3A79B;font-size:14px}

/* ===== Motion system ===== */
:root{--base:80ms}
.intro{--base:520ms}

/* Smooth scroll (Lenis) */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

/* 1. Curtain preloader: maroon panel with a curved hem, elevation counter 122 -> 2,042 m */
.loader{display:none}
.intro .loader{display:grid;place-items:center;position:fixed;inset:0 0 auto;height:calc(100lvh + 14vh);z-index:900;background:var(--maroon);color:var(--paper);
  border-radius:0 0 50% 50% / 0 0 14vh 14vh;transition:transform 1s cubic-bezier(.76,0,.24,1);animation:loader-failsafe .01s 4.5s forwards}
.intro.go .loader{transform:translateY(-100%)}
@keyframes loader-failsafe{to{transform:translateY(-100%)}}
.loader-in{display:grid;justify-items:center;gap:14px;text-align:center;margin-top:-14vh}
.loader img{width:84px;height:auto;animation:peak-in .7s cubic-bezier(.2,1.5,.4,1) both}
.loader b{font-family:var(--display);font-weight:900;font-size:clamp(60px,11vw,128px);line-height:.85;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.loader .label{color:var(--sun);font-size:12px}
.loader-bar{width:min(240px,60vw);height:4px;background:rgba(255,255,255,.18);border-radius:4px;overflow:hidden}
.loader-bar i{display:block;height:100%;background:var(--sun);transform-origin:left;animation:bar .95s cubic-bezier(.3,.6,.3,1) both}
@keyframes peak-in{from{opacity:0;transform:translateY(30px) scale(.6)}}
@keyframes bar{from{transform:scaleX(0)}}

/* 2. Hero choreography: words drop in with a bounce, then everything settles */
.js .hero h1 .row .w{display:inline-block;opacity:0;transform:translateY(-.55em) rotate(-9deg)}
.go .hero h1 .row .w{animation:drop .85s cubic-bezier(.2,1.5,.35,1) forwards;animation-delay:calc(var(--base) + 120ms + var(--i) * 85ms)}
@keyframes drop{to{opacity:1;transform:none}}
.js .hero .rise{opacity:0;translate:0 26px}
.js .hero .rise.side{translate:46px 0}
.go .hero .rise{animation:rise .8s cubic-bezier(.2,.9,.3,1) forwards;animation-delay:calc(var(--base) + var(--d,0ms))}
@keyframes rise{to{opacity:1;translate:0 0}}
.js .hero .badge{opacity:0}
.go .hero .badge{animation:pop .7s cubic-bezier(.2,1.6,.4,1) both;animation-delay:calc(var(--base) + 1050ms)}
@keyframes pop{from{opacity:0;scale:.3}to{opacity:1;scale:1}}

/* 3. Headings rise word by word */
.js .h2.split{opacity:1!important;translate:none!important}
.js .split .w{display:inline-block;opacity:0;transform:translateY(.75em) rotate(7deg);transform-origin:0 100%;
  transition:opacity .5s ease,transform .8s cubic-bezier(.2,1.25,.35,1);transition-delay:calc(var(--i) * 70ms)}
.js .split.in .w{opacity:1;transform:none}

/* 4. Cards swing in from a steep tilt and settle */
.js .pass.reveal,.js .step.reveal{translate:0 110px;rotate:-9deg;transition:opacity .6s ease,translate .9s cubic-bezier(.2,1.1,.3,1),rotate .9s cubic-bezier(.2,1.3,.3,1);transition-delay:calc(var(--i,0) * 110ms)}
.js .pass.reveal:nth-child(even),.js .step.reveal:nth-child(even){rotate:9deg}
.js .pass.reveal.in,.js .step.reveal.in{translate:0 0;rotate:0deg}

/* 5. Draggable stickers */
[data-drag]{touch-action:none;user-select:none;-webkit-user-select:none}
.has-cursor [data-drag]{cursor:grab}
.dragging{z-index:30!important}
.tag.dragging{scale:1.12;box-shadow:7px 7px 0 var(--ink)}
.badge.dragging{box-shadow:8px 8px 0 var(--ink)}

/* 6. Custom cursor: a little RUNAVA runner that becomes a label pill */
.cursor{position:fixed;left:0;top:0;z-index:1000;pointer-events:none;display:none;will-change:transform;transition:opacity .2s}
.has-cursor .cursor{display:block}
.has-cursor,.has-cursor *{cursor:none!important}
.cursor.out{opacity:0}
/* standing figure when the mouse is still, runner while it moves (faces the way you move) */
.cursor .dot{position:absolute;width:34px;height:34px;translate:-50% -50%;transition:scale .2s cubic-bezier(.2,1.4,.4,1);--fig:var(--ink)}
.cursor .dot svg{position:absolute;inset:0;width:100%;height:100%;max-width:none;transition:opacity .08s}
.cursor .fig{fill:var(--fig);transition:fill .2s}
.cursor.alt .dot{--fig:var(--sun)}
.cursor .run{opacity:0;animation:stride .3s ease-in-out infinite alternate}
.cursor.moving .run{opacity:1}
.cursor.moving .stand{opacity:0}
.cursor.left .run{scale:-1 1}
@keyframes stride{from{transform:translateY(0) rotate(0)}to{transform:translateY(-2px) rotate(-4deg)}}
@media (prefers-reduced-motion:reduce){.cursor .run{animation:none}}
.cursor .lbl{position:absolute;translate:-50% -50%;rotate:-6deg;scale:0;white-space:nowrap;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:9px 15px;border-radius:999px;box-shadow:3px 3px 0 var(--sun);transition:scale .22s cubic-bezier(.2,1.5,.4,1)}
.cursor.on .lbl{scale:1}
.cursor.on .dot{scale:0}
.cursor.down .dot{scale:.75}
.cursor.down .lbl{scale:.9}

/* reveal (only when JS runs, so content never stays hidden) */
.js .reveal{opacity:0;translate:0 24px;transition:opacity .6s ease,translate .6s ease}
.js .reveal.in{opacity:1;translate:0 0}

@media (max-width:960px){
  .nav ul{display:none}
  .hero-grid{grid-template-columns:1fr;gap:56px;align-content:center}
  .hero-side{max-width:440px}
  .passes,.steps{grid-template-columns:1fr;gap:18px}
  .pass,.step:nth-child(2){transform:none!important}
  .pass .body{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 16px;padding:18px 20px 14px}
  .pass .top{grid-column:2;grid-row:1}
  .pass .top .no{display:none}
  .pass h3{grid-column:1;grid-row:1;margin:0;font-size:44px}
  .pass p{grid-column:1/-1;margin:0}
  .pass svg{width:40px;height:40px}
  .pass .stub{padding:12px 20px 14px}
  .faq-grid{grid-template-columns:1fr;gap:24px}
}
@media (max-width:620px){
  body{font-size:16px}
  .hero{padding-top:96px}
  .nav .bar{padding-left:16px}
  .nav .btn{padding:8px 14px;font-size:14px}
  .tags{font-size:24px;margin-top:16px}
  .hero-copy{font-size:17px}
  .hero-ctas{gap:10px}
  .hero-ctas .btn{flex:1 1 0;padding:12px 10px;font-size:15px;white-space:nowrap}
  .hero-ctas .btn .arrow{display:none}
  .faq-intro p:not(.label){display:none}
  .hero-grid{gap:48px}
  .badge{width:100px;height:100px;top:-50px;right:-4px}
  .badge b{font-size:20px}
  .ticket{--tr:1.5deg;padding:18px}
  .ticket .date{width:82px;height:82px;font-size:26px}
  .ticket h2{font-size:30px}
  .ticket p{display:none}
  .ticket .when{margin-top:6px}
  .ticket .foot{margin-top:12px;padding-top:10px}
  .profile{margin-top:72px;height:120px}
  .pin{font-size:9px;letter-spacing:.1em}
  .pin::after{height:14px}
  .pin.start{bottom:30%}
  .pin.mid{display:none}
  .pin.end{top:-30%}
  .runner b{font-size:10px}
  .coming{padding:48px 0 52px}
  .passes{margin-top:28px;gap:14px}
  .pass h3{font-size:38px}
  .pass p{font-size:15px}
  .marquee{padding:10px 0}
  .marquee span{font-size:26px}
  .faq{padding-bottom:56px}
  .faq summary{font-size:20px;padding:14px 16px}
  .faq details p{padding:0 16px 16px;font-size:15px}
  .join{padding-top:52px}
  .steps{margin-top:28px;gap:12px}
  .step{padding:14px 16px;gap:12px;box-shadow:5px 5px 0 var(--ink)}
  .step .n{width:36px;height:36px;font-size:20px}
  .step h3{font-size:24px}
  .step p{font-size:14px}
  .join .ctas{margin-top:32px}
  .join .fine{font-size:14px}
  footer{margin-top:44px;padding-top:22px}
  footer .wrap{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .reveal{opacity:1;translate:none;rotate:none}
  .js .hero .rise,.js .hero .badge,.js .hero h1 .row .w,.js .split .w{opacity:1!important;transform:none!important;translate:none!important}
}

/* ===== Coming-soon homepage (/) ===== */
.soon-in{z-index:2;flex:1;display:grid;place-content:center;justify-items:center;text-align:center;padding:24px 0}
.hero.soon{padding-top:96px;height:100svh;min-height:600px}
.soon h1{font-size:clamp(72px,min(12vw,19vh),200px);line-height:.82}
.soon h1 .kicker{margin-bottom:18px}
.soon .hero-copy{margin-inline:auto;max-width:460px;margin-top:18px}
.soon .hero-ctas{justify-content:center;margin-top:20px}
.soon .profile{margin-top:0;flex:none;height:clamp(140px,min(14vw,26vh),230px)}
@media (max-width:620px){
  .soon h1{font-size:clamp(76px,24vw,120px)}
  .soon .hero-ctas .btn{flex:0 1 auto;padding:12px 22px}
  .soon .hero-ctas .btn .arrow{display:inline-grid}
}

/* ===== Founder (club page) ===== */
.founder{padding:0 0 96px;overflow-x:clip}
.founder-grid{display:grid;grid-template-columns:1fr minmax(0,420px);gap:64px;align-items:center}
.founder-intro p:not(.label){margin-top:16px;color:var(--muted);max-width:440px}
.founder-card{position:relative;justify-self:center;width:100%;max-width:420px;background:var(--card);border:var(--line);border-radius:22px;box-shadow:8px 8px 0 var(--ink);padding:16px 16px 22px;transform:rotate(-2deg);transition:transform .3s ease}
.founder-card:hover{transform:rotate(0deg)}
.founder-card .tape{position:absolute;z-index:2;top:-16px;left:50%;width:120px;height:30px;background:rgba(242,179,61,.75);transform:translateX(-50%) rotate(4deg);border:1px solid rgba(0,0,0,.08)}
.founder-card .photo{position:relative;margin:0;aspect-ratio:4/5;border:var(--line);border-radius:14px;overflow:hidden;background:var(--paper-2)}
.founder-card .photo img{width:100%;height:100%;object-fit:cover}
.founder-card .photo .tag{position:absolute;right:14px;bottom:16px;font-size:24px}
.founder-info{padding:18px 6px 0}
.founder-info .label{color:var(--maroon);font-size:12px;letter-spacing:.22em}
.founder-info h3{margin-top:6px;font-family:var(--display);font-weight:900;text-transform:uppercase;font-size:48px;line-height:.9}
.founder-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.founder-links .btn{min-height:42px;padding:8px 16px;font-size:15px}
@media (max-width:960px){.founder-grid{grid-template-columns:1fr;gap:36px}}
@media (max-width:620px){.founder{padding-bottom:56px}.founder-card{transform:rotate(-1deg)}.founder-info h3{font-size:40px}}
