/* ==========================================================
   CAFÉ MUN — cafetería medieval y juegos de mesa, Ñuñoa
   Papiro / verde musgo / naranjo oscuro · sketch & lore
   ========================================================== */

:root{
  --papiro:#F6E9C9;
  --crema:#FCEDC3;
  --musgo:#115147;
  --musgo-prof:#0B4F45;
  --naranjo:#B8572F;
  --naranjo-claro:#D7852C;
  --naranjo-texto:#9C4826;  /* naranjo AA para texto pequeño sobre papiro */
  --tinta:#2E2417;
  --tinta-suave:#5C4F3D;
  --linea:#DECFA6;
  --f-display:"Grenze Gotisch", Georgia, serif;
  --f-lore:"Alegreya", Georgia, serif;
  --f-cuerpo:"Alegreya Sans", "Segoe UI", sans-serif;
  --ancho:1180px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--f-cuerpo);
  background-color:var(--papiro);
  /* textura de papiro real (tile espejado, sin costuras) */
  background-image:url("../img/papiro.jpg");
  background-size:640px 640px;
  color:var(--tinta);
  font-size:1.08rem;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  overflow-x:clip;
}
/* grano claro para teñir de pergamino los bloques de color */
.reino-caja,.cajita-caja,.pie,.cinta{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='c'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='5'/%3E%3CfeColorMatrix values='0 0 0 0 0.98 0 0 0 0 0.93 0 0 0 0 0.77 0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23c)'/%3E%3C/svg%3E");
  background-repeat:repeat;background-size:220px 220px;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--naranjo);outline-offset:3px;border-radius:4px}

.saltar{position:absolute;left:-9999px;top:0;background:var(--musgo);color:#fff;padding:.6rem 1.2rem;z-index:200;border-radius:0 0 12px 0}
.saltar:focus{left:0}

/* ---------- utilidades ---------- */
.ceja{
  font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--naranjo-texto);font-weight:800;margin-bottom:.9rem;
}
.ceja-clara{color:var(--naranjo-claro)}
.titulo{
  font-family:var(--f-display);font-weight:600;
  font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1.04;
  color:var(--musgo);margin-bottom:1.2rem;
}
.lore,.lore-firma{font-family:var(--f-lore);font-style:italic}
.estrellas{color:#C99A2C;letter-spacing:.08em}

.boton{
  display:inline-block;background:var(--naranjo);color:var(--crema);
  text-decoration:none;font-weight:800;font-size:1rem;
  padding:.75rem 1.6rem;border-radius:14px;
  border:2.5px solid var(--tinta);box-shadow:3px 3px 0 var(--tinta);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.boton:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--tinta);background:var(--naranjo-texto)}
