/* AFTERLIFE — sitio del juego */
:root{
  --bg:#030303;
  --ink:#f2eeea;
  --ink-soft:rgba(238,234,230,.62);
  --ink-faint:rgba(238,234,230,.42);
  --violet:#a855f7;
  --violet-lit:#c9aeff;
  --violet-pale:#ece0ff;
  --maxw:1440px;
  --pad:clamp(20px,4vw,56px);
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:Jost,system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body.locked{overflow:hidden}

a{color:var(--violet-lit);text-decoration:none;transition:color .3s ease}
a:hover{color:var(--violet-pale)}
img{max-width:100%;display:block}
button{font-family:inherit}

::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:#08060e}
::-webkit-scrollbar-thumb{background:#2a1a44;border-radius:6px}

@keyframes afl-spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes afl-drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-2%,1.5%,0)}}
@keyframes afl-breathe{0%,100%{opacity:.5}50%{opacity:.95}}

/* ---------- tipografía utilitaria ---------- */
.cinzel{font-family:Cinzel,'Times New Roman',serif;font-weight:400}
.serif{font-family:'Cormorant Garamond','Times New Roman',serif}
.eyebrow{font-size:11px;letter-spacing:.42em;color:rgba(201,174,255,.66);text-transform:uppercase}
.h2{
  font-family:Cinzel,serif;font-weight:400;font-size:clamp(30px,4.8vw,62px);
  letter-spacing:.1em;margin:0;color:#f4f0ec;text-wrap:balance;
}

/* ---------- estrellas de fondo ---------- */
.stars{
  position:absolute;inset:0;pointer-events:none;opacity:.85;
  animation:afl-drift 90s ease-in-out infinite alternate;
  background:
    radial-gradient(1.2px 1.2px at 7% 12%, rgba(255,255,255,.6), transparent 100%),
    radial-gradient(1px 1px at 18% 34%, rgba(255,255,255,.4), transparent 100%),
    radial-gradient(1.4px 1.4px at 27% 8%, rgba(226,214,255,.55), transparent 100%),
    radial-gradient(1px 1px at 39% 22%, rgba(255,255,255,.35), transparent 100%),
    radial-gradient(1.2px 1.2px at 52% 5%, rgba(255,255,255,.5), transparent 100%),
    radial-gradient(1px 1px at 63% 17%, rgba(214,196,255,.45), transparent 100%),
    radial-gradient(1.3px 1.3px at 74% 9%, rgba(255,255,255,.5), transparent 100%),
    radial-gradient(1px 1px at 86% 26%, rgba(255,255,255,.35), transparent 100%),
    radial-gradient(1.2px 1.2px at 94% 14%, rgba(226,214,255,.5), transparent 100%),
    radial-gradient(1px 1px at 11% 48%, rgba(255,255,255,.3), transparent 100%),
    radial-gradient(1.3px 1.3px at 31% 57%, rgba(255,255,255,.42), transparent 100%),
    radial-gradient(1px 1px at 47% 44%, rgba(214,196,255,.32), transparent 100%),
    radial-gradient(1.2px 1.2px at 68% 52%, rgba(255,255,255,.4), transparent 100%),
    radial-gradient(1px 1px at 82% 61%, rgba(255,255,255,.3), transparent 100%),
    radial-gradient(1.3px 1.3px at 96% 47%, rgba(226,214,255,.4), transparent 100%),
    radial-gradient(1px 1px at 5% 71%, rgba(255,255,255,.3), transparent 100%),
    radial-gradient(1.2px 1.2px at 22% 83%, rgba(255,255,255,.38), transparent 100%),
    radial-gradient(1px 1px at 41% 76%, rgba(214,196,255,.3), transparent 100%),
    radial-gradient(1.3px 1.3px at 58% 91%, rgba(255,255,255,.4), transparent 100%),
    radial-gradient(1px 1px at 77% 79%, rgba(255,255,255,.28), transparent 100%),
    radial-gradient(1.2px 1.2px at 90% 94%, rgba(226,214,255,.38), transparent 100%);
}

