/* Hallmark · macrostructure: Immersive World (studied-DNA) · tone: playful-warm · anchor hue: brass 78
 * theme: studied-DNA (source: url gatesofolympus.com — full-bleed game art + framed plaques)
 * nav: dark bar · footer: dense colophon · genre: playful
 * pre-emit critique: P5 H4 E4 S5 R4 V5
 */
:root{
  --paper:oklch(21% 0.035 150);
  --paper-2:oklch(26% 0.040 150);
  --plaque:oklch(24% 0.038 150 / .86);
  --ink:oklch(96% 0.012 95);
  --ink-2:oklch(80% 0.020 95);
  --ink-3:oklch(66% 0.022 95);
  --brass:oklch(78% 0.130 78);
  --brass-dim:oklch(58% 0.090 78 / .55);
  --accent:oklch(80% 0.160 72);
  --accent-ink:oklch(24% 0.070 60);
  --collar:oklch(62% 0.170 28);
  --grass:oklch(62% 0.150 145);

  --font-display:'Nunito',system-ui,sans-serif;
  --font-body:'Nunito Sans',system-ui,sans-serif;
  --font-mono:'DM Mono',ui-monospace,monospace;

  --space-2xs:4px; --space-xs:8px; --space-sm:12px; --space-md:20px;
  --space-lg:32px; --space-xl:52px; --space-2xl:80px;

  --text-sm:.85rem; --text-base:1.02rem; --text-lg:1.15rem;
  --display:clamp(2rem,5.4vw,3.4rem); --display-s:clamp(1.5rem,3.4vw,2.1rem);

  --ease-out:cubic-bezier(.16,1,.3,1);
  --dur-fast:180ms; --dur-base:240ms;
  --radius:14px; --radius-pill:999px;
}
@font-face{font-family:'Nunito';src:url(../fonts/nunito-900-latin.woff2) format('woff2');font-weight:900;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(../fonts/nunito-sans-400-latin.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Nunito Sans';src:url(../fonts/nunito-sans-600-latin.woff2) format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'DM Mono';src:url(../fonts/dm-mono-500-latin.woff2) format('woff2');font-weight:500;font-display:swap}

*{box-sizing:border-box}
html,body{overflow-x:clip}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--text-base);line-height:1.62;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:900;line-height:1.08;letter-spacing:-.015em;margin:0;text-wrap:balance;overflow-wrap:anywhere;min-width:0}
h1{font-size:var(--display)} h2{font-size:var(--display-s)} h3{font-size:1.06rem}
p{margin:0 0 var(--space-sm)}
a{color:var(--brass);text-underline-offset:3px}
a:hover{color:var(--accent)}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.wrap{max-width:1060px;margin:0 auto;padding-inline:clamp(1rem,4vw,1.5rem)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--space-sm);top:var(--space-sm);z-index:99;background:var(--accent);color:var(--accent-ink);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius)}
.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

/* --- barra superior --- */
.bar{position:sticky;top:0;z-index:30;background:oklch(17% 0.030 150 / .92);backdrop-filter:blur(8px);border-bottom:1px solid var(--brass-dim)}
.bar-in{display:flex;align-items:center;gap:var(--space-md);min-height:64px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none}
.brand img{height:40px;width:40px;border-radius:11px;flex:none;display:block}
.brand-txt{font-family:var(--font-display);font-weight:900;font-size:1.08rem;letter-spacing:-.015em;line-height:1;text-shadow:0 2px 0 oklch(14% .03 150),0 3px 6px oklch(12% .04 150/.6)}
.brand-txt b{color:var(--brass)}
.brand-txt i{font-style:normal;font-weight:700;font-size:.74em;color:var(--ink-3);margin-left:1px}
.bar nav{margin-left:auto}
.bar ul{display:flex;gap:var(--space-sm);list-style:none;margin:0;padding:0;flex-wrap:wrap}
.bar nav a{font-family:var(--font-display);font-weight:700;font-size:.9rem;letter-spacing:.005em;color:var(--ink-2);text-decoration:none;padding:8px 6px;display:inline-block;text-shadow:0 1px 0 oklch(14% .03 150);border-bottom:2px solid transparent;transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.bar nav a:hover{color:var(--accent);border-bottom-color:var(--brass)}
.bar nav a[aria-current]{color:var(--accent);border-bottom-color:var(--accent)}


/* --- hero inmersivo --- */
.hero{position:relative;min-height:clamp(420px,62vh,600px);display:grid;place-items:center;text-align:center;padding:var(--space-xl) 0 var(--space-2xl);isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-2;background:url(../img/game/fondo-patio.webp) center 62%/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 78% at 50% 68%,oklch(17% .03 150/.82) 0%,oklch(17% .03 150/.5) 42%,transparent 72%),linear-gradient(180deg,oklch(17% .03 150/.5),transparent 30%,var(--paper))}
.hero-logo{width:min(78vw,460px);height:auto;filter:drop-shadow(0 10px 26px oklch(12% .04 150/.6))}
.hero h1{margin-top:var(--space-md);font-size:clamp(1.45rem,3.6vw,2.2rem);text-shadow:0 2px 0 oklch(16% .04 150),0 8px 22px oklch(12% .04 150/.7)}
.hero p{color:var(--ink-2);max-width:56ch;margin-inline:auto}
.cta-row{display:flex;gap:var(--space-sm);justify-content:center;flex-wrap:wrap;margin-top:var(--space-md)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 var(--space-md);border-radius:var(--radius-pill);font-family:var(--font-display);font-weight:900;font-size:.96rem;text-decoration:none;border:2px solid transparent;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:oklch(85% .17 74);color:var(--accent-ink);transform:translateY(-1px)}
.btn-ghost{border-color:var(--brass);color:var(--ink);background:oklch(20% .03 150/.5)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.5;pointer-events:none}

