/* RIPPO KUN · NEON ARCADE BREAKER
   palette: hot magenta + electric yellow + cyan acid on near-black.
   sigil: custom "R" mark — arcade chunky pixel R (no zap, no moon, no cross).
   icons: Lucide SVG, currentColor for theme inheritance.
   loader: arcade CRT boot screen on page load.
   typography: Bowlby One (display), Outfit (body), JetBrains Mono (stats).
   differentiated from moonji (violet/gold/crown), daksouldy (broadcast HUD),
   ciwing-rush (green/cyan/CRT), ejad-lychee (neon/cyber).
*/
:root{
  --bg-0:#08000f;
  --bg-1:#10001a;
  --bg-2:#1c0028;
  --ink-0:#fff7fb;
  --ink-1:#e9d6ea;
  --ink-2:#9a7ea0;
  --pink:#ff3c8c;
  --pink-soft:#ff73b1;
  --yellow:#fff03c;
  --yellow-soft:#ffe46f;
  --cyan:#3cfff0;
  --acid:#b8ff64;
  --line:rgba(255,60,140,.35);
  --line-soft:rgba(255,240,60,.18);
  --serif:'Bowlby One',sans-serif;
  --body:'Outfit',sans-serif;
  --mono:'JetBrains Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg-0);color:var(--ink-0);font-family:var(--body);overflow-x:hidden}
body{
  background:
    radial-gradient(ellipse 80% 50% at 20% 0%,rgba(255,60,140,.18),transparent 60%),
    radial-gradient(ellipse 60% 50% at 80% 100%,rgba(60,255,240,.12),transparent 60%),
    linear-gradient(180deg,var(--bg-0),var(--bg-1) 40%,var(--bg-0));
  min-height:100vh;
  background-attachment:fixed;
}
body.is-loading{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--yellow);color:var(--bg-0)}

/* lucide icon defaults — used via <svg><use/></svg> */
.icon{display:inline-block;vertical-align:middle;flex-shrink:0;width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon--filled{fill:currentColor;stroke:none}
svg.icon use{width:100%;height:100%}

/* arcade scanline overlay */
body::after{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.18) 2px,rgba(0,0,0,.18) 3px);
  mix-blend-mode:multiply;opacity:.35;
}
#noise{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.08;mix-blend-mode:overlay}

/* ============================================
   LOADER — arcade CRT boot screen
   ============================================ */
.boot{
  position:fixed;inset:0;z-index:200;
  background:radial-gradient(ellipse at center,#160024 0%,#08000f 70%);
  display:grid;place-items:center;
  transition:opacity .5s ease,visibility .5s ease;
}
.boot.is-gone{opacity:0;visibility:hidden;pointer-events:none}
.boot__scan{
  position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(255,255,255,.04) 2px,rgba(255,255,255,.04) 3px);
  animation:scanShift 4s linear infinite;
}
@keyframes scanShift{0%{background-position:0 0}100%{background-position:0 100%}}
.boot__crt{
  position:absolute;inset:-2%;
  background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.85) 100%);
  pointer-events:none;
}
.boot__grid{
  position:absolute;inset:0;pointer-events:none;opacity:.18;
  background-image:
    linear-gradient(rgba(255,60,140,.5) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,60,140,.5) 1px,transparent 1px);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%);
  -webkit-mask-image:radial-gradient(ellipse at center,black 0%,transparent 70%);
}
.boot__inner{
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:24px;
  animation:bootFadeIn .4s ease;
}
@keyframes bootFadeIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}

.boot__sigil{
  width:120px;height:120px;border-radius:24px;display:grid;place-items:center;
  background:var(--yellow);color:var(--bg-0);
  box-shadow:0 0 60px var(--yellow),0 0 120px rgba(255,240,60,.5),inset 0 0 0 4px var(--bg-0);
  animation:bootPulse 1.4s ease-in-out infinite;
  position:relative;
}
.boot__sigil::after{
  content:"";position:absolute;inset:0;border-radius:24px;
  background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);
  animation:bootShine 2.2s linear infinite;
}
@keyframes bootPulse{0%,100%{transform:scale(1);box-shadow:0 0 60px var(--yellow),0 0 120px rgba(255,240,60,.5),inset 0 0 0 4px var(--bg-0)}50%{transform:scale(1.06);box-shadow:0 0 80px var(--yellow),0 0 160px rgba(255,240,60,.7),inset 0 0 0 4px var(--bg-0)}}
@keyframes bootShine{0%{transform:translateX(-130%)}100%{transform:translateX(130%)}}
.boot__sigil svg{width:68px;height:68px;position:relative;z-index:1}