.page{position:relative;background:var(--bg);overflow:hidden}

/* ---------- header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:60;
  border-bottom:1px solid transparent;
  transition:background .5s ease, backdrop-filter .5s ease, border-color .5s ease;
}
.site-header.scrolled{
  background:rgba(3,3,3,.72);backdrop-filter:blur(14px);
  border-bottom-color:rgba(168,85,247,.16);
}
.header-inner{
  position:relative;max-width:var(--maxw);margin:0 auto;
  padding:18px var(--pad);display:flex;align-items:center;gap:clamp(16px,4vw,56px);
}
.wordmark{
  font-family:Cinzel,serif;font-size:19px;letter-spacing:.34em;color:#f4f0ec;
  text-shadow:0 0 18px rgba(139,92,246,.55);white-space:nowrap;
}
.wordmark:hover{color:#fff}
.nav{display:flex;flex-wrap:wrap;gap:clamp(14px,2.2vw,34px);margin-left:auto;font-size:11.5px;letter-spacing:.24em;font-weight:300}
.nav a{color:rgba(242,238,234,.62)}
.nav a:hover{color:var(--violet-pale)}
.header-actions{display:flex;align-items:center;gap:18px}
.header-actions .patreon{font-size:11.5px;letter-spacing:.24em;color:rgba(242,238,234,.5)}
.header-actions .patreon:hover{color:var(--violet-lit)}
.nav-toggle{
  display:none;background:transparent;color:rgba(242,238,234,.7);
  border:1px solid rgba(168,85,247,.35);border-radius:5px;
  font-size:11px;letter-spacing:.22em;padding:9px 14px;cursor:pointer;
  transition:color .3s ease, border-color .3s ease;
}
.nav-toggle:hover{color:var(--violet-pale);border-color:rgba(196,162,255,.7)}
.lang-btn{display:inline-block}

/* ---------- botones ---------- */
.btn{
  display:inline-block;font-family:Cinzel,serif;letter-spacing:.22em;color:#f7f1ea;
  border:1px solid rgba(180,120,255,.7);border-radius:6px;
  background:linear-gradient(180deg, rgba(72,28,142,.55), rgba(22,9,44,.6));
  box-shadow:0 0 30px rgba(139,92,246,.3), inset 0 0 24px rgba(139,92,246,.18);
  transition:box-shadow .35s ease, border-color .35s ease, color .35s ease;
  cursor:pointer;
}
.btn:hover{box-shadow:0 0 48px rgba(139,92,246,.55), inset 0 0 30px rgba(139,92,246,.28);border-color:#d3b6ff;color:#fff}
.btn-lg{font-size:13px;padding:17px 34px}
.btn-sm{font-size:12px;letter-spacing:.2em;padding:11px 22px}
.btn-line{
  display:inline-block;font-family:Cinzel,serif;font-size:13px;letter-spacing:.22em;
  color:rgba(238,232,246,.72);padding:17px 30px;border-bottom:1px solid rgba(168,85,247,.35);
}
.btn-line:hover{color:var(--violet-pale);border-color:rgba(196,162,255,.8)}

/* ---------- portal ---------- */
.portal{position:relative;width:100%;aspect-ratio:1/1;isolation:isolate;--accent:#a855f7;--spin:34s}
.portal>*{pointer-events:none}
.portal .p-aura{
  position:absolute;inset:-24%;border-radius:50%;filter:blur(12px);
  background:radial-gradient(circle at 50% 50%, rgba(139,92,246,.28) 0%, rgba(124,58,237,.13) 40%, rgba(76,29,149,0) 70%);
}
.portal .p-ring-o{position:absolute;inset:-13%;border-radius:50%;border:1px solid rgba(167,139,250,.10)}
.portal .p-ring-i{position:absolute;inset:-6%;border-radius:50%;border:1px solid rgba(167,139,250,.18)}
.portal .p-disc{
  position:absolute;inset:1.5%;border-radius:50%;overflow:hidden;
  background:radial-gradient(circle at 50% 30%, #1a0f33 0%, #0a0616 60%, #050308 100%);
}
.portal .p-art{position:absolute;inset:0;transition:transform 2.4s cubic-bezier(.2,.6,.2,1), opacity 1.6s ease}
.portal .p-art-alt{opacity:0}
.portal:hover .p-art{transform:scale(1.04)}
.portal[data-static="1"]:hover .p-art{transform:none}
.portal .p-unknown{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 50%, rgba(30,18,58,.55), rgba(4,3,8,.95) 75%);
  font-family:Cinzel,serif;font-size:clamp(28px,5vw,64px);color:rgba(196,168,255,.5);letter-spacing:.1em;
}
.portal .p-vignette{
  position:absolute;inset:0;border-radius:50%;
  box-shadow:inset 0 0 60px 24px rgba(3,3,3,.72), inset 0 0 18px rgba(139,92,246,.35);
}
.portal .p-rim{
  position:absolute;inset:0;border-radius:50%;border:2px solid rgba(206,174,255,.82);
  box-shadow:0 0 22px rgba(139,92,246,.5), 0 0 64px rgba(109,40,217,.32), inset 0 0 26px rgba(139,92,246,.4);
}
.portal .p-conic{
  position:absolute;inset:-1.5%;border-radius:50%;
  background:conic-gradient(from 0deg,
    rgba(168,85,247,0) 0deg, var(--accent) 40deg, rgba(230,210,255,.95) 70deg,
    rgba(168,85,247,.05) 130deg, rgba(168,85,247,0) 200deg, var(--accent) 300deg, rgba(168,85,247,0) 360deg);
  -webkit-mask:radial-gradient(circle, transparent 95%, #000 96%);
  mask:radial-gradient(circle, transparent 95%, #000 96%);
  animation:afl-spin var(--spin) linear infinite;
  opacity:.7;transition:opacity 1s ease;
}
.portal:hover .p-conic{opacity:1}
.portal[data-static="1"]:hover .p-conic{opacity:.7}
.portal .p-glow{
  position:absolute;inset:-28%;border-radius:50%;filter:blur(16px);opacity:0;
  background:radial-gradient(circle at 50% 50%, rgba(168,85,247,.30) 0%, rgba(124,58,237,.12) 45%, rgba(76,29,149,0) 72%);
  transition:opacity 1.1s ease;
}
.portal:hover .p-glow{opacity:1}
.portal[data-static="1"]:hover .p-glow{opacity:0}
.portal .p-dots{
  position:absolute;inset:0;opacity:.7;transition:opacity .9s ease;
  animation:afl-spin var(--spin-dots,64s) linear infinite;
}
.portal:hover .p-dots{opacity:1}
.p-dot{position:absolute;inset:0;display:flex;justify-content:center;align-items:flex-start}
.p-dot i{
  width:5px;height:5px;border-radius:50%;background:#efe6ff;
  box-shadow:0 0 6px 2px rgba(196,162,255,.85), 0 0 14px 4px rgba(139,92,246,.45);
}
@media (prefers-reduced-motion: reduce){
  .portal .p-conic,.portal .p-dots,.stars{animation:none!important}
  .portal .p-art{transition:none}
}

/* ---------- huecos de imagen ---------- */
.slot{
  position:absolute;inset:0;background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
}
.slot::after{
  content:attr(data-label);
  font-size:10px;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(196,168,255,.34);text-align:center;padding:14px;max-width:20ch;line-height:1.8;
}
.slot.filled::after{content:none}

/* ---------- secciones ---------- */
.section{position:relative;padding:clamp(90px,12vh,160px) var(--pad)}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){ .reveal{opacity:1;transform:none;transition:none} }

/* ---------- hero ---------- */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  padding:150px var(--pad) 110px;
}
.hero-halo{
  position:absolute;left:50%;top:44%;width:min(1500px,150vw);height:min(1500px,150vw);
  transform:translate(-50%,-50%);pointer-events:none;
  background:radial-gradient(circle at 50% 50%, rgba(88,28,135,.30) 0%, rgba(49,16,90,.14) 34%, rgba(3,3,3,0) 62%);
}
.hero-inner{
  position:relative;width:100%;max-width:var(--maxw);margin:0 auto;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  gap:clamp(40px,6vw,90px);align-items:center;
}
.hero-copy{max-width:620px}
.hero-copy .eyebrow{margin-bottom:26px}
.hero h1{
  font-family:Cinzel,serif;font-weight:500;font-size:clamp(52px,8.5vw,116px);line-height:.98;
  letter-spacing:.06em;margin:0 0 34px;color:#f6f2ee;
  text-shadow:0 0 44px rgba(139,92,246,.45), 0 0 110px rgba(109,40,217,.3);
}
.hero-lines{
  font-family:Cinzel,serif;font-size:clamp(15px,1.5vw,20px);line-height:2;letter-spacing:.16em;
  color:rgba(244,240,236,.9);margin-bottom:28px;
}
.hero-lede{
  font-family:'Cormorant Garamond',serif;font-size:clamp(17px,1.5vw,20px);line-height:1.75;
  color:var(--ink-soft);max-width:480px;margin:0 0 44px;text-wrap:pretty;
}
.hero-actions{display:flex;flex-wrap:wrap;gap:16px}
.hero-portal-wrap{display:flex;justify-content:center}
.hero-portal{width:min(520px,82vw);transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}

/* ---------- el vacío ---------- */
.void-head{max-width:1100px;margin:0 auto;text-align:center}
.hairline{width:1px;height:90px;margin:0 auto 42px;background:linear-gradient(180deg, rgba(168,85,247,0), rgba(196,162,255,.55))}
.void-head .eyebrow{margin-bottom:24px}
.void-head .h2{margin-bottom:36px}
.quote{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(20px,2.2vw,29px);
  line-height:1.7;color:rgba(240,236,232,.7);max-width:660px;margin:0 auto;text-wrap:pretty;
}
.void-row{
  max-width:1240px;margin:clamp(70px,9vw,120px) auto 0;display:flex;align-items:center;
  justify-content:center;gap:clamp(30px,7vw,110px);flex-wrap:wrap;
}
.void-rule{width:1px;height:150px;background:linear-gradient(180deg, rgba(168,85,247,0), rgba(168,85,247,.35), rgba(168,85,247,0))}
.void-rule.tall{height:220px;background:linear-gradient(180deg, rgba(168,85,247,0), rgba(196,162,255,.4), rgba(168,85,247,0))}
.void-a{width:clamp(70px,9vw,116px);opacity:.34}
.void-b{width:clamp(120px,17vw,220px);opacity:.72;margin-bottom:clamp(0px,4vw,60px)}
.void-c{width:clamp(58px,7vw,90px);opacity:.22;margin-top:clamp(0px,5vw,80px)}

/* ---------- mundos ---------- */
.worlds-inner{max-width:var(--maxw);margin:0 auto}
.section-head{text-align:center;margin-bottom:clamp(50px,7vw,90px)}
.section-head .eyebrow{margin-bottom:22px}
.world-feature{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
  gap:clamp(40px,6vw,90px);align-items:center;margin-bottom:clamp(56px,7vw,96px);
}
.world-feature .portal-col{display:flex;justify-content:center;order:2}
.world-feature .portal-col>div{width:min(440px,80vw)}
.world-feature .copy-col{order:1}
.world-index{font-size:11px;letter-spacing:.4em;color:rgba(201,174,255,.6);margin-bottom:20px}
.world-name{
  font-family:Cinzel,serif;font-weight:400;font-size:clamp(28px,4vw,50px);letter-spacing:.1em;
  margin:0 0 22px;color:#f6f2ee;text-shadow:0 0 34px rgba(139,92,246,.35);
}
.world-blurb{
  font-family:'Cormorant Garamond',serif;font-size:clamp(18px,1.7vw,23px);line-height:1.7;
  color:var(--ink-soft);max-width:420px;margin:0 0 30px;text-wrap:pretty;
}
.world-meta{display:flex;gap:34px;font-size:11px;letter-spacing:.24em;color:var(--ink-faint);flex-wrap:wrap}
.world-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(24px,4vw,58px)}
.world-pick{width:clamp(112px,13vw,158px);cursor:pointer;text-align:center;background:none;border:0;padding:0}
.world-pick .label{margin-top:24px;font-family:Cinzel,serif;font-size:12px;letter-spacing:.18em;color:rgba(238,234,230,.5);transition:color .4s ease}
.world-pick.active .label{color:#f6f2ee}
.world-pick .rule{height:1px;margin:10px auto 0;width:0;background:rgba(196,162,255,.7);transition:width .6s ease}
.world-pick.active .rule{width:34px}

/* ---------- personajes ---------- */
.chars-inner{max-width:var(--maxw);margin:0 auto}
.chars-head{margin-bottom:clamp(46px,6vw,80px)}
.chars-head .eyebrow{margin-bottom:22px}
.chars-grid-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:clamp(40px,5vw,80px);align-items:start}
.chars-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:clamp(14px,1.6vw,24px)}
.char{position:relative;cursor:pointer;aspect-ratio:3/4;background:none;border:0;padding:0}
.char-frame{
  position:absolute;inset:0;padding:1.5px;border-radius:12px;
  background:linear-gradient(180deg, rgba(214,196,255,.55), rgba(90,60,150,.28));
  transition:background .4s ease;
}
.char:hover .char-frame{background:linear-gradient(180deg, rgba(233,214,255,.9), rgba(139,92,246,.5))}
.char-inner{
  position:relative;width:100%;height:100%;overflow:hidden;background:#08060e;border-radius:10.5px;
}
.char-inner .slot{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.char:hover .char-inner .slot{transform:scale(1.05)}
.char-scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg, rgba(3,3,3,0) 55%, rgba(3,3,3,.85) 100%)}
.char-name{
  position:absolute;left:0;right:0;bottom:9px;text-align:center;pointer-events:none;
  font-family:Cinzel,serif;font-size:10.5px;letter-spacing:.16em;color:rgba(246,242,238,.92);
  text-shadow:0 2px 10px rgba(0,0,0,.9);
}
.char-halo,.char-edge{position:absolute;pointer-events:none;opacity:0;transition:opacity .4s ease}
.char-halo{inset:-5px;border-radius:15px;box-shadow:0 0 28px 5px rgba(139,92,246,.6)}
.char-edge{
  inset:0;padding:2px;border-radius:12px;
  background:linear-gradient(180deg, rgba(233,214,255,.98), rgba(168,85,247,.85));
  -webkit-mask:linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
  mask-composite:exclude;
}
.char.selected .char-halo,.char.selected .char-edge{opacity:1}
.char-feature{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:10px}
.char-portal{position:relative;width:min(400px,78vw)}
.char-cutout{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:37%;aspect-ratio:3/4;
  padding:1.5px;border-radius:12px;box-shadow:0 0 40px rgba(139,92,246,.5);
  background:linear-gradient(180deg, rgba(216,180,255,.9), rgba(139,92,246,.5));
}
.char-cutout-inner{
  width:100%;height:100%;overflow:hidden;background:#08060e;position:relative;border-radius:10.5px;
}
.char-detail{margin-top:44px;text-align:center}
.char-detail h3{
  font-family:Cinzel,serif;font-weight:400;font-size:clamp(30px,4vw,46px);letter-spacing:.14em;
  margin:0 0 14px;color:#f7f3ef;text-shadow:0 0 30px rgba(139,92,246,.4);
}
.char-detail .world{font-size:11px;letter-spacing:.34em;color:rgba(201,174,255,.7);margin-bottom:12px}
.char-detail .line{
  font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;line-height:1.6;
  color:rgba(238,234,230,.6);max-width:340px;margin:0 auto 30px;
}