.boton:active{transform:translate(1px,1px);box-shadow:1px 1px 0 var(--tinta)}
.boton-borde{background:transparent;color:var(--musgo)}
.boton-borde:hover{background:var(--crema);color:var(--musgo)}
.boton-crema{background:var(--crema);color:var(--naranjo-texto)}
.boton-crema:hover{background:#fff;color:var(--naranjo-texto)}

/* ---------- nav ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;gap:2rem;
  padding:.55rem clamp(1.2rem,4vw,3rem);
  background:rgba(246,233,201,.94);backdrop-filter:blur(8px);
  border-bottom:3px solid var(--musgo);
}
.nav-marca img{width:64px;height:64px;object-fit:contain}
.nav-links{display:flex;gap:2rem;margin-left:auto}
.nav-links a{
  text-decoration:none;font-weight:800;font-size:1.02rem;color:var(--musgo);
  border-bottom:3px solid transparent;transition:border-color .2s;
}
.nav-links a:hover{border-color:var(--naranjo)}
.nav-cta{white-space:nowrap}

/* ---------- hero ---------- */
.hero{position:relative;padding-top:0}
.banderines{display:block;width:100%;height:auto;color:var(--musgo)}
.bandin{transform-box:fill-box;transform-origin:50% 0%}
@media (prefers-reduced-motion:no-preference){
  .bandin{animation:ondear 3.6s ease-in-out infinite}
  .b2{animation-delay:.4s}.b3{animation-delay:.8s}.b4{animation-delay:1.2s}
  .b5{animation-delay:1.6s}.b6{animation-delay:2s}.b7{animation-delay:2.4s}.b8{animation-delay:2.8s}
}
@keyframes ondear{0%,100%{transform:rotate(0deg)}50%{transform:rotate(5deg)}}

.hero-int{
  max-width:var(--ancho);margin:0 auto;
  display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center;
  padding:1.6rem clamp(1.2rem,4vw,3rem) 4.5rem;
}
.hero-texto{min-width:0;position:relative}
.hero h1{
  font-family:var(--f-display);font-weight:700;
  font-size:clamp(2.7rem,6vw,4.9rem);line-height:.98;
  color:var(--musgo);margin-bottom:1.2rem;
}
.destacado{color:var(--naranjo)}
.hero-bajada{max-width:32rem;color:var(--tinta-suave);margin-bottom:1.7rem}
.hero-bajada strong{color:var(--tinta)}
.hero-acciones{display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:1.5rem}
.hero-nota{
  display:inline-block;text-decoration:none;font-size:.98rem;color:var(--tinta-suave);
  border-bottom:2px dotted var(--linea);padding-bottom:2px;transition:border-color .25s;
}
.hero-nota:hover{border-color:var(--naranjo)}
.hero-nota strong{color:var(--tinta);font-size:1.08rem}

.d20{
  position:absolute;right:4%;bottom:-3.2rem;width:92px;height:92px;
  color:var(--naranjo);transition:transform .6s cubic-bezier(.34,1.56,.64,1);
}
.hero-texto:hover .d20{transform:rotate(360deg)}

/* polaroids */
.hero-fotos{position:relative;min-width:0;height:540px}
.polaroid{
  position:absolute;background:#FFFDF4;padding:12px 12px 14px;
  border:2px solid var(--tinta);box-shadow:5px 6px 0 rgba(46,36,23,.8);
  transition:transform .35s ease, box-shadow .35s ease;z-index:1;
}
.polaroid img{object-fit:cover;display:block}
.polaroid figcaption{
  font-family:var(--f-lore);font-style:italic;font-size:1.05rem;
  text-align:center;padding-top:.55rem;color:var(--tinta);
}
.p1{width:56%;left:2%;top:2%;transform:rotate(-4deg);z-index:2}
.p1 img{aspect-ratio:3/4;width:100%}
.p2{width:52%;right:0;top:24%;transform:rotate(3.5deg);z-index:3}
.p2 img{aspect-ratio:4/4.4;width:100%}
.p3{width:46%;left:10%;bottom:-2%;transform:rotate(-2deg)}
.p3 img{aspect-ratio:4/3;width:100%}
.polaroid:hover{transform:rotate(0deg) scale(1.03);box-shadow:8px 10px 0 rgba(46,36,23,.85);z-index:5}

/* entrada del hero */
.hero-in{opacity:1}
@media (prefers-reduced-motion:no-preference){
  .hero-in{opacity:0;animation:heroSube .9s cubic-bezier(.22,.61,.36,1) both}
  .hero-texto .hero-in:nth-child(1){animation-delay:.1s}
  .hero-texto .hero-in:nth-child(2){animation-delay:.24s}
  .hero-texto .hero-in:nth-child(3){animation-delay:.4s}
  .hero-texto .hero-in:nth-child(4){animation-delay:.56s}
  .hero-texto .hero-in:nth-child(5){animation-delay:.72s}
  .hero-texto .hero-in:nth-child(6){animation-delay:.9s}
  .hero-fotos .hero-in:nth-child(1){animation-delay:.5s}
  .hero-fotos .hero-in:nth-child(2){animation-delay:.68s}
  .hero-fotos .hero-in:nth-child(3){animation-delay:.86s}
}
@keyframes heroSube{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .p1.hero-in{animation-name:heroSube1}.p2.hero-in{animation-name:heroSube2}.p3.hero-in{animation-name:heroSube3}
}
@keyframes heroSube1{from{opacity:0;transform:rotate(-4deg) translateY(30px)}to{opacity:1;transform:rotate(-4deg)}}
@keyframes heroSube2{from{opacity:0;transform:rotate(3.5deg) translateY(30px)}to{opacity:1;transform:rotate(3.5deg)}}
@keyframes heroSube3{from{opacity:0;transform:rotate(-2deg) translateY(30px)}to{opacity:1;transform:rotate(-2deg)}}

/* ---------- cinta ---------- */
.cinta{
  background-color:var(--musgo);color:var(--crema);
  overflow:hidden;white-space:nowrap;
  padding:.7rem 0;border-block:3px solid var(--tinta);
}
.cinta-pista{display:flex;width:max-content;will-change:transform}
.cinta-pista.animar{animation:desfile linear infinite}
.cinta-unidad{
  font-family:var(--f-display);font-weight:600;font-size:1.15rem;
  letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;
}
@keyframes desfile{to{transform:translateX(-50%)}}

/* ---------- el reino ---------- */
.reino{padding:4.5rem clamp(1.2rem,4vw,3rem)}
.reino-caja{
  position:relative;max-width:var(--ancho);margin:0 auto;
  background-color:var(--musgo-prof);color:var(--crema);
  border-radius:26px;border:3px solid var(--tinta);
  box-shadow:6px 7px 0 rgba(46,36,23,.75);
  padding:clamp(2.2rem,5vw,4rem);
}
.sello-corona{
  position:absolute;top:-30px;right:clamp(1.5rem,6vw,4rem);
  width:84px;height:56px;color:var(--naranjo-claro);
  background:var(--papiro);padding:8px 10px;border:3px solid var(--tinta);border-radius:14px;
  box-shadow:3px 3px 0 rgba(46,36,23,.75);transform:rotate(3deg);
}
.reino-caja h2{
  font-family:var(--f-display);font-weight:600;
  font-size:clamp(1.9rem,3.4vw,2.9rem);margin-bottom:1.6rem;
}
.reino-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.reino-cols p{font-size:1rem;opacity:.92}
.reino-cols strong{color:var(--naranjo-claro)}
.reino-cols em{font-style:italic;color:var(--naranjo-claro)}
.lore-firma{margin-top:1.6rem;color:var(--naranjo-claro);font-size:1.05rem}

/* ---------- carta ---------- */
.carta{max-width:var(--ancho);margin:0 auto;padding:4.5rem clamp(1.2rem,4vw,3rem)}
.carta-cabeza{position:relative;max-width:46rem;margin-bottom:2.2rem}
.espadas{
  position:absolute;top:-6px;right:-20px;width:88px;height:88px;
  color:var(--naranjo);opacity:.85;transform:rotate(6deg);
}
.carta-sub{color:var(--tinta-suave)}
.carta-sub a{color:var(--naranjo-texto);font-weight:700}

.tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2.2rem}
.tab{
  font-family:var(--f-cuerpo);font-weight:800;font-size:.95rem;
  color:var(--musgo);background:transparent;
  border:2.5px solid var(--musgo);border-radius:12px;
  padding:.5rem 1.05rem;cursor:pointer;
  transition:background .2s,color .2s,transform .2s,box-shadow .2s;
}
.tab:hover{transform:translateY(-2px);box-shadow:2px 3px 0 var(--tinta)}
.tab[aria-selected="true"]{background:var(--musgo);color:var(--crema);box-shadow:2px 3px 0 var(--tinta)}

