:root{
  --bg:#0b0a09;
  --ink:#f5efe6;
  --ink-2:#cdc3b3;
  --ink-dim:#7a7065;
  --line:#241f1a;
  --accent:#ff5a1f;
  --accent-2:#ffb56b;
  --pink:#ff6b9d;
  --violet:#7c5cff;
  --sans:"Inter", system-ui, sans-serif;
  --serif:"Shippori Mincho", "Hiragino Mincho ProN", "Times New Roman", serif;
  --mono:"JetBrains Mono", ui-monospace, monospace;
}

*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-x:hidden}
body{font-size:16px;line-height:1.55;cursor:none}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.serif{font-family:var(--serif);font-weight:700;letter-spacing:-.02em}
.serif i{font-style:italic;font-weight:700}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.25em;color:var(--accent-2);text-transform:uppercase}
.eyebrow.center{display:block;text-align:center}

::selection{background:var(--accent);color:#000}

/* ===== Cursor ===== */
.cursor{position:fixed;left:0;top:0;width:48px;height:48px;border:1px solid var(--ink);border-radius:999px;pointer-events:none;z-index:9999;transform:translate3d(-100px,-100px,0);mix-blend-mode:difference;will-change:transform}
.cursor__label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);opacity:0;transform:scale(.6);transition:opacity .2s,transform .2s}
.cursor.is-hover{background:var(--ink)}
.cursor.is-hover .cursor__label{opacity:1;transform:scale(1);color:#000;mix-blend-mode:difference}
.cursor-dot{position:fixed;left:0;top:0;width:6px;height:6px;background:var(--accent);border-radius:999px;pointer-events:none;z-index:10000;transform:translate3d(-100px,-100px,0);will-change:transform}

@media (pointer:coarse){
  .cursor,.cursor-dot{display:none}
  body{cursor:auto}
}

/* ===== Cursor blob ===== */
.blob{position:fixed;left:50%;top:50%;width:560px;height:560px;border-radius:999px;pointer-events:none;z-index:1;mix-blend-mode:screen;filter:blur(70px);transform:translate3d(-50%,-50%,0);background:radial-gradient(circle, rgba(255,107,61,.55), rgba(124,92,255,.35) 45%, transparent 70%);opacity:.7;will-change:transform}

/* ===== Noise ===== */
.noise{position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/></svg>")}

/* ===== Loader ===== */
.loader{position:fixed;inset:0;z-index:1000;background:#0b0a09;display:grid;grid-template-rows:auto 1fr auto auto;padding:24px 28px}
.loader__top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--ink-dim)}
.loader__center{display:flex;align-items:center;justify-content:center}
.loader__title{font-family:var(--serif);font-weight:800;letter-spacing:-.04em;line-height:.85;text-align:center;font-size:clamp(80px,16vw,260px)}
.loader__line{display:block;overflow:hidden}
.loader__line i{display:inline-block;font-style:normal}
.loader__bottom{display:flex;align-items:baseline;gap:6px;font-family:var(--mono);color:var(--ink);font-size:14px}
.loader__count{font-size:clamp(48px,8vw,120px);line-height:1;font-weight:800;letter-spacing:-.04em;font-family:var(--sans);font-variant-numeric:tabular-nums}
.loader__pct{font-size:24px;color:var(--accent-2)}
.loader__label{margin-left:auto;letter-spacing:.3em;color:var(--ink-dim)}
.loader__bar{margin-top:18px;height:1px;background:var(--line)}
.loader__bar span{display:block;width:0;height:100%;background:var(--accent)}

/* ===== Nav ===== */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:space-between;align-items:center;padding:22px 32px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--ink);mix-blend-mode:difference}
.nav__brand{font-weight:700}
.nav__menu{display:flex;gap:24px;list-style:none}
.nav__menu a{position:relative;padding:6px 0;opacity:.85;transition:opacity .2s}
.nav__menu a:hover{opacity:1}
.nav__time{font-variant-numeric:tabular-nums}

@media (max-width:780px){
  .nav__menu,.nav__time{display:none}
}