/* ---------- gameplay ---------- */
.loop-inner{max-width:var(--maxw);margin:0 auto}
.loop-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:clamp(36px,4vw,56px)}
.loop-line{
  position:absolute;left:6%;right:6%;top:34px;height:1px;pointer-events:none;
  background:linear-gradient(90deg, rgba(168,85,247,0), rgba(168,85,247,.4) 15%, rgba(168,85,247,.4) 85%, rgba(168,85,247,0));
}
.step{position:relative;text-align:center}
.step-orb{
  position:relative;width:68px;height:68px;margin:0 auto 30px;border-radius:50%;
  border:1px solid rgba(196,162,255,.6);
  background:radial-gradient(circle at 50% 50%, rgba(70,30,140,.6), rgba(6,4,12,.95));
  box-shadow:0 0 26px rgba(139,92,246,.35), inset 0 0 16px rgba(139,92,246,.3);
}
.step-orb i{position:absolute;inset:9px;border-radius:50%;border:1px solid rgba(168,85,247,.35);animation:afl-breathe 7s ease-in-out infinite}
.step-num{font-family:Cinzel,serif;font-size:12px;letter-spacing:.3em;color:rgba(201,174,255,.75);margin-bottom:16px}
.step-title{font-family:Cinzel,serif;font-size:clamp(15px,1.5vw,19px);letter-spacing:.14em;color:var(--ink);margin-bottom:14px}
.step p{font-family:'Cormorant Garamond',serif;font-size:18px;line-height:1.6;color:rgba(238,234,230,.5);max-width:250px;margin:0 auto}