.boot__title{
  font-family:var(--serif);font-size:clamp(40px,7vw,72px);letter-spacing:-1px;line-height:1;
  color:var(--pink);text-shadow:0 0 30px rgba(255,60,140,.6);
  position:relative;
}
.boot__title span{display:inline-block;color:var(--yellow);text-shadow:0 0 30px rgba(255,240,60,.6)}
.boot__title::before{
  content:attr(data-text);position:absolute;inset:0;color:var(--cyan);
  text-shadow:none;clip-path:polygon(0 0,100% 0,100% 35%,0 35%);opacity:.7;
  animation:bootGlitch 1.8s steps(8) infinite;
}
.boot__title::after{
  content:attr(data-text);position:absolute;inset:0;color:var(--pink);text-shadow:none;
  clip-path:polygon(0 65%,100% 65%,100% 100%,0 100%);opacity:.6;
  animation:bootGlitch2 2.2s steps(8) infinite;
}
@keyframes bootGlitch{0%,100%{transform:translate(0)}20%{transform:translate(-3px,1px)}40%{transform:translate(2px,-1px)}60%{transform:translate(-1px,0)}80%{transform:translate(1px,1px)}}
@keyframes bootGlitch2{0%,100%{transform:translate(0)}25%{transform:translate(2px,-1px)}50%{transform:translate(-2px,1px)}75%{transform:translate(1px,0)}}

.boot__sub{
  font-family:var(--mono);font-size:12px;letter-spacing:6px;color:var(--cyan);
  text-transform:uppercase;display:flex;gap:14px;align-items:center;
}
.boot__dot{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);animation:dotBlink .9s ease-in-out infinite}
@keyframes dotBlink{0%,100%{opacity:.3}50%{opacity:1}}
.boot__progress{
  width:240px;height:4px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden;
  position:relative;
}
.boot__bar{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--pink),var(--yellow));border-radius:99px;box-shadow:0 0 12px var(--yellow);transition:width .3s ease}
.boot__hint{font-family:var(--mono);font-size:10px;color:var(--ink-2);letter-spacing:3px;text-transform:uppercase}

/* body content fades up after boot */
main, .nav, .hero, .runebar, .section, .foot{opacity:0;transition:opacity .6s ease}
body.is-loaded main, body.is-loaded .nav, body.is-loaded .hero, body.is-loaded .runebar, body.is-loaded .section, body.is-loaded .foot{opacity:1}

/* NAV */
.nav{
  position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;
  padding:14px 28px;backdrop-filter:blur(10px);
  background:linear-gradient(180deg,rgba(8,0,15,.85),rgba(8,0,15,.55));
  border-bottom:1px solid var(--line);
}
.nav__brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:20px;letter-spacing:.5px}
.nav__sigil{
  width:34px;height:34px;display:grid;place-items:center;
  background:var(--yellow);color:var(--bg-0);border-radius:8px;
  box-shadow:0 0 18px var(--yellow),inset 0 0 0 2px var(--bg-0);
}
.nav__sigil svg{width:20px;height:20px;fill:currentColor;stroke:none}
.nav__menu{display:flex;gap:22px;font-family:var(--mono);font-size:13px;text-transform:uppercase;align-items:center}
.nav__menu a{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid transparent;border-radius:6px;transition:all .2s}
.nav__menu a:hover{border-color:var(--pink);color:var(--pink);background:rgba(255,60,140,.08)}

/* HERO */
.hero{
  position:relative;z-index:2;padding:80px 28px 60px;max-width:1280px;margin:0 auto;
  display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:center;
}
@media(max-width:840px){.hero{grid-template-columns:1fr;gap:32px;padding:48px 20px}}