.carta-cuerpo{display:grid;grid-template-columns:.78fr 1.22fr;gap:2.6rem;align-items:start}
.carta-foto{position:sticky;top:104px}
.carta-foto img{
  aspect-ratio:3/3.4;object-fit:cover;width:100%;
  border:3px solid var(--tinta);border-radius:18px;box-shadow:5px 6px 0 rgba(46,36,23,.75);
}
.carta-foto figcaption{
  font-family:var(--f-lore);font-style:italic;font-size:1.2rem;
  color:var(--naranjo-texto);margin-top:.8rem;transform:rotate(-1.5deg);
}
.carta-lista{display:grid;grid-template-columns:1fr;gap:.15rem}
.item{
  padding:.8rem .5rem;border-bottom:2px dotted var(--linea);
  border-radius:8px;transition:background .2s;
}
.item:hover{background:rgba(184,87,47,.08)}
.item-linea{display:flex;align-items:baseline;gap:.6rem}
.item-nombre{font-weight:800;font-size:1.06rem;color:var(--musgo)}
.item-puntos{flex:1;border-bottom:2px dotted var(--linea);transform:translateY(-4px)}
.item-precio{font-family:var(--f-display);font-weight:600;font-size:1.12rem;color:var(--naranjo-texto);white-space:nowrap}
.item-lore{
  font-family:var(--f-lore);font-style:italic;font-size:.95rem;
  color:var(--tinta-suave);margin-top:.3rem;line-height:1.5;
}
.item-desc{font-size:.92rem;color:var(--tinta-suave);margin-top:.25rem;line-height:1.5}
.item-desc strong{color:var(--naranjo-texto)}
.carta-extras{
  margin-top:2.4rem;font-size:.95rem;color:var(--tinta-suave);
  border-top:3px solid var(--linea);padding-top:1.3rem;max-width:52rem;
}