/* ---------- expansión ---------- */
.news{text-align:center;max-width:var(--maxw);margin:0 auto}
.news .h2{margin-bottom:30px}
.news-lines{font-family:'Cormorant Garamond',serif;font-size:clamp(19px,2vw,25px);line-height:1.9;color:var(--ink-soft)}
.news-row{margin-top:clamp(60px,8vw,110px);display:flex;align-items:center;justify-content:center;gap:clamp(26px,5vw,72px);flex-wrap:wrap}
.news-1{width:clamp(120px,15vw,200px);opacity:.85}
.news-2{width:clamp(92px,11vw,150px);opacity:.5;margin-bottom:clamp(0px,3vw,48px)}
.news-3{width:clamp(70px,8vw,110px);opacity:.28;margin-top:clamp(0px,4vw,60px)}
.news-4{width:clamp(120px,15vw,190px);text-align:center}
.news-4 .label{margin-top:24px;font-family:Cinzel,serif;font-size:12px;letter-spacing:.18em;color:rgba(246,242,238,.75)}
.news-4 .soon{margin-top:9px;font-size:10px;letter-spacing:.3em;color:rgba(201,174,255,.55)}

/* ---------- patreon ---------- */
.patreon-inner{max-width:900px;margin:0 auto;text-align:center}
.patreon-inner .hairline{height:70px;margin-bottom:40px}
.patreon-inner .eyebrow{margin-bottom:24px}
.patreon-inner .h2{margin-bottom:32px}
.patreon-inner p{
  font-family:'Cormorant Garamond',serif;font-size:clamp(18px,1.8vw,23px);line-height:1.8;
  color:var(--ink-soft);max-width:620px;margin:0 auto 44px;text-wrap:pretty;
}
.center-actions{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}