.hero__portrait{
  position:relative;width:100%;aspect-ratio:1;display:grid;place-items:center;
}
.hero__portrait::before{
  content:"";position:absolute;inset:-14px;border-radius:50%;
  background:conic-gradient(from 0deg,var(--pink),var(--yellow),var(--cyan),var(--pink));
  filter:blur(2px);animation:spin 6s linear infinite;z-index:-1;
}
.hero__portrait::after{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  border:3px solid var(--bg-0);z-index:1;
}
.hero__img{
  width:100%;height:100%;border-radius:50%;object-fit:cover;
  position:relative;z-index:2;border:4px solid var(--bg-0);
  box-shadow:0 0 60px rgba(255,60,140,.4);
}
@keyframes spin{to{transform:rotate(360deg)}}

.hero__sigilbadge{
  position:absolute;top:-8px;right:-8px;z-index:3;
  width:96px;height:96px;border-radius:24px;display:grid;place-items:center;
  background:var(--yellow);color:var(--bg-0);
  box-shadow:0 0 30px var(--yellow),0 0 60px rgba(255,240,60,.4);
  transform:rotate(-8deg);
}
.hero__sigilbadge svg{width:56px;height:56px;fill:currentColor;stroke:none}

.hero__body{display:flex;flex-direction:column;gap:18px}
.hero__eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:13px;letter-spacing:4px;text-transform:uppercase;color:var(--cyan);
}
.hero__eyebrow .icon{width:14px;height:14px;color:var(--yellow)}
.hero__title{
  font-family:var(--serif);
  font-size:clamp(56px,11vw,160px);line-height:.9;letter-spacing:-2px;
  text-transform:uppercase;color:var(--pink);
  text-shadow:4px 4px 0 var(--yellow),8px 8px 0 var(--bg-0),12px 12px 0 rgba(255,60,140,.3);
}
.hero__title em{font-style:normal;color:var(--yellow);display:block}
.hero__alias{font-family:var(--mono);font-size:18px;color:var(--ink-2);letter-spacing:1px}
.hero__alias b{color:var(--acid)}
.hero__alias .icon{width:14px;height:14px;margin-right:4px;color:var(--cyan)}
.hero__quote{
  font-family:var(--body);font-style:italic;font-size:20px;color:var(--ink-1);
  border-left:3px solid var(--pink);padding-left:16px;margin:8px 0;
}
.hero__quote::before{content:"\201C";color:var(--pink);margin-right:4px}
.hero__quote::after{content:"\201D";color:var(--pink);margin-left:4px}

.hero__plate{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border:1px solid var(--line);background:rgba(16,0,26,.6);
  border-radius:14px;overflow:hidden;margin-top:8px;
}
.hero__plate > div{padding:14px 16px;border-right:1px solid var(--line)}
.hero__plate > div:last-child{border-right:none}
.hero__plate small{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--ink-2);letter-spacing:2px;text-transform:uppercase;margin-bottom:4px}
.hero__plate small .icon{width:11px;height:11px;color:var(--pink)}
.hero__plate b{display:block;font-family:var(--serif);font-size:17px;color:var(--yellow);line-height:1.1}
@media(max-width:600px){.hero__plate{grid-template-columns:repeat(2,1fr)}.hero__plate > div:nth-child(2){border-right:none}.hero__plate > div:nth-child(1),.hero__plate > div:nth-child(2){border-bottom:1px solid var(--line)}}

.hero__cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:14px}
.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 22px;border-radius:10px;font-family:var(--mono);font-size:14px;font-weight:600;
  letter-spacing:1px;text-transform:uppercase;
  transition:all .2s;cursor:pointer;border:2px solid;
}
.btn .icon{width:16px;height:16px}
.btn--primary{background:var(--pink);color:var(--bg-0);border-color:var(--pink)}
.btn--primary:hover{background:var(--yellow);border-color:var(--yellow);transform:translateY(-2px);box-shadow:0 8px 0 var(--bg-2)}
.btn--ghost{background:transparent;color:var(--cyan);border-color:var(--cyan)}
.btn--ghost:hover{background:var(--cyan);color:var(--bg-0);transform:translateY(-2px)}

