:root{--black:#16130f;--gold:#f7b514;--paper:#faf7ef;--line:#e6ded0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--black);font:16px/1.55 system-ui,sans-serif}a{color:inherit;font-weight:700;text-underline-offset:4px}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #b06c00;outline-offset:4px}.wrap{width:min(1120px,calc(100% - 40px));margin:auto}.top,.hero,footer{background:var(--black);color:white}.top{border-bottom:1px solid #453b2b}.nav,.nav nav,.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.nav{justify-content:space-between;min-height:72px;padding:10px 0}.nav a,.actions a{text-decoration:none}.hero .eyebrow{color:var(--gold)}.hero{background:radial-gradient(ellipse at 76% 36%,#423019 0%,var(--black) 55%);border-bottom:5px solid var(--gold)}.hero-grid{display:grid;grid-template-columns:1.45fr 1fr;gap:32px;align-items:center;padding:clamp(34px,8vw,96px) 0}.eyebrow,.tag{font-size:.76rem;font-weight:850;letter-spacing:.13em;color:#805000}.hero h1{font-size:clamp(2.55rem,7vw,6rem);line-height:.98;letter-spacing:-.065em;margin:12px 0 18px}.intro{max-width:34rem;color:#eee2cd;font-size:1.12rem;margin-bottom:25px}.crest{width:min(100%,320px);aspect-ratio:1;justify-self:center;border-radius:50%;background:url('/logo-liga.png') 59% 49%/127% auto no-repeat;box-shadow:0 18px 55px #0008}.gold,.outline,.tabs button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 15px;border-radius:9px;font:inherit;font-weight:800;cursor:pointer}.gold{background:var(--gold);border:1px solid var(--gold);color:var(--black);gap:9px}.outline{border:1px solid #95836b}.section{padding:35px 0;border-bottom:1px solid var(--line);scroll-margin-top:12px}h2{font-size:clamp(1.85rem,4vw,3rem);line-height:1.08;letter-spacing:-.045em;margin:8px 0 18px}h3{margin:4px 0}.cards,.rules{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.cards article,.rules article{padding:18px;background:white;border:1px solid var(--line);border-radius:14px;overflow-wrap:anywhere}.cards p{margin:5px 0 12px}.cards ul{padding-left:20px}.rules{grid-template-columns:repeat(3,minmax(0,1fr))}.rules strong{font-size:2.6rem;color:#805000}.rules p{margin-bottom:0}.formula{background:#f8e7bb;padding:14px;border-radius:10px}.formula strong{display:inline-block;margin-left:8px}.tabs{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}.tabs button{background:#fff;border:1px solid #c2ad89;color:var(--black)}.tabs button[aria-pressed=true]{background:var(--black);color:white}.access{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}.access form{display:grid;gap:8px}.access input{font:inherit;min-height:44px;width:100%;border:1px solid #9f907a;border-radius:8px;padding:8px}.access form p{margin:0}footer .wrap{display:flex;justify-content:space-between;gap:15px;padding:20px 0}footer a{color:var(--gold)}
@media(max-width:820px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.hero-grid{grid-template-columns:1fr;gap:25px}.crest{grid-row:1;width:135px;justify-self:start}.nav nav{gap:10px;font-size:.86rem}.nav{gap:8px}.rules,.access{grid-template-columns:1fr}.cards article{padding:12px}.hero .actions{gap:8px}}

.edition-badge{display:inline-flex;align-items:center;gap:12px;margin-bottom:12px;color:var(--gold)}
.edition-badge>strong{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--gold);border-radius:10px;font-size:2rem;line-height:1}
.edition-badge span{display:grid;line-height:1.2}
.edition-badge b{font-size:1.12rem;text-transform:uppercase;letter-spacing:.09em}
.edition-badge small{margin-top:4px;color:#eee2cd}
.sport{margin:0;color:var(--gold);font-size:clamp(1rem,2.3vw,1.35rem);font-weight:800}
.hero .intro{margin-top:9px}
.brand-logo{display:block;width:clamp(42px,10vw,54px);flex:none;aspect-ratio:1;border-radius:50%;background:url('/logo-liga.png') 59% 49%/127% auto no-repeat}
.hero{overflow:hidden}
.slides{display:flex;transform:translateX(calc(var(--slide,0) * -100%));transition:transform .65s ease}
.slide{flex:0 0 100%;min-width:0;display:grid;align-items:center}
.slide h2{font-size:clamp(2.55rem,7vw,6rem);line-height:.98;letter-spacing:-.065em;margin:12px 0 18px}
.slide-mark{width:min(100%,320px);aspect-ratio:1;justify-self:center;border:1px solid #846335;border-radius:50%;display:grid;place-content:center;text-align:center;color:var(--gold)}
.slide-mark span{font-size:clamp(4rem,14vw,10rem);font-weight:900;line-height:.9}
.slide-mark small{font-weight:800;letter-spacing:.12em}
.slide-controls{display:flex;align-items:center;gap:10px;padding:0 0 15px;color:#fff2d7}
.slide-controls button{min-height:44px;min-width:44px;padding:6px 12px;background:transparent;border:1px solid #95836b;border-radius:8px;color:inherit;font:inherit;cursor:pointer}
@media(max-width:580px){.slide-mark{grid-row:1;width:135px;justify-self:start}.slide-mark small{font-size:.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.slides{transition:none}}

.slides.no-motion{transition:none}

/* Controles ligeros y movimiento de la portada */
.gold,.outline,.tabs button,.slide-controls button{border-radius:6px;font-weight:720;transition:background .2s,color .2s,border-color .2s,transform .2s}
.gold,.outline{padding:8px 13px}
.outline{border-color:#95836b80}
.gold{border-color:transparent}
.nav nav>a:not(.outline){position:relative;padding-block:8px}
.nav nav>a:not(.outline)::after{content:"";position:absolute;inset:auto 0 3px;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .24s}
.nav nav>a:not(.outline):is(:hover,:focus-visible)::after{transform:scaleX(1)}
.slide-controls button{border-color:transparent;border-radius:6px}
.slide-controls button:is(:hover,:focus-visible){background:#ffffff14}
.slide-controls button:last-child{font-size:.85rem}
#slide-count{font-variant-numeric:tabular-nums;font-size:.82rem;color:#e6d5b6}
.tabs button{border-color:transparent;background:transparent;box-shadow:inset 0 -1px var(--line)}
.tabs button[aria-pressed=true]{background:var(--black);box-shadow:none}
.cards article,.rules article{transition:transform .24s,border-color .24s,box-shadow .24s}
.cards a{display:inline-block;transition:color .2s,transform .2s}
@media(hover:hover){
 .gold:hover{background:#ffd063;transform:translateY(-2px)}
 .outline:hover{border-color:var(--gold);background:#ffffff12}
 .tabs button:not([aria-pressed=true]):hover{background:#f8e7bb}
 .cards article:hover,.rules article:hover{transform:translateY(-4px);border-color:#d7b871;box-shadow:0 10px 20px #3022070e}
 .cards a:hover{color:#805000;transform:translateX(3px)}
}
.gold:active,.outline:active,.slide-controls button:active{transform:translateY(1px)}
.slides{transition-timing-function:cubic-bezier(.22,.8,.28,1)}
@keyframes liga-entrada{from{opacity:0;transform:translateY(11px)}to{opacity:1;transform:translateY(0)}}
@keyframes liga-tarjeta{from{opacity:.45;translate:0 14px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:no-preference){
 .slide[aria-hidden=false] .hero-grid>div:first-child{animation:liga-entrada .52s ease-out both}
 .slide[aria-hidden=false] .hero-grid>div:last-child{animation:liga-entrada .62s .05s ease-out both}
 #clubs article{animation:liga-entrada .3s ease-out both}
 @supports(animation-timeline:view()){
  .section:not(#participantes) article{animation:liga-tarjeta linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
 }
}
@media(prefers-reduced-motion:reduce){
 .gold,.outline,.tabs button,.slide-controls button,.cards article,.rules article,.cards a,.nav nav>a::after{transition:none}
 .gold:is(:hover,:active),.outline:active,.slide-controls button:active,.cards article:hover,.rules article:hover,.cards a:hover{transform:none}
}

#clubs .club-name{color:#6e5632;font-size:.85rem;line-height:1.35}
#clubs .gymnasts{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:12px 0 0}
.gymnasts li{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:6px;background:#fbf4e3;font-size:.83rem}
.gymnast-icon{font-size:1rem;line-height:1}

#participantes [data-category="0"]{--category:#ae245e;--category-tint:#fce6ef;--category-text:#fff}
#participantes [data-category="1"]{--category:#1266b5;--category-tint:#e4f2ff;--category-text:#fff}
#participantes [data-category="2"]{--category:#a6d873;--category-tint:#eef8e2;--category-text:#19331a}
#participantes [data-category="3"]{--category:#1d633f;--category-tint:#e0f2e8;--category-text:#fff}
#participantes [data-category="4"]{--category:#203a69;--category-tint:#e7edf8;--category-text:#fff}
#participantes .tabs button{background:var(--category-tint);color:var(--black);border:1px solid transparent;box-shadow:none}
#participantes .tabs button:is(:hover,:focus-visible){border-color:var(--category)}
#participantes .tabs button[aria-pressed=true]{background:var(--category);color:var(--category-text)}
#clubs article{border-top:4px solid var(--category)}
#clubs .gymnasts li{background:var(--category-tint)}

#clubs article{padding:0 16px 16px;border-top-width:1px;overflow:hidden}
#clubs .club-banner{margin:0 -16px 12px;padding:10px 16px;background:var(--category);color:var(--category-text);font-size:.9rem;font-weight:850;line-height:1.3}

.club-roster{position:relative;isolation:isolate}
.club-roster:has(.club-watermark){min-height:104px;margin:0 -16px -16px;padding:4px 16px 16px;overflow:hidden}
.club-watermark{position:absolute;z-index:-1;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.24;pointer-events:none;mix-blend-mode:multiply}
.club-watermark[src$="/laplana.png"]{filter:brightness(0)}
#clubs .club-roster:has(.club-watermark) .gymnasts li{background:color-mix(in srgb,var(--category-tint) 70%,transparent)}

[hidden]{display:none!important}

.access select,.access textarea{font:inherit;width:100%;border:1px solid #9f907a;border-radius:8px;padding:8px}

.club-intro{padding-bottom:18px}.club-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;padding:18px 0 32px}
.club-sidebar,.club-editor{background:white;border:1px solid var(--line);border-radius:12px;padding:16px;min-width:0}
.club-pane-head,.club-team{display:flex;align-items:center;justify-content:space-between;gap:8px}
.club-pane-head h2,.club-editor h2{font-size:1.45rem;margin:0}.club-team strong,.club-team small{display:block;overflow-wrap:anywhere}.club-team small{color:#6e5632}
.club-division{margin-top:15px}.club-division h3{border-left:4px solid var(--division);background:#f8f5ed;padding:5px 8px;font-size:.95rem}
.club-division[data-category="0"]{--division:#ae245e}.club-division[data-category="1"]{--division:#1266b5}.club-division[data-category="2"]{--division:#a6d873}.club-division[data-category="3"]{--division:#1d633f}.club-division[data-category="4"]{--division:#203a69}
.club-team{padding:7px;border-bottom:1px solid var(--line)}.club-team.selected{background:#fff3d4}.club-team button{flex:none}
.club-team-fields{display:grid;grid-template-columns:1.2fr 1fr;gap:9px;margin-top:12px}
.club-editor label{display:grid;gap:3px;font-size:.85rem;font-weight:700;min-width:0}
.club-editor input,.club-editor select{font:inherit;font-weight:400;padding:7px;min-height:44px;width:100%;border:1px solid #9f907a;border-radius:6px;background:white;color:var(--black)}
.athlete-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;border:1px solid var(--line);border-radius:7px;margin:0 0 8px;padding:8px;min-width:0}
.athlete-row legend{font-size:.84rem;font-weight:800}.remove-athlete{justify-self:start;grid-column:1/-1;min-height:35px;font-size:.78rem}
.club-editor .actions{margin-top:12px}.club-editor{scroll-margin-top:12px}.club-workspace button{color:var(--black)}
@media(max-width:700px){.club-workspace{grid-template-columns:1fr}}
@media(max-width:420px){.athlete-row,.club-team-fields{grid-template-columns:1fr}}

.athlete-music{grid-column:1/-1;display:grid;gap:4px;border-top:1px solid var(--line);padding-top:6px;margin-top:2px}
.athlete-music input{padding:5px;font-size:.85rem}
.athlete-music span{font-size:.82rem;overflow-wrap:anywhere}
.athlete-music audio{width:100%;max-width:320px}

/* Edición compacta de inscripciones */
.club-intro{padding-block:14px 9px}.club-intro h1,.club-intro p{margin:4px 0}
.club-sidebar,.club-editor{padding:12px}
.club-team-fields{margin-top:8px}
.athlete-row{border:0;border-top:1px solid var(--line);border-radius:0;padding:4px 0 6px;margin:0;gap:4px 6px}
.athlete-row legend{font-size:.71rem;color:#665438;padding-right:4px}
.club-editor label{gap:2px;font-size:.76rem}
.club-editor input,.club-editor select{padding:4px 6px;min-height:34px}
.athlete-music{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;border:0;padding:0;margin:0}
.athlete-music label{display:inline-flex;align-items:center;gap:6px}
.athlete-music input{width:auto;max-width:12em;padding:0;border:0;min-height:30px}
.athlete-music span,.remove-athlete{font-size:.72rem}.remove-athlete{min-height:26px;padding:2px 7px;justify-self:end}
.club-editor .actions{margin-top:8px;gap:7px}.club-editor .actions button{min-height:38px}
@media(max-width:420px){
 .club-team-fields{grid-template-columns:1fr 1fr}
 .athlete-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .athlete-row>label:first-of-type{grid-column:1/-1}
}

@media(min-width:421px){.athlete-row:has(.remove-athlete) .athlete-music{grid-column:1/3}.athlete-row .remove-athlete{grid-column:3;align-self:center}}

.preview-bar{background:#fff5dd;border:1px solid var(--line);border-radius:9px;padding:10px 14px;margin-top:12px}.preview-bar nav{display:flex;gap:8px;flex-wrap:wrap}
.preview-bar nav a,.preview-bar nav span{padding:6px 10px;border-radius:6px;font-weight:750}.preview-bar [aria-current]{background:var(--black);color:#fff}
.preview-bar p{margin:6px 0}.preview-bar select{max-width:100%;font:inherit;padding:5px}

.review-card{border:1px solid var(--line);background:white;border-radius:10px;padding:12px;margin:8px 0}
.review-card h3,.review-card p{margin:4px 0}.review-card button:disabled{opacity:.6;cursor:not-allowed}
.session-form{display:grid;gap:8px;max-width:760px;margin:8px 0}.session-form label{display:grid;gap:3px}
.session-form input,.session-form select{width:100%;padding:6px;border:1px solid #9f907a;border-radius:6px;background:white;font:inherit;min-width:0}
#schedule-label{display:flex;align-items:center;gap:7px}#schedule-label input{width:auto}
.session-seats,.session-list{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
.session-seats fieldset{display:grid;gap:4px;min-width:0;border:1px solid var(--line);border-radius:6px}
.invitation-list{list-style:none;padding:0}.invitation-list li{border-top:1px solid var(--line);padding:6px 0}
.invitation-list li small{margin-left:6px}.invitation-list .actions{gap:4px}.invitation-list .actions>*{min-height:34px;font-size:.84rem}
@media(max-width:620px){.session-list,.session-seats{grid-template-columns:1fr}}

.hero-grid .league-hero-visual{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(84px,2.5fr) minmax(0,1fr);
 align-items:center;gap:clamp(4px,1.4vw,12px);width:100%;justify-self:center;
}
.hero-grid .league-hero-visual .crest{
 grid-area:1/2;width:100%;max-width:260px;justify-self:center;position:relative;z-index:1;
}
.league-stats[hidden]{display:none}
.league-stats{display:contents}
.league-stats div{position:relative;padding-top:clamp(27px,5.5vw,38px);display:flex;flex-direction:column-reverse;align-items:center;text-align:center;gap:3px}
.league-stats div:first-child{grid-area:1/1}
.league-stats div:last-child{grid-area:1/3}
.league-stat-icon{position:absolute;top:0;left:50%;transform:translateX(-50%);display:block;width:clamp(24px,5vw,35px);height:auto;color:#ffdc8b}
.league-stats dt{color:#fff2df;font-size:clamp(.72rem,2.3vw,1rem);font-weight:650}
.league-stats dd{margin:0;color:#ffdc8b;font-size:clamp(1.3rem,4vw,2.15rem);font-weight:850;line-height:1.1;font-variant-numeric:tabular-nums}
@media(max-width:700px){
 .hero-grid:has(>.league-hero-visual){grid-template-columns:minmax(0,1fr);gap:12px}
 .hero-grid .league-hero-visual{width:min(100%,350px);grid-template-columns:1fr minmax(90px,1.5fr) 1fr}
 .hero-grid .league-hero-visual .crest{max-width:132px}
}