/* ===== Hero ===== */
.hero{position:relative;min-height:100svh;padding:120px 32px 40px;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden}
.hero__bg{position:absolute;inset:-8%;z-index:0;background:
  radial-gradient(ellipse 70% 50% at 75% 30%, rgba(255,107,61,.45), transparent 60%),
  radial-gradient(ellipse 50% 50% at 15% 80%, rgba(124,92,255,.5), transparent 60%),
  linear-gradient(180deg,#1a120a 0%,#0b0a09 70%);
}
.hero__bg::after{content:"";position:absolute;inset:0;background:url('https://picsum.photos/seed/heroblur01/2000/1200') center/cover;mix-blend-mode:overlay;opacity:.32}
.hero > *{position:relative;z-index:2}

.hero__head{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--ink-2);text-transform:uppercase}
.hero__title{align-self:center;font-family:var(--serif);font-weight:800;line-height:.88;letter-spacing:-.045em;font-size:clamp(96px,18vw,320px);text-align:left;margin-top:6vh}
.hero__title .mask{display:block;overflow:hidden;padding:0 0 .03em}
.hero__title .reveal{display:inline-block;will-change:transform}
.hero__title i{font-style:italic}
.hero__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;color:var(--ink-2)}
.hero__caption{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;max-width:520px;line-height:1.5}
.hero__caption .dot{width:8px;height:8px;border-radius:999px;background:var(--accent);box-shadow:0 0 12px var(--accent);animation:blink 1.4s ease-in-out infinite}
@keyframes blink{50%{opacity:.3}}
.hero__scroll{display:flex;flex-direction:column;align-items:center;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-2)}
.hero__scroll svg{animation:scrollY 1.4s ease-in-out infinite}
@keyframes scrollY{0%{transform:translateY(-4px)}50%{transform:translateY(4px)}100%{transform:translateY(-4px)}}