/* ---------- cajita spotlight ---------- */
.cajita{padding:1rem clamp(1.2rem,4vw,3rem) 4.5rem}
.cajita-caja{
  max-width:var(--ancho);margin:0 auto;
  background-color:var(--naranjo-texto);color:var(--crema);
  border-radius:26px;border:3px solid var(--tinta);
  box-shadow:6px 7px 0 rgba(46,36,23,.75);
  display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center;
  padding:clamp(2.2rem,5vw,3.6rem);
}
.cajita-texto h2{
  font-family:var(--f-display);font-weight:700;
  font-size:clamp(2.1rem,4vw,3.3rem);line-height:1;margin-bottom:1.2rem;
}
.cajita .lore{font-size:1.05rem;opacity:.94;margin-bottom:1.3rem}
.cajita-lista{list-style:none;margin-bottom:1.3rem}
.cajita-lista li{padding:.3rem 0 .3rem 1.6rem;position:relative;font-size:1rem}
.cajita-lista li::before{content:"⚔";position:absolute;left:0;top:.3rem;font-size:.9rem}
.cajita-precio{font-family:var(--f-display);font-weight:700;font-size:2.4rem;margin-bottom:1.1rem}
.cajita-foto .foto-marco{border:3px solid var(--tinta);border-radius:18px;box-shadow:5px 6px 0 rgba(46,36,23,.6)}
.cajita-foto img{aspect-ratio:1/1;object-fit:cover;width:100%}