/* ---------- CTA final ---------- */
.final{
  position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:clamp(90px,12vh,150px) var(--pad);overflow:hidden;
}
.final-stage{position:relative;width:min(760px,92vw);display:flex;align-items:center;justify-content:center}
.final-copy{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:38px;text-align:center;padding:0 8%;
}
.final-scrim{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:118%;height:70%;border-radius:50%;
  background:radial-gradient(ellipse at 50% 50%, rgba(3,3,4,.9) 0%, rgba(4,3,8,.6) 55%, rgba(3,3,3,0) 78%);
  pointer-events:none;
}
.final-copy h2{
  position:relative;font-family:Cinzel,serif;font-weight:400;font-size:clamp(26px,4.4vw,58px);
  line-height:1.3;letter-spacing:.09em;margin:0;color:#faf7f3;
  text-shadow:0 0 40px rgba(3,3,3,.95), 0 0 90px rgba(139,92,246,.5);text-wrap:balance;
}
.final-copy .btn{position:relative;font-size:clamp(12px,1.2vw,14px);letter-spacing:.24em;padding:18px 38px}

/* ---------- footer ---------- */
.site-footer{position:relative;border-top:1px solid rgba(168,85,247,.14);padding:clamp(48px,6vw,76px) var(--pad)}
.footer-inner{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:clamp(24px,4vw,56px)}
.footer-inner .wordmark{font-size:16px;color:rgba(244,240,236,.9);text-shadow:0 0 16px rgba(139,92,246,.4)}
.footer-nav{display:flex;flex-wrap:wrap;gap:clamp(16px,2.4vw,32px);margin-left:auto;font-size:11px;letter-spacing:.24em}
.footer-nav a{color:rgba(238,234,230,.45)}
.footer-nav a:hover{color:var(--violet-pale)}
.footer-legal{width:100%;font-size:10.5px;letter-spacing:.2em;color:rgba(238,234,230,.28)}