/* FILTER CHIPS */
.filters{
  display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px;
}
.filter{
  font-family:var(--mono);font-size:11px;letter-spacing:1.5px;
  padding:8px 14px;border-radius:6px;
  background:rgba(255,60,140,.04);
  color:var(--ink-1);
  border:1px solid var(--line);
  cursor:pointer;transition:all .2s ease;
  text-transform:uppercase;
}
.filter:hover{color:var(--cyan);border-color:var(--cyan)}
.filter.is-on{
  background:var(--yellow);color:var(--bg-0);border-color:var(--yellow);
  box-shadow:0 4px 16px rgba(255,240,60,.25);
}

/* LOAD MORE */
.loadmore{
  display:flex;justify-content:center;margin:28px 0 8px;
}
.loadmore[hidden]{display:none}

/* RUNE BAR */
.runebar{
  position:relative;z-index:2;margin:0 auto;max-width:100%;
  padding:18px 0;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,var(--bg-0),var(--bg-2),var(--bg-0));
  -webkit-mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);
}
.runebar__track{display:flex;gap:64px;animation:ticker 38s linear infinite;white-space:nowrap;width:max-content;align-items:center}
.runebar__item{display:flex;align-items:baseline;gap:10px;font-family:var(--mono);font-size:14px}
.runebar__item b{font-family:var(--serif);font-size:22px;color:var(--pink)}
.runebar__item span{color:var(--ink-2);text-transform:uppercase;letter-spacing:2px;font-size:11px}
.runebar__item .accent--y b{color:var(--yellow)}
.runebar__item .accent--c b{color:var(--cyan)}
.runebar__item .accent--a b{color:var(--acid)}
.runebar__sep{color:var(--pink);font-size:18px}
.runebar__icon{display:inline-flex;align-items:center;justify-content:center;color:var(--yellow);width:18px}
.runebar__icon .icon{width:18px;height:18px}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTION */
.section{position:relative;z-index:2;padding:80px 28px;max-width:1280px;margin:0 auto}
.section__head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:36px;flex-wrap:wrap}
.section__kicker{font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:4px;text-transform:uppercase;margin-bottom:8px}
.section__title{font-family:var(--serif);font-size:clamp(36px,6vw,72px);line-height:.95;letter-spacing:-1px;text-transform:uppercase}
.section__title em{font-style:normal;color:var(--pink)}
.section__sub{font-family:var(--body);color:var(--ink-1);max-width:520px;line-height:1.5}

/* HERO LIBRARY (signature heroes) */
.library{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.lib{
  background:linear-gradient(160deg,rgba(255,60,140,.06),rgba(255,240,60,.03));
  border:1px solid var(--line);border-radius:16px;padding:22px;
  position:relative;overflow:hidden;transition:all .25s;
}
.lib::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--pink),var(--yellow));
  transform:scaleX(0);transform-origin:left;transition:transform .35s;
}
.lib:hover::before{transform:scaleX(1)}
.lib:hover{transform:translateY(-4px);border-color:var(--pink);box-shadow:0 18px 40px rgba(255,60,140,.2)}
.lib__crest{
  width:54px;height:54px;border-radius:14px;display:grid;place-items:center;
  background:var(--bg-2);font-size:0;margin-bottom:14px;
  border:1px solid var(--line);color:var(--yellow);
}
.lib__crest .icon{width:30px;height:30px;stroke-width:2}
.lib--esmeralda .lib__crest{color:var(--cyan)}
.lib--thamuz .lib__crest{color:var(--pink)}
.lib--paquito .lib__crest{color:var(--yellow)}
.lib--yuzhong .lib__crest{color:var(--acid)}
.lib__name{font-family:var(--serif);font-size:24px;letter-spacing:.5px;margin-bottom:6px}
.lib__role{font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:2px;text-transform:uppercase;margin-bottom:16px}
.lib__bar{height:6px;background:rgba(255,255,255,.06);border-radius:99px;overflow:hidden;position:relative}
.lib__bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--yellow));border-radius:99px;transform:scaleX(0);transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.lib__stat{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--ink-2);margin-top:10px;letter-spacing:1px}
.lib__stat .icon{width:11px;height:11px;color:var(--pink)}