/* ---------- juegos ---------- */
.juegos{max-width:var(--ancho);margin:0 auto;padding:4.5rem clamp(1.2rem,4vw,3rem)}
.juegos-cabeza{position:relative;max-width:46rem;margin-bottom:2.4rem}
.meeple{
  position:absolute;top:-10px;right:-14px;width:82px;height:82px;
  color:var(--musgo);opacity:.9;transform:rotate(-7deg);
  transition:transform .4s ease;
}
.juegos-cabeza:hover .meeple{transform:rotate(7deg)}
.juegos-sub{color:var(--tinta-suave)}
.juegos-sub strong{color:var(--naranjo-texto)}
.juegos-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;margin-bottom:2.4rem}
.juego{
  background:#FFFDF4;border:2.5px solid var(--tinta);border-radius:16px;
  padding:1rem 1rem 1.2rem;box-shadow:4px 5px 0 rgba(46,36,23,.7);
  transition:transform .25s ease, box-shadow .25s ease;
}
.juego:hover{transform:translateY(-5px) rotate(-1deg);box-shadow:7px 9px 0 rgba(46,36,23,.75)}
.juego .foto-marco{border-radius:10px;overflow:hidden;background:#fff}
.juego img{aspect-ratio:1/1;object-fit:contain;width:100%}
.juego h3{font-family:var(--f-display);font-weight:600;font-size:1.2rem;color:var(--musgo);margin-top:.8rem}
.juego .precio{font-weight:800;color:var(--naranjo-texto)}
.juegos-notas{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.nota-perg{
  background:var(--crema);border:2.5px dashed var(--naranjo);border-radius:16px;
  padding:1.5rem 1.6rem;
}
.nota-perg h3{font-family:var(--f-display);font-weight:600;font-size:1.35rem;color:var(--musgo);margin-bottom:.5rem}
.nota-perg p{font-size:.98rem;color:var(--tinta-suave)}

/* biblioteca de juegos buscable */
.juegos-biblioteca{margin-bottom:2.4rem}
.biblioteca-cabeza{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.buscador{
  display:flex;align-items:center;gap:.6rem;flex:1;min-width:240px;
  background:#FFFDF4;border:2.5px solid var(--tinta);border-radius:14px;
  padding:.55rem .9rem;box-shadow:3px 3px 0 var(--tinta);
}
.buscador svg{width:22px;height:22px;color:var(--musgo);flex:none}
.buscador input{border:0;background:transparent;font-family:var(--f-cuerpo);font-size:1rem;color:var(--tinta);width:100%;outline:none}
.buscador input::placeholder{color:var(--tinta-suave)}
.biblioteca-conteo{font-family:var(--f-display);font-weight:600;font-size:1.05rem;color:var(--naranjo-texto);white-space:nowrap}
.juegos-lista{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0 .9rem;
  max-height:460px;overflow-y:auto;padding:.5rem 1rem .5rem .3rem;
  border:2.5px solid var(--tinta);border-radius:14px;background:rgba(255,253,244,.55);
}
.juego-row{display:flex;align-items:baseline;gap:.5rem;padding:.5rem .3rem;border-bottom:1.5px dotted var(--linea)}
.juego-row .jn{font-weight:600;font-size:.94rem;color:var(--tinta);flex:1}
.juego-row .jp{font-family:var(--f-display);font-weight:600;color:var(--naranjo-texto);white-space:nowrap}
.juego-vacio{grid-column:1/-1;padding:1.5rem;text-align:center;font-family:var(--f-lore);font-style:italic;color:var(--tinta-suave)}
.juegos-lista::-webkit-scrollbar{width:12px}
.juegos-lista::-webkit-scrollbar-track{background:transparent}
.juegos-lista::-webkit-scrollbar-thumb{background:var(--musgo);border-radius:8px;border:3px solid var(--papiro)}

/* botica esotérica */
.mercado{max-width:var(--ancho);margin:0 auto;padding:2rem clamp(1.2rem,4vw,3rem) 3rem}
.mercado-cabeza{position:relative;max-width:44rem;margin-bottom:2.2rem}
.luna{position:absolute;top:-8px;right:-6px;width:74px;height:74px;color:var(--naranjo);opacity:.85;transform:rotate(6deg)}
.mercado-sub{color:var(--tinta-suave)}
.mercado-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.hechizo{
  background:#FFFDF4;border:2.5px solid var(--tinta);border-radius:16px;overflow:hidden;
  box-shadow:4px 5px 0 rgba(46,36,23,.7);padding-bottom:1.1rem;
  transition:transform .25s ease, box-shadow .25s ease;
}
.hechizo:hover{transform:translateY(-5px) rotate(-1deg);box-shadow:7px 9px 0 rgba(46,36,23,.75)}
.hechizo img{aspect-ratio:1/1;object-fit:cover;width:100%}
.hechizo h3{font-family:var(--f-display);font-weight:600;font-size:1.1rem;color:var(--musgo);padding:.8rem 1rem 0;line-height:1.12}
.hechizo-marca{padding:.15rem 1rem;font-family:var(--f-lore);font-style:italic;font-size:.9rem;color:var(--tinta-suave)}
.hechizo .precio{padding:.3rem 1rem 0;font-weight:800;color:var(--naranjo-texto)}

/* ---------- visítanos ---------- */
.visitanos{
  max-width:var(--ancho);margin:0 auto;
  display:grid;grid-template-columns:1fr 1.05fr;gap:3rem;
  padding:3.5rem clamp(1.2rem,4vw,3rem) 5.5rem;align-items:center;
}
.visitanos address{font-style:normal;margin-bottom:1.3rem;color:var(--tinta-suave)}
.visitanos address strong{color:var(--tinta);font-size:1.15rem}
.horarios{list-style:none;max-width:26rem;margin-bottom:1.7rem}
.horarios li{
  display:flex;justify-content:space-between;gap:1.5rem;
  padding:.55rem 0;border-bottom:2px dotted var(--linea);font-size:1rem;
}
.horarios li span:last-child{font-weight:800;color:var(--musgo)}
.horarios .cerrado{color:var(--naranjo-texto)}
.visitanos-acciones{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.5rem}
.visitanos-mapa iframe{
  width:100%;height:430px;border:3px solid var(--tinta);border-radius:20px;
  box-shadow:5px 6px 0 rgba(46,36,23,.7);
  filter:sepia(.28) saturate(.92);display:block;
}

/* ---------- footer ---------- */
.pie{
  background-color:var(--musgo-prof);color:var(--crema);
  text-align:center;padding:3.2rem 1.5rem 6.5rem;
  border-top:3px solid var(--tinta);
}
.pie-logo{width:120px;height:120px;object-fit:contain;margin:0 auto 1.2rem}
.pie-dato{font-size:.95rem;opacity:.85;margin-bottom:1.1rem}
.pie-links{display:flex;gap:1.8rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.3rem}
.pie-links a{color:var(--crema);font-weight:800;font-size:.98rem;text-decoration-color:var(--naranjo-claro)}
.pie-firma{font-size:.88rem;opacity:.65}

/* ---------- barra móvil ---------- */
.barra-movil{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:110;
  background:var(--musgo);border-top:3px solid var(--tinta);
  padding:.75rem .5rem calc(.75rem + env(safe-area-inset-bottom));
  justify-content:space-around;
}
.barra-movil a{color:var(--crema);text-decoration:none;font-weight:800;font-size:.92rem}

/* ---------- reveals ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s ease,transform .8s ease}
[data-reveal="izq"]{transform:translateX(-34px)}
[data-reveal="der"]{transform:translateX(34px)}
[data-reveal="zoom"]{transform:scale(.96)}
[data-reveal="wipe"]{transform:none;clip-path:inset(100% 0 0 0);transition:clip-path .9s cubic-bezier(.22,.61,.36,1),opacity .6s ease}
[data-reveal].visto{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
[data-reveal="foto"]{transform:none;opacity:1}
[data-reveal="foto"] .foto-marco{overflow:hidden;clip-path:inset(100% 0 0 0);transition:clip-path 1s cubic-bezier(.22,.61,.36,1)}
[data-reveal="foto"] .foto-marco img{transform:scale(1.14);transition:transform 1.25s cubic-bezier(.22,.61,.36,1)}
[data-reveal="foto"].visto .foto-marco{clip-path:inset(0 0 0 0)}
[data-reveal="foto"].visto .foto-marco img{transform:scale(1)}

/* ---------- ilustraciones medievales que se dibujan ---------- */
[data-reveal="trazo"]{opacity:1;transform:none}
[data-reveal="trazo"] [pathLength]{stroke-dasharray:1;stroke-dashoffset:1}
@media (prefers-reduced-motion:no-preference){
  [data-reveal="trazo"].visto [pathLength]{animation:trazar 1.8s ease forwards}
}
@keyframes trazar{to{stroke-dashoffset:0}}

.separador-castillo{max-width:var(--ancho);margin:0 auto;padding:2rem clamp(1.2rem,4vw,3rem) .5rem}
.separador-castillo svg{width:100%;height:auto;display:block;color:var(--musgo)}

.dragon-franja{
  max-width:var(--ancho);margin:0 auto;
  padding:2.4rem clamp(1.2rem,4vw,3rem);
  display:flex;align-items:center;justify-content:center;gap:clamp(1rem,3vw,2.5rem);
}
.dragon-franja svg{width:clamp(150px,19vw,220px);height:auto;color:var(--musgo);flex:none}
.dragon-franja svg.espejo{transform:scaleX(-1)}
.dragon-lema{
  font-family:var(--f-display);font-weight:600;
  font-size:clamp(1.4rem,3vw,2.1rem);color:var(--musgo);text-align:center;max-width:20ch;
}

/* ---------- heráldica decorativa ---------- */
.her{position:absolute;pointer-events:none;user-select:none}
.her-flota{animation:heraldFlota 6s ease-in-out infinite}
@keyframes heraldFlota{0%,100%{transform:translateY(0) rotate(var(--rot,0deg))}50%{transform:translateY(-9px) rotate(var(--rot,0deg))}}

.reino-leon{
  right:clamp(.5rem,4vw,3rem);bottom:0;height:88%;width:auto;
  filter:brightness(0) invert(.92) sepia(.3);opacity:.1;
}
.reino-caja{overflow:hidden}
.reino-caja > *:not(.reino-leon){position:relative;z-index:1}

.carta-estandartes{position:relative}
.estandarte{top:-1rem;width:clamp(90px,9vw,130px);opacity:.85;transform-origin:50% 0}
.estandarte-izq{left:calc(-1 * clamp(70px,8vw,120px))}
.estandarte-der{right:calc(-1 * clamp(30px,4vw,70px))}
@media (prefers-reduced-motion:no-preference){
  .estandarte{animation:ondearEst 5.5s ease-in-out infinite}
  .estandarte-der{animation-delay:1.4s}
}
@keyframes ondearEst{0%,100%{transform:rotate(-1.6deg)}50%{transform:rotate(1.6deg)}}

.cajita-caja{position:relative}
.cajita-corona{top:-2.9rem;left:clamp(1rem,4vw,2.6rem);width:110px;--rot:-5deg;filter:drop-shadow(2px 3px 0 rgba(46,36,23,.5))}
.juegos-aguila{width:76px;height:auto;flex:none;opacity:.9;transform:rotate(4deg)}
.pie-fleur{position:static;display:inline-block;width:30px;margin:0 1rem;vertical-align:middle;filter:brightness(0) invert(.92) sepia(.25);opacity:.7}

/* ---------- dragón: llamas ---------- */
.llama{opacity:0;transform-box:fill-box;transform-origin:0% 50%}
@media (prefers-reduced-motion:no-preference){
  [data-reveal="trazo"].visto .llama{animation:llamear 1.7s ease-in-out infinite;animation-delay:calc(2s + var(--ld,0s))}
}
@keyframes llamear{
  0%,100%{opacity:0;transform:scaleX(.35) scaleY(.7)}
  18%{opacity:.95;transform:scaleX(1.05) scaleY(1)}
  38%{opacity:.75;transform:scaleX(.8) scaleY(.9)}
  58%{opacity:1;transform:scaleX(1.15) scaleY(1.05)}
  80%{opacity:.5;transform:scaleX(.6) scaleY(.85)}
}

/* ---------- cursor punta de lanza ---------- */
@media (pointer:fine) and (prefers-reduced-motion:no-preference){
  body.con-lanza, body.con-lanza a, body.con-lanza button, body.con-lanza .tab, body.con-lanza label{cursor:none}
  body.con-lanza input{cursor:text}
}
.cursor-lanza{
  position:fixed;top:0;left:0;z-index:999;width:36px;height:36px;
  pointer-events:none;opacity:0;transition:opacity .25s ease;
}
.cursor-lanza.activo{opacity:1}
.cursor-lanza svg{width:100%;height:100%;display:block;filter:drop-shadow(1px 2px 2px rgba(46,36,23,.35))}

/* ---------- barra de progreso espada ---------- */
.progreso{
  position:fixed;top:0;left:0;right:0;height:5px;z-index:200;pointer-events:none;
}
.progreso-hoja{
  position:relative;height:100%;width:0;
  background:linear-gradient(90deg,var(--musgo),var(--naranjo) 85%,var(--naranjo-claro));
}
.progreso-hoja::after{
  content:"";position:absolute;right:-7px;top:-3px;
  border-left:8px solid var(--naranjo-claro);
  border-top:5.5px solid transparent;border-bottom:5.5px solid transparent;
}

/* ---------- responsive ---------- */
@media (max-width:960px){
  .estandarte,.juegos-aguila{display:none}
  .cajita-corona{width:84px;top:-2.2rem}
  .reino-leon{height:70%;opacity:.08}
  .nav-links,.nav-cta{display:none}
  .nav{justify-content:center}
  .hero-int{grid-template-columns:1fr;padding-top:1rem;text-align:center;gap:1.6rem}
  .hero-bajada{margin-inline:auto}
  .hero-acciones{justify-content:center}
  .d20{position:static;margin:1.4rem auto 0;display:block;transform:none}
  .hero-fotos{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding-top:.6rem}
  .polaroid{position:static;width:auto !important}
  .p1{transform:rotate(-2.5deg)}
  .p2{transform:rotate(2deg)}
  .p3{transform:rotate(-1.5deg);grid-column:1/-1;max-width:420px;margin:0 auto}
  .reino-cols{grid-template-columns:1fr;gap:1.2rem}
  .carta-cuerpo{grid-template-columns:1fr}
  .carta-foto{position:static;max-width:430px}
  .espadas{width:64px;height:64px;right:0}
  .cajita-caja{grid-template-columns:1fr}
  .cajita-foto{order:-1}
  .juegos-grid{grid-template-columns:1fr 1fr}
  .juegos-lista{grid-template-columns:1fr;max-height:400px}
  .mercado-grid{grid-template-columns:1fr 1fr}
  .juegos-notas{grid-template-columns:1fr}
  .meeple{width:60px;height:60px;right:0}
  .visitanos{grid-template-columns:1fr;gap:2rem}
  .visitanos-mapa iframe{height:330px}
  .barra-movil{display:flex}
  .pie{padding-bottom:7.5rem}
  .dragon-franja{flex-direction:column;gap:1.1rem}
  .dragon-franja svg.espejo{display:none}
  .dragon-franja svg{width:clamp(140px,40vw,200px)}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .cinta-pista{animation:none}
  [data-reveal],[data-reveal="wipe"]{opacity:1;transform:none;clip-path:none;transition:none}
  [data-reveal="foto"] .foto-marco{clip-path:none;transition:none}
  [data-reveal="foto"] .foto-marco img{transform:none;transition:none}
  [data-reveal="trazo"] [pathLength]{stroke-dashoffset:0}
  .boton,.tab,.juego,.polaroid,.d20{transition:none}
  .hero-texto:hover .d20{transform:none}
  .her-flota,.estandarte{animation:none}
  .llama{opacity:.85;transform:none}
  .cursor-lanza{display:none}
}