/* ---------- verificación de edad ---------- */
.gate{
  position:fixed;inset:0;z-index:90;background:#030303;
  display:flex;align-items:center;justify-content:center;padding:24px;
}
.gate-card{
  position:relative;max-width:460px;width:100%;text-align:center;
  border:1px solid rgba(168,85,247,.4);border-radius:10px;
  background:radial-gradient(circle at 50% 0%, rgba(40,18,80,.6), rgba(6,4,12,.9));
  box-shadow:0 0 60px rgba(139,92,246,.2);padding:48px 32px 40px;
}
.gate-card .wordmark{display:block;font-size:15px;margin-bottom:26px}
.gate-card h2{font-family:Cinzel,serif;font-weight:400;font-size:26px;letter-spacing:.14em;margin:0 0 18px;color:#f4f0ec}
.gate-card p{font-family:'Cormorant Garamond',serif;font-size:19px;line-height:1.6;color:var(--ink-soft);margin:0 0 28px}
.gate-fields{display:flex;gap:8px;justify-content:center;margin-bottom:24px}
.gate-fields input{
  text-align:center;font-family:Jost,sans-serif;font-size:14px;letter-spacing:.14em;color:var(--ink);
  background:rgba(8,6,14,.9);border:1px solid rgba(168,85,247,.3);border-radius:6px;padding:12px 0;outline:none;
}
.gate-fields input:focus{border-color:rgba(196,162,255,.8)}
.gate-fields .dd,.gate-fields .mm{width:64px}
.gate-fields .yy{width:88px}
.gate-error{font-family:Jost,sans-serif!important;font-size:11px!important;letter-spacing:.2em;color:var(--violet-lit)!important;margin:0 0 20px!important}
.gate-card .btn{width:100%}
.gate-fine{font-family:Jost,sans-serif!important;font-size:11px!important;letter-spacing:.16em;color:rgba(238,234,230,.35)!important;margin:24px 0 0!important}

[hidden]{display:none!important}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .nav{
    display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:rgba(3,3,3,.97);border-bottom:1px solid rgba(168,85,247,.16);padding:8px var(--pad) 18px;
  }
  .nav.open{display:flex}
  .nav a{padding:13px 0;border-bottom:1px solid rgba(168,85,247,.1)}
  .nav-toggle{display:inline-block}
  .header-actions{margin-left:auto}
  .header-actions .patreon{display:none}
  .hero{padding-top:130px;min-height:auto}
  .world-feature .portal-col{order:1}
  .world-feature .copy-col{order:2}
  .loop-line{display:none}
  .final{min-height:auto}
}