/* TROPHY SHELF — denser on mobile, airy on desktop (max 2 cols) */
.shelf{
  display:grid;
  grid-template-columns:1fr;
  gap:20px;
}
@media(min-width:640px){.shelf{grid-template-columns:repeat(2,1fr);gap:20px}}
@media(min-width:1100px){.shelf{grid-template-columns:repeat(2,1fr);gap:24px;max-width:1080px;margin:0 auto}}
.trophy{
  display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start;
  background:rgba(16,0,26,.65);border:1px solid var(--line);border-radius:16px;padding:22px 24px;
  position:relative;overflow:hidden;transition:all .25s;
}
.trophy::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  transform:scaleY(0);transform-origin:top;transition:transform .35s;
}
.trophy:hover::before{transform:scaleY(1)}
.trophy--gold{border-color:rgba(255,240,60,.4);background:linear-gradient(135deg,rgba(255,240,60,.05),transparent)}
.trophy--gold::before{background:var(--yellow)}
.trophy--silver{border-color:rgba(192,200,212,.4)}
.trophy--silver::before{background:#c0c8d4}
.trophy--pink{border-color:rgba(255,60,140,.4);background:linear-gradient(135deg,rgba(255,60,140,.06),transparent)}
.trophy--pink::before{background:var(--pink)}
.trophy--cyan{border-color:rgba(60,255,240,.4)}
.trophy--cyan::before{background:var(--cyan)}
.trophy--flame{border-color:rgba(184,255,100,.4)}
.trophy--flame::before{background:var(--acid)}
.trophy:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(255,60,140,.15)}

.trophy__icon{
  width:64px;height:64px;border-radius:16px;display:grid;place-items:center;flex-shrink:0;
  background:var(--bg-2);border:1px solid var(--line);
}
.trophy__icon .icon{width:32px;height:32px;stroke-width:2}
.trophy--gold .trophy__icon{background:rgba(255,240,60,.12);color:var(--yellow);border-color:rgba(255,240,60,.35)}
.trophy--silver .trophy__icon{background:rgba(192,200,212,.12);color:#c0c8d4;border-color:rgba(192,200,212,.35)}
.trophy--pink .trophy__icon{background:rgba(255,60,140,.12);color:var(--pink);border-color:rgba(255,60,140,.35)}
.trophy--cyan .trophy__icon{background:rgba(60,255,240,.1);color:var(--cyan);border-color:rgba(60,255,240,.35)}
.trophy--flame .trophy__icon{background:rgba(184,255,100,.1);color:var(--acid);border-color:rgba(184,255,100,.35)}

.trophy__body{display:flex;flex-direction:column;gap:6px;min-width:0}
.trophy__body small{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;color:var(--ink-2);letter-spacing:2px;text-transform:uppercase}
.trophy__body small .icon{width:11px;height:11px;flex-shrink:0}
.trophy__body b{display:block;font-family:var(--serif);font-size:19px;line-height:1.2;color:var(--ink-0);margin-top:2px}
.trophy__body span{display:block;font-family:var(--mono);font-size:11px;color:var(--ink-1);line-height:1.5}
.trophy__amt{display:none}
.trophy__prize{
  font-family:var(--mono);font-size:11px;color:var(--ink-2);
  display:inline-flex;align-items:center;gap:6px;margin-top:10px;
  padding:5px 10px;border-radius:99px;background:rgba(255,240,60,.06);
  border:1px solid rgba(255,240,60,.2);align-self:flex-start;
}
.trophy__prize b{font-family:var(--serif);font-size:13px;color:var(--yellow);letter-spacing:.5px}
.trophy__prize .icon{width:11px;height:11px;color:var(--yellow)}

/* TIMELINE */
.timeline{position:relative;padding-left:36px;max-width:880px;margin:0 auto}
.timeline::before{
  content:"";position:absolute;left:14px;top:8px;bottom:8px;width:2px;
  background:linear-gradient(180deg,var(--pink),var(--yellow),var(--cyan));
}
.tl{position:relative;margin-bottom:32px;opacity:0;transform:translateY(20px);transition:all .6s ease}
.tl.in{opacity:1;transform:translateY(0)}
.tl::before{
  content:"";position:absolute;left:-29px;top:8px;width:14px;height:14px;border-radius:50%;
  background:var(--bg-0);border:3px solid var(--pink);box-shadow:0 0 12px var(--pink);
}
.tl--now::before{border-color:var(--yellow);box-shadow:0 0 18px var(--yellow);animation:pulse 1.6s ease infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.3)}}
.tl small{display:flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:3px;text-transform:uppercase;margin-bottom:4px}
.tl small .icon{width:11px;height:11px;flex-shrink:0}
.tl b{display:block;font-family:var(--serif);font-size:24px;line-height:1.1;margin-bottom:6px}
.tl p{color:var(--ink-1);line-height:1.5;max-width:60ch}