/* --- valla divisoria --- */
.valla{height:11px;border-top:1px solid var(--brass-dim);background:repeating-linear-gradient(90deg,oklch(92% .012 95/.5) 0 5px,transparent 5px 17px);opacity:.42}

/* --- placas --- */
.sec{padding-block:var(--space-xl)}
.plaque{background:var(--plaque);border:1px solid var(--brass-dim);border-radius:var(--radius);padding:var(--space-md) clamp(var(--space-md),3vw,var(--space-lg))}
.plaque h2{color:var(--ink);text-shadow:0 2px 0 oklch(16% .04 150)}
.lede{color:var(--ink-2);font-size:var(--text-lg)}
.foot-note{font-size:var(--text-sm);color:var(--ink-3);margin:var(--space-xs) 0 0}

/* --- ruleta de la serie --- */
.ruleta{display:grid;gap:var(--space-lg);align-items:center}
@media(min-width:820px){.ruleta{grid-template-columns:minmax(0,300px) minmax(0,1fr)}}
.rueda-wrap{display:grid;place-items:center;gap:var(--space-sm)}
.rueda{width:min(74vw,272px);aspect-ratio:1;border-radius:50%;border:6px solid var(--brass);background:repeating-conic-gradient(from 0deg,oklch(34% .055 150) 0 34deg,oklch(78% .13 78 / .9) 34deg 36deg,oklch(26% .042 150) 36deg 70deg,oklch(78% .13 78 / .9) 70deg 72deg);box-shadow:0 0 0 4px oklch(17% .03 150),0 12px 30px oklch(12% .04 150/.55);display:grid;place-items:center;transition:transform 2.6s cubic-bezier(.12,.72,.16,1)}
.rueda-hueso{width:44%;height:44%;border-radius:50%;background:var(--paper-2);border:3px solid var(--brass-dim);display:grid;place-items:center;font-family:var(--font-display);font-weight:900;color:var(--brass);font-size:.8rem;text-align:center;line-height:1.1;padding:6px}
.rueda-marca{width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:16px solid var(--accent);margin-bottom:-8px;z-index:2;position:relative}
.rueda-out{min-height:132px}
.rueda-out .num{color:var(--accent)}
.rueda-vacia{color:var(--ink-3)}
.datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-xs);margin:var(--space-sm) 0 0;padding:0;list-style:none}
.datos li{background:oklch(20% .03 150/.7);border:1px solid var(--brass-dim);border-radius:10px;padding:var(--space-xs) var(--space-sm)}
.datos b{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.05rem}
.datos span{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}

/* --- tabla --- */
.tabla-wrap{overflow-x:auto;border:1px solid var(--brass-dim);border-radius:var(--radius);background:var(--plaque)}
table{border-collapse:collapse;width:100%;min-width:660px;font-size:.94rem}
th,td{padding:11px 13px;text-align:left;border-bottom:1px solid oklch(40% .04 150/.4);vertical-align:top}
thead th{font-family:var(--font-display);font-weight:900;font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);background:oklch(19% .03 150/.8);white-space:nowrap}
tbody tr:last-child td{border-bottom:none}
tbody th{font-weight:600;color:var(--ink)}
td.n{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent);white-space:nowrap}
td.alt{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-3);white-space:nowrap}
.nuevo{display:inline-block;font-family:var(--font-display);font-weight:900;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:var(--radius-pill);padding:2px 7px;margin-left:6px;vertical-align:middle}

