:root {
  color-scheme: dark;
  font-family: "Baloo 2", system-ui, sans-serif;
  --ink: #080d21;
  --cream: #fff8df;
  --gold: #ffd85a;
  --red: #e33d3a;
  --blue: #148ccc;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

input,
textarea,
[contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
}

::selection { background: transparent; }

img {
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-touch-callout: none;
}

@media (max-width: 900px) {
  input,
  select,
  textarea {
    font-size: 16px !important;
  }
}

html, body { margin: 0; min-height: 100%; background: var(--ink); }

button,
a {
  -webkit-appearance: none;
  appearance: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

button { font: inherit; }

/* Safari/iOS puede interpretar nombres y puntuaciones como teléfonos,
   fechas o direcciones y convertirlos en enlaces a Maps. */
a[x-apple-data-detectors],
[x-apple-data-detectors] {
  color: inherit !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font: inherit !important;
  text-decoration: none !important;
  pointer-events: none !important;
  cursor: default !important;
}

.welcome {
  position: relative;
  isolation: isolate;
  min-height: 100svh;
  max-width: 560px;
  margin: 0 auto;
  overflow: hidden;
  background: #071333;
  box-shadow: 0 0 80px #000;
}

.welcome__art,
.welcome__shade {
  position: absolute;
  inset: 0;
}

.welcome__art {
  z-index: -3;
  background: url("https://revoseo1.ams3.digitaloceanspaces.com/fallamania/assets/fallamania-welcome.png") center center / cover no-repeat;
  transform: scale(1.012);
  transform-origin:center 42%;
  will-change:transform;
  animation:reveal 1.1s ease-out both,welcome-pan 9s ease-in-out infinite alternate;
}

.welcome__shade {
  z-index: -2;
  background:
    linear-gradient(180deg, rgba(2, 7, 28, .64) 0%, transparent 21%, transparent 57%, rgba(3, 7, 23, .18) 68%, rgba(3, 6, 20, .94) 100%),
    radial-gradient(circle at 50% 22%, transparent 18%, rgba(1, 4, 19, .22) 85%);
  animation:welcome-shade 5s ease-in-out infinite alternate;
}

.welcome::before {
  content:"";
  position:absolute;
  z-index:-1;
  inset:-20%;
  background:radial-gradient(ellipse at 38% 28%,rgba(255,224,139,.13),transparent 25%),radial-gradient(ellipse at 72% 46%,rgba(81,203,255,.09),transparent 27%);
  mix-blend-mode:screen;
  pointer-events:none;
  animation:welcome-light 7s ease-in-out infinite alternate;
}

.brand {
  width: 100%;
  padding: max(28px, env(safe-area-inset-top)) 18px 0;
  text-align: center;
  filter: drop-shadow(0 8px 4px rgba(0, 0, 0, .65));
}

.brand__eyebrow {
  display: inline-block;
  margin: 0 0 4px;
  padding: 4px 13px 2px;
  border: 1px solid rgba(255, 224, 117, .75);
  border-radius: 999px;
  color: #fff3bd;
  background: rgba(15, 18, 45, .72);
  font: 700 clamp(.58rem, 2.3vw, .75rem)/1.25 "Baloo 2", sans-serif;
  letter-spacing: .12em;
}

.brand__title {
  margin: 2px auto 0;
  width: min(94%, 470px);
  line-height: 0;
}

.brand__title img {
  display: block;
  width: 100%;
  height: auto;
}

.brand__claim {
  margin: 13px 0 0;
  color: white;
  font: 800 clamp(.82rem, 3.4vw, 1rem)/1.1 "Baloo 2", sans-serif;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.welcome__actions {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  display: grid;
  gap: clamp(10px, 2vh, 16px);
  padding: 30px clamp(18px, 5vw, 34px) max(22px, env(safe-area-inset-bottom));
}

.game-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(75px, 11svh, 97px);
  padding: 10px 18px;
  overflow: hidden;
  border: 4px solid #f9e8a4;
  border-radius: 18px;
  color: white;
  box-shadow: inset 0 4px 0 rgba(255,255,255,.35), inset 0 -8px 0 rgba(0,0,0,.2), 0 7px 0 #11172b, 0 13px 24px rgba(0,0,0,.55);
  font: 800 clamp(1.55rem, 7.2vw, 2.3rem)/1 "Baloo 2", sans-serif;
  letter-spacing: .025em;
  text-shadow: 0 3px 0 rgba(0,0,0,.65);
  cursor: pointer;
  transition: transform .12s ease, filter .12s ease;
}

.game-button::before {
  content: "";
  position: absolute;
  inset: 4px 9px auto;
  height: 28%;
  border-radius: 10px;
  background: rgba(255,255,255,.16);
}

.game-button--new { background: linear-gradient(#22a9e7, #0876ba); }
.game-button--load { background: linear-gradient(#f05a4f, #c92532); }
.game-button:hover { filter: brightness(1.12); }
.game-button:active { transform: translateY(6px); box-shadow: inset 0 4px 0 rgba(255,255,255,.3), inset 0 -5px 0 rgba(0,0,0,.18), 0 2px 0 #11172b; }
.game-button:focus-visible, .notice__close:focus-visible { outline: 4px solid white; outline-offset: 3px; }

.welcome__hint {
  margin: 3px 0 0;
  color: rgba(255,255,255,.72);
  font-size: .78rem;
  letter-spacing: .06em;
  text-align: center;
  text-transform: uppercase;
}

.notice {
  width: min(86vw, 380px);
  padding: 28px 24px 22px;
  border: 3px solid var(--gold);
  border-radius: 24px;
  color: var(--ink);
  background: var(--cream);
  text-align: center;
  box-shadow: 0 20px 80px #000;
}

.notice::backdrop { background: rgba(2, 5, 18, .82); backdrop-filter: blur(4px); }
.notice__crest { width: 54px; height: 54px; margin: -54px auto 10px; border: 3px solid var(--gold); border-radius: 50%; color: var(--gold); background: #152851; font-size: 2rem; line-height: 50px; }
.notice h2 { margin: 0; font: 800 2rem/1 "Baloo 2", sans-serif; }
.notice p { margin: 10px 0 18px; line-height: 1.35; }
.notice__close { min-width: 170px; padding: 10px 16px; border: 0; border-radius: 10px; color: white; background: #17366e; font-weight: 800; cursor: pointer; }

.account-delete-confirm { width:min(88vw,390px); padding:24px 20px 20px; border:3px solid #ff8795; border-radius:22px; color:#fff; background:linear-gradient(155deg,#351a2a,#151a36 65%,#0d1730); box-shadow:0 22px 70px #000; text-align:center; }
.account-delete-confirm::backdrop { background:rgba(2,5,18,.88); backdrop-filter:blur(5px); }
.account-delete-confirm__icon { display:grid; width:54px; height:54px; margin:-5px auto 10px; place-items:center; border:3px solid #ff9aa5; border-radius:50%; color:#fff; background:linear-gradient(#f85e70,#bd2944); box-shadow:0 4px 0 #711329; font:900 1.6rem/1 "Baloo 2",sans-serif; }
.account-delete-confirm > small { color:#ff9ca8; font-size:.56rem; font-weight:900; letter-spacing:.13em; }.account-delete-confirm h2 { margin:3px 0 8px; font:900 1.45rem/1 "Baloo 2",sans-serif; }.account-delete-confirm p { margin:0; color:#c9cfdb; font-size:.76rem; line-height:1.35; }.account-delete-confirm > div:not(.account-delete-confirm__icon) { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:17px; }.account-delete-confirm button { min-height:46px; border:1px solid #7790ae; border-radius:11px; color:#e8f1fb; background:linear-gradient(#294463,#172c49); box-shadow:0 3px 0 #091426; font:800 .68rem/1 "Baloo 2",sans-serif; }.account-delete-confirm [data-account-delete-confirm] { border-color:#ff9aa5; color:#fff; background:linear-gradient(#f45d6e,#c92d48); box-shadow:0 3px 0 #731329; }.account-delete-confirm button:focus,.account-delete-confirm button:focus-visible { outline:none; }.account-delete-confirm > span { display:block; min-height:15px; margin-top:9px; color:#ff9ca8; font-size:.58rem; font-weight:800; }
.turn-blocked-modal { width:min(88vw,390px); padding:24px 20px 20px; border:3px solid #ffd56a; border-radius:22px; color:#fff; background:linear-gradient(155deg,#3b2a19,#18213c 65%,#0d1730); box-shadow:0 22px 70px #000; text-align:center; }.turn-blocked-modal::backdrop { background:rgba(2,5,18,.88); backdrop-filter:blur(5px); }.turn-blocked-modal__icon { display:grid; width:54px; height:54px; margin:-5px auto 10px; place-items:center; border:3px solid #ffe69a; border-radius:50%; color:#563405; background:linear-gradient(#ffdc62,#e99a18); box-shadow:0 4px 0 #7b4707; font:900 1.6rem/1 "Baloo 2",sans-serif; }.turn-blocked-modal > small { color:#ffd66d; font-size:.56rem; font-weight:900; letter-spacing:.13em; }.turn-blocked-modal h2 { margin:3px 0 8px; font:900 1.45rem/1 "Baloo 2",sans-serif; }.turn-blocked-modal p { margin:0; color:#d3d9e4; font-size:.76rem; line-height:1.35; }.turn-blocked-modal button { width:100%; min-height:48px; margin-top:17px; border:2px solid #fff0a6; border-radius:11px; color:#493006; background:linear-gradient(#ffdc62,#eda11d); box-shadow:inset 0 2px rgba(255,255,255,.35),0 4px 0 #80510a; font:900 .72rem/1 "Baloo 2",sans-serif; }.turn-blocked-modal button:focus,.turn-blocked-modal button:focus-visible { outline:none; }
.energy-recovery-modal { border-color:#ff7784; background:linear-gradient(155deg,#481521,#18213c 65%,#0d1730); }
.energy-recovery-modal .turn-blocked-modal__icon { border-color:#ffc4c9; color:#fff; background:linear-gradient(#ff6675,#b60f2b); box-shadow:0 4px 0 #670819; }
.energy-recovery-modal > small { color:#ff9da7; }
.energy-recovery-modal__content { min-height:70px; }

.turn-arrival { width:min(92vw,430px); padding:0; overflow:hidden; border:3px solid #62dcff; border-radius:26px; color:#fff; background:linear-gradient(165deg,#183f73 0%,#101f4e 48%,#100f32 100%); box-shadow:0 10px 0 #051027,0 28px 80px #000; text-align:center; }
.turn-arrival::backdrop { background:rgba(1,5,18,.9); backdrop-filter:blur(7px); }
.turn-arrival__sky { position:absolute; inset:0; overflow:hidden; opacity:.45; background:radial-gradient(circle at 50% 6%,rgba(65,218,255,.48),transparent 42%); pointer-events:none; }
.turn-arrival__sky i { position:absolute; width:4px; height:4px; border-radius:50%; background:#fff; box-shadow:34px 41px #fff,89px 17px #ffe47c,145px 62px #fff,214px 25px #67e4ff,286px 68px #fff,351px 22px #ffe47c; animation:turnArrivalStars 1.8s ease-in-out infinite alternate; }
.turn-arrival__sky i:nth-child(2) { top:31%; left:17%; transform:scale(.65); animation-delay:-.7s; }.turn-arrival__sky i:nth-child(3) { top:57%; left:49%; transform:scale(.45); animation-delay:-1.2s; }
.turn-arrival > section { position:relative; display:grid; padding:25px 22px 22px; justify-items:center; }
.turn-arrival section > small { color:#76e4ff; font-size:.58rem; font-weight:900; letter-spacing:.18em; }
.turn-arrival__calendar { position:relative; display:grid; width:76px; height:72px; margin:12px 0 17px; place-items:center; border:3px solid #fff4ad; border-radius:15px; color:#4f3000; background:linear-gradient(#ffe66e 0 24%,#fff7cf 24%); box-shadow:inset 0 -5px rgba(204,127,10,.18),0 5px 0 #82520c,0 10px 24px rgba(0,0,0,.38); }
.turn-arrival__calendar::before,.turn-arrival__calendar::after { content:""; position:absolute; top:-9px; width:9px; height:18px; border:2px solid #c47b0e; border-radius:7px; background:#fff4b1; }.turn-arrival__calendar::before { left:15px; }.turn-arrival__calendar::after { right:15px; }
.turn-arrival__calendar b { padding-top:15px; font-size:1.7rem; line-height:1; }
.turn-arrival h2 { margin:0; font:900 clamp(1.55rem,7vw,2.15rem)/.95 "Baloo 2",sans-serif; letter-spacing:.015em; text-shadow:0 3px 0 #071128; }.turn-arrival h2 b { color:#65ddff; }
.turn-arrival__countdown { display:grid; min-height:96px; margin:19px 0 13px; align-content:center; }.turn-arrival__countdown strong { display:flex; align-items:baseline; justify-content:center; gap:.16em; color:#ffe264; font:900 clamp(3.15rem,15.3vw,4.4rem)/.75 "Baloo 2",sans-serif; white-space:nowrap; text-shadow:0 5px 0 #8b5109,0 0 25px rgba(255,211,54,.42); }.turn-arrival__countdown strong[hidden] { display:none; }.turn-arrival__countdown strong b { color:inherit; font:inherit; }.turn-arrival__countdown p { max-width:270px; margin:10px auto 0; color:#fff; font-size:.78rem; font-weight:900; line-height:1.08; letter-spacing:.045em; }
.turn-arrival__route[hidden] { display:none; }
.turn-arrival__route { display:grid; width:100%; grid-template-columns:repeat(7,1fr); gap:5px; margin:0 0 17px; }.turn-arrival__route i { height:8px; border:1px solid #40577a; border-radius:6px; background:#09152d; box-shadow:inset 0 2px 3px rgba(0,0,0,.6); }.turn-arrival__route i.is-complete { border-color:#31b9db; background:#2ed6ff; box-shadow:0 0 8px rgba(46,214,255,.55); }.turn-arrival__route i.is-current { border-color:#fff0a0; background:#ffce3d; box-shadow:0 0 11px rgba(255,205,52,.75); animation:turnArrivalCurrent .8s ease-in-out infinite alternate; }
.turn-arrival button { width:100%; min-height:52px; border:3px solid #fff0a3; border-radius:14px; color:#4f3000; background:linear-gradient(#ffe16b,#efa31d); box-shadow:inset 0 3px rgba(255,255,255,.4),0 5px 0 #7c4808; font:900 .82rem/1 "Baloo 2",sans-serif; }
.turn-arrival button:active { transform:translateY(3px); box-shadow:inset 0 3px rgba(255,255,255,.35),0 2px 0 #7c4808; }
.turn-arrival__energy{display:grid;width:100%;margin-top:15px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:7px}.turn-arrival__energy>strong{color:#8de5ff;font-size:.54rem;letter-spacing:.09em}.turn-arrival__energy>b{min-width:31px;color:#70ddff;font-size:.52rem;text-align:right}.turn-arrival__energy>span{display:grid;min-width:0;grid-template-columns:repeat(20,minmax(2px,1fr));gap:2px}.turn-arrival__energy i{display:block;min-width:2px;height:10px;border:1px solid rgba(255,255,255,.18);border-radius:2px;background:#050a12;box-shadow:inset 0 1px 2px rgba(0,0,0,.72)}.turn-arrival__energy i.is-full{border-color:#6ee8ff;background:linear-gradient(#63eaff,#149bd2);box-shadow:inset 0 1px rgba(255,255,255,.65),0 0 5px rgba(31,198,255,.75)}.turn-arrival__energy i.is-spending{z-index:2;animation:turnEnergySpend .8s ease-in forwards}.turn-arrival__energy i.is-spent{animation:turnEnergyAfterglow .7s ease-out forwards}@keyframes turnEnergySpend{0%{filter:brightness(1);transform:scale(1)}45%{border-color:#fff3a3;background:#ffcf38;box-shadow:0 0 14px #ffd84f;filter:brightness(1.8);transform:scale(1.45)}100%{opacity:.15;filter:brightness(.5);transform:scale(.45)}}@keyframes turnEnergyAfterglow{from{box-shadow:0 0 12px rgba(255,210,57,.8)}to{box-shadow:none}}
.turn-arrival.is-contest { border-color:#ff8b80; background:linear-gradient(165deg,#781f2c 0%,#45152b 48%,#190d25 100%); box-shadow:0 10px 0 #260711,0 28px 80px #000,inset 0 1px rgba(255,218,176,.14); }
.turn-arrival.is-contest .turn-arrival__sky { opacity:.58; background:radial-gradient(circle at 50% 4%,rgba(255,144,80,.58),transparent 44%),linear-gradient(180deg,rgba(133,12,31,.18),transparent 65%); }
.turn-arrival.is-contest section > small { color:#ffb09d; }
.turn-arrival.is-contest h2 { margin-top:8px; }
.turn-arrival.is-contest h2 b { color:#ffb27d; }
.turn-arrival.is-contest .turn-arrival__countdown { min-height:0; margin:7px 0 4px; }
.turn-arrival.is-contest .turn-arrival__countdown p { margin-top:0; color:#fff0d9; font-size:clamp(1.15rem,5.4vw,1.5rem); line-height:1; text-shadow:0 3px 0 #3d0711; }
.turn-arrival__identity[hidden] { display:none; }
.turn-arrival__identity { display:none!important; }
.turn-arrival__costumes[hidden] { display:none; }
.turn-arrival__costumes { position:relative; display:flex; width:100%; height:122px; margin:-2px 0 13px; align-items:flex-end; justify-content:center; overflow:hidden; }
.turn-arrival__costumes::before { content:""; position:absolute; right:8%; bottom:2px; left:8%; height:20px; border-radius:50%; background:radial-gradient(ellipse,rgba(255,99,55,.55),rgba(85,8,24,.45) 48%,transparent 72%); filter:blur(5px); }
.turn-arrival__costumes img { position:relative; z-index:1; display:block; width:30%; height:118px; margin:0 -6%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 5px 3px rgba(0,0,0,.65)); transform-origin:50% 100%; }
.turn-arrival__costumes img:nth-child(1) { transform:translateY(10px) rotate(-12deg); }.turn-arrival__costumes img:nth-child(2) { z-index:3; transform:translateY(1px) rotate(-4deg); }.turn-arrival__costumes img:nth-child(3) { z-index:4; transform:translateY(1px) rotate(4deg); }.turn-arrival__costumes img:nth-child(4) { transform:translateY(10px) rotate(12deg); }
.turn-arrival.is-contest button { border-color:#ffd6a0; color:#fff5df; background:linear-gradient(#ef5d48,#aa172d); box-shadow:inset 0 3px rgba(255,255,255,.25),0 5px 0 #570717,0 0 18px rgba(255,72,54,.28); text-shadow:0 2px #590915; }
.turn-arrival.is-contest button:active { box-shadow:inset 0 3px rgba(255,255,255,.2),0 2px 0 #570717; }
@keyframes turnArrivalStars { to { opacity:.3; filter:brightness(.8); } } @keyframes turnArrivalCurrent { to { filter:brightness(1.25); transform:scaleY(1.18); } }
@media(max-height:650px){.turn-arrival > section{padding-block:17px 18px}.turn-arrival__calendar{width:64px;height:60px;margin-block:8px 14px}.turn-arrival__countdown{min-height:76px;margin-block:12px 9px}.turn-arrival__countdown strong{font-size:2.75rem}.turn-arrival__route{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.turn-arrival__sky i,.turn-arrival__route i.is-current{animation:none}}
.coac-registration{width:min(94vw,430px);height:min(92dvh,780px);max-height:780px;padding:0;overflow:hidden;border:3px solid #ffd36b;border-radius:25px;color:#fff;background:#392579;box-shadow:0 10px 0 #10072d,0 28px 80px #000}.coac-registration::backdrop{background:rgba(1,3,16,.94);backdrop-filter:blur(7px)}.coac-registration__scene{position:absolute;inset:0;background-image:linear-gradient(180deg,rgba(17,10,76,.08),rgba(47,17,71,.04)),url("https://revoseo1.ams3.digitaloceanspaces.com/fallamania/assets/coac/coac-registration-caleta.png");background-position:center bottom;background-size:100% 100%;image-rendering:auto}.coac-registration>section{position:relative;z-index:1;display:grid;height:100%;padding:20px 13px 17px;grid-template-rows:auto minmax(0,1fr) auto auto;justify-items:center;box-sizing:border-box}.coac-registration header{position:relative;z-index:3;text-align:center;text-shadow:0 3px 0 #160b4c}.coac-registration header small{color:#ffe58a;font-size:.56rem;font-weight:900;letter-spacing:.15em}.coac-registration h2{margin:1px 0 6px;font:900 clamp(1.35rem,6vw,1.8rem)/1 "Baloo 2",sans-serif}.coac-registration h2 span{color:#65e5ff}.coac-registration__sheet{position:relative;align-self:center;width:min(100%,400px);aspect-ratio:490/431;filter:drop-shadow(0 11px 9px rgba(8,2,36,.58));transform-origin:50% 15%;transition:none}.coac-registration__sheet>img{display:block;width:100%;height:100%;object-fit:contain}.coac-registration__sheet dl{position:absolute;inset:15% 15% 11% 17%;display:grid;margin:0;align-content:center;gap:3px;color:#18202a;text-align:left;transform:rotate(-.35deg)}.coac-registration__sheet dl div{display:grid;min-width:0;padding:3px 3px 4px;grid-template-columns:34% minmax(0,1fr);align-items:end;border-bottom:1px solid rgba(38,44,51,.25)}.coac-registration__sheet dt{font:900 clamp(.38rem,1.65vw,.49rem)/1 "Baloo 2",sans-serif;letter-spacing:.06em}.coac-registration__sheet dd{min-width:0;margin:0;overflow:hidden;font:800 clamp(.48rem,2.05vw,.62rem)/1 "Baloo 2",sans-serif;text-overflow:ellipsis;white-space:nowrap}.coac-registration>section>p{position:relative;z-index:3;margin:5px 8px 9px;color:#fff5d0;font-size:.58rem;font-weight:800;line-height:1.15;text-align:center;text-shadow:0 2px 2px #241050}.coac-registration button{position:relative;z-index:4;width:100%;min-height:50px;border:3px solid #fff0a3;border-radius:14px;color:#4f3000;background:linear-gradient(#ffe16b,#efa31d);box-shadow:inset 0 3px rgba(255,255,255,.4),0 5px 0 #7c4808;font:900 .78rem/1 "Baloo 2",sans-serif}.coac-registration button:disabled{cursor:default}.coac-registration__stamp{position:absolute;z-index:5;top:43%;left:50%;padding:8px 15px 5px;border:5px double #c52027;border-radius:8px;color:#c52027;background:rgba(255,244,219,.9);box-shadow:0 5px 14px rgba(0,0,0,.38);font:900 clamp(1.4rem,8vw,2.1rem)/1 "Baloo 2",sans-serif;letter-spacing:.08em;opacity:0;transform:translate(-50%,-120vh) rotate(-17deg) scale(1.8);pointer-events:none}.coac-registration.is-sending .coac-registration__sheet{animation:coacSheetToSky 1.25s cubic-bezier(.52,.04,.7,.28) forwards}.coac-registration.is-sending header,.coac-registration.is-sending>section>p,.coac-registration.is-sending button{transition:opacity .25s;opacity:0;pointer-events:none}.coac-registration.is-stamped .coac-registration__stamp{animation:coacStampDrop .72s cubic-bezier(.18,.82,.3,1.08) forwards}.coac-registration.is-stamped button{opacity:1;pointer-events:auto;background:linear-gradient(#66e59a,#22a95f);box-shadow:inset 0 3px rgba(255,255,255,.35),0 5px 0 #0b6437;color:#073d27}.coac-registration.is-stamped>section>p{opacity:1;color:#fff}.coac-registration.is-stamped header{opacity:1}@keyframes coacSheetToSky{0%{transform:translateY(0) rotate(0) scale(1);opacity:1}70%{opacity:1}100%{transform:translateY(-120vh) rotate(7deg) scale(.42);opacity:0}}@keyframes coacStampDrop{0%{opacity:0;transform:translate(-50%,-120vh) rotate(-17deg) scale(1.8)}65%{opacity:1;transform:translate(-50%,12px) rotate(-9deg) scale(.92)}82%{transform:translate(-50%,-8px) rotate(-11deg) scale(1.08)}100%{opacity:1;transform:translate(-50%,0) rotate(-10deg) scale(1)}}@media(max-height:650px){.coac-registration>section{padding-block:12px 13px}.coac-registration h2{margin-bottom:0}.coac-registration__sheet{width:min(88%,340px)}.coac-registration>section>p{margin-block:2px 6px}.coac-registration button{min-height:43px}}@media(prefers-reduced-motion:reduce){.coac-registration.is-sending .coac-registration__sheet{animation-duration:.01ms}.coac-registration.is-stamped .coac-registration__stamp{animation-duration:.01ms}}

button,
a,
[role="button"] {
  -webkit-tap-highlight-color:transparent;
  -webkit-focus-ring-color:transparent;
}
button { -webkit-appearance:none; appearance:none; }
button:focus,
button:focus-visible,
a:focus,
a:focus-visible,
[role="button"]:focus,
[role="button"]:focus-visible {
  outline:none !important;
}

/* Celebraciones reutilizables: explosión lateral y lluvia desde la parte superior. */
.fallamania-confetti {
  position:fixed;
  z-index:2147483646;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  contain:strict;
}
.fallamania-confetti i {
  position:absolute;
  display:block;
  width:8px;
  height:13px;
  border-radius:2px;
  background:var(--color);
  /* Flat particles: no per-particle shadows or forced compositing layers. */
}
.fallamania-confetti i.is-round { width:9px; height:9px; border-radius:50%; }
.fallamania-confetti--burst i {
  top:calc(100vh - 4px);
  left:var(--start-x);
  animation:fallamania-confetti-burst var(--duration) var(--delay) linear both;
}
.fallamania-confetti--rain i {
  top:-18px;
  left:var(--start-x);
  animation:fallamania-confetti-rain var(--duration) var(--delay) linear both;
}
@keyframes fallamania-confetti-burst {
  0% { opacity:0; transform:translate(0,0) rotate(0) scale(.5); animation-timing-function:cubic-bezier(.12,.7,.3,1); }
  8% { opacity:1; }
  43% { opacity:1; transform:translate(var(--apex-x),var(--apex-y)) rotate(var(--rotation)) scale(1); animation-timing-function:cubic-bezier(.45,0,1,1); }
  88% { opacity:1; }
  100% { opacity:0; transform:translate(var(--end-x),var(--end-y)) rotate(var(--rotation-end)) scale(.82); }
}
@keyframes fallamania-confetti-rain {
  0% { opacity:0; transform:translate(0,-3vh) rotate(0); }
  8% { opacity:1; }
  88% { opacity:1; }
  100% { opacity:0; transform:translate(var(--drift-x),108vh) rotate(var(--rotation)); }
}
@media (prefers-reduced-motion:reduce) {
  .fallamania-confetti { display:none; }
}

.legal-modal { width: min(92vw, 500px); max-height: min(92svh, 860px); padding: 0; overflow: visible; border: 0; color: #11182a; background: transparent; }
.legal-modal::backdrop { background: rgba(2, 5, 18, .82); backdrop-filter: blur(5px); }
.legal-modal__shell { max-height: min(92svh, 860px); }
.legal-modal__content { max-height: min(92svh, 860px); overflow: hidden; }
.legal-view { display: flex; flex-direction: column; max-height: min(92svh, 860px); filter: drop-shadow(0 22px 38px #000); }
.legal-document { min-height: 0; padding: clamp(24px, 6vw, 38px); overflow-y: auto; overscroll-behavior: contain; border: 3px solid #1f3153; border-radius: 24px; background: #fffdf7; scrollbar-color: #63728e transparent; }
.legal-document h2 { margin: 0 0 12px; color: #11182a; font: 800 clamp(2rem, 9vw, 2.8rem)/1 "Baloo 2", sans-serif; }
.legal-document__lead { margin: 0 0 18px; font-size: clamp(.98rem, 4.1vw, 1.15rem); font-weight: 800; line-height: 1.27; }
.legal-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 22px 0; }
.legal-links a { color: #167aa5; font: 800 clamp(1.05rem, 4.7vw, 1.35rem)/1.05 "Baloo 2", sans-serif; text-decoration: underline; text-underline-offset: 3px; outline: none; box-shadow: none; -webkit-tap-highlight-color: transparent; }
.legal-links a:focus,
.legal-links a:focus-visible,
.legal-links a:active { outline: none; box-shadow: none; }
.legal-copy { font-size: clamp(.88rem, 3.7vw, 1rem); line-height: 1.4; }
.legal-copy h3 { margin: 22px 0 8px; font-size: 1em; line-height: 1.25; text-transform: uppercase; }
.legal-copy p { margin: 0 0 14px; }
.legal-copy--legacy > span { color:#183e68; font-weight:800; }
.legal-actions { flex: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; width: 100%; margin-top: 12px; }
.legal-actions--single { grid-template-columns: 1fr; }
.legal-action { min-height: 56px; padding: 8px 12px; border: 3px solid rgba(255,255,255,.52); border-radius: 13px; color: white; background: #17366e; box-shadow: inset 0 3px 0 rgba(255,255,255,.27), inset 0 -6px 0 rgba(0,0,0,.18), 0 4px 0 #151a2c; font: 800 clamp(1.1rem, 4.8vw, 1.45rem)/1 "Baloo 2", sans-serif; text-shadow: 0 2px 0 rgba(0,0,0,.55); cursor: pointer; touch-action: manipulation; -webkit-tap-highlight-color: transparent; user-select: none; }
.legal-action--accept { background: linear-gradient(#63dc67, #25a943); }
.legal-action--reject { background: linear-gradient(#f15b59, #c62937); }
.legal-action--back { background: linear-gradient(#2ba4df, #1776b4); }
.legal-action:active { transform: translateY(3px); box-shadow: inset 0 2px 0 rgba(255,255,255,.2), inset 0 -3px 0 rgba(0,0,0,.15), 0 1px 0 #151a2c; }
.legal-action:focus,.legal-action:focus-visible { outline:none; }
.legal-action:disabled { opacity: .68; cursor: wait; transform: none; }
.legal-api-error { margin: 10px 0 0; padding: 10px 12px; border: 2px solid #d83b4e; border-radius: 10px; color: #7f1728; background: #fff0f2; font-weight: 800; text-align: center; }

.screen-modal {
  inset: 0;
  width: 100vw;
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: #080d21;
}
.screen-modal::backdrop { background: #080d21; }
.screen-modal > div, .screen-modal > div > main { width: 100%; height: 100%; }
.subscreen-modal { inset:0; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; overflow:hidden; border:0; background:transparent; }
.subscreen-modal::backdrop { background:rgba(1,5,18,.72); backdrop-filter:blur(3px); }
.subscreen-modal > div,.subscreen-modal > div > main { width:100%; height:100%; }
.screen-error { display:grid; min-height:100dvh; box-sizing:border-box; padding:24px 12px; place-items:center; background:radial-gradient(circle at 50% 38%,rgba(20,64,111,.5),rgba(3,8,22,.98)); }
.screen-error .game-loader__card { box-sizing:border-box; width:min(88vw,380px); }
.screen-error .game-loader__card > span { line-height:1.5; margin-top:8px; }
.screen-error .modal-action { width:100%; margin-top:22px; }

.game-loader {
  position:fixed;
  inset:0;
  z-index:9999;
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:0;
  overflow:hidden;
  border:none;
  border:0;
  background:rgba(3,9,27,.88);
}
.game-loader[open] { display:grid; place-items:center; }
.game-loader::backdrop { background:rgba(2,6,20,.82); backdrop-filter:blur(5px); }
.game-loader__card {
  display:grid;
  width:min(78vw,330px);
  padding:28px 25px 24px;
  place-items:center;
  border:1px solid rgba(97,220,255,.66);
  border-radius:24px;
  color:#fff;
  background:linear-gradient(145deg,rgba(10,52,98,.98),rgba(8,20,55,.98));
  box-shadow:inset 0 1px rgba(255,255,255,.13),0 24px 70px #000;
  text-align:center;
}
.game-loader__brand { position:relative; display:grid; width:min(72%,220px); aspect-ratio:2.8; margin-bottom:23px; place-items:center; }
.game-loader__brand img { position:relative; z-index:2; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 5px 4px rgba(0,0,0,.55)); }
.game-loader__card strong { font-size:clamp(1.05rem,5vw,1.4rem); letter-spacing:.08em; }
.game-loader__card > span { margin-top:2px; color:#a8c5df; font-size:.72rem; font-weight:700; }
.game-loader__progress { width:100%; height:7px; margin-top:18px; overflow:hidden; border-radius:999px; background:rgba(0,0,0,.3); }
.game-loader__progress i { display:block; width:38%; height:100%; border-radius:inherit; background:linear-gradient(90deg,#33d4f5,#7d5bea,#ef4d7f); animation:loader-progress 1.15s ease-in-out infinite; }
.is-template-loading body { overflow:hidden; }
.is-template-loading #legal-modal *,
.is-template-loading #screen-modal *,
.is-template-loading #subscreen-modal * { animation-play-state:paused !important; }
.is-initial-loading body { overflow:hidden; }
.is-initial-loading .welcome__art,
.is-initial-loading .welcome__shade,
.is-initial-loading .welcome::before { animation-play-state:paused; }

@keyframes loader-progress { 0% { transform:translateX(-110%); } 50% { transform:translateX(85%); } 100% { transform:translateX(265%); } }

@keyframes reveal { from { opacity:0; } to { opacity:1; } }
@keyframes welcome-pan { from { transform:scale(1.012) translate3d(-1%,.4%,0); } to { transform:scale(1.105) translate3d(1.2%,-1.4%,0); } }
@keyframes welcome-shade { from { opacity:.82; } to { opacity:1; } }
@keyframes welcome-light { from { transform:translate3d(-5%,-2%,0) scale(.94); opacity:.45; } to { transform:translate3d(6%,3%,0) scale(1.12); opacity:1; } }

@media (max-height: 690px) {
  .brand { padding-top: max(16px, env(safe-area-inset-top)); }
  .brand__eyebrow { font-size: .54rem; }
  .brand__title { width: min(82%, 410px); }
  .brand__claim { margin-top: 8px; font-size: .72rem; }
  .welcome__actions { gap: 9px; padding-top: 18px; }
  .game-button { min-height: 64px; }
  .welcome__hint { margin-top: 0; font-size: .65rem; }
  .legal-document { padding: 22px; }
  .legal-actions { margin-top: 8px; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .welcome__art,.welcome__shade,.welcome::before { animation: none; }
  .game-button { transition: none; }
  .game-loader__progress i { animation-duration:3s; }
}
/* Inscripción COAC: cuartilla a sangre y confirmación cinematográfica. */
.coac-registration__scene{background-position:center bottom;background-size:100% auto;background-repeat:no-repeat;background-color:#2c2180}
.coac-registration>section{padding:20px 0 17px;grid-template-rows:auto minmax(0,1fr) auto}
.coac-registration__sheet{align-self:end;width:100%;max-width:none;margin:0}
.coac-registration__sheet dl{inset:21.5% 22.5% 4.5% 20.5%}
.coac-registration__sheet dl div:nth-child(2){align-items:center}
.coac-registration__sheet [data-coac-registration-name]{display:-webkit-box;overflow:hidden;line-height:1.05;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.coac-registration button{width:calc(100% - 26px);margin:0 13px}
.coac-registration>section>p[hidden]{display:none}
.coac-registration>section>p:not([hidden]){margin:6px 16px 10px}
.coac-registration__stamp{width:max-content;max-width:86%;box-sizing:border-box;font-size:clamp(.82rem,4.8vw,1.35rem);white-space:nowrap}
.coac-registration.is-sending .coac-registration__scene{background-position:center bottom}
.coac-registration.is-travelling .coac-registration__scene{animation:coacSceneRise 3.2s cubic-bezier(.42,.04,.3,1) forwards}
.coac-registration.is-sending .coac-registration__sheet{animation:none;opacity:0;transition:opacity .2s ease;pointer-events:none}
.coac-registration.is-sending header{opacity:0;transition:opacity .2s ease}
.coac-registration.is-sending button,.coac-registration.is-stamped button{opacity:0;transition:opacity .16s ease;pointer-events:none}
.coac-registration.is-stamped header{opacity:0}
@keyframes coacSceneRise{from{background-position:center bottom}to{background-position:center top}}
@media(max-height:650px){.coac-registration__sheet{width:100%;max-width:none}}
@media(prefers-reduced-motion:reduce){.coac-registration.is-travelling .coac-registration__scene{animation-duration:.01ms}}

/* Resumen de inscripción integrado sobre la escena de La Caleta. */
.coac-registration__sheet{align-self:end;width:calc(100% - 24px);max-width:400px;aspect-ratio:auto;margin:8px 12px 13px;padding:8px;box-sizing:border-box;border:2px solid #ffd667;border-radius:19px;background:linear-gradient(160deg,rgba(12,33,69,.97),rgba(20,20,65,.97));box-shadow:inset 0 1px rgba(255,255,255,.2),inset 0 0 0 2px rgba(78,210,255,.16),0 6px 0 #130936,0 15px 30px rgba(4,2,28,.5);filter:none;transform:none}
.coac-registration__form-heading{display:flex;margin:0 0 7px;padding:9px 11px 8px;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(103,225,255,.45);border-radius:11px;color:#fff;background:linear-gradient(135deg,#173c6f,#245b83);box-shadow:inset 0 1px rgba(255,255,255,.17),0 3px 0 #081b38;text-align:left}
.coac-registration__form-heading small,.coac-registration__form-heading strong{display:block}.coac-registration__form-heading small{color:#ffd96d;font-size:clamp(.56rem,2.15vw,.66rem);font-weight:900;letter-spacing:.09em;white-space:nowrap}.coac-registration__form-heading strong{font-size:clamp(.72rem,2.9vw,.9rem);line-height:1;text-align:right}
.coac-registration__sheet dl{position:static;display:grid;margin:0;padding:0;align-content:initial;gap:3px;color:#fff;text-align:left;transform:none}
.coac-registration__sheet dl div{position:relative;display:grid;min-height:34px;padding:6px 9px 6px 12px;grid-template-columns:31% minmax(0,1fr);align-items:center;border:1px solid rgba(113,181,224,.2);border-radius:8px;background:rgba(6,20,48,.58)}
.coac-registration__sheet dl div::before{content:"";position:absolute;inset:6px auto 6px 4px;width:3px;border-radius:3px;background:#58d9fa}.coac-registration__sheet dt{color:#8fe9ff;font-size:clamp(.6rem,2.3vw,.7rem);font-weight:900;letter-spacing:.045em}.coac-registration__sheet dd{color:#fff6cf;font-size:clamp(.78rem,3.1vw,.96rem);font-weight:900;line-height:1.05;text-shadow:0 1px 2px #020a19}
.coac-registration__sheet [data-coac-registration-name]{display:-webkit-box;overflow:hidden;white-space:normal;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.coac-registration__sheet>button{width:100%;margin:9px 0 0;min-height:50px;font-size:.82rem}
@media(max-height:650px){.coac-registration__sheet{width:calc(100% - 20px);max-width:400px;margin:3px 10px 8px;padding:7px}.coac-registration__sheet dl{gap:2px}.coac-registration__sheet dl div{min-height:29px;padding-block:4px}.coac-registration__form-heading{padding-block:7px 6px}.coac-registration__sheet>button{min-height:44px;margin-top:7px}}

.coac-registration__sheet dl .coac-registration__location-row{padding-right:9px}
.coac-registration .coac-registration__edit-location{position:absolute;z-index:2;right:-1px;bottom:-19px;width:auto!important;min-height:28px!important;margin:0!important;padding:3px 9px;border:2px solid #9cecff!important;border-radius:9px!important;color:#fff!important;background:linear-gradient(#2585b8,#135481)!important;box-shadow:0 3px 0 #071c39!important;font-size:.53rem!important;letter-spacing:.04em;text-align:center}
.coac-location-modal{width:min(88vw,350px);padding:0;border:3px solid #ffd667;border-radius:22px;color:#fff;background:linear-gradient(155deg,#112f5b,#10163f);box-shadow:0 8px 0 #0a0624,0 24px 60px #000;overflow:visible}.coac-location-modal::backdrop{background:rgba(1,5,20,.82);backdrop-filter:blur(5px)}
.coac-location-modal form{position:relative;display:grid;padding:22px 17px 17px;gap:10px}.coac-location-modal small{color:#72e4ff;font-size:.56rem;font-weight:900;letter-spacing:.1em;text-align:center}.coac-location-modal h2{margin:-4px 0 0;color:#fff5cc;font:900 1.25rem/1 "Baloo 2",sans-serif;text-align:center;text-shadow:0 3px #070d27}.coac-location-modal form>p{margin:0 8px 4px;color:#bed4e9;font-size:.65rem;font-weight:700;line-height:1.25;text-align:center}.coac-location-modal label{display:grid;gap:5px;color:#7de4ff;font-size:.58rem;font-weight:900;letter-spacing:.05em}.coac-location-modal label span{display:block;padding:2px;border:2px solid #5edcf9;border-radius:12px;background:#071a39;box-shadow:inset 0 1px rgba(255,255,255,.12),0 3px 0 #050b20}.coac-location-modal select{width:100%;min-height:45px;padding:0 36px 0 11px;border:0;border-radius:9px;color:#fff;background:#132c52;font:900 .82rem/1 "Baloo 2",sans-serif;appearance:auto}.coac-location-modal__close{position:absolute;top:-13px;right:-11px;width:34px;height:34px;padding:0;border:2px solid #fff;border-radius:50%;color:#fff;background:#df3650;box-shadow:0 3px 0 #661325;font:900 1.15rem/1 sans-serif}.coac-location-modal .coac-location-modal__error{margin:0;color:#ff9ca9}.coac-location-modal__save{min-height:49px;margin-top:2px;border:3px solid #fff0a3;border-radius:13px;color:#4f3000;background:linear-gradient(#ffe16b,#efa31d);box-shadow:inset 0 3px rgba(255,255,255,.4),0 5px 0 #7c4808;font:900 .75rem/1 "Baloo 2",sans-serif}.coac-location-modal__save:disabled{filter:grayscale(.5);opacity:.7}

.coac-registration__stamp{text-align:center}
.coac-registration__stamp-year{display:block;margin-top:7px;font-size:clamp(1.6rem,9vw,2.6rem);line-height:1.05;letter-spacing:.04em}

/* Caja principal y energía separadas, dentro del mismo diálogo accesible. */
.turn-arrival,.turn-arrival.is-contest{box-sizing:border-box;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.turn-arrival>section{box-sizing:border-box;width:100%;overflow:hidden;border:3px solid #62dcff;border-radius:26px;background:linear-gradient(165deg,#183f73,#101f4e 48%,#100f32);box-shadow:0 7px 0 #051027,0 16px 35px #0006}
.turn-arrival.is-contest>section{border-color:#ff8b80;background:linear-gradient(165deg,#781f2c,#45152b 48%,#190d25);box-shadow:0 7px 0 #260711,0 16px 35px #0006}
.turn-arrival>.turn-arrival__energy{box-sizing:border-box;width:100%;margin-top:16px;padding:15px 12px;border:2px solid #62dcff;border-radius:14px;background:linear-gradient(145deg,#183653,#0b1935);box-shadow:0 4px 0 #051027,0 8px 18px #0006;gap:9px}
.turn-arrival>.turn-arrival__energy i{height:14px}
.turn-arrival>.turn-arrival__energy>strong,.turn-arrival>.turn-arrival__energy>b{font-size:.6rem}
