@import url('icons.css');
/* Jerarquía compacta y navegación táctil para pantallas pequeñas. */
h1{font-size:clamp(2.35rem,10.5vw,4.2rem);line-height:1;max-width:100%}
.eyebrow{line-height:1.35}
.wallet{border:2px solid #ead9c8;box-shadow:none}
.wallet .wallet-balance{display:block;margin-top:10px;font-size:1.9rem;color:var(--accent)}
.wallet p{margin-bottom:0;font-size:.86rem}
.bottom-nav a{min-width:58px;min-height:48px;padding:6px 5px;border-radius:14px}
.bottom-nav a.active{background:#fff7ef}
.context-strip{display:flex;align-items:center;gap:6px;margin:0 0 18px;padding:5px 6px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 3px 12px #4b382108}.context-strip a{text-decoration:none;color:var(--ink)}.context-identity{display:grid;gap:0;min-width:0;flex:1;padding:4px 6px;border-radius:9px}.context-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}.context-identity small{color:var(--muted);font-size:.68rem}.context-strip a:focus-visible,.context-strip a:hover,.context-notifications:hover{background:#fff7ef}.context-points,.context-notifications{display:inline-flex;align-items:center;gap:4px;min-height:34px;padding:4px 8px;border-radius:9px;color:var(--ink);font:inherit;font-size:.78rem;white-space:nowrap}.context-points strong{font-size:.85rem}.context-points small{color:var(--muted);font-size:.68rem}.context-notifications{border:0;cursor:pointer}.context-notifications b{display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:var(--accent);color:white;font-size:.68rem}
.pending-dialog{width:min(92vw,430px);max-height:78dvh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d5c9bb transparent;padding:20px;border:0;border-radius:22px;background:var(--surface,#fff);color:var(--ink);box-shadow:0 18px 60px #0004}.pending-dialog::-webkit-scrollbar{width:5px}.pending-dialog::-webkit-scrollbar-track{background:transparent}.pending-dialog::-webkit-scrollbar-thumb{background:#d5c9bb;border-radius:99px}.pending-dialog::backdrop{background:#24312b99}.pending-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.pending-dialog h2{margin:4px 0 16px;font-size:1.55rem}.dialog-close{width:40px;height:40px;margin:-4px -6px 0 0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:1.7rem;line-height:1;cursor:pointer}.pending-notice{margin:0 0 12px;padding:14px;border:1px solid var(--line);border-radius:14px}.pending-notice p{margin:6px 0 12px;font-size:.9rem}.pending-notice .button{margin:0}.pending-empty{padding:18px 0;color:var(--muted)}.pending-all{display:block;margin-top:16px;text-align:center;color:var(--accent);font-weight:700}
html{scrollbar-width:thin;scrollbar-color:#cfc4b7 transparent}html::-webkit-scrollbar{width:7px}html::-webkit-scrollbar-track{background:transparent}html::-webkit-scrollbar-thumb{background:#cfc4b7;border-radius:99px;border:2px solid transparent;background-clip:padding-box}
.bottom-nav a span{display:grid;place-items:center;width:22px;height:22px;font-size:0}
.bottom-nav a span svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:380px){h1{font-size:clamp(2.2rem,10vw,3.4rem)}.bottom-nav a{min-width:52px;padding-left:3px;padding-right:3px}}
.context-strip{padding:0 0 8px;border:0;border-radius:0;background:transparent;box-shadow:none}
.context-notifications{margin:0;border:1px solid var(--line);background:#f7f5ef;color:var(--ink);font-weight:650}.context-notifications:focus-visible{background:#fff7ef;border-color:#bd936f}
/* Inicio: priorizar estado y acciones sin consumir la primera pantalla. */
main:has(.primary-hub){padding-top:12px}
main:has(.primary-hub) h1{margin-top:14px;margin-bottom:12px}
main:has(.primary-hub) .stat{margin-top:16px;padding:18px 22px;gap:10px}
main:has(.primary-hub) .stat strong{font-size:2.45rem}
main:has(.primary-hub) .stat span{font-size:.94rem;line-height:1.35}
main:has(.primary-hub) .wallet{margin-top:14px;padding:18px 22px}
main:has(.primary-hub) .wallet .wallet-balance{margin-top:6px;font-size:1.7rem}
main:has(.primary-hub) .wallet .button{margin-top:10px;padding:11px 18px}
main:has(.primary-hub) h2{margin-top:26px}
@media(max-width:380px){main:has(.primary-hub){padding-top:8px}main:has(.primary-hub) .stat,main:has(.primary-hub) .wallet{padding-left:18px;padding-right:18px}main:has(.primary-hub) .stat span{font-size:.88rem}}
/* Densidad general en móvil: más contenido visible sin sacrificar lectura ni tacto. */
@media(max-width:480px){
  main{padding-left:16px;padding-right:16px}
  main>h2{margin-top:26px;margin-bottom:10px}
  main>section,main>.stat,main>.empty{margin-top:16px;padding:18px}
  main>.book{padding:14px;gap:12px}
  main>.form{gap:10px;margin-top:16px}
  main>.form fieldset{padding:14px}
  main>.hub-grid{gap:10px;margin-top:20px}
  main>.hub-grid .hub-card{min-height:126px;padding:16px;gap:6px}
  main>.hub-grid .hub-card span{font-size:1.75rem}
  main>.hub-grid .hub-card strong{font-size:1rem}
  main>.metrics{gap:8px;margin:16px 0}
  main>.metrics section{padding:13px 12px}
}
@media(max-width:480px){
  /* Dinámicas: el contenido principal debe aparecer antes que el adorno. */
  main:has(.activity-icon)>section{padding:16px;margin-top:14px}
  main:has(.activity-icon)>section .activity-icon{font-size:2rem}
  main:has(.activity-icon)>section h2{margin:8px 0 6px}
  main:has(.activity-icon)>section p{margin:6px 0}
  main:has(.activity-icon)>section .meta{margin:8px 0}
  /* Biblioteca y club: agrupar mejor el contenido de cada lectura. */
  main:has(.book-icon)>.book{align-items:flex-start;padding:14px 12px}
  main:has(.book-icon)>.book .book-icon{font-size:2.1rem}
  main:has(.book-icon)>.book .book-content>p{margin:5px 0}
  main:has(.book-icon)>.book .notice{margin:8px 0;padding:10px 12px}
  main:has(.book-icon)>.book .button{margin-top:8px}
  main:has(.club-summary)>section{padding:16px}
  main:has(.club-summary)>section .book-content{padding:2px 0 8px}
  main:has(.club-summary)>section .book-content+.book-content{border-top:1px solid var(--line);padding-top:14px}
  /* Administración: métricas compactas y acciones sin huecos innecesarios. */
  main:has(.admin-user-card)>.metrics{margin-top:14px}
  main:has(.admin-user-card)>.button{margin-top:8px;padding:11px 16px}
  main:has(.admin-user-card)>.search-form{margin-top:12px}
  main:has(.admin-user-card)>.admin-user-card{padding:14px 12px;gap:10px}
  main:has(.admin-user-card)>.admin-user-card p{margin:5px 0 0;font-size:.88rem}
}
@media(max-width:480px){
  /* Listas de participación: resumen breve y acción visible. */
  main:has(.activity-icon)>section .button{margin-top:8px;padding:11px 16px}
  main:has(.activity-icon)>section .notice{margin:8px 0;padding:10px 12px}
  main:has(.contest-thumbnail)>.book{padding:12px;gap:10px}
  main:has(.contest-thumbnail)>.book .button{margin-top:6px;padding:10px 14px}
  main:has(.contest-thumbnail)>.book p{margin:4px 0}
  /* Logros: filas más compactas, manteniendo el icono como ancla visual. */
  main:has(.badge)>section.badge{padding:13px 14px;gap:11px}
  main:has(.badge)>section.badge span{font-size:1.8rem}
  main:has(.badge)>section.badge p{margin:2px 0;font-size:.9rem}
  /* Monedero y ficha de administración: reducir ruido en los movimientos. */
  main:has(.wallet-balance)>.wallet{padding:16px 18px}
  main:has(.wallet-balance)>.activity{padding:10px 0;margin-top:8px}
  main:has(.points-form)>.stat{padding:16px 18px}
  main:has(.points-form)>section{padding:16px}
  main:has(.points-form)>section h2{margin-top:4px}
}
@media(max-width:480px){
  /* Acceso y resultados: llevar la acción al primer plano. */
  main>.form{gap:9px}
  main>.form p{gap:4px}
  main>.form button{margin-top:8px}
  main>.stat+ .button{margin-top:8px}
  /* Avisos: una lista legible, sin convertir cada mensaje en una tarjeta alta. */
  main:has(.notice)>.notice{padding:14px 16px;margin-top:12px}
  main:has(.notice)>.notice p{margin:6px 0}
  main:has(.notice)>.notice small{font-size:.76rem}
  /* Auditoría: aprovechar mejor el ancho y reducir el relleno repetido. */
  main:has(.audit-list) .audit-list{gap:7px}
  main:has(.audit-list) .audit-item{gap:9px;padding:11px 10px}
  main:has(.audit-list) .audit-item p{margin:2px 0;font-size:.86rem;line-height:1.35}
  main:has(.audit-list) .audit-icon{flex-basis:28px;height:28px}
  main:has(.audit-list) .pagination{margin-top:12px}
}
.challenge-card{display:block;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);text-decoration:none;margin-top:12px}.challenge-card p{margin:6px 0;font-size:.9rem}.challenge-card small{color:var(--muted)}.challenge-link:hover,.challenge-link:focus-visible{border-color:#bd936f;background:#fffaf5}.challenge-summary{border:2px solid #ead9c8;box-shadow:none}.challenge-summary p{margin-bottom:0}.challenge-form{margin-top:18px}
@media(max-width:480px){.challenge-card{padding:13px 14px}.challenge-card .button{margin-top:8px}.challenge-summary{padding:15px!important}.challenge-form{gap:10px}}
.challenge-link .split{align-items:flex-start}.challenge-link .tag{flex:0 0 auto}.challenge-card strong{font-size:.98rem}.challenge-card .status-pending{color:#8a5d22;border-color:#e5c98f;background:#fff8e7}.challenge-card .status-active{color:#356b4a;border-color:#a8cfb4;background:#eef8f0}.challenge-card .status-done{color:#356b4a;border-color:#a8cfb4;background:#eef8f0}.challenge-card .status-blocked{color:#963f35;border-color:#e4b1aa;background:#fff1ef}.challenge-card .status-finished{color:#68716c;border-color:#cfd6d1;background:#f3f5f3}
main:has(.challenge-card)>h1{margin-bottom:10px}main:has(.challenge-card)>h1+p{margin-top:8px}main:has(.challenge-card)>a.button{display:block;width:100%;margin:16px 0 26px;text-align:center}
.challenge-summary{padding:18px}.challenge-summary .split{align-items:center}.challenge-summary .split strong:last-child{color:var(--accent);font-size:1.25rem}.challenge-summary p{font-size:.86rem}
.challenge-form label{font-weight:650;color:var(--ink)}.challenge-form input,.challenge-form select{margin-top:4px}.challenge-form button{width:100%;margin-top:8px}
main:has(.challenge-summary)>.notice{padding:16px}.challenge-summary+ .notice form{margin-top:8px}.challenge-summary+ .notice form button{width:100%;margin-top:6px}
@media(max-width:480px){main:has(.challenge-card)>h2{margin-top:22px}main:has(.challenge-card)>a.button{margin-bottom:22px}.challenge-link{min-height:78px}.challenge-link p{font-size:.86rem}.challenge-summary .split strong:first-child{font-size:.9rem}}
.challenge-results{padding:16px}.challenge-results .split{align-items:center;margin-bottom:8px}.challenge-results .split span{font-size:.75rem}.challenge-result-row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line);font-size:.9rem}.challenge-result-row strong{color:var(--accent)}
.profile-hero{display:flex;align-items:center;gap:14px}.profile-hero h1{margin-bottom:4px}.avatar{display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--avatar-color,#f1e5d9);color:var(--ink);font-weight:800}.avatar-large{width:64px;height:64px;flex:0 0 64px;font-size:1.5rem}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-editor{padding:16px!important;border:1px solid #ead9c8;box-shadow:none}.avatar-editor .split{align-items:center}.avatar-form{display:grid;gap:7px;margin-top:10px}.avatar-form input[type=file]{width:100%;min-height:44px;padding:8px;border:1px dashed #bd936f;border-radius:12px;background:#fffaf5;font:inherit}.avatar-form small{color:var(--muted);font-size:.78rem}.avatar-form button{margin-top:4px}.remove-avatar{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.85rem}.remove-avatar input{width:18px;height:18px;accent-color:var(--accent)}.form-error{margin:0;color:#963f35;font-size:.84rem}
.avatar-medium{width:48px;height:48px;flex:0 0 48px;font-size:1.15rem}.member-card{width:100%;max-width:100%;min-width:0;align-items:center;overflow:hidden}.member-card .book-content{min-width:0;overflow:hidden}.member-card h2,.member-card p{overflow-wrap:anywhere;word-break:break-word}.member-card .avatar img{display:block}
@media(max-width:480px){main{overflow-x:hidden}.profile-summary{max-width:100%;min-width:0}.profile-summary>*{min-width:0}.profile-level,.wallet-points{min-width:0}.wallet-details{min-width:0;overflow-wrap:anywhere}.wallet-details span{max-width:100%}}
.avatar-current{display:flex;align-items:center;gap:9px;margin-bottom:4px}.avatar-current img,.avatar-current span{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:50%;object-fit:cover;background:var(--avatar-color,#f1e5d9);color:var(--ink);font-weight:800}.avatar-current small{color:var(--muted);font-size:.78rem}
.avatar-upload-label{display:block;margin-top:4px;font-weight:750;font-size:.9rem;color:var(--ink)}
.avatar-form button{display:none}
.pending-notice-heading{display:flex;align-items:center;gap:10px}.pending-notice-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:12px;background:#f7eee4;font-size:1.15rem}.pending-notice-heading strong{min-width:0;overflow-wrap:anywhere}.pending-notice-actions{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:8px;margin-top:12px}.pending-notice-actions .button{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;margin:0;padding:10px 8px;text-align:center;font-size:.8rem}.pending-mark-read{color:var(--accent);font-size:.82rem;font-weight:750;text-decoration:underline;text-underline-offset:3px}
@media(max-width:480px){.pending-notice-actions{grid-template-columns:1fr;gap:8px}.pending-notice-actions .button{width:100%;text-align:center}.pending-mark-read{text-align:center;padding:6px}
.pending-dialog{width:calc(100vw - 28px);max-height:78dvh;padding:16px;scrollbar-width:none}.pending-dialog::-webkit-scrollbar{display:none}
}
.points-positive{color:#2f7a4d!important}.points-negative{color:#b34b42!important}.wallet-details span:first-child{color:#2f7a4d}.wallet-details span:nth-child(2){color:#b34b42}.wallet-balance{color:var(--accent)}main:has(.challenge-outcome-win) .reward-points{color:#2f7a4d}main:has(.challenge-outcome-loss) .challenge-outcome-primary strong{color:#b34b42}main:has(.stat) .stat strong{color:var(--accent)}main:has(.wallet-balance) .metrics section:first-child strong{color:#2f7a4d}main:has(.wallet-balance) .metrics section:nth-child(2) strong{color:#b34b42}
.wallet-history{display:grid;gap:10px}.wallet-entry{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:start;gap:10px;margin:0;padding:16px;border:1px solid var(--line);border-radius:18px;box-shadow:none}.wallet-entry-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#f7eee4;font-size:1.15rem}.wallet-entry-main{display:grid;min-width:0;gap:7px}.wallet-entry-main strong{overflow-wrap:anywhere;font-size:.98rem;font-weight:600}.wallet-entry-main small{color:var(--muted);font-size:.78rem}.wallet-entry-amount{flex:0 0 auto;margin:0;font-size:1.05rem;white-space:nowrap}.wallet-history .empty{margin:0}
@media(max-width:380px){.wallet-entry{grid-template-columns:34px minmax(0,1fr);gap:8px;padding:14px}.wallet-entry-icon{width:34px;height:34px}.wallet-entry-amount{grid-column:2;grid-row:1;justify-self:start}.wallet-entry-main{grid-column:2;grid-row:2}}
.profile-summary{display:grid;grid-template-columns:minmax(90px,.65fr) 1fr;gap:16px;align-items:center;padding:20px!important;border:2px solid #ead9c8;box-shadow:none}.profile-level{display:grid;gap:2px;padding-right:16px;border-right:1px solid var(--line)}.profile-level .level-label,.wallet-label{font-size:.7rem;letter-spacing:.14em;font-weight:850;color:var(--accent)}.profile-level strong{font-size:3.4rem;line-height:.9;color:var(--accent)}.profile-level span:last-child{font-size:.72rem;color:var(--muted)}.wallet-points{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}.wallet-points .wallet-label{width:100%}.wallet-points .wallet-balance{margin:0;font-size:2.25rem;line-height:1;color:var(--accent)}.wallet-points>span:last-child{color:var(--muted);font-size:.9rem}.wallet-details{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px 16px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.wallet-details strong{color:var(--ink)}
.public-auth-form~p{text-align:center}.public-auth-form~p a{font-weight:750}.public-auth-form~p a{color:var(--accent)}body:has(.public-auth-form) .bottom-nav a:not(:first-child){display:none}
.public-auth-form{gap:14px;margin-top:24px}.public-auth-form p{gap:7px}.public-auth-form label{font-size:.96rem;font-weight:600;color:var(--ink)}.public-auth-form input{min-height:52px;border-radius:15px;background:#fff;padding:14px 15px}.public-auth-form input::placeholder{color:#9a9d98;font-size:.9rem}.public-auth-form .helptext{display:block;margin-top:0;color:var(--muted);font-size:.76rem;line-height:1.35}.public-auth-form .errorlist{margin:0;padding:0;list-style:none;color:#963f35;font-size:.8rem;font-weight:650}.public-auth-form>button{width:100%;min-height:52px;margin-top:4px}.public-auth-form~p{margin-top:20px;font-size:.88rem}.public-auth-form~p a{text-decoration:none}.public-auth-form~p a:hover,.public-auth-form~p a:focus-visible{text-decoration:underline}
.public-auth-form~p a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-left:4px;padding:9px 18px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-weight:750;text-decoration:none}.public-auth-form~p a:hover,.public-auth-form~p a:focus-visible{background:#fff7ef}
@media(max-width:380px){.public-auth-form{gap:12px;margin-top:20px}.public-auth-form input{min-height:50px}.public-auth-form label{font-size:.92rem}.public-auth-form .helptext{font-size:.73rem}}
.home-summary .wallet-details a{margin-left:auto;color:var(--accent);font-weight:750;text-decoration:none}.home-summary .wallet-details a:hover,.home-summary .wallet-details a:focus-visible{text-decoration:underline}
.welcome-card{padding:22px;margin-top:22px}.welcome-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#f7eee4;font-size:1.7rem}.welcome-card h2{margin:18px 0 14px}.welcome-benefits{display:grid;gap:10px}.welcome-benefits p{display:flex;align-items:flex-start;gap:10px;margin:0;padding:9px 0}.welcome-benefits p>span:first-child{display:grid;place-items:center;width:30px;flex:0 0 30px;font-size:1.15rem}.welcome-benefits p>span:last-child{display:grid;gap:2px}.welcome-benefits strong{font-size:.92rem;color:var(--ink)}.welcome-benefits small{font-size:.78rem}.welcome-primary{display:block;width:100%;margin-top:18px;text-align:center}.welcome-login{display:block;margin-top:14px;text-align:center;color:var(--muted);font-size:.84rem;text-decoration:none}.welcome-login strong{color:var(--accent)}body:has(.welcome-card) .bottom-nav a:not(:first-child){display:none}
@media(max-width:380px){.profile-summary{grid-template-columns:82px 1fr;gap:12px;padding:16px!important}.profile-level strong{font-size:2.9rem}.wallet-points .wallet-balance{font-size:1.9rem}}
.confirm-dialog{width:min(92vw,420px);padding:0;border:0;border-radius:22px;background:#fff;color:var(--ink);box-shadow:0 20px 70px #0004}.confirm-dialog::backdrop{background:#24312bcc}.confirm-dialog-content{padding:22px}.confirm-dialog h2{margin:6px 0 8px;font-size:1.45rem}.confirm-dialog-message{margin:0;color:var(--muted);line-height:1.5}.confirm-dialog-actions{display:flex;gap:8px;margin-top:20px}.confirm-dialog-actions button{flex:1;margin:0;padding:11px 12px}.confirm-dialog-actions .secondary{background:transparent;color:var(--accent);border:1px solid var(--accent)}
@media(max-width:480px){.confirm-dialog{width:calc(100vw - 28px)}.confirm-dialog-content{padding:20px}.confirm-dialog-actions{display:grid;grid-template-columns:1fr}.confirm-dialog-actions button{width:100%}}
.context-identity{display:flex;align-items:center;gap:8px}.context-identity>span:last-child{display:grid;gap:0;min-width:0}.avatar-tiny{width:30px;height:30px;flex:0 0 30px;font-size:.72rem}.avatar-small{width:36px;height:36px;flex:0 0 36px;font-size:.85rem}
.ranking .book{display:flex;align-items:center;gap:10px}.ranking .book>div:last-child{min-width:0;flex:1}.ranking .book p{margin:3px 0 0}
.person-line{display:inline-flex;align-items:center;gap:8px;min-width:0}.challenge-link .person-line{font-weight:700}.challenge-link .person-line .avatar{flex:0 0 36px}
.challenge-people{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0 14px}.challenge-people .person-line{font-weight:700}.challenge-versus{color:var(--muted);font-size:.82rem}.challenge-results .person-line>span:last-child{overflow-wrap:anywhere}
.challenge-kicker{display:flex;align-items:center;gap:8px}.challenge-spark{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#f1e5d9;color:var(--accent);font-weight:800}.challenge-people{gap:10px;margin:14px 0 18px}.challenge-people .avatar{width:44px;height:44px;flex-basis:44px;font-size:1rem}.challenge-versus{display:grid;place-items:center;width:30px;height:30px;border:1px solid #ead9c8;border-radius:50%;color:var(--accent);font-size:.65rem;font-weight:800}.challenge-summary{position:relative;overflow:hidden;padding:20px!important;border:2px solid #e8cdb6!important;background:linear-gradient(135deg,#fff 0%,#fffaf5 100%);box-shadow:0 12px 28px #4b382110!important}.challenge-summary::after{content:"";position:absolute;right:-34px;top:-42px;width:120px;height:120px;border-radius:50%;background:#f1e5d9;opacity:.5}.challenge-pot{position:relative;z-index:1;display:block;margin:5px 0 12px;color:var(--accent);font-size:2.2rem;line-height:1}.challenge-pot small{font-size:.85rem;font-weight:650}.challenge-stake-line{position:relative;z-index:1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:.82rem}.challenge-waiting{display:flex;align-items:flex-start;gap:12px;margin-top:16px;padding:16px;border:1px dashed #bd936f;border-radius:18px;background:#fffaf5}.challenge-waiting-icon{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:#f1e5d9;font-size:1.1rem}.challenge-waiting strong{font-size:.95rem}.challenge-waiting p{margin:4px 0 0;font-size:.84rem}
@media(max-width:480px){main:has(.challenge-summary)>h1{font-size:clamp(2.45rem,11vw,3.7rem)}.challenge-stake-line{display:grid;gap:3px}.challenge-waiting{padding:14px}.challenge-pot{font-size:2rem}}
.challenge-kicker{justify-content:center}.challenge-people{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;justify-items:center;max-width:390px;margin:18px auto 22px;text-align:center}.challenge-people .person-line{display:grid;justify-items:center;gap:7px;width:100%;font-weight:800}.challenge-player-avatar{display:grid;place-items:center;width:64px;height:64px;border:4px solid #f1e5d9;border-radius:50%;background:#fff;box-shadow:0 5px 14px #4b382118}.challenge-player-avatar .avatar{width:56px;height:56px;flex-basis:56px;font-size:1.15rem}.challenge-versus{width:38px;height:38px;background:#24312b;color:#fff;border:0;box-shadow:0 5px 14px #24312b35;font-size:.68rem}.challenge-waiting small{display:block;margin-top:7px;color:var(--accent);font-weight:750}.challenge-live{border-style:solid;border-color:#b7d4c0;background:#f2faf3}.challenge-live .challenge-waiting-icon{background:#dcefe0;color:#356b4a}.challenge-spark{animation:challenge-pulse 2s ease-in-out infinite}@keyframes challenge-pulse{50%{transform:scale(1.12);box-shadow:0 0 0 5px #a36b4220}}
@media(prefers-reduced-motion:reduce){.challenge-spark{animation:none}}
.challenge-outcome{display:flex;align-items:center;gap:13px;margin-top:16px;padding:17px;border-radius:20px;overflow:hidden;position:relative}.challenge-outcome strong{display:block;font-size:1.2rem}.challenge-outcome p{margin:4px 0 0;font-size:.88rem}.outcome-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:50%;font-size:1.55rem}.challenge-outcome-win{border:2px solid #dfbd62;background:linear-gradient(135deg,#fff8dc,#fff);color:#79551d;animation:challenge-outcome-in .55s ease-out both}.challenge-outcome-win .outcome-icon{background:#f8dfa0;animation:challenge-trophy .8s .25s ease-out both}.challenge-outcome-loss{border:2px solid #d8cfc5;background:linear-gradient(135deg,#f5f2ee,#fff);color:#5f625f;animation:challenge-outcome-in .55s ease-out both}.challenge-outcome-loss .outcome-icon{background:#e7e0d8}.challenge-outcome-draw{border:2px solid #b7d4c0;background:#f2faf3;color:#356b4a;animation:challenge-outcome-in .55s ease-out both}.challenge-outcome-draw .outcome-icon{background:#dcefe0}@keyframes challenge-outcome-in{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes challenge-trophy{0%{transform:scale(.5) rotate(-15deg)}60%{transform:scale(1.18) rotate(7deg)}100%{transform:scale(1) rotate(0)}}
@media(prefers-reduced-motion:reduce){.challenge-outcome,.challenge-outcome-win .outcome-icon{animation:none}}
.challenge-outcome-primary{margin-top:4px;margin-bottom:18px;padding:20px 17px;border-radius:22px;box-shadow:0 10px 24px #4b382114}.challenge-outcome-primary strong{font-size:1.55rem}.challenge-outcome-primary p{font-size:.92rem}.outcome-label{display:block;margin-bottom:3px;color:currentColor;font-size:.66rem;letter-spacing:.16em;font-weight:800;opacity:.72}
.challenge-outcome-primary{min-height:154px;justify-content:center;text-align:center;isolation:isolate}.challenge-outcome-primary .outcome-icon{position:relative;z-index:1;flex-basis:62px;width:62px;height:62px;font-size:2rem;box-shadow:0 7px 18px #4b382126}.challenge-outcome-primary>div{position:relative;z-index:1}.challenge-outcome-primary strong{font-size:2rem;line-height:1.05}.challenge-outcome-primary p{margin-top:8px}.challenge-outcome-primary p b{font-size:1.05rem}.challenge-outcome-win{background:radial-gradient(circle at 50% -20%,#fff5be 0,#fff8e4 45%,#fff 100%)}.outcome-confetti{position:absolute;inset:8px 8px auto;color:#c98f2f;font-size:1.25rem;letter-spacing:.5em;opacity:.72;animation:challenge-confetti 1.8s ease-in-out infinite}.challenge-outcome-loss,.challenge-outcome-draw{justify-content:flex-start;text-align:left}.challenge-outcome-loss strong,.challenge-outcome-draw strong{font-size:1.5rem}.challenge-final-actions{display:grid;gap:8px;margin:20px 0 8px}.challenge-final-actions .button{width:100%;text-align:center}.challenge-results{margin-top:16px}.challenge-results .split strong{font-size:1.05rem}@keyframes challenge-confetti{50%{transform:translateY(5px) rotate(3deg);opacity:1}}
.challenge-outcome-primary{overflow:visible}.challenge-outcome-win.celebration-visible{animation:challenge-scene-in .65s cubic-bezier(.2,1.4,.4,1) both}.reward-points{display:inline-block}.celebration-visible .reward-points{animation:reward-pop .7s .45s cubic-bezier(.2,1.5,.4,1) both}.celebrate-action{position:relative;z-index:2;margin-top:13px;padding:9px 14px;border:1px solid #c99035;border-radius:999px;background:#fff;color:#8a5d22;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}.celebrate-action:active{transform:scale(.96)}.confetti-piece{position:absolute;left:50%;top:50%;z-index:3;color:#c98f2f;font-size:1.2rem;pointer-events:none;animation:confetti-fly 1.3s var(--d) ease-out forwards}@keyframes challenge-scene-in{0%{opacity:.35;transform:scale(.96)}65%{transform:scale(1.025)}100%{opacity:1;transform:scale(1)}}@keyframes reward-pop{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.18)}100%{transform:scale(1);opacity:1}}@keyframes confetti-fly{to{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:0}}
.challenge-result-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}.challenge-result-row .result-score-bar{grid-column:1/-1;height:7px;margin-top:7px;border-radius:99px;background:#eee8df;overflow:hidden}.result-score-bar b{display:block;width:0;height:100%;border-radius:inherit;background:#bd936f;transition:width .8s var(--result-delay) cubic-bezier(.2,1,.3,1)}.result-winner .result-score-bar b{background:#d9a83e}.result-winner strong{color:#9b6b1d}.challenge-results{animation:results-in .55s .3s both}@keyframes results-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.outcome-confetti{animation:none}}
@media(prefers-reduced-motion:reduce){.challenge-outcome-win.celebration-visible,.celebration-visible .reward-points{animation:none}.celebrate-action{display:none}}
@media(prefers-reduced-motion:reduce){.challenge-results{animation:none}.result-score-bar b{transition:none;width:var(--result-width,100%)}}
.challenge-people-finished .player-winner .challenge-player-avatar{border-color:#e1b94f;box-shadow:0 0 0 5px #f8dfa080,0 8px 20px #9b6b1d35;animation:winner-avatar 1.8s ease-in-out infinite}.winner-mark{display:block;color:#9b6b1d;font-size:.58rem;letter-spacing:.12em;font-weight:850}.challenge-people-finished .challenge-versus{animation:versus-settle .5s .35s both}@keyframes winner-avatar{50%{transform:translateY(-4px) scale(1.04)}}@keyframes versus-settle{from{transform:scale(.7);opacity:0}to{transform:scale(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.challenge-people-finished .player-winner .challenge-player-avatar,.challenge-people-finished .challenge-versus{animation:none}}
.badge-card{animation:badge-card-in .5s var(--badge-delay,0s) both}.badge-card>span:first-child{display:grid;place-items:center;transform-origin:center}.badge-card.badge-earned>span:first-child{animation:badge-earned .7s calc(var(--badge-delay,0s) + .25s) cubic-bezier(.2,1.5,.4,1) both}.badge-card.locked{filter:saturate(.65)}@keyframes badge-card-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes badge-earned{0%{transform:scale(.6) rotate(-12deg)}65%{transform:scale(1.2) rotate(6deg)}100%{transform:scale(1) rotate(0)}}
@media(prefers-reduced-motion:reduce){.badge-card,.badge-card.badge-earned>span:first-child{animation:none}}
.rive-result{display:none;flex:0 0 56px;width:56px;height:56px}.rive-result canvas{display:block;width:56px;height:56px}.rive-ready .outcome-icon{display:none}.rive-ready .rive-result{display:block}
.challenge-outcome-primary .rive-result{position:absolute;top:10px;left:50%;z-index:0;width:112px;height:112px;transform:translateX(-50%);border-radius:50%;overflow:hidden;opacity:.22;pointer-events:none}.challenge-outcome-primary .rive-result canvas{width:112px;height:112px}.challenge-outcome-primary.rive-ready .outcome-confetti{display:none}.challenge-outcome-primary.rive-ready .outcome-icon{display:grid}
.challenge-arena{position:relative;display:flex;flex-direction:column;align-items:center;min-height:0;margin:0 -4px;padding:18px 4px 22px;text-align:center;overflow:hidden;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}.challenge-arena:before{content:"";position:absolute;inset:12px -24px 0;background:radial-gradient(circle at 50% 36%,#fff3bd 0,#f7eee0 35%,transparent 68%);z-index:-1}.challenge-arena-kicker{display:flex;align-items:center;gap:8px;margin:6px 0 12px}.challenge-arena-title{max-width:100%;margin:0;font-size:clamp(2rem,9vw,3rem);line-height:.98;text-wrap:balance}.challenge-duel-stage{display:grid;grid-template-columns:minmax(0,1fr) 42px minmax(0,1fr);align-items:center;width:100%;margin:30px 0 25px}.challenge-duelist{display:flex;min-width:0;flex-direction:column;align-items:center;gap:7px;transition:filter .45s,opacity .45s,transform .45s}.challenge-duelist strong{max-width:100%;overflow-wrap:anywhere;font-size:1rem}.challenge-duelist .challenge-player-avatar{display:grid;place-items:center;width:72px;height:72px;border:4px solid #f3d994;border-radius:50%;background:#fff7df;box-shadow:0 8px 22px #473a241c}.challenge-duelist .avatar{width:100%;height:100%;border-radius:50%}.challenge-duelist.duelist-winner{transform:scale(1.12)}.challenge-duelist.duelist-winner .challenge-player-avatar{border-color:#d29c2e;box-shadow:0 0 0 7px #f8e9bd,0 0 30px #d29c2e88}.challenge-duelist.duelist-loser{filter:grayscale(.7);opacity:.58}.challenge-duelist .winner-mark{font-size:.62rem;letter-spacing:.14em}.challenge-arena>.challenge-outcome{width:100%;margin:0}.challenge-arena>.celebrate-action{margin-top:14px}.challenge-outcome-primary{min-height:170px}.challenge-outcome-primary strong{font-size:clamp(1.8rem,8vw,2.5rem)}.reward-reveal{display:flex;align-items:baseline;justify-content:center;gap:5px;margin-top:10px}.reward-reveal .reward-points{font-size:1.8rem;color:#a76a36}.reward-reveal span{font-weight:700}.challenge-arena [data-celebrate-again]{order:5}.challenge-arena [data-celebrate-again][hidden]{display:none}@media(max-width:370px){.challenge-arena{padding-inline:0}.challenge-duel-stage{margin-top:22px}.challenge-duelist .challenge-player-avatar{width:62px;height:62px}.challenge-outcome-primary{padding-inline:12px}}@media(prefers-reduced-motion:reduce){.challenge-duelist{transition:none}.challenge-arena:before{display:none}}
.bottom-nav{transition:opacity .35s ease,transform .35s ease}.celebration-active .bottom-nav{opacity:0;pointer-events:none;transform:translateY(100%)}
.challenge-outcome-primary .rive-result{display:none!important}
.celebrate-skip{order:4;margin-top:12px;border:0;background:transparent;color:#6f756f;font:inherit;font-size:.78rem;text-decoration:underline;cursor:pointer}.celebrate-skip:focus-visible,.celebrate-action:focus-visible{outline:3px solid #d29c2e;outline-offset:3px}
.challenge-outcome-primary .outcome-confetti{top:-23px;left:8px;right:8px;line-height:1}
.challenge-arena .celebrate-skip{opacity:1!important;color:#6f513d}
.reward-coins{position:absolute;inset:0;pointer-events:none}.reward-coins i{position:absolute;left:50%;top:58%;font-style:normal;color:#dda52d;font-size:1rem;opacity:0}.celebration-visible .reward-coins i{animation:coin-flight .8s 1.05s cubic-bezier(.2,.9,.3,1) forwards}.reward-coins i:nth-child(1){--coin-x:-34px;--coin-y:-54px}.reward-coins i:nth-child(2){--coin-x:8px;--coin-y:-74px;animation-delay:1.15s!important}.reward-coins i:nth-child(3){--coin-x:38px;--coin-y:-48px;animation-delay:1.25s!important}@keyframes coin-flight{0%{opacity:0;transform:translate(0,22px) scale(.4)}25%{opacity:1}100%{opacity:0;transform:translate(var(--coin-x),var(--coin-y)) scale(1.15)}}@media(prefers-reduced-motion:reduce){.reward-coins{display:none}}
.challenge-arena:not(.celebration-visible) .challenge-duelist{opacity:0;transform:translateY(14px) scale(.94)}.challenge-arena:not(.celebration-visible) .challenge-versus{opacity:0;transform:scale(.6)}.challenge-arena:not(.celebration-visible) .challenge-outcome{opacity:0;transform:translateY(18px) scale(.96)}.challenge-arena:not(.celebration-visible) .celebrate-action,.challenge-arena:not(.celebration-visible) .celebrate-skip{opacity:0}.challenge-arena.celebration-visible .challenge-duelist{animation:duelist-enter .55s cubic-bezier(.2,1.3,.4,1) both}.challenge-arena.celebration-visible .challenge-duelist:nth-child(1){animation-delay:.1s}.challenge-arena.celebration-visible .challenge-duelist:nth-child(3){animation-delay:.25s}.challenge-arena.celebration-visible .challenge-versus{animation:versus-pulse .55s .45s both}.challenge-arena.celebration-visible .challenge-outcome{animation:result-reveal .65s .85s cubic-bezier(.2,1.25,.4,1) both}.challenge-arena.celebration-visible .celebrate-action,.challenge-arena.celebration-visible .celebrate-skip{animation:fade-up .4s 1.25s both}@keyframes duelist-enter{from{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes versus-pulse{0%{opacity:0;transform:scale(.6)}70%{opacity:1;transform:scale(1.16)}100%{opacity:1;transform:scale(1)}}@keyframes result-reveal{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}@keyframes fade-up{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.challenge-arena:not(.celebration-visible) .challenge-duelist,.challenge-arena:not(.celebration-visible) .challenge-versus,.challenge-arena:not(.celebration-visible) .challenge-outcome{opacity:1;transform:none}.challenge-arena.celebration-visible .challenge-duelist,.challenge-arena.celebration-visible .challenge-versus,.challenge-arena.celebration-visible .challenge-outcome,.challenge-arena.celebration-visible .celebrate-action,.challenge-arena.celebration-visible .celebrate-skip{animation:none;opacity:1;transform:none}}
.person-option{position:relative;justify-content:flex-start;gap:10px}.person-option input{position:absolute;width:1px!important;height:1px!important;opacity:0;margin:-1px!important;overflow:hidden;clip:rect(0,0,0,0)}.person-option>span:last-child{display:grid;gap:2px}.person-option small{color:var(--muted);font-size:.76rem;font-weight:400}.person-option:focus-within{outline:3px solid #d6a47f;outline-offset:2px}
.challenge-step{min-width:0;padding-top:20px!important}.challenge-step legend{position:relative;display:flex;align-items:center;width:100%;min-width:0;margin:0 0 2px;padding:0;background:#fff;line-height:1.3}.challenge-step legend>span:last-child{min-width:0;overflow-wrap:anywhere}.challenge-step-number{position:static;transform:none}
.stake-balance{margin:0;color:var(--muted);font-size:.82rem}.stake-balance:has(+ .errorlist){color:#963f35}.challenge-form .errorlist{margin:0;padding:0;list-style:none;color:#963f35;font-size:.82rem;font-weight:650}.challenge-form #id_stake[aria-invalid="true"]{border-color:#963f35;background:#fff5f3}
@media(max-width:480px){.profile-hero{gap:11px}.avatar-large{width:56px;height:56px;flex-basis:56px}.avatar-editor{padding:14px!important}.avatar-form button{width:100%}}
.avatar-form input[type=file]::file-selector-button{min-height:34px;margin-right:8px;padding:6px 10px;border:1px solid #bd936f;border-radius:9px;background:#fff;color:var(--accent);font:inherit;font-weight:700}.avatar-form input[type=file]{min-height:48px}
.avatar-form .file-input-hidden{position:absolute!important;width:1px!important;height:1px!important;min-height:1px!important;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.file-picker{display:flex;align-items:center;gap:12px;min-height:58px;padding:10px 13px;border:1px dashed #bd936f;border-radius:12px;background:#fffaf5;color:var(--ink);cursor:pointer}.file-picker:focus-within,.file-picker:has(+ input:focus){outline:3px solid #bd936f55;outline-offset:2px}.file-picker>span:first-child{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:10px;background:#f1e5d9;font-size:1.15rem}.file-picker span:last-child{display:grid;gap:2px}.file-picker small{color:var(--muted);font-size:.76rem}.image-preview[hidden]{display:none!important}
.challenge-step{display:grid;gap:8px;padding:16px!important;border:1px solid var(--line)!important;border-radius:18px!important;background:#fff!important;box-shadow:none!important}.challenge-step legend{display:flex;align-items:center;gap:9px;width:100%;padding:0;font-size:1rem}.challenge-step-number{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#f1e5d9;color:#8d5b38;font-size:.8rem;font-weight:800}.challenge-search-label,.challenge-help{color:var(--muted);font-size:.8rem}.challenge-search{margin:0!important}.challenge-options{display:grid;gap:8px;margin-top:2px}.challenge-option{display:flex!important;align-items:center;gap:10px;min-height:50px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink)!important;cursor:pointer}.challenge-option:has(input:checked){border-color:var(--accent);background:#fff7ef;box-shadow:0 0 0 2px #a36b4230}.challenge-option input{width:18px!important;height:18px;margin:0!important;accent-color:var(--accent)}.challenge-option>span:last-child{display:grid;gap:2px}.challenge-option small{color:var(--muted);font-size:.77rem}.challenge-search{width:100%;min-height:44px;padding:10px 12px;border:1px solid #d8d1c5;border-radius:12px;background:#fff;font:inherit}.stake-preview{margin:2px 0 0;padding:10px 12px;border-radius:11px;background:#f7f5ef;font-size:.85rem}.challenge-review{display:grid;gap:6px;margin-top:2px;padding:16px;border:2px solid #ead9c8;border-radius:18px;background:#fffaf5;box-shadow:none}.challenge-review strong{font-size:1.02rem}.challenge-review p{margin:0;font-size:.84rem}.challenge-review .submit-action{margin-top:8px}
.challenge-form #id_opponent{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none}.challenge-form #id_opponent li{margin:0}.challenge-form #id_opponent label{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer;font-weight:600}.challenge-form #id_opponent label:has(input:checked){border-color:var(--accent);background:#fff7ef;box-shadow:0 0 0 2px #a36b4230}.challenge-form #id_opponent input{width:18px;height:18px;accent-color:var(--accent);margin:0}.challenge-form #id_activity,.challenge-form #id_stake{width:100%;min-height:46px;margin-top:4px}.challenge-form .helptext{display:block;margin-top:4px;color:var(--muted);font-size:.8rem}
.management-editor{display:grid;gap:14px}.management-editor select,.management-editor input,.management-editor textarea{width:100%;min-height:46px}.management-editor textarea{min-height:100px}.editor-questions{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:18px;background:#fff}.editor-questions legend{padding:0 6px;font-weight:800}.editor-question{display:grid;gap:8px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fffaf5}.editor-question h2{margin:0;font-size:1rem}.editor-question p{margin:0}.editor-question .button{width:100%;text-align:center}.editor-question input[type=checkbox]{width:auto;min-height:18px}.editor-note{color:var(--muted);font-size:.78rem}.management-editor>button,.management-editor .button{min-height:48px}
.dynamics-section-heading{display:grid!important;grid-template-columns:1fr;gap:10px;align-items:start}.dynamics-section-heading .button{width:100%;text-align:center}
.book-icon{--cover-text:#f4d58a;--cover-bg:#9b4c45;position:relative;isolation:isolate;display:grid;place-items:end center;flex:0 0 74px;width:74px;height:106px;padding:8px;overflow:hidden;background-color:var(--cover-bg);background-image:linear-gradient(145deg,#fff3c455,#6b262255),url('/static/images/library-leather-cover.png');background-blend-mode:multiply,normal;background-size:cover;background-position:center;border-radius:5px;color:var(--cover-text);font-size:1.35rem;text-shadow:0 1px 3px #0008;box-shadow:inset 5px 0 0 #24120b66,3px 8px 12px #24312b3d;transform:perspective(500px) rotateY(-3deg) translateY(-1px);transform-origin:left center;transition:transform .25s ease,box-shadow .25s ease}
.book-icon::after{content:'';position:absolute;top:4px;bottom:4px;right:-3px;width:5px;z-index:-1;border-radius:0 3px 3px 0;background:repeating-linear-gradient(to bottom,#f6ead0 0 1px,#cdbb9b 1px 2px);box-shadow:1px 0 2px #24120b55}
.book-icon:active,.book-icon:hover{transform:perspective(500px) rotateY(-1deg) translateY(-3px);box-shadow:inset 5px 0 0 #24120b66,4px 11px 16px #24312b55}
.book-icon::before{content:'';position:absolute;inset:-55% -80%;z-index:-1;background:linear-gradient(115deg,transparent 42%,#fff8 50%,transparent 58%);transform:translateX(var(--cover-shine,-70%)) rotate(8deg);opacity:var(--cover-shine-opacity,0);transition:transform .12s linear,opacity .12s linear}.book-icon.is-lit::before{animation:cover-sheen 1.15s ease-out forwards}@keyframes cover-sheen{to{transform:translateX(70%) rotate(8deg);opacity:1}}
.book-cover-title,.book-cover-author{display:-webkit-box;width:100%;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical;text-align:center;background:linear-gradient(110deg,var(--cover-text) 0%,#fff4c9 43%,var(--cover-text) 68%,#fff 86%,var(--cover-text) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 1px #0008)}.book-cover-title{-webkit-line-clamp:3;font-family:var(--cover-title-font,Georgia,'Times New Roman',serif);font-size:var(--cover-title-size,.68rem);font-weight:700;line-height:1.05;overflow-wrap:anywhere}.book-cover-title.is-long{-webkit-line-clamp:3;font-size:.57rem;line-height:1.02}.book-cover-title.is-very-long{font-size:.49rem;line-height:1.01}.book-cover-author{-webkit-line-clamp:2;margin-top:3px;font-size:.48rem;line-height:1.05;opacity:.95;font-family:var(--cover-author-font,var(--cover-title-font,Georgia,serif))}
.book-icon.cover-font-0{--cover-title-font:Georgia,'Times New Roman',serif;--cover-author-font:Georgia,serif}.book-icon.cover-font-1{--cover-title-font:'Trebuchet MS',Arial,sans-serif;--cover-author-font:Arial,sans-serif}.book-icon.cover-font-2{--cover-title-font:'Palatino Linotype',Palatino,serif;--cover-author-font:Georgia,serif}.book-icon.cover-font-3{--cover-title-font:'Lucida Sans Unicode','Trebuchet MS',sans-serif;--cover-author-font:Arial,sans-serif}.book-icon.cover-font-4{--cover-title-font:'Courier New',monospace;--cover-author-font:Georgia,serif}.book-icon.cover-font-5{--cover-title-font:'Book Antiqua',Palatino,serif;--cover-author-font:'Trebuchet MS',sans-serif}
.book:nth-of-type(5n+1) .book-icon{--cover-title-font:Georgia,'Times New Roman',serif;--cover-author-font:Georgia,serif}.book:nth-of-type(5n+2) .book-icon{--cover-title-font:'Trebuchet MS',Arial,sans-serif;--cover-author-font:Arial,sans-serif;font-weight:800}.book:nth-of-type(5n+3) .book-icon{--cover-title-font:'Palatino Linotype',Palatino,serif;--cover-author-font:Georgia,serif;font-style:italic}.book:nth-of-type(5n+4) .book-icon{--cover-title-font:'Lucida Sans Unicode','Trebuchet MS',sans-serif;--cover-author-font:Arial,sans-serif}.book:nth-of-type(5n) .book-icon{--cover-title-font:'Courier New',monospace;--cover-author-font:Georgia,serif;letter-spacing:-.02em}
main:has(.book-icon)>.book:nth-of-type(3n) .book-icon{transform:perspective(500px) rotateY(3deg) translateY(-1px);transform-origin:right center}
main:has(.book-icon)>.book:nth-of-type(3n):hover .book-icon,main:has(.book-icon)>.book:nth-of-type(3n):active .book-icon{transform:perspective(500px) rotateY(1deg) translateY(-3px)}
@media(prefers-reduced-motion:reduce){.book-icon.is-lit::before{animation:none;opacity:.35;transform:none}}
.book-icon{background-blend-mode:normal,normal;box-shadow:inset 3px 0 0 #24120b44,3px 8px 12px #24312b3d;text-shadow:0 1px 2px #24120bcc,0 0 8px #24120b66}
.book-cover-title,.book-cover-author{background:linear-gradient(110deg,#fff8d6 0%,#fff 43%,var(--cover-text) 68%,#fff 86%,#fff1b0 100%);filter:drop-shadow(0 1px 1px #24120bcc)}
.club-books{position:relative;height:132px;margin:0 auto 18px;width:190px}.club-books .book-icon{position:absolute;top:8px;left:50%;margin-left:-37px;transition:transform .25s ease}.club-books .club-book-1{transform:perspective(500px) rotateY(-10deg) rotateZ(-7deg) translateX(-28px);z-index:1}.club-books .club-book-2{transform:perspective(500px) rotateY(5deg) rotateZ(4deg) translateX(18px) translateY(4px);z-index:2}.club-books .club-book-3{transform:perspective(500px) rotateY(-2deg) rotateZ(-1deg) translateY(9px);z-index:3}.club-card:hover .club-book-1{transform:perspective(500px) rotateY(-13deg) rotateZ(-10deg) translateX(-38px) translateY(-3px)}.club-card:hover .club-book-2{transform:perspective(500px) rotateY(7deg) rotateZ(6deg) translateX(28px) translateY(-2px)}.club-card:hover .club-book-3{transform:perspective(500px) rotateY(-2deg) rotateZ(0) translateY(-3px)}.club-books-empty{display:grid;place-items:center;height:106px;font-size:2.4rem;color:var(--accent)}
@media(max-width:480px){.club-books{height:124px;width:176px}.club-books .book-icon{transform:scale(.92)}.club-books .club-book-1{transform:scale(.92) rotate(-7deg) translateX(-28px)}.club-books .club-book-2{transform:scale(.92) rotate(4deg) translateX(18px) translateY(4px)}.club-books .club-book-3{transform:scale(.92) rotate(-1deg) translateY(9px)}}
.module-role-form{display:grid;gap:12px;margin-top:14px}.module-role-form fieldset{display:grid;gap:8px;border:0;padding:0;margin:0}.module-role-form legend{font-size:.82rem;font-weight:800;color:var(--muted);margin-bottom:2px}.role-check{display:flex;align-items:center;gap:10px;min-height:44px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.role-check input{width:20px;height:20px;accent-color:var(--accent)}.module-role-form button{width:100%;margin-top:0}
.crossword-admin-rule{margin:16px 0;padding:14px 16px;border:1px solid #ead9c8;border-radius:16px;background:#fffaf5}.crossword-admin-rule strong{color:var(--accent)}.crossword-admin-rule p{margin:5px 0 0;color:var(--muted);font-size:.9rem}.form-errors{margin:10px 0;padding:12px;border:1px solid #e4b1aa;border-radius:12px;background:#fff0ed;color:#963f35}.editor-draft-notice{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:12px 0;padding:12px 14px;border:1px solid #d29c2e;border-radius:14px;background:#fff9df;color:var(--accent);font-size:.85rem}.editor-draft-notice button{min-height:40px;padding:7px 12px}
.crossword-editor{padding-bottom:88px;scroll-padding-top:100px}.crossword-settings{padding:16px;border:1px solid #ead9c8;border-radius:18px;background:#fff}.crossword-settings h2{margin:0 0 10px;font-size:1.1rem;color:var(--accent)}.crossword-settings p{margin:0 0 9px}.crossword-settings p:last-child{margin-bottom:0}.editor-jump{display:flex;gap:7px;overflow:auto;padding:3px 0 12px;scrollbar-width:thin}.editor-jump a{display:grid;place-items:center;flex:0 0 36px;height:36px;border:1px solid #d9c6b4;border-radius:50%;background:#fff;color:var(--accent);font-weight:800;text-decoration:none;scroll-margin-top:100px}.editor-jump a:hover,.editor-jump a:focus-visible{background:#fff1df;border-color:var(--accent)}.editor-question{overflow:hidden}.editor-question summary{cursor:pointer;list-style:none;font-size:1rem;font-weight:800;color:var(--ink)}.editor-question summary::-webkit-details-marker{display:none}.editor-question summary::before{content:'+';display:inline-grid;place-items:center;width:24px;height:24px;margin-right:8px;border-radius:50%;background:#f1e5d9;color:var(--accent)}.editor-question[open] summary::before{content:'−'}.editor-question[open] summary{margin-bottom:8px}.editor-question:target{outline:3px solid #d6a47f;outline-offset:3px;scroll-margin-top:100px}
.editor-preview{display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:center;margin:16px 0;padding:14px 16px;border:1px solid #ead9c8;border-radius:18px;background:#fff}.editor-preview>div:first-child{display:grid;gap:3px}.editor-preview small{color:var(--muted)}.editor-preview-warning{margin:0;color:#963f35;font-size:.82rem}.editor-preview .crossword-grid{grid-column:1/-1;max-width:320px;margin:auto}.editor-preview .crossword-cell{min-width:18px;min-height:18px}.editor-preview .crossword-cell small{font-size:.5rem;color:#8d5b38}
@media(min-width:900px){.crossword-editor{display:grid;grid-template-columns:minmax(260px,.75fr) minmax(440px,1.25fr);align-items:start;gap:18px}.crossword-editor>.crossword-admin-rule,.crossword-editor>.editor-questions,.crossword-editor>button{grid-column:1/-1}.crossword-settings{position:static}.editor-questions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.editor-questions>legend,.editor-questions>.editor-jump,.editor-questions>[name$='TOTAL_FORMS']{grid-column:1/-1}.editor-question{margin:0}.crossword-editor>button{max-width:360px;justify-self:end}}
@media(max-width:480px){.crossword-editor{padding-bottom:104px}.crossword-settings{padding:14px}.editor-jump{margin-inline:-2px}.editor-question{padding:12px}.editor-question summary{min-height:28px;display:flex;align-items:center}.crossword-editor>button{position:relative;z-index:1}}
.crossword-grid{display:grid;gap:2px;width:min(100%,360px);margin:18px auto 22px;padding:8px;background:#2b3832;border-radius:14px;overflow:auto}.crossword-grid-row{display:grid;grid-auto-columns:minmax(24px,1fr);grid-auto-flow:column;gap:2px}.crossword-cell{position:relative;aspect-ratio:1;background:#fffaf2;border-radius:2px}.crossword-cell-block{background:transparent}.crossword-cell small{position:absolute;top:1px;left:2px;font-size:8px;color:var(--accent);font-weight:800}
.role-tag{display:inline-flex;margin-top:8px;background:#f1e5d9;color:var(--accent)}
.crossword-guided-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:0 0 10px}.crossword-guided-controls button{min-height:42px;padding:8px 6px;font-size:.82rem}.crossword-guided-controls button:disabled{opacity:.45;cursor:not-allowed}
.crossword-flow-controls{display:grid;grid-template-columns:1fr 1fr 1.35fr;gap:8px;margin:0 0 10px}.crossword-flow-controls button{min-height:44px;padding:8px 5px;font-size:.78rem}.crossword-flow-controls button:disabled{opacity:.45;cursor:not-allowed}
.crossword-guided-progress{margin:0 0 10px;text-align:center;color:var(--accent);font-size:.85rem;font-weight:800}.crossword-clue:not(.is-current){opacity:.72}.crossword-clue.is-current{border-color:var(--accent);box-shadow:0 0 0 3px #a36b4230;opacity:1}
.crossword-clue[hidden]{display:none}.crossword-surrender{display:grid;gap:6px;margin:14px 0;text-align:center}.crossword-surrender small{color:var(--muted);font-size:.78rem}.crossword-surrender button{width:100%}
.crossword-cell b{display:grid;place-items:center;height:100%;font-size:1.05rem;color:#8a5d22;animation:crossword-letter-reveal .45s cubic-bezier(.2,1.4,.4,1) both}.crossword-cell-revealed{background:#f8e9bd;box-shadow:inset 0 0 0 2px #d29c2e}.crossword-feedback{display:grid;gap:6px;margin:12px 0}.crossword-feedback p{margin:0;padding:12px 14px;border-radius:12px;background:#fff7df}.crossword-feedback .error{background:#fff0ed;color:#963f35}.crossword-feedback .success{background:#edf8ef;color:#2f7a4d}.crossword-progress{margin-bottom:16px}.crossword-help{display:grid;gap:14px;margin-top:20px;padding:18px;border:1px solid #ead9c8;border-radius:18px;background:#fffaf5}.crossword-help h2{margin:5px 0;font-size:1.25rem}.crossword-help p{margin:0;font-size:.9rem}.letter-buy-form{display:grid;gap:8px}.letter-buy-form label{font-weight:800;font-size:.9rem}.letter-buy-form select{min-height:48px;border:1px solid #d8d1c5;border-radius:12px;padding:0 12px;background:#fff;font:inherit}.letter-buy-form .button{width:100%;min-height:48px}@keyframes crossword-letter-reveal{0%{opacity:0;transform:scale(.4) rotate(-8deg)}70%{transform:scale(1.18) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
.crossword-cell-active{background:#f5dfaa;box-shadow:inset 0 0 0 2px #c99035;transform:scale(1.04);z-index:1}.crossword-cell-solved{background:#eaf6ed;box-shadow:inset 0 0 0 2px #4b9363}.crossword-cell-help{background:#f8e9bd;box-shadow:inset 0 0 0 2px #d29c2e}.crossword-help-surrender{border-color:#e4b1aa;background:#fff8f5}
.crossword-cell-help.crossword-cell-solved{background:#eaf6ed;box-shadow:inset 0 0 0 2px #4b9363}
.crossword-surrender-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:18px 0;padding:15px 17px;border:1px solid #e4b1aa;border-radius:18px;background:#fff8f5}.crossword-surrender-card strong{display:block;margin-top:3px;font-size:1.05rem}.crossword-surrender-card p{margin:4px 0 0;color:var(--muted);font-size:.82rem}.crossword-surrender-card b{color:#a8443b}.crossword-surrender-trigger{flex:0 0 auto;min-height:42px;padding:9px 15px;color:#a8443b;border-color:#d9938b}.crossword-shop-fab{position:fixed;right:max(16px,calc((100vw - 540px)/2 - 68px));bottom:86px;z-index:20;display:flex;align-items:center;gap:7px;padding:11px 15px;border:2px solid #d29c2e;border-radius:99px;background:#fff9df;color:var(--accent);font:800 .86rem inherit;box-shadow:0 10px 24px #24312b26}.crossword-shop-fab span:first-child{font-size:1.15rem}.crossword-shop-dialog{width:min(470px,calc(100% - 28px));padding:0;border:0;border-radius:24px;background:#fffaf5;color:var(--ink);box-shadow:0 20px 60px #1e2b2550}.crossword-shop-dialog::backdrop{background:#17221dcc}.crossword-shop-header{display:flex;justify-content:space-between;gap:14px;padding:22px 20px 8px}.crossword-shop-header h2{margin:5px 0;font-size:1.35rem}.crossword-shop-header p{margin:0;color:var(--muted);font-size:.9rem}.dialog-close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:1.5rem;color:var(--ink)}.crossword-shop-dialog .letter-buy-form{padding:8px 20px 22px}.letter-shop-note{display:grid;grid-template-columns:1fr auto;gap:4px 10px;padding:10px 12px;border-radius:12px;background:#f5eee5;color:var(--muted);font-size:.8rem}.letter-shop-note b{color:var(--accent)}
.letter-panel{display:grid;gap:14px;margin:2px 0 8px}.letter-group{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.letter-group-title{grid-column:1/-1;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.letter-panel button{display:grid;place-items:center;min-height:52px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);font:800 .95rem inherit;cursor:pointer}.letter-panel button small{font-size:.62rem;font-weight:600;color:var(--muted)}.letter-panel button.is-selected{border-color:var(--accent);background:#f8e9bd;box-shadow:0 0 0 2px #c9903540}.letter-panel button:disabled{opacity:.35;text-decoration:line-through;cursor:not-allowed}@media(max-width:350px){.letter-group{grid-template-columns:repeat(4,1fr)}}@media(max-width:480px){.crossword-surrender-card{align-items:flex-start;flex-direction:column}.crossword-surrender-trigger{width:100%}.crossword-shop-fab{right:16px;bottom:78px}.crossword-shop-dialog{max-height:calc(100dvh - 32px)}}
.crossword-result-hero{display:grid;gap:6px;text-align:center;padding:26px 18px;margin:20px 0;border:2px solid #d29c2e;border-radius:22px;background:linear-gradient(145deg,#fff9df,#fff)}.crossword-result-hero strong{font-size:3.4rem;line-height:1;color:var(--accent)}.crossword-result-hero p{margin:0;color:var(--muted)}.crossword-summary{display:grid;gap:4px;padding:18px;margin-bottom:14px;border:1px solid var(--line);border-radius:18px;background:#fff}.crossword-summary h2{margin:0 0 6px;font-size:1.2rem}.crossword-summary p{margin:0;color:var(--muted)}.crossword-summary strong{color:var(--ink)}
@media(prefers-reduced-motion:reduce){.crossword-cell b{animation:none}.crossword-cell-active{transform:none}.crossword-cell{transition:none}}
@media(prefers-reduced-motion:reduce){.crossword-cell-active,.crossword-clue.is-current,.crossword-feedback .success,.crossword-feedback .error{animation:none}}
.crossword-shop-dialog .letter-panel button.is-purchased{background:#f4eee5;color:#9b9184;border-style:dashed;box-shadow:none}.crossword-shop-dialog .letter-panel button.is-purchased small{color:#b08a52;font-weight:800}.crossword-shop-dialog .letter-panel button.is-purchased b{text-decoration:line-through;text-decoration-thickness:2px}.crossword-shop-dialog .letter-panel button:not(:disabled):hover{transform:translateY(-2px)}
.crossword-shop-dialog .letter-shop-note{display:none}.crossword-shop-dialog .letter-group-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.crossword-shop-dialog .letter-group-title small{display:inline-flex;align-items:center;gap:4px;padding:4px 8px 4px 5px;border:1px solid #bd8532;border-radius:999px;background:linear-gradient(145deg,#f8d77b,#c58a2f);box-shadow:inset 0 1px #fff0ad,0 2px 0 #9b642b;color:#5f3b1d;font-family:Georgia,serif;font-size:.68rem;font-weight:800;letter-spacing:0;text-transform:none}.crossword-shop-dialog .letter-group-title small::before{content:'✦';display:grid;place-items:center;width:16px;height:16px;border:1px solid #8f5d24;border-radius:50%;background:#e9b94e;color:#70451d;font-size:.58rem;line-height:1}
@media(max-width:480px){.crossword-shop-dialog .letter-panel{gap:8px}.crossword-shop-dialog .letter-group{gap:5px}.crossword-shop-dialog .letter-panel button{min-height:46px}.crossword-shop-dialog .letter-shop-note{padding:8px 12px}}
.crossword-shop-dialog .letter-group{grid-template-columns:repeat(5,minmax(0,1fr));min-width:0}.crossword-shop-dialog .letter-group-title{min-width:0;overflow:hidden}.crossword-shop-dialog .letter-group-title small{flex:0 0 auto;white-space:nowrap}.crossword-shop-dialog .letter-panel button{min-width:0;overflow:hidden}.crossword-shop-dialog .letter-panel button small{white-space:nowrap}
.crossword-clue.is-current{position:relative;border:2px solid #d29c2e;box-shadow:0 8px 20px #a36b4220;padding:13px;background:linear-gradient(105deg,#fffaf0,#fff)}.crossword-clue.is-current::before{content:'MISIÓN ACTUAL';position:absolute;top:-10px;left:16px;padding:2px 8px;border:1px solid #d29c2e;border-radius:99px;background:#fff4d2;color:#9a642f;font-size:.6rem;font-weight:800;letter-spacing:.12em}.crossword-clue.is-current input{border:2px solid #d29c2e;background:#fffaf0;box-shadow:inset 0 2px 5px #a36b4212;min-height:52px;font-size:1.05rem;color:var(--ink)}.crossword-clue.is-current input::placeholder{color:#a36b42;font-weight:700}.crossword-surrender-card{position:relative;border-style:dashed;background:linear-gradient(105deg,#fff8f5,#fffdfb);padding-left:52px}.crossword-surrender-card::before{content:'↘';position:absolute;left:18px;top:18px;display:grid;place-items:center;width:24px;height:24px;border:1px solid #d9938b;border-radius:50%;color:#a8443b;font-weight:800}.crossword-surrender-card .eyebrow{color:#a8443b}.crossword-surrender-trigger{background:#fff8f5;font-weight:800}
.crossword-feedback .success{animation:crossword-feedback-in .45s cubic-bezier(.2,1.3,.4,1) both;border-left:4px solid #4b9363}.crossword-feedback .error{animation:crossword-feedback-shake .35s ease both;border-left:4px solid #a8443b}.crossword-shop-dialog{margin:auto}.crossword-shop-dialog .button{margin-top:8px}.crossword-shop-dialog .letter-panel button{transition:transform .15s ease,background .15s ease}.crossword-shop-dialog .letter-panel button:not(:disabled):active{transform:scale(.94)}@keyframes crossword-feedback-in{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}@keyframes crossword-feedback-shake{0%,100%{transform:translateX(0)}35%{transform:translateX(-5px)}70%{transform:translateX(5px)}}
@media(max-width:480px){.crossword-shop-fab{right:16px;bottom:calc(78px + env(safe-area-inset-bottom));padding:10px 13px}.crossword-shop-dialog{width:100%;max-width:none;max-height:calc(100dvh - 18px);margin:0;border-radius:24px 24px 0 0}.crossword-shop-dialog .letter-buy-form{padding-bottom:calc(22px + env(safe-area-inset-bottom))}}
.crossword-shop-dialog{width:min(470px,calc(100vw - 28px));max-width:calc(100vw - 28px);box-sizing:border-box;border:1px solid #d9b98e;background:linear-gradient(135deg,#fffaf1 0%,#f7ecdc 100%);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#c8a77d transparent}.crossword-shop-dialog::-webkit-scrollbar{width:6px}.crossword-shop-dialog::-webkit-scrollbar-thumb{background:#c8a77d;border-radius:99px}.crossword-shop-dialog::before{content:'';display:block;height:9px;background:linear-gradient(90deg,#4d2c22 0 8%,#8d593b 8% 92%,#4d2c22 92%);border-bottom:2px solid #d2a74e;box-shadow:inset 0 2px #b77a4a}.crossword-shop-header{position:relative;padding:18px 20px 8px}.crossword-shop-header::after{content:'✦';position:absolute;right:72px;top:24px;color:#c8943a;font-size:1.15rem;opacity:.7}.crossword-shop-header h2{font-family:Georgia,serif;letter-spacing:-.02em;line-height:1.1}.crossword-shop-header p{max-width:330px;margin-bottom:4px;font-size:.84rem;line-height:1.4}.crossword-shop-header p strong{color:#a36b42}.crossword-shop-dialog .letter-buy-form{gap:7px;padding-top:6px}.crossword-shop-dialog .letter-buy-form>label{font-family:Georgia,serif;font-size:1rem}.crossword-shop-dialog .letter-panel{gap:10px}.crossword-shop-dialog .letter-group{gap:6px}.crossword-shop-dialog .letter-group-title{padding:2px 0;color:#98643e;font-family:Georgia,serif;font-size:.68rem;border-bottom:1px solid #e5cda9}.crossword-shop-dialog .letter-panel button{min-height:50px;border-color:#e8ded0;background:#fffdf9;box-shadow:0 2px 0 #eadfce;font-family:Georgia,serif}.crossword-shop-dialog .letter-panel button small{font-family:system-ui,sans-serif;font-size:.59rem}.crossword-shop-dialog .letter-panel button.is-selected{border-color:#b87c2d;background:linear-gradient(145deg,#ffefbd,#f7d985);box-shadow:0 2px 0 #b87c2d,0 0 0 2px #d29c2e33}.crossword-shop-dialog .letter-shop-note{border:1px solid #e5cda9;background:#f3e5d2;box-shadow:inset 0 1px #fff9ef}.crossword-shop-dialog .letter-shop-note b{font-family:Georgia,serif;color:#9e612e}.crossword-shop-dialog .letter-buy-form>.button{box-shadow:0 3px 0 #8b572f}.crossword-shop-dialog .dialog-close{background:#fffdf9;border-color:#e5cda9}
.crossword-game{max-width:540px;margin:auto}.crossword-game-header{display:flex;align-items:end;justify-content:space-between;gap:12px}.crossword-game-header h1{margin-bottom:0;overflow-wrap:anywhere}.crossword-score{display:grid;justify-items:center;min-width:64px;padding:8px 10px;border:2px solid #d29c2e;border-radius:16px;background:#fff9df;color:var(--accent)}.crossword-score strong{font-size:1.5rem;line-height:1}.crossword-score small{font-size:.68rem;font-weight:800}.crossword-description{margin-top:8px}.crossword-progress-bar{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;margin:18px 0 12px;padding:12px 14px;border:1px solid #ead9c8;border-radius:16px;background:linear-gradient(100deg,#fffaf0,#fff)}.crossword-progress-copy{display:flex;align-items:baseline;gap:5px}.crossword-progress-copy strong{font-size:1.2rem;color:var(--accent)}.crossword-progress-copy span,.crossword-streak{font-size:.78rem;color:var(--muted)}.crossword-streak strong{color:var(--accent)}.progress-track{grid-column:1/-1;height:8px;overflow:hidden;border-radius:99px;background:#f0e8dc}.progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#a76a36,#d29c2e);transition:width .5s ease}.crossword-board-wrap{padding:10px;border:2px solid #42584d;border-radius:22px;background:linear-gradient(145deg,#34483f,#24342d);box-shadow:0 16px 32px #24312b38}.crossword-board-wrap .crossword-grid{margin:0;width:100%;background:transparent}.crossword-clue em{display:block;margin-top:3px;color:var(--muted);font-size:.72rem;font-style:normal}.crossword-final-banner{display:flex;align-items:center;gap:14px;margin:24px 0;padding:20px;border:2px solid #d29c2e;border-radius:22px;background:linear-gradient(145deg,#fff9df,#fff);box-shadow:0 10px 24px #d29c2e22}.crossword-final-banner>span{font-size:2rem;color:#d29c2e}.crossword-final-banner strong{font-size:1.25rem}.crossword-final-banner p{margin:4px 0 0;color:var(--muted)}
.crossword-clues{display:grid;gap:10px}.crossword-clue{display:grid;grid-template-columns:32px 1fr minmax(90px,28%);align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:text}.crossword-clue:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px #a36b4230}.crossword-clue>span:nth-child(2){display:grid;gap:2px;color:var(--ink);line-height:1.3}.crossword-clue small{color:var(--accent);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.crossword-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#f1e5d9;color:var(--accent);font-weight:800}.crossword-clue input{width:100%;min-height:44px;border:1px solid #d8d1c5;border-radius:10px;padding:8px;text-align:center;text-transform:uppercase;font:700 1rem/1 inherit;letter-spacing:.08em}.crossword-form .submit-action{width:100%;min-height:48px}@media(max-width:480px){.crossword-clue{grid-template-columns:30px 1fr;gap:8px}.crossword-clue input{grid-column:2;max-width:100%;text-align:left}.crossword-number{width:26px;height:26px}}
.crossword-cell-active{transition:background .2s,box-shadow .2s,transform .2s}.crossword-game .crossword-clue input:focus{outline:3px solid #c9903566;outline-offset:2px}@media(max-width:600px){.crossword-game{display:flex;flex-direction:column}.crossword-game-header{order:1;align-items:flex-start}.crossword-score{min-width:58px;padding:7px 8px}.crossword-description{order:2}.crossword-feedback{order:3}.crossword-progress-bar{order:4}.crossword-board-wrap{order:5}.crossword-form{order:6}.crossword-surrender-card{order:7}.crossword-flow-controls{grid-template-columns:1fr 1fr}.crossword-flow-controls button:last-child{grid-column:1/-1;grid-row:1}.crossword-flow-controls button{min-height:46px}}
.crossword-score>span{font-size:.9rem}.crossword-progress-copy{flex-wrap:wrap}.progress-kicker{width:100%;font-size:.65rem!important;font-weight:800;letter-spacing:.14em;color:var(--accent)!important}.crossword-streak{display:flex;align-items:center;gap:3px}.crossword-clue>span:nth-child(2) strong{font-size:1rem;font-weight:700;color:var(--ink)}.crossword-clue input::placeholder{color:#9a9288;text-transform:none;letter-spacing:.02em}.crossword-flow-controls button:last-child{box-shadow:0 5px 0 #a36b42}.crossword-flow-controls button:last-child:active{transform:translateY(3px);box-shadow:0 2px 0 #a36b42}
.crossword-meta{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0;color:var(--muted);font-size:.78rem}.crossword-meta span{padding:5px 9px;border:1px solid #ead9c8;border-radius:99px;background:#fffaf5}.crossword-meta span:first-child{color:var(--accent);font-weight:800}
.crossword-board-wrap{position:relative;padding-top:38px;overflow:visible}.crossword-board-wrap::before{content:'TU TABLERO';position:absolute;top:14px;left:18px;color:#f6dfad;font-size:.68rem;font-weight:800;letter-spacing:.16em}.crossword-board-wrap::after{content:'Completa las palabras';position:absolute;top:13px;right:18px;color:#bfd0c5;font-size:.68rem}.crossword-cell-active{animation:crossword-cell-pulse 1.4s ease-in-out infinite}.crossword-cell-solved b{animation:crossword-win-pop .5s cubic-bezier(.2,1.5,.4,1) both}.crossword-clue.is-current{animation:crossword-mission-in .3s ease both;background:linear-gradient(100deg,#fffaf0,#fff)}.crossword-progress-bar{box-shadow:0 6px 16px #a36b4214}.crossword-flow-controls button:not(:disabled){transition:transform .15s ease,box-shadow .15s ease}.crossword-surrender-card{box-shadow:0 6px 16px #a8443b0d}@keyframes crossword-cell-pulse{0%,100%{box-shadow:inset 0 0 0 2px #c99035,0 0 0 0 #d29c2e55}50%{box-shadow:inset 0 0 0 2px #e2b34a,0 0 0 5px #d29c2e22}}@keyframes crossword-win-pop{0%{opacity:0;transform:scale(.4) rotate(-8deg)}65%{transform:scale(1.25) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}@keyframes crossword-mission-in{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.crossword-clue.is-current::before{content:'ENIGMA ACTUAL'}

/* Cabecera compacta mobile-first: conserva el contexto sin consumir el inicio de la pantalla. */
.context-strip{margin-bottom:4px;padding-bottom:2px;gap:4px}
.context-identity{padding:2px 4px;gap:6px}
.context-identity strong{font-size:.82rem;line-height:1.1}
.context-identity small{font-size:.64rem;line-height:1.1}
.context-points,.context-notifications{min-height:34px;padding:3px 7px;font-size:.75rem}
.context-points strong{font-size:.82rem}
.context-points-icon,.context-bell-icon{display:grid;place-items:center;width:18px;height:18px;color:var(--accent)}
.context-points-icon svg,.context-bell-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.context-points.is-negative strong,.context-points.is-negative .context-points-icon{color:#b64238}
.context-points.is-empty strong,.context-points.is-empty .context-points-icon{color:var(--muted)}
.context-notifications.has-unread{border-color:#e5c596;background:#fff8ed}
.context-notifications.has-unread .context-bell-icon{color:var(--accent)}
@media(max-width:699px){main{padding-top:12px}main>.eyebrow:first-child{display:inline-block;margin-top:0}main>h1:first-of-type{margin-top:14px}}
@media(max-width:360px){.context-strip{gap:2px}.context-identity{padding-left:2px;padding-right:2px}.context-points{padding-left:5px;padding-right:5px}.context-points small,.context-notifications-label{display:none}.context-notifications{padding-left:7px;padding-right:7px}.context-points-icon,.context-bell-icon{width:20px;height:20px}.context-points strong{font-size:.8rem}}
@media(max-width:699px){
  main{padding-top:0}
  main>h1{font-size:clamp(2.45rem,10vw,3rem);line-height:.94;margin:8px 0 8px;letter-spacing:-.04em}
  main>h1+ p{margin-top:6px;margin-bottom:12px;line-height:1.4}
  main>.eyebrow+ h1{margin-top:8px}
  body:has(.home-summary) main>.eyebrow{margin-top:2px}
  body:has(.home-summary) main>h1{font-size:clamp(2.45rem,10vw,3rem);line-height:.94;margin:8px 0 8px;letter-spacing:-.04em}
}
.rating-stars{display:flex!important;align-items:center;gap:5px;border:0!important;padding:0!important;margin:4px 0 2px!important}
.library-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:center;padding:16px}.library-summary div{display:grid;gap:2px;text-align:center}.library-summary strong{font-size:1.55rem;color:var(--accent);line-height:1}.library-summary span{font-size:.72rem;color:var(--muted)}.library-summary .button{grid-column:1/-1;width:100%;text-align:center;margin-top:4px}.library-tabs{display:flex;gap:7px;overflow-x:auto;position:sticky;top:0;z-index:3;margin:20px -4px 8px;padding:8px 4px;background:#f7f5efee;backdrop-filter:blur(10px);scrollbar-width:none}.library-tabs::-webkit-scrollbar{display:none}.library-tabs a{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:9px 13px;border:1px solid var(--line);border-radius:99px;background:#fff;color:var(--muted);font-size:.8rem;font-weight:750;text-decoration:none}.library-tabs a.active{border-color:var(--accent);background:var(--accent);color:#fff}.library-tabs a span{font-size:.68rem;opacity:.8}.library-section{scroll-margin-top:74px}.book-featured{border:2px solid #d9bd9d;background:linear-gradient(110deg,#fffaf2,#fff)}.book-featured .book-icon{font-size:3rem}.library-section .book-featured .button{background:var(--accent);color:#fff}.social-signal{color:var(--accent);font-size:.78rem;font-weight:700}.catalog-card .notice{font-size:.82rem}.library-search{margin-top:12px}
@media(max-width:480px){.library-summary{padding:14px 10px}.library-tabs{margin-left:-8px;margin-right:-8px}.library-tabs a{padding:8px 11px;font-size:.75rem}.library-section{padding:18px 14px}}
@media(max-width:480px){.library-section .book-featured{display:grid;grid-template-columns:minmax(112px,42%) minmax(0,1fr);gap:14px;align-items:center;padding:16px 14px}.library-section .book-featured .book-icon{width:100%;height:auto;min-height:176px;aspect-ratio:2/3;flex-basis:auto;font-size:2rem}.library-section .book-featured .book-content{min-width:0}.library-section .book-featured .book-content h3{font-size:1.08rem;line-height:1.15}.library-section .book-featured .button{width:100%;text-align:center}.library-section .book-featured .progress{margin:8px 0}}
.book-content>.notice{margin:10px 0 14px;padding:10px 12px;border-left:4px solid var(--accent);border-radius:0 12px 12px 0;background:#fffaf5;line-height:1.35}
.rating-stars legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rating-stars label{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;color:#d8d0c5;cursor:pointer;font-size:1.7rem;line-height:1;transition:transform .15s,color .15s,background .15s}
.rating-stars label.is-filled{color:#c58a2c;background:#fff4cf}
.rating-stars label:hover,.rating-stars label:has(input:focus-visible){transform:scale(1.1);background:#fff7e5}
.rating-stars input{position:absolute;opacity:0;width:1px;height:1px}
@media(max-width:380px){.rating-stars label{width:36px;height:38px;font-size:1.55rem}}
.crossword-themes{display:flex;gap:8px;overflow-x:auto;margin:18px 0;padding-bottom:4px}.crossword-themes a{white-space:nowrap;padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--accent);background:#fffaf3}.crossword-themes a[aria-current="page"]{background:var(--accent);color:#fff}
.editor-preview-stats{margin:.5rem 0;color:var(--muted);font-size:.82rem;font-weight:700}
.editor-preview .crossword-cell[role="button"]{cursor:pointer}.editor-preview .crossword-cell[role="button"]:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.editor-progress{margin:.75rem 0;padding:.65rem .85rem;border-radius:12px;background:var(--soft);color:var(--accent);font-weight:800}
.editor-steps{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.editor-steps a{padding:.55rem .75rem;border:1px solid var(--line,#d8cbbb);border-radius:999px;text-decoration:none;font-size:.9rem}.editor-steps a:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.editor-cell-direction{display:block;font-size:.55rem;line-height:1;color:currentColor;opacity:.8}
.has-cover-image{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important;color:transparent!important}.book-detail-cover{flex-basis:120px!important;width:120px!important;height:174px!important}
.library-search select{width:100%;border:1px solid #d8d1c5;border-radius:12px;padding:13px;font:inherit;background:#fff;color:var(--ink)}.book-content h3 a,.book-detail-hero h1{color:var(--ink);text-decoration:none}.book-content h3 a:hover{text-decoration:underline}
.book-detail-hero{display:flex;gap:18px;align-items:flex-start}.book-detail-hero h1{font-size:clamp(2rem,8vw,3.3rem);margin:0 0 6px}.book-detail-hero .book-icon{font-size:4rem;flex:0 0 84px}.book-author{font-size:1.1rem;color:var(--ink);font-weight:700}.social-summary h3{margin-top:24px}.social-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.social-stats div{display:grid;gap:3px;text-align:center;padding:10px 4px;border-radius:14px;background:#fffaf5}.social-stats strong{font-size:1.4rem;color:var(--accent)}.social-stats span{font-size:.68rem;color:var(--muted)}.social-rating{text-align:center;color:var(--accent);font-weight:800}.library-pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0}.library-pagination a{padding:10px 14px;border:1px solid var(--accent);border-radius:99px;text-decoration:none}.library-pagination span{font-size:.8rem;color:var(--muted)}
@media(max-width:480px){.book-detail-hero{display:grid;grid-template-columns:1fr;justify-items:center;text-align:center;padding:0 0 22px;overflow:hidden}.book-detail-hero .book-detail-cover{margin:0;width:100%!important;height:292px!important;flex-basis:292px!important;border:0;border-radius:0;box-shadow:none;background-color:var(--ds-beige);background-size:contain!important}.book-detail-hero>div{width:100%;padding:18px 18px 0}.book-detail-hero h1{font-size:clamp(2rem,10vw,2.8rem);margin-top:4px}.book-detail-hero .tag{display:inline-flex}.book-detail-hero + section h2,.social-summary h2{text-align:left}}
.book-icon[href]{display:grid;place-items:center;flex:0 0 74px;width:74px;height:104px;border-radius:10px;text-decoration:none;background-color:#f1eadf;background-size:cover;background-position:center;overflow:hidden}
.book-downloads .action-row{align-items:stretch}
@media(max-width:480px){.book-downloads .action-row{display:grid;grid-template-columns:1fr}.book-downloads .button{width:100%;text-align:center}}
@media(max-width:480px){.library-tabs{width:calc(100% + 16px);max-width:calc(100vw - 16px);overflow-x:auto}}
html:has(.library-tabs),body:has(.library-tabs){overflow-x:hidden}
@media(max-width:480px){.library-tabs{contain:paint}}
@media(max-width:340px){.library-tabs{flex-wrap:wrap;overflow:visible;gap:5px}.library-tabs a{flex:1 0 auto}}
@media(max-width:340px){.library-section .book{display:block}.library-section .book-content{width:100%;max-width:100%;margin-top:12px}}
.library-format-filters{display:flex;gap:12px;flex-wrap:wrap;margin:0;padding:12px;border:1px solid var(--line);border-radius:14px}.library-format-filters legend{font-size:.8rem;color:var(--muted);padding:0 5px}.library-format-filters label{font-size:.85rem;color:var(--ink)}.library-format-filters input{width:auto;margin-right:4px}
.download-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-bottom:8px;border-radius:50%;background:#fff4cf;color:var(--accent);font-weight:800;font-size:1.1rem;line-height:1}
.welcome-login{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px}
.badge-svg{display:grid;place-items:center;width:58px;height:58px;flex:0 0 58px}.badge-svg img{display:block;width:100%;height:100%}.badge-svg.is-locked{filter:grayscale(.8);opacity:.62}.badge-card .badge-svg{transform-origin:center}.badge-card.badge-earned .badge-svg{animation:badge-svg-pop .7s cubic-bezier(.2,1.5,.4,1) both}@keyframes badge-svg-pop{0%{transform:scale(.65) rotate(-10deg)}70%{transform:scale(1.1) rotate(4deg)}100%{transform:none}}@media(prefers-reduced-motion:reduce){.badge-card.badge-earned .badge-svg{animation:none}}.welcome-benefits p>span:first-child{font-size:0}.welcome-benefits p>span:first-child::before{content:"";display:block;width:1.2rem;height:1.2rem;background:url('../images/icons/book.svg') center/contain no-repeat}.welcome-benefits p:nth-child(2)>span:first-child::before{background-image:url('../images/icons/activity.svg')}.welcome-benefits p:nth-child(3)>span:first-child::before{background-image:url('../images/icons/victory.svg')}
.welcome-icon{font-size:0!important}.welcome-icon::before{content:"";display:block;width:2rem;height:2rem;background:url('../images/icons/book.svg') center/contain no-repeat}
.empty:not(:has(.graphic-icon)){font-size:0}.empty:not(:has(.graphic-icon))::before{content:"";display:block;width:2.2rem;height:2.2rem;margin:0 auto .4rem;background:url('../images/icons/activity.svg') center/contain no-repeat}.empty:not(:has(.graphic-icon)) p{font-size:1rem}
.wallet-history .empty::before{background-image:url('../images/icons/coin.svg')}
.bottom-nav a[href="/comunidad-hub/"]>span:first-child svg{display:none}.bottom-nav a[href="/comunidad-hub/"]>span:first-child{width:1.35rem;height:1.35rem;background:url('../images/icons/members.svg') center/contain no-repeat}
.bottom-nav a span img.nav-raster-icon{display:block;width:28px;height:28px;object-fit:contain}.bottom-nav a[href="/comunidad-hub/"]>span:first-child{background:none}
.hub-card[href="/miembros/"] .graphic-icon img{content:url('../images/icons/members-themed.svg')}.hub-card[href="/comunidad/"] .graphic-icon img{content:url('../images/icons/club-themed.svg')}.hub-card[href="/ranking/"] .graphic-icon img{content:url('../images/icons/ranking-themed.svg')}.hub-card[href="/notificaciones/"] .graphic-icon img{content:url('../images/icons/activity-themed.svg')}.bottom-nav a[href="/comunidad-hub/"]>span:first-child{background-image:url('../images/icons/members-themed.svg')}
.avatar-default-art{display:block;width:100%;height:100%;object-fit:cover}
.ranking .rank{font-size:0!important;width:3.5rem!important;height:3.5rem!important;background-position:center;background-repeat:no-repeat;background-size:contain}.ranking section:nth-child(1) .rank{background-image:url('../images/icons/rank-1-hero.svg')}.ranking section:nth-child(2) .rank{background-image:url('../images/icons/rank-2-hero.svg')}.ranking section:nth-child(3) .rank{background-image:url('../images/icons/rank-3-hero.svg')}.ranking section:nth-child(n+4) .rank{font-size:1rem!important;width:auto!important;height:auto!important;background:none}
.ranking section:nth-child(-n+3){border:2px solid #ead9c8;box-shadow:0 10px 24px #4b382118}.ranking section:nth-child(1){border-color:#d9a83e;background:linear-gradient(135deg,#fff8d9,#fff)}.ranking section:nth-child(2){border-color:#b9c0bb;background:linear-gradient(135deg,#f0f3f0,#fff)}.ranking section:nth-child(3){border-color:#c99062;background:linear-gradient(135deg,#fff0e5,#fff)}.ranking section:nth-child(-n+3) .rank{transform:scale(1.08)}
.ranking section:nth-child(-n+3) .rank::before{display:none}
.primary-hub>span{font-size:0!important;line-height:0}
.primary-hub>span::before{display:block}
.public-auth-form>button{background:var(--accent);color:#fff}
.legacy-bottom-nav{display:none!important}