/* --- pasos --- */
.pasos{display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,232px),1fr));margin-top:var(--space-md);padding:0;list-style:none}
.pasos li{background:oklch(20% .03 150/.7);border:1px solid var(--brass-dim);border-radius:12px;padding:var(--space-sm) var(--space-md)}
.pasos b{display:block;font-family:var(--font-display);font-weight:900;color:var(--brass);margin-bottom:2px}

/* --- demo --- */
.demo-tabs{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-sm)}
.demo-tab{font-family:var(--font-display);font-weight:900;font-size:.86rem;padding:9px 15px;min-height:44px;border-radius:var(--radius-pill);border:1px solid var(--brass-dim);background:oklch(20% .03 150/.7);color:var(--ink-2);cursor:pointer}
.demo-tab[aria-selected="true"]{background:var(--brass);color:var(--accent-ink);border-color:var(--brass)}
.demo-stage{position:relative;aspect-ratio:16/10;border:1px solid var(--brass-dim);border-radius:12px;overflow:hidden;background:oklch(17% .03 150)}
.demo-stage iframe{width:100%;height:100%;border:0;display:block}
.demo-face{position:absolute;inset:0;display:grid;place-content:center;gap:var(--space-xs);text-align:center;padding:var(--space-md);background:radial-gradient(90% 70% at 50% 50%,oklch(15% .03 150/.9),oklch(15% .03 150/.72)),url(../img/game/fondo-suave.webp) center/cover}
.demo-face .lede{color:var(--ink)}
.demo-face p{margin:0}

/* --- capturas --- */
.shots{display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,244px),1fr));margin-top:var(--space-md)}
.shots figure{margin:0}
.shots img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:12px;border:1px solid var(--brass-dim);display:block}
.shots figcaption{font-size:var(--text-sm);color:var(--ink-3);margin-top:var(--space-xs)}

/* --- perro decorativo --- */
.perro{display:block;width:min(40vw,190px);height:auto;margin:0 auto calc(var(--space-md) * -1)}

/* --- faq --- */
details.faq{border:1px solid var(--brass-dim);border-radius:12px;background:oklch(20% .03 150/.6);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs)}
details.faq summary{cursor:pointer;font-family:var(--font-display);font-weight:900;color:var(--ink);min-height:32px}
details.faq[open] summary{color:var(--accent)}
details.faq p{margin:var(--space-xs) 0 0;color:var(--ink-2)}

/* --- colofón --- */
.colofon{border-top:2px solid var(--brass-dim);background:oklch(17% .03 150);padding-block:var(--space-lg);font-size:.88rem;line-height:1.65;color:var(--ink-3)}
.colofon p{margin:0 0 var(--space-sm);max-width:none}
.colofon strong{color:var(--ink-2)}
.colofon ul{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);list-style:none;padding:0;margin:var(--space-sm) 0}
.edad{display:inline-block;border:2px solid var(--collar);color:var(--collar);border-radius:var(--radius-pill);padding:1px 9px;font-family:var(--font-display);font-weight:900;margin-right:6px}

@media (prefers-reduced-motion:reduce){
  .rueda{transition-duration:150ms}
  .btn{transition:none}
}

/* --- páginas de juego --- */
.crumbs{font-size:var(--text-sm);color:var(--ink-3);margin:0 0 var(--space-sm)}
.crumbs a{color:var(--ink-2)}
.page-head{padding-top:var(--space-lg)}
.ficha{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:var(--space-xs);list-style:none;padding:0;margin:var(--space-md) 0 0}
.ficha li{background:oklch(20% .03 150/.7);border:1px solid var(--brass-dim);border-radius:10px;padding:var(--space-xs) var(--space-sm)}
.ficha b{display:block;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--accent);font-size:1.02rem;line-height:1.25}
.ficha span{font-size:.7rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.hermanas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:var(--space-xs);list-style:none;padding:0;margin:var(--space-md) 0 0}
.hermanas a{display:flex;flex-direction:column;gap:3px;background:oklch(20% .03 150/.7);border:1px solid var(--brass-dim);border-radius:10px;padding:var(--space-sm) var(--space-md);text-decoration:none;color:var(--ink);min-height:44px;height:100%;font-weight:600;line-height:1.3}
.hermanas a:hover{border-color:var(--accent);color:var(--accent)}
.hermanas .num{color:var(--ink-3);font-size:.84rem;font-weight:400;white-space:nowrap}
.hermanas a:hover .num{color:var(--accent)}