/* ===== Marquee ===== */
.marquee{padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:#0b0a09}
.marquee__track{display:flex;width:max-content;white-space:nowrap;font-family:var(--serif);font-weight:700;font-size:clamp(56px,10vw,160px);letter-spacing:-.02em;line-height:1;will-change:transform}
.marquee__track span{padding-right:.5em;flex:none}
.marquee__track span:nth-child(2n){color:transparent;-webkit-text-stroke:1px var(--ink)}

/* ===== Manifesto (giant scaling text) ===== */
.manifesto{position:relative;padding:0}
.manifesto__pin{height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0 6vw;gap:18px}
.manifesto__big{font-size:clamp(40px,8vw,140px);line-height:1.05;letter-spacing:-.03em;max-width:18ch;will-change:transform;transform-origin:left center}
.manifesto__big .word{display:inline-block;opacity:.18;transition:opacity .25s ease;color:var(--ink)}
.manifesto__big .word.on{opacity:1}
.manifesto__sub{font-family:var(--mono);color:var(--ink-dim);font-size:13px;letter-spacing:.15em;text-transform:uppercase}

/* ===== Stacking cards ===== */
.stack{padding:160px 0 0;position:relative}
.stack__intro{display:flex;justify-content:space-between;align-items:flex-end;padding:0 32px 40px;flex-wrap:wrap;gap:24px}
.stack__intro h2{font-size:clamp(56px,9vw,160px);line-height:1;letter-spacing:-.03em}
.stack__intro h2 i{color:var(--accent-2);font-style:italic}

.stack__cards{position:relative}
.scard{position:sticky;top:8vh;height:84vh;margin:0 32px;border-radius:18px;overflow:hidden;background:var(--c,#222);box-shadow:0 50px 80px -40px rgba(0,0,0,.6);transform-origin:center top;will-change:transform}
.scard + .scard{margin-top:60px}
.scard__num{position:absolute;top:24px;left:24px;font-family:var(--mono);font-size:12px;letter-spacing:.3em;background:rgba(255,255,255,.1);padding:6px 10px;border-radius:999px;backdrop-filter:blur(8px);z-index:3;color:#fff}
.scard__img{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(1.1) contrast(1.05)}
.scard__img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, transparent 35%, rgba(0,0,0,.75) 100%)}
.scard__body{position:absolute;left:32px;right:32px;bottom:32px;z-index:2;color:#fff;display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.scard__body h3{font-size:clamp(40px,8vw,140px);line-height:.9;letter-spacing:-.03em}
.scard__body p{max-width:40ch;color:rgba(255,255,255,.85);font-family:var(--mono);font-size:13px;letter-spacing:.05em}

/* ===== Places (horizontal) ===== */
.places{padding:160px 0;overflow:hidden}
.places__head{padding:0 32px 48px;display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px}
.places__head h2{font-size:clamp(56px,10vw,180px);line-height:1;letter-spacing:-.03em}
.places__wrap{overflow:hidden}
.places__track{display:flex;gap:24px;padding:0 32px;width:max-content;will-change:transform}
.pcard{flex:0 0 clamp(280px,28vw,420px);background:#13110e;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.pcard__img{aspect-ratio:3/4;background-size:cover;background-position:center;filter:grayscale(.3);transition:filter .5s ease,transform .5s ease}
.pcard:hover .pcard__img{filter:grayscale(0);transform:scale(1.03)}
.pcard figcaption{padding:14px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:var(--ink-dim);text-transform:uppercase}
.pcard--cta{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--pink));border:0;flex:0 0 clamp(220px,18vw,300px)}
.pcard__cta{display:flex;flex-direction:column;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#000;font-weight:700}

/* ===== Journey ===== */
.journey{padding:160px 32px 200px;position:relative}
.journey__head{max-width:900px;margin-bottom:48px}
.journey__head h2{font-size:clamp(48px,7vw,120px);line-height:.95;letter-spacing:-.03em}
.journey__head h2 i{color:var(--accent-2);font-style:italic}
.journey__svg-wrap{max-width:1200px;margin:0 auto;position:relative}
.journey__svg{width:100%;height:auto}
.journey__svg text{font-family:var(--mono);font-size:14px;letter-spacing:.08em;fill:#fff;font-weight:700}
.journey__curveText{fill:var(--ink-dim);font-size:13px;letter-spacing:.5em}
.journey__pins g{opacity:0}

/* ===== Stories ===== */
.stories{padding:160px 32px;background:#0e0c0a;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.stories__head{max-width:1280px;margin:0 auto 64px}
.stories__head h2{font-size:clamp(56px,9vw,160px);line-height:.95;letter-spacing:-.03em}
.stories__head h2 i{color:var(--accent-2);font-style:italic}
.story-list{list-style:none;max-width:1280px;margin:0 auto;border-top:1px solid var(--line)}
.story-list li{border-bottom:1px solid var(--line)}
.srow{display:grid;grid-template-columns:80px 1fr 160px;gap:24px;align-items:center;padding:36px 8px;font-family:var(--sans);transition:padding .35s ease, color .35s ease;color:var(--ink)}
.srow:hover{padding-left:32px;color:var(--accent-2)}
.srow__num{font-family:var(--mono);font-size:12px;letter-spacing:.25em;color:var(--ink-dim)}
.srow__title{font-size:clamp(22px,2.5vw,42px);line-height:1.2}
.srow__meta{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--ink-dim);text-transform:uppercase;text-align:right}
.srow__preview{position:fixed;width:320px;height:220px;left:0;top:0;background:#222 center/cover no-repeat;border-radius:8px;pointer-events:none;opacity:0;z-index:50;will-change:transform,opacity;transform:translate3d(-1000px,-1000px,0);box-shadow:0 30px 60px rgba(0,0,0,.6)}

@media (max-width:680px){
  .srow{grid-template-columns:60px 1fr;}
  .srow__meta{grid-column:2;text-align:left;color:var(--ink-dim);font-size:10px}
}

/* ===== CTA ===== */
.cta{padding:180px 32px 60px;position:relative;text-align:center;overflow:hidden}
.cta__inner{position:relative;z-index:2}
.cta__title{font-size:clamp(56px,12vw,220px);line-height:1;letter-spacing:-.045em;margin:24px 0 18px;background:linear-gradient(120deg,#ffb56b,#ff6b9d,#7c5cff);-webkit-background-clip:text;background-clip:text;color:transparent}
.cta__sub{color:var(--ink-2);font-family:var(--serif);font-size:18px}
.cta__btn{display:inline-flex;align-items:center;gap:14px;margin-top:36px;padding:18px 30px;border:1px solid var(--ink);border-radius:999px;font-family:var(--mono);font-size:13px;letter-spacing:.2em;text-transform:uppercase;transition:background .25s,color .25s}
.cta__btn:hover{background:var(--ink);color:#000}
.cta__btn svg{transition:transform .25s}
.cta__btn:hover svg{transform:translateX(4px)}

.cta__big{display:flex;justify-content:center;align-items:center;gap:.3em;font-size:clamp(80px,20vw,360px);line-height:.85;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px var(--line);margin-top:120px;opacity:.6;user-select:none}
.cta__foot{margin-top:80px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--ink-dim);text-transform:uppercase}
.cta__foot a{color:var(--accent-2)}

/* ===== Velocity skew (applied via JS) ===== */
.skew{transform-origin:center center}

/* ===== Reduced motion ===== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