/* CLIPS GRID */
.clips{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
@media (max-width: 640px){
  .clips{ grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
}
.clip{
  position:relative;display:block;border-radius:14px;overflow:hidden;
  background:var(--bg-2);aspect-ratio:9/16;
  border:1px solid var(--line);transition:all .25s;
}
.clip:hover{transform:translateY(-4px) scale(1.02);border-color:var(--yellow);box-shadow:0 18px 36px rgba(255,240,60,.2)}
.clip__thumb{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.1) brightness(.85)}
.clip__grad{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(8,0,15,.95) 100%)}
.clip__ph{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--mono);font-size:11px;letter-spacing:2px;color:rgba(255,255,255,.4);background:rgba(16,0,26,.7);text-transform:uppercase}
.clip__play{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:64px;height:64px;border-radius:50%;background:var(--yellow);color:var(--bg-0);
  display:grid;place-items:center;
  box-shadow:0 0 30px var(--yellow);transition:transform .2s;
}
.clip__play svg{width:26px;height:26px;fill:currentColor;stroke:none;margin-left:5px}
.clip:hover .clip__play{transform:translate(-50%,-50%) scale(1.15)}
.clip__title{
  position:absolute;bottom:0;left:0;right:0;padding:14px;
  font-family:var(--body);font-size:13px;line-height:1.35;color:var(--ink-0);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.clip__meta{position:absolute;top:10px;left:10px;display:flex;gap:6px;font-family:var(--mono);font-size:10px;color:var(--ink-0)}
.clip__chip{display:inline-flex;align-items:center;gap:4px;background:rgba(0,0,0,.7);padding:4px 8px;border-radius:99px;letter-spacing:1px;border:1px solid rgba(255,255,255,.1)}
.clip__chip svg{width:10px;height:10px;fill:currentColor;stroke:none}
.clip__chip--pink{background:var(--pink);color:var(--bg-0);border-color:var(--pink);font-weight:700}
.clip__chip--pink svg{fill:var(--bg-0)}
.clip__skel{background:linear-gradient(90deg,var(--bg-2) 25%,var(--bg-1) 50%,var(--bg-2) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:14px}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* FOOTER */
.foot{
  position:relative;z-index:2;margin-top:80px;padding:48px 28px 36px;
  border-top:2px solid var(--pink);
  background:linear-gradient(180deg,transparent,var(--bg-1));
  display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;
}
.foot__sigil{
  width:72px;height:72px;border-radius:20px;display:grid;place-items:center;
  background:var(--bg-0);color:var(--yellow);
  border:2px solid var(--yellow);box-shadow:0 0 24px var(--yellow);
}
.foot__sigil svg{width:40px;height:40px;fill:currentColor;stroke:none}
.foot__line{font-family:var(--mono);font-size:13px;color:var(--ink-1);letter-spacing:2px;text-transform:uppercase}
.foot__studio{
  font-family:var(--mono);font-size:11px;color:var(--ink-2);letter-spacing:1px;
  display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:99px;
  border:1px solid var(--line);background:rgba(255,60,140,.04);
  transition:all .2s;
}
.foot__studio .icon{width:12px;height:12px;color:var(--pink)}
.foot__studio:hover{background:var(--yellow);color:var(--bg-0);border-color:var(--yellow)}
.foot__studio:hover .icon{color:var(--bg-0)}
.foot__links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;font-family:var(--mono);font-size:12px;color:var(--ink-2);align-items:center}
.foot__links a{display:inline-flex;align-items:center;gap:6px;transition:color .2s}
.foot__links a .icon{width:13px;height:13px}
.foot__links a:hover{color:var(--pink)}
.foot__links .sep{color:var(--ink-2);opacity:.5}

/* MOBILE */
@media(max-width:640px){
  .nav{padding:10px 14px;gap:8px}
  .nav__brand{font-size:15px;gap:7px}
  .nav__sigil{width:30px;height:30px;border-radius:7px}
  .nav__sigil svg{width:17px;height:17px}
  .nav__menu{gap:6px;font-size:10px;letter-spacing:.5px}
  .nav__menu a{padding:5px 7px;gap:4px}
  /* hide non-essential anchors on narrow phones */
  .nav__menu a[data-hide-sm]{display:none}
  .section{padding:60px 18px}
  .hero__sigilbadge{width:72px;height:72px;top:-6px;right:-6px;border-radius:18px}
  .hero__sigilbadge svg{width:42px;height:42px}
  .trophy{padding:18px;gap:14px}
  .trophy__icon{width:54px;height:54px;border-radius:12px}
  .trophy__icon .icon{width:26px;height:26px}
  .trophy__body b{font-size:17px}
  .boot__sigil{width:96px;height:96px;border-radius:20px}
  .boot__sigil svg{width:56px;height:56px}
}

/* prefers-reduced-motion: skip boot animations */
@media(prefers-reduced-motion:reduce){
  .boot__sigil, .boot__title::before, .boot__title::after, .boot__scan, .boot__dot, .hero__portrait::before, .tl--now::before{animation:none}
  .boot__title::before, .boot__title::after{display:none}
}

/* === Modal === */
/* Modal */
.modal { position: fixed; inset: 0; z-index: 80; display: none; align-items: center; justify-content: center; padding: 18px; }
.modal.is-on { display: flex; }
.modal__bg { position: absolute; inset: 0; background: rgba(4,6,12,0.88); backdrop-filter: blur(14px); }
.modal__box { position: relative; width: min(420px, 100%); max-height: 92vh; background: var(--bg-2, #1a1a1a); border: 1px solid var(--line, #333); border-radius: 22px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 30px 80px rgba(0,0,0,0.6); }
.modal__head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid var(--line, #333); }
.modal__title { font-family: var(--font-mono, monospace); font-size: 11px; letter-spacing: 1.2px; color: var(--pink, #d4a948); text-transform: uppercase; }
.modal__close { background: transparent; border: 1px solid var(--line, #333); color: var(--ink-2, #aaa); width: 30px; height: 30px; border-radius: 8px; cursor: pointer; font-family: var(--font-mono, monospace); font-size: 13px; }
.modal__close:hover { color: var(--pink, #d4a948); border-color: var(--pink, #d4a948); }
.modal__embed { position: relative; aspect-ratio: 9/16; max-height: 70vh; background: #000; overflow: hidden; display: flex; align-items: center; justify-content: center; width: 100%; }
.modal__embed .skel { position: absolute; inset: 0; background-size: cover; background-position: center; }
.modal__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; margin: 0 auto; display: block; }
.modal__stats {
  display: flex; justify-content: space-between; gap: 8px;
  padding: 12px 14px; border-top: 1px solid var(--line, #333);
  font-family: var(--font-mono, monospace); font-size: 10px;
  letter-spacing: 0.5px; color: var(--ink-2, #aaa);
  flex-wrap: wrap;
}
.modal__stats > span { text-align: center; flex: 1 1 auto; min-width: 50px; }
.modal__stats b { display: block; font-size: 14px; color: var(--accent, #0ff); margin-top: 2px; font-weight: 600; }
.modal__stat { text-align: center; }
.modal__stat b { display: block; font-size: 14px; font-family: var(--font-mono, monospace); color: var(--pink, #d4a948); }
.modal__stat .k { font-size: 9px; letter-spacing: 1.2px; color: var(--ink-2, #aaa); text-transform: uppercase; margin-top: 2px; }