/* --- iconos de juego --- */
.rueda{position:relative;--r:104px}
@media(max-width:420px){.rueda{--r:78px}}
.rueda-ico{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px;border-radius:11px;background-size:cover;background-position:center;border:2px solid var(--brass-dim);box-shadow:0 3px 8px oklch(12% .04 150/.55);transform:rotate(calc(var(--i)*36deg)) translateY(calc(var(--r) * -1))}
@media(max-width:420px){.rueda-ico{width:34px;height:34px;margin:-17px}}
.rueda-hueso{position:relative;z-index:2}

.juego-cell{display:flex;align-items:center;gap:10px;min-width:210px}
.juego-cell img{width:38px;height:38px;border-radius:9px;flex:none;border:1px solid var(--brass-dim);display:block}
.juego-cell a{color:var(--ink);text-decoration-color:var(--brass-dim)}
.juego-cell a:hover{color:var(--accent)}
.hermanas a{position:relative;padding-left:60px}
.hermanas a img{position:absolute;left:var(--space-sm);top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:9px;border:1px solid var(--brass-dim);display:block}

/* héroe de página de juego */
.juego-hero{display:grid;gap:var(--space-md);align-items:center;margin-bottom:var(--space-md)}
@media(min-width:760px){.juego-hero{grid-template-columns:minmax(0,300px) minmax(0,1fr)}}
.juego-hero img{width:100%;height:auto;border-radius:14px;border:2px solid var(--brass-dim);box-shadow:0 10px 30px oklch(12% .04 150/.5);display:block}
.salida-top{display:flex;align-items:center;gap:12px;margin-bottom:var(--space-xs)}
.salida-top img{width:56px;height:56px;border-radius:12px;border:2px solid var(--brass-dim);flex:none;display:block}
.salida-top h3{margin:0;font-size:1.12rem}
.rueda-out .btn{margin-top:var(--space-xs)}

/* --- casinos --- */
.casinos{display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));margin-top:var(--space-md)}
.casino{display:flex;flex-direction:column;gap:var(--space-xs);background:var(--plaque);border:1px solid var(--brass-dim);border-radius:var(--radius);padding:var(--space-md)}
.casino.top{border-color:var(--brass);box-shadow:0 0 0 1px var(--brass-dim),0 10px 26px oklch(12% .04 150/.4)}
.casino-logo{background:#fff;border-radius:10px;padding:12px 16px;display:grid;place-items:center;height:84px}
.casino-logo img{max-width:100%;max-height:58px;width:auto;height:auto;object-fit:contain;display:block}
.casino h3{font-size:1.02rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.casino .bono{font-size:.92rem;color:var(--ink-2);margin:0;flex:1}
.casino .bono b{color:var(--accent);font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.casino .btn{width:100%}
.casino-vacio{opacity:.6;border-style:dashed}
.casino-vacio .casino-logo{background:oklch(26% .04 150);height:84px;color:var(--ink-3);font-family:var(--font-display);font-weight:900}
.rank{font-family:var(--font-mono);font-size:.8rem;color:var(--brass);border:1px solid var(--brass-dim);border-radius:6px;padding:1px 7px}
.casinos-nota{font-size:var(--text-sm);color:var(--ink-3);margin-top:var(--space-sm)}

/* --- CTA en la barra --- */
.bar .cta-item{margin-left:6px}
.bar nav a.nav-cta{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-pill);padding:9px 18px;border-bottom:none;text-shadow:none;font-weight:900;box-shadow:0 3px 0 oklch(58% .13 62),0 6px 16px oklch(70% .15 70/.28);white-space:nowrap}
.bar nav a.nav-cta:hover{background:oklch(85% .17 74);color:var(--accent-ink);border-bottom:none;transform:translateY(-1px)}
.bar nav a.nav-cta:active{transform:translateY(1px);box-shadow:0 1px 0 oklch(58% .13 62)}
@media(max-width:820px){.bar ul{gap:8px}.bar nav a.nav-cta{padding:8px 14px}}
.salida-cta{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-top:var(--space-sm)}
.salida-cta .btn{flex:1 1 auto;min-width:140px}
