/* GENERATO da scripts/season_halloween_css.py partendo da public/css/presentation.css.
   NON modificare a mano: si cambia l'originale e si rilancia lo script. */
/* ============================================================================
 * presentation.css — design system della pagina /presentation di ImperiaWorld
 *
 * Foglio di stile AUTONOMO: la pagina e' un documento HTML intero servito da
 * `resources/views/components/frontend/pages/presentation.blade.php` tramite
 * il layout `layouts.standalone`, quindi qui non arrivano ne' Tailwind ne'
 * `app.scss`. Tutto cio' che serve alla pagina sta in questo file.
 *
 * Prefisso unico `iwp-` (ImperiaWorld Presentation): nessuna regola puo'
 * sfuggire su altre pagine del sito.
 *
 * Dipendenze esterne (caricate dalla Blade): Font Awesome 6.4 (icone) e i
 * font Cinzel + Onest da Google Fonts.
 *
 * NON e' compilato da Vite: si serve statico da public/, come iw2-theme.css.
 * Modifiche -> ricordarsi `php artisan view:clear` + reload php-fpm sul server
 * (opcache ha validate_timestamps=Off).
 * ========================================================================== */

/* --- Palette ------------------------------------------------------------- */
:root {
    --iwp-text-gold:    #b769f3;   /* accenti, titoli, parole in risalto      */
    --iwp-text-warm:    #eed8ff;   /* titoli di sezione                       */
    --iwp-text-light:   #c6b4d4;   /* testo secondario                        */
    --iwp-text-primary: #a88ebc;   /* corpo del testo                         */
    --iwp-text-muted:   #877098;   /* etichette, note                         */
    --iwp-text-dim:     #917ea0;   /* testo disattivato                       */
    --iwp-border-light: #9e34ef;
    --iwp-bg-darker:    #1d0d27;
    --iwp-accent-green: #6abf7a;   /* bonus positivi (tabella biologo)        */
}

/* --- Base del documento -------------------------------------------------- */
html {
    scroll-behavior: smooth;
}

body {
    -webkit-font-smoothing: antialiased;
    background: #100616;
    color: var(--iwp-text-primary);
    font-family: Onest, "Segoe UI", system-ui, sans-serif;
    margin: 0;
    min-height: 100vh;
    padding: 0;
}

body.iwp-no-scroll {
    overflow: hidden;
}

*, *::before, *::after {
    box-sizing: border-box;
}

img {
    max-width: 100%;
}

a {
    text-decoration: none;
}

.iwp-visually-hidden {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

/* --- Particelle di sfondo ------------------------------------------------ */
.iwp-particles {
    inset: 0;
    overflow: hidden;
    pointer-events: none;
    position: fixed;
    z-index: 0;
}

.iwp-particle {
    animation: linear infinite iwpParticleFloat;
    background: #ce8fff8f;
    border-radius: 50%;
    box-shadow: 0 0 7px #ce8fff61;
    opacity: 0;
    position: absolute;
}

@keyframes iwpParticleFloat {
    0%   { opacity: 0; transform: translateY(100vh) scale(0); }
    8%   { opacity: 1; }
    92%  { opacity: 1; }
    100% { opacity: 0; transform: translateY(-10vh) scale(1); }
}

body > main,
body > nav,
body > aside {
    position: relative;
    z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
    .iwp-particles { display: none; }
    html { scroll-behavior: auto; }
}

/* --- Componenti ---------------------------------------------------------- */
.iwp-navbar {
    z-index:50;
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    background:#15081ce0;
    border-bottom:1px solid #b14aff59;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    height:64px;
    padding:0 18px;
    display:flex;
    position:fixed;
    top:0;
    left:0;
    right:0;
    box-shadow:0 6px 24px #00000073;
}

.iwp-nav-left {
    align-items:center;
    gap:14px;
    min-width:0;
    display:flex;
}

.iwp-nav-logo img {
    width:auto;
    height:44px;
    display:block;
}

.iwp-nav-divider {
    background:#b14aff66;
    width:1px;
    height:30px;
}

.iwp-nav-links {
    align-items:center;
    gap:4px;
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
}

.iwp-nav-btn {
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--iwp-text-light);
    white-space:nowrap;
    border-radius:4px;
    align-items:center;
    gap:7px;
    padding:8px 12px;
    font-size:12px;
    font-weight:700;
    transition:color .18s,background .18s;
    display:inline-flex;
}

.iwp-nav-btn i {
    color:var(--iwp-text-gold);
    font-size:11px;
}

.iwp-nav-btn:hover {
    color:var(--iwp-text-warm);
    background:#b14aff24;
}

.iwp-nav-cta {
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#12021e;
    white-space:nowrap;
    background:linear-gradient(135deg,#ce8fff,#b14aff 55%,#921bed);
    border-radius:5px;
    align-items:center;
    gap:8px;
    padding:9px 16px;
    font-size:12px;
    font-weight:800;
    transition:filter .18s,transform .18s;
    display:inline-flex;
    box-shadow:0 0 0 1px #ffffff26 inset,0 4px 16px #921bed66;
    animation:iwp-cta-pulse 2.6s ease-in-out infinite;
}

.iwp-nav-cta i {
    color:#12021e;
    font-size:11px;
}

.iwp-nav-cta:hover {
    filter:brightness(1.08);
    transform:translateY(-1px);
}

@keyframes iwp-cta-pulse {
    0%, 100% { box-shadow:0 0 0 1px #ffffff26 inset,0 4px 16px #921bed66; }
    50%      { box-shadow:0 0 0 1px #ffffff26 inset,0 4px 26px #b769f3b3; }
}

@media (prefers-reduced-motion:reduce) {
    .iwp-nav-cta { animation:none; }
}

.iwp-nav-count {
    align-items:center;
    gap:6px;
    display:flex;
}

.iwp-nav-count-item {
    background:#1d0d2799;
    border:1px solid #b14aff66;
    border-radius:4px;
    flex-direction:column;
    align-items:center;
    min-width:44px;
    padding:4px 6px;
    display:flex;
}

.iwp-nav-count-num {
    font-variant-numeric:tabular-nums;
    background:linear-gradient(#fac497,#f37f20 60%,#c05c0a);
    color:#00000000;
    -webkit-background-clip:text;
    background-clip:text;
    font-size:16px;
    font-weight:800;
    line-height:1.15;
}

.iwp-nav-count-lbl {
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--iwp-text-muted);
    font-size:8px;
}

.iwp-nav-count-colon {
    color:var(--iwp-text-gold);
    opacity:.7;
    font-weight:800;
}

.iwp-nav-live {
    letter-spacing:.14em;
    text-transform:uppercase;
    background:linear-gradient(#fac497,#f37f20 60%,#c05c0a);
    color:#00000000;
    -webkit-background-clip:text;
    background-clip:text;
    font-size:13px;
    font-weight:800;
}

.iwp-nav-right {
    align-items:center;
    gap:8px;
    display:flex;
}

.iwp-dropdown {
    position:relative;
}

.iwp-dropdown-btn {
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--iwp-text-light);
    cursor:pointer;
    background:#1d0d278c;
    border:1px solid #b14aff66;
    border-radius:4px;
    align-items:center;
    gap:8px;
    padding:8px 12px;
    font-size:12px;
    font-weight:700;
    transition:color .18s,border-color .18s;
    display:inline-flex;
}

.iwp-dropdown-btn:hover {
    color:var(--iwp-text-warm);
    border-color:var(--iwp-border-light);
}

.iwp-dropdown-btn .iwp-arrow {
    font-size:9px;
    transition:transform .18s;
}

.iwp-dropdown.open .iwp-arrow {
    transform:rotate(180deg);
}

.iwp-dropdown-content {
    z-index:60;
    background:#180329f7;
    border:1px solid #b14aff66;
    border-radius:6px;
    flex-direction:column;
    min-width:170px;
    padding:6px;
    display:none;
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    box-shadow:0 14px 34px #0000008c;
}

.iwp-dropdown.open .iwp-dropdown-content {
    display:flex;
}

.iwp-dropdown-content a,
.iwp-dropdown-content button {
    color:var(--iwp-text-light);
    cursor:pointer;
    text-align:left;
    background:0 0;
    border:0;
    border-radius:4px;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    font-size:12.5px;
    font-weight:600;
    display:flex;
}

.iwp-dropdown-content a:hover,
.iwp-dropdown-content button:hover {
    color:var(--iwp-text-warm);
    background:#b14aff29;
}

.iwp-dropdown-content i {
    text-align:center;
    width:16px;
    color:var(--iwp-text-gold);
}

.iwp-dropdown-content--scroll {
    scrollbar-width:thin;
    scrollbar-color:#b14aff73 transparent;
    max-height:320px;
    overflow-y:auto;
}

.iwp-lang-dd-flag {
    object-fit:cover;
    border-radius:2px;
    width:20px;
    height:14px;
    box-shadow:0 1px 4px #00000080;
}

.iwp-sidebar {
    z-index:40;
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
    scrollbar-width:thin;
    scrollbar-color:#b14aff73 transparent;
    background:#160325db;
    border-left:1px solid #b14aff4d;
    width:256px;
    padding:18px 12px 28px;
    position:fixed;
    top:64px;
    bottom:0;
    right:0;
    overflow-y:auto;
}

.iwp-sidebar-title {
    letter-spacing:.16em;
    text-transform:uppercase;
    color:var(--iwp-text-gold);
    margin:18px 8px 8px;
    font-size:10.5px;
    font-weight:800;
}

.iwp-sidebar-title:first-child {
    margin-top:2px;
}

.iwp-sidebar ul {
    flex-direction:column;
    gap:2px;
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
}

.iwp-sidebar-link {
    color:var(--iwp-text-dim);
    cursor:pointer;
    border-right:2px solid #00000000;
    border-radius:4px;
    align-items:center;
    gap:10px;
    padding:7px 10px;
    font-size:12.5px;
    font-weight:600;
    transition:color .15s,background .15s,border-color .15s;
    display:flex;
}

.iwp-sidebar-link i {
    text-align:center;
    width:16px;
    color:var(--iwp-text-muted);
    font-size:12px;
    transition:color .15s;
}

.iwp-sidebar-link:hover {
    color:var(--iwp-text-light);
    background:#b14aff1a;
}

.iwp-sidebar-link.active {
    color:var(--iwp-text-warm);
    border-right-color:var(--iwp-text-gold);
    background:#b14aff29;
}

.iwp-sidebar-link.active i {
    color:var(--iwp-text-gold);
}

.iwp-main {
    z-index:1;
    padding-top:64px;
    position:relative;
}

@media (min-width:1100px) {
    .iwp-main {
        margin-right:256px;
    }
}

@media (max-width:1099.98px) {
    .iwp-sidebar {
        display:none;
    }
}

.iwp-section {
    justify-content:center;
    align-items:center;
    min-height:82vh;
    padding:56px 20px;
    scroll-margin-top:76px;
    display:flex;
}

.iwp-section--bg {
    background-position:50%;
    background-size:cover;
    background-attachment:scroll;
    position:relative;
}

.iwp-card {
    -webkit-backdrop-filter:blur(6px);
    backdrop-filter:blur(6px);
    background:linear-gradient(165deg,#241030eb,#1d0d27f0);
    border:1px solid #b14aff61;
    border-radius:6px;
    width:100%;
    max-width:1000px;
    padding:52px 34px 38px;
    position:relative;
    box-shadow:0 22px 60px #00000080,inset 0 0 90px #b769f30a;
}

.iwp-card--narrow {
    max-width:760px;
}

/* Solo due spigoli diagonali (alto-sx/basso-dx), arrotondati: lo stesso
   motivo di .iw2-panel nel resto del sito, non le 4 staffe squadrate. */
.iwp-corner {
    pointer-events:none;
    border:0 solid #b769f399;
    width:16px;
    height:16px;
    position:absolute;
}

.iwp-corner.tr,
.iwp-corner.bl {
    display:none;
}

.iwp-corner.tl {
    border-width:1.5px 0 0 1.5px;
    border-radius:6px 0 0 0;
    top:-1px;
    left:-1px;
}

.iwp-corner.br {
    border-width:0 1.5px 1.5px 0;
    border-radius:0 0 6px 0;
    bottom:-1px;
    right:-1px;
}

.iwp-card-icon {
    background:linear-gradient(#2d153b,#180329);
    border:1px solid #b769f38c;
    border-radius:6px;
    justify-content:center;
    align-items:center;
    width:52px;
    height:52px;
    display:flex;
    position:absolute;
    top:-26px;
    left:50%;
    transform:translate(-50%);
    box-shadow:0 8px 22px #0000008c,0 0 18px #b769f329;
}

.iwp-card-icon i {
    color:var(--iwp-text-gold);
    filter:drop-shadow(0 0 8px #b769f366);
    font-size:20px;
}

.iwp-title {
    text-align:center;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--iwp-text-warm);
    text-shadow:0 2px 14px #b769f340;
    margin:0;
    font-size:clamp(18px,3.2vw,26px);
    font-weight:800;
}

.iwp-title-divider {
    background:linear-gradient(90deg,#00000000,#b769f3,#00000000);
    width:150px;
    height:2px;
    margin:14px auto 26px;
}

.iwp-text p {
    color:var(--iwp-text-primary);
    margin:0 0 14px;
    font-size:13.5px;
    line-height:1.75;
}

.iwp-text p:last-child {
    margin-bottom:0;
}

.iwp-gold {
    color:var(--iwp-text-gold);
    font-weight:700;
}

.iwp-text--center {
    text-align:center;
}

.iwp-body {
    align-items:center;
    gap:26px;
    display:flex;
}

.iwp-body--stack {
    flex-direction:column;
}

@media (max-width:860px) {
    .iwp-body {
        flex-direction:column;
    }
}

.iwp-body .iwp-text {
    flex:1;
    min-width:0;
}

.iwp-media {
    aspect-ratio:16/10;
    background:radial-gradient(circle at 50% 40%,#b769f312,#00000000 65%),linear-gradient(#1d0d27e6,#15081ce6);
    border:1px solid #b14aff66;
    border-radius:4px;
    flex-direction:column;
    flex:1;
    justify-content:center;
    align-items:center;
    gap:12px;
    width:100%;
    min-width:0;
    display:flex;
    position:relative;
    overflow:hidden;
}

.iwp-media--vertical {
    aspect-ratio:9/14;
    align-self:center;
    max-width:320px;
}

.iwp-media--image {
    aspect-ratio:auto;
}

.iwp-media--image img,
.iwp-media--image video {
    width:100%;
    height:auto;
    display:block;
}

.iwp-media-icon {
    color:#b769f380;
    filter:drop-shadow(0 0 14px #b769f340);
    font-size:34px;
}

.iwp-media-label {
    letter-spacing:.22em;
    text-transform:uppercase;
    color:var(--iwp-text-muted);
    font-size:10.5px;
    font-weight:700;
}

/* Spigoli opposti rispetto a .iwp-corner (alto-dx/basso-sx): le cornici dei
   riquadri media non ripetono lo stesso disegno della card che le contiene. */
.iwp-inner-corner {
    border:0 solid #b769f38c;
    width:12px;
    height:12px;
    position:absolute;
}

.iwp-inner-corner.tl,
.iwp-inner-corner.br {
    display:none;
}

.iwp-inner-corner.tr {
    border-width:1.5px 1.5px 0 0;
    border-radius:0 5px 0 0;
    top:-1px;
    right:-1px;
}

.iwp-inner-corner.bl {
    border-width:0 0 1.5px 1.5px;
    border-radius:0 0 0 5px;
    bottom:-1px;
    left:-1px;
}

.iwp-lang-grid {
    grid-template-columns:repeat(7,1fr);
    gap:10px;
    margin-top:30px;
    display:grid;
}

@media (max-width:900px) {
    .iwp-lang-grid {
        grid-template-columns:repeat(4,1fr);
    }
}

@media (max-width:560px) {
    .iwp-lang-grid {
        grid-template-columns:repeat(2,1fr);
    }
}

.iwp-lang-item {
    background:linear-gradient(#241030bf,#1d0d27d9);
    border:1px solid #b14aff52;
    border-radius:4px;
    flex-direction:column;
    align-items:center;
    gap:8px;
    padding:14px 8px 12px;
    transition:border-color .18s,box-shadow .18s,transform .18s;
    display:flex;
}

.iwp-lang-item:hover {
    border-color:#b769f399;
    transform:translateY(-2px);
    box-shadow:0 0 14px #b769f329;
}

.iwp-lang-flag {
    object-fit:cover;
    border-radius:2px;
    width:28px;
    height:20px;
    box-shadow:0 2px 8px #00000080;
}

.iwp-lang-name {
    letter-spacing:.04em;
    color:var(--iwp-text-light);
    text-align:center;
    font-size:11px;
    font-weight:600;
}

.iwp-start {
    margin-top:30px;
}

.iwp-start-title {
    text-align:center;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--iwp-text-gold);
    margin:0 0 14px;
    font-size:13px;
    font-weight:800;
}

.iwp-start-grid {
    grid-template-columns:repeat(5,1fr);
    gap:10px;
    display:grid;
}

@media (max-width:760px) {
    .iwp-start-grid {
        grid-template-columns:repeat(2,1fr);
    }
    .iwp-start-grid>:first-child {
        grid-column:1/-1;
    }
}

.iwp-start-item {
    background:linear-gradient(#241030bf,#1d0d27d9);
    border:1px solid #b14aff52;
    border-radius:4px;
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding:16px 10px 12px;
    transition:border-color .18s,box-shadow .18s,transform .18s;
    display:flex;
}

.iwp-start-item:hover {
    border-color:#b769f399;
    transform:translateY(-2px);
    box-shadow:0 0 14px #b769f329;
}

.iwp-start-icon {
    background:#15081c99;
    border:1px solid #b14aff59;
    border-radius:4px;
    justify-content:center;
    align-items:center;
    width:52px;
    height:52px;
    display:flex;
    position:relative;
}

.iwp-start-icon img {
    object-fit:contain;
    filter:drop-shadow(0 0 8px #b769f34d);
    width:auto;
    max-width:40px;
    height:auto;
    max-height:44px;
}

.iwp-start-count {
    color:var(--iwp-text-warm);
    background:#15081cf2;
    border:1px solid #b769f380;
    border-radius:999px;
    padding:1px 5px;
    font-size:9.5px;
    font-weight:800;
    position:absolute;
    bottom:-6px;
    right:-6px;
}

.iwp-start-name {
    letter-spacing:.03em;
    text-align:center;
    color:var(--iwp-text-light);
    font-size:11px;
    font-weight:600;
}

.iwp-npc {
    margin-top:30px;
}

.iwp-npc-grid {
    grid-template-columns:repeat(3,1fr);
    gap:14px;
    display:grid;
}

@media (max-width:640px) {
    .iwp-npc-grid {
        grid-template-columns:1fr;
    }
}

.iwp-npc-card {
    background:linear-gradient(#241030bf,#1d0d27d9);
    border:1px solid #b14aff52;
    border-radius:4px;
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding:18px 14px 16px;
    transition:border-color .18s,box-shadow .18s;
    display:flex;
}

.iwp-npc-card:hover,
.iwp-npc-card.open {
    border-color:#b769f399;
    box-shadow:0 0 16px #b769f324;
}

.iwp-npc-portrait {
    background:radial-gradient(at 50% 88%,#b769f324,#00000000 62%),#15081c99;
    border:1px solid #b14aff61;
    border-radius:4px;
    justify-content:center;
    align-items:flex-end;
    width:124px;
    height:232px;
    padding:10px 8px 6px;
    display:flex;
    overflow:hidden;
}

.iwp-npc-portrait img {
    object-fit:contain;
    filter:drop-shadow(0 6px 14px #00000099);
    width:auto;
    max-width:100%;
    height:auto;
    max-height:100%;
}

.iwp-npc-fallback {
    color:#b769f373;
    filter:drop-shadow(0 0 12px #b769f340);
    font-size:42px;
}

.iwp-npc-name {
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--iwp-text-warm);
    text-align:center;
    font-size:13px;
    font-weight:700;
}

.iwp-npc-btn {
    color:#f2f8ff;
    letter-spacing:.08em;
    text-transform:uppercase;
    cursor:pointer;
    background:linear-gradient(#9e35ef 0%,#b14aff 55%,#530b8b 100%);
    border:1px solid #3e0868;
    border-radius:4px;
    align-items:center;
    gap:8px;
    padding:8px 20px;
    font-size:11.5px;
    font-weight:800;
    transition:transform .18s,filter .18s;
    display:inline-flex;
    box-shadow:0 3px 10px #00000073,inset 0 1px #ce8fff59;
}

.iwp-npc-btn:hover {
    filter:brightness(1.1);
    transform:translateY(-1px);
}

.iwp-npc-btn:active {
    filter:brightness(.95);
    transform:translateY(0);
}

.iwp-npc-panel {
    background:#15081c8c;
    border:1px solid #b769f359;
    border-radius:4px;
    margin-top:14px;
    padding:18px 16px;
}

.iwp-npc-panel-title {
    text-align:center;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--iwp-text-gold);
    margin:0 0 14px;
    font-size:12px;
    font-weight:800;
}

.iwp-npc-items {
    grid-template-columns:repeat(auto-fill,minmax(96px,1fr));
    gap:10px;
    display:grid;
}

.iwp-npc-item {
    background:#24103099;
    border:1px solid #b14aff4d;
    border-radius:4px;
    flex-direction:column;
    align-items:center;
    gap:8px;
    padding:12px 6px 10px;
    transition:border-color .18s;
    display:flex;
}

.iwp-npc-item:hover {
    border-color:#b769f38c;
}

.iwp-npc-item-icon {
    background:#15081c99;
    border:1px solid #b14aff59;
    border-radius:4px;
    justify-content:center;
    align-items:center;
    width:46px;
    height:46px;
    display:flex;
    position:relative;
}

.iwp-npc-item-icon img {
    object-fit:contain;
    width:auto;
    max-width:36px;
    height:auto;
    max-height:40px;
}

.iwp-npc-item-count {
    color:var(--iwp-text-warm);
    background:#15081cf2;
    border:1px solid #b769f380;
    border-radius:999px;
    padding:1px 5px;
    font-size:9px;
    font-weight:800;
    position:absolute;
    bottom:-6px;
    right:-6px;
}

.iwp-npc-item-name {
    text-align:center;
    color:var(--iwp-text-light);
    font-size:10.5px;
    font-weight:600;
}

.iwp-npc-empty {
    text-align:center;
    color:var(--iwp-text-muted);
    margin:0;
    padding:18px 8px;
    font-size:12.5px;
}

.iwp-npc-empty i {
    color:var(--iwp-text-gold);
    margin-right:6px;
}

.iwp-bio-table {
    flex-direction:column;
    gap:6px;
    margin-top:30px;
    display:flex;
}

.iwp-bio-row {
    background:linear-gradient(#241030b8,#1d0d27d1);
    border:1px solid #b14aff4d;
    border-radius:4px;
    grid-template-columns:70px 44px 1fr 1fr 92px;
    align-items:center;
    gap:12px;
    padding:7px 12px;
    transition:border-color .18s,box-shadow .18s;
    display:grid;
}

.iwp-bio-row:hover {
    border-color:#b769f38c;
    box-shadow:0 0 12px #b769f31f;
}

.iwp-bio-level {
    letter-spacing:.04em;
    color:var(--iwp-text-warm);
    white-space:nowrap;
    font-size:12px;
    font-style:italic;
    font-weight:800;
}

.iwp-bio-icon {
    background:#15081c99;
    border:1px solid #b14aff59;
    border-radius:4px;
    justify-content:center;
    align-items:center;
    width:40px;
    height:40px;
    display:flex;
}

.iwp-bio-icon img {
    object-fit:contain;
    filter:drop-shadow(0 0 6px #b769f340);
    width:32px;
    height:32px;
}

.iwp-bio-name {
    color:var(--iwp-text-light);
    font-size:12.5px;
    font-weight:600;
}

.iwp-bio-count {
    color:var(--iwp-text-gold);
    font-weight:700;
}

.iwp-bio-bonus {
    color:var(--iwp-accent-green);
    font-size:12px;
    font-weight:600;
}

.iwp-bio-duration {
    text-align:right;
    color:var(--iwp-text-primary);
    white-space:nowrap;
    font-size:11.5px;
    font-style:italic;
    font-weight:700;
}

.iwp-bio-duration--soon {
    color:var(--iwp-text-muted);
}

@media (max-width:700px) {
    .iwp-bio-row {
        grid-template-columns:54px 40px 1fr 80px;
    }
    .iwp-bio-bonus {
        grid-area:2/3/auto/5;
    }
}

.iwp-sep {
    z-index:10;
    justify-content:center;
    align-items:center;
    width:100%;
    height:64px;
    margin-top:-32px;
    margin-bottom:-32px;
    padding:0;
    display:flex;
    position:relative;
}

.iwp-sep:before {
    content:"";
    filter:drop-shadow(0 2px 3px #000000f2);
    z-index:1;
    background:linear-gradient(90deg,#a578c833 0%,#a578c840 20%,#a578c866 35%,#ce8fff 45.5%,#00000000 46% 54%,#ce8fff 54.5%,#a578c866 65%,#a578c840 80%,#a578c833 100%);
    height:1px;
    position:absolute;
    top:50%;
    left:0;
    right:0;
    transform:translateY(-50%);
    -webkit-mask-image:linear-gradient(90deg,#000000 0% 45.5%,#00000000 46% 54%,#000000 54.5% 100%);
    mask-image:linear-gradient(90deg,#000000 0% 45.5%,#00000000 46% 54%,#000000 54.5% 100%);
}

.iwp-sep img {
    z-index:2;
    object-fit:contain;
    filter:drop-shadow(0 0 16px #ce8fff59)drop-shadow(0 4px 10px #000000e6);
    width:auto;
    height:52px;
    transition:filter .3s,transform .3s;
    position:relative;
    transform:translateY(-1px);
}

.iwp-sep img:hover {
    transform:translateY(-2px)scale(1.02);
}

.iwp-hero {
    min-height:100vh;
    padding-top:110px;
    position:relative;
    overflow:hidden;
}

.iwp-hero-video {
    object-fit:cover;
    width:100%;
    height:100%;
    position:absolute;
    inset:0;
}

.iwp-hero-overlay {
    background:radial-gradient(at 50% 30%,#00000040,#100616d9 90%),linear-gradient(#15081c8c,#15081cb8);
    position:absolute;
    inset:0;
}

.iwp-hero-content {
    z-index:1;
    flex-direction:column;
    align-items:center;
    gap:8px;
    display:flex;
    position:relative;
}

.iwp-hero-logo {
    filter:drop-shadow(0 14px 45px #000000d9);
    width:min(300px,62vw);
    height:auto;
}

.iwp-hero-subtitle {
    letter-spacing:.28em;
    text-transform:uppercase;
    color:var(--iwp-text-light);
    text-shadow:0 2px 12px #000000cc;
    margin:0 0 6px;
    font-size:13px;
    font-weight:700;
}

.iwp-hero-cta-row {
    flex-wrap:wrap;
    justify-content:center;
    align-items:center;
    gap:16px;
    margin-top:10px;
    display:flex;
}

.iwp-hero-cta {
    letter-spacing:.08em;
    text-transform:uppercase;
    white-space:nowrap;
    border-radius:8px;
    align-items:center;
    gap:10px;
    padding:16px 30px;
    font-size:15px;
    font-weight:800;
    transition:filter .18s,transform .18s,box-shadow .18s;
    display:inline-flex;
}

.iwp-hero-cta--primary {
    color:#12021e;
    background:linear-gradient(135deg,#ce8fff,#b14aff 55%,#921bed);
    box-shadow:0 0 0 1px #ffffff26 inset,0 8px 30px #921bed80;
    animation:iwp-cta-pulse-lg 2.6s ease-in-out infinite;
}

.iwp-hero-cta--primary i {
    font-size:16px;
}

.iwp-hero-cta--primary:hover {
    filter:brightness(1.08);
    transform:translateY(-2px);
}

.iwp-hero-cta--secondary {
    color:var(--iwp-text-warm);
    background:#1d0d27b3;
    border:1px solid var(--iwp-border-light);
}

.iwp-hero-cta--secondary:hover {
    color:#ffffff;
    background:#1d0d27e6;
    border-color:#ce8fff;
    transform:translateY(-2px);
}

@keyframes iwp-cta-pulse-lg {
    0%, 100% { box-shadow:0 0 0 1px #ffffff26 inset,0 8px 30px #921bed80; }
    50%      { box-shadow:0 0 0 1px #ffffff26 inset,0 8px 44px #b769f3d9; }
}

@media (prefers-reduced-motion:reduce) {
    .iwp-hero-video {
        display:none;
    }
    .iwp-hero-cta--primary {
        animation:none;
    }
}

.iwp-info {
    text-align:left;
    flex-direction:column;
    gap:14px;
    margin-top:30px;
    display:flex;
}

.iwp-info-launch {
    background:linear-gradient(#241030bf,#1d0d27d9);
    border:1px solid #b769f373;
    border-radius:4px;
    flex-direction:column;
    align-items:center;
    gap:8px;
    padding:22px 18px;
    display:flex;
    box-shadow:inset 0 0 34px #b769f312;
}

.iwp-info-launch-label {
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--iwp-text-gold);
    font-size:11px;
    font-weight:800;
}

.iwp-info-launch-row {
    align-items:center;
    gap:12px;
    display:flex;
}

.iwp-info-launch-row i {
    color:var(--iwp-text-gold);
    filter:drop-shadow(0 0 10px #b769f359);
    font-size:20px;
}

.iwp-info-launch-date {
    letter-spacing:.04em;
    color:var(--iwp-text-warm);
    text-shadow:0 0 18px #eed8ff40;
    font-size:22px;
    font-weight:800;
}

.iwp-info-discord {
    background:linear-gradient(#241030bf,#1d0d27d9);
    border:1px solid #b14aff52;
    border-radius:4px;
    align-items:center;
    gap:16px;
    padding:16px 18px;
    display:flex;
}

@media (max-width:640px) {
    .iwp-info-discord {
        text-align:center;
        flex-direction:column;
    }
}

.iwp-info-discord-icon {
    color:#af58f2;
    filter:drop-shadow(0 0 12px #af58f259);
    font-size:30px;
}

.iwp-info-discord-text {
    flex-direction:column;
    flex:1;
    gap:4px;
    display:flex;
}

.iwp-info-discord-title {
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--iwp-text-light);
    font-size:13px;
    font-weight:800;
}

.iwp-info-discord-desc {
    color:var(--iwp-text-dim);
    font-size:13px;
    line-height:1.55;
}

.iwp-info-discord-btn {
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--iwp-bg-darker);
    white-space:nowrap;
    background:linear-gradient(#fac497,#f37f20 60%,#c05c0a);
    border-radius:4px;
    align-items:center;
    gap:8px;
    padding:10px 18px;
    font-size:12px;
    font-weight:800;
    transition:filter .18s,transform .18s;
    display:inline-flex;
}

.iwp-info-discord-btn:hover {
    filter:brightness(1.08);
    transform:translateY(-1px);
}

.iwp-info-socials-title {
    text-align:center;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--iwp-text-gold);
    margin:10px 0 0;
    font-size:13px;
    font-weight:800;
}

.iwp-info-socials {
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    display:grid;
}

@media (max-width:640px) {
    .iwp-info-socials {
        grid-template-columns:1fr;
    }
}

.iwp-info-social {
    letter-spacing:.04em;
    color:var(--iwp-text-light);
    background:linear-gradient(#241030bf,#1d0d27d9);
    border:1px solid #b14aff52;
    border-radius:4px;
    flex-direction:column;
    align-items:center;
    gap:10px;
    padding:18px 10px 14px;
    font-size:12px;
    font-weight:600;
    transition:border-color .18s,box-shadow .18s,transform .18s;
    display:flex;
}

.iwp-info-social:hover {
    border-color:#b769f399;
    transform:translateY(-2px);
    box-shadow:0 0 14px #b769f329;
}

.iwp-info-social-icon {
    font-size:26px;
}

.iwp-info-social--whatsapp .iwp-info-social-icon {
    color:#25d366;
}

.iwp-info-social--instagram .iwp-info-social-icon {
    color:#e1306c;
}

.iwp-info-social--facebook .iwp-info-social-icon {
    color:#9418f2;
}

.iwp-basics {
    text-align:left;
    flex-direction:column;
    gap:12px;
    margin-top:30px;
    display:flex;
}

.iwp-basics-item {
    background:linear-gradient(#241030bf,#1d0d27d9);
    border:1px solid #b14aff52;
    border-radius:4px;
    padding:16px 18px;
    transition:border-color .18s,box-shadow .18s;
}

.iwp-basics-item:hover {
    border-color:#b769f380;
    box-shadow:0 0 14px #b769f31f;
}

.iwp-basics-q {
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--iwp-text-gold);
    align-items:center;
    gap:10px;
    margin:0 0 8px;
    font-size:13.5px;
    font-weight:800;
    display:flex;
}

.iwp-basics-q i {
    opacity:.85;
    font-size:15px;
}

.iwp-basics-a {
    color:var(--iwp-text-primary);
    margin:0;
    font-size:13.5px;
    line-height:1.65;
}

.iwp-basics-a p {
    color:var(--iwp-text-primary);
    margin:0;
    font-size:13.5px;
    line-height:1.65;
}

.iwp-basics-body--media {
    align-items:center;
    gap:18px;
    display:flex;
}

.iwp-basics-body--media .iwp-basics-a {
    flex:1;
}

.iwp-basics-media {
    background:#15081c99;
    border:1px solid #b14aff59;
    border-radius:4px;
    flex:0 0 320px;
    max-width:320px;
    overflow:hidden;
}

.iwp-basics-media video {
    width:100%;
    height:auto;
    display:block;
}

@media (max-width:760px) {
    .iwp-basics-body--media {
        flex-direction:column;
    }
    .iwp-basics-media {
        flex-basis:auto;
        width:100%;
        max-width:380px;
        margin:0 auto;
    }
}

.iwp-gallery {
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:12px;
    margin-top:24px;
    display:grid;
}

@media (max-width:760px) {
    .iwp-gallery {
        grid-template-columns:1fr;
    }
}

.iwp-gallery-item {
    cursor:pointer;
    background:#15081c99;
    border:1px solid #b14aff59;
    border-radius:4px;
    padding:0;
    transition:border-color .18s,box-shadow .18s,transform .18s;
    display:block;
    position:relative;
    overflow:hidden;
}

.iwp-gallery-item:hover {
    border-color:#b769f399;
    transform:translateY(-2px);
    box-shadow:0 0 14px #b769f329;
}

.iwp-gallery-item img {
    width:100%;
    height:auto;
    display:block;
}

.iwp-gallery-zoom {
    width:30px;
    height:30px;
    color:var(--iwp-text-gold);
    opacity:0;
    background:#15081cd9;
    border:1px solid #b769f380;
    border-radius:4px;
    justify-content:center;
    align-items:center;
    font-size:13px;
    transition:opacity .18s;
    display:flex;
    position:absolute;
    bottom:8px;
    right:8px;
}

.iwp-gallery-item:hover .iwp-gallery-zoom {
    opacity:1;
}

.iwp-lightbox {
    z-index:100;
    -webkit-backdrop-filter:blur(4px);
    backdrop-filter:blur(4px);
    background:#100616eb;
    justify-content:center;
    align-items:center;
    padding:28px;
    animation:.18s ease-out iwpLightboxIn;
    display:flex;
    position:fixed;
    inset:0;
}

@keyframes iwpLightboxIn {
    0% {
        opacity:0;
    }
    to {
        opacity:1;
    }
}

.iwp-lightbox img {
    border:1px solid #b769f380;
    border-radius:6px;
    width:auto;
    max-width:min(1400px,94vw);
    height:auto;
    max-height:88vh;
    box-shadow:0 30px 80px #000000b3,0 0 40px #b769f31f;
}

.iwp-lightbox-close {
    width:40px;
    height:40px;
    color:var(--iwp-text-light);
    cursor:pointer;
    background:#1d0d27d9;
    border:1px solid #b14aff80;
    border-radius:4px;
    justify-content:center;
    align-items:center;
    font-size:17px;
    transition:color .18s,border-color .18s;
    display:flex;
    position:absolute;
    top:18px;
    right:18px;
}

.iwp-lightbox-close:hover {
    color:var(--iwp-text-warm);
    border-color:var(--iwp-border-light);
}

@media (prefers-reduced-motion:reduce) {
    .iwp-lightbox {
        animation:none;
    }
}

/* ============================================================================
 * Adattamenti ImperiaWorld
 * Piccole differenze rispetto all'impianto originale, tenute separate per
 * essere riconoscibili a colpo d'occhio.
 * ========================================================================== */

/* Le lingue supportate sono 9 (con l'arabo), non 7. */
.iwp-lang-grid {
    grid-template-columns: repeat(9, 1fr);
}

@media (max-width: 900px) {
    .iwp-lang-grid { grid-template-columns: repeat(3, 1fr); }
}

/* Il logo nella barra superiore ha proporzioni diverse da quello originale. */
.iwp-nav-logo img {
    height: 40px;
    width: auto;
}

/* I banchi NPC sono 15, non 3: la griglia si adatta invece di stare fissa. */
.iwp-npc-grid {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

/* Senza ritratti dei mob (nel repo non esistono immagini per gli NPC) la
   scheda usa il segnaposto Font Awesome, come fa l'originale quando il
   ritratto non si carica. */
.iwp-npc-portrait .iwp-npc-fallback {
    font-size: 34px;
}

/* `hidden` deve vincere sul display:flex della barra: il contatore online
   compare solo quando la chiamata all'API riesce. */
.iwp-nav-count[hidden] {
    display: none;
}

/* Senza ritratto vero la cornice non deve restare mezza vuota. */
.iwp-npc-portrait {
    aspect-ratio: 1;
    max-height: 108px;
}

/* Descrizione dell'oggetto sotto il nome, dove il client ne ha una.
   Troncata a tre righe: il testo completo resta nel tooltip (title). */
.iwp-npc-item-desc {
    color: var(--iwp-text-muted);
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    font-size: 10px;
    line-height: 1.35;
    overflow: hidden;
    text-align: center;
}

/* Con la descrizione le celle vanno allargate, altrimenti sono illeggibili. */
.iwp-npc-items {
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
}

/* Dove il ritratto dell'NPC c'e' davvero, la cornice torna verticale come nel
   disegno originale: i modelli sono figure intere, non icone quadrate. */
.iwp-npc-portrait--real {
    aspect-ratio: 3 / 4;
    max-height: none;
}

.iwp-npc-portrait--real img {
    height: 100%;
    object-fit: contain;
    width: auto;
}

/* Banchi senza ritratto: l'icona dell'oggetto va ingrandita, altrimenti resta
   un francobollo in mezzo alla cornice. */
.iwp-npc-portrait:not(.iwp-npc-portrait--real) img {
    height: auto;
    image-rendering: -webkit-optimize-contrast;
    object-fit: contain;
    width: 58%;
}

/* Telefono: la barra non ci stava e "Scarica" finiva sotto "Registrati".
   Sotto i 760px i link e la Community restano solo icona (il testo resta per
   gli screen reader), il contatore online e il divisore spariscono. */
@media (max-width:760px) {
    .iwp-navbar { gap:6px; padding:0 10px; }
    .iwp-nav-left { gap:6px; flex-shrink:0; }
    .iwp-nav-logo img { height:34px; }
    .iwp-nav-divider, .iwp-nav-count { display:none; }
    .iwp-nav-count[hidden] { display:none; }
    .iwp-nav-btn, .iwp-nav-right .iwp-dropdown:last-child .iwp-dropdown-btn { padding:8px 9px; }
    .iwp-nav-btn span, .iwp-nav-right .iwp-dropdown:last-child .iwp-dropdown-btn span {
        position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
    }
    .iwp-nav-btn i { margin:0; }
    .iwp-nav-right { gap:5px; flex-shrink:0; }
    .iwp-nav-cta { padding:8px 12px; }
    .iwp-dropdown-btn { padding:8px 8px; }
}
@media (max-width:440px) {
    /* il logo porta gia' alla home: il pulsante Home lascia posto a "Registrati" */
    .iwp-nav-links li:first-child { display:none; }
}
@media (max-width:380px) {
    .iwp-nav-cta span {
        position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;
    }
}
@media (max-width:360px) {
    .iwp-navbar { gap:4px; padding:0 6px; }
    .iwp-nav-logo img { height:28px; }
    .iwp-nav-links { gap:0; }
    .iwp-nav-btn, .iwp-nav-right .iwp-dropdown:last-child .iwp-dropdown-btn { padding:8px 7px; }
    .iwp-nav-right { gap:4px; }
    .iwp-dropdown-btn .iwp-arrow { display:none; }
}

/* particelle e decorazioni che escono a destra non devono allargare la pagina (scroll orizzontale sul telefono) */
html, body { overflow-x:clip; }

/* ============================================================================
 * Pagina rinnovata (17-10-2026): numeri in cima, storia, schede dei sistemi
 * con clip, calendario eventi, prima settimana, classifiche.
 * Le sezioni nuove non occupano tutto lo schermo (--auto): la pagina e' lunga
 * e sul telefono 82vh per sezione la rendeva interminabile.
 * ========================================================================== */
.iwp-section--auto {
    min-height:0;
}

.iwp-hero-subtitle {
    text-align:center;
    padding:0 12px;
}

/* --- numeri sotto la testata --------------------------------------------- */
.iwp-stats {
    display:grid;
    grid-template-columns:repeat(6, minmax(0, 1fr));
    gap:10px;
    width:100%;
    max-width:1000px;
    margin:22px auto 0;
    padding:0 4px;
}

@media (max-width:900px) {
    .iwp-stats { grid-template-columns:repeat(3, minmax(0, 1fr)); }
}

@media (max-width:480px) {
    .iwp-stats { grid-template-columns:repeat(2, minmax(0, 1fr)); }
}

.iwp-stat {
    background:linear-gradient(165deg,#241030db,#1d0d27e6);
    border:1px solid #b14aff4d;
    border-radius:6px;
    padding:14px 8px 12px;
    text-align:center;
}

.iwp-stat-num {
    display:block;
    color:var(--iwp-text-gold);
    font-family:Cinzel, Georgia, serif;
    font-size:clamp(20px, 3.4vw, 30px);
    font-weight:700;
    line-height:1.1;
    text-shadow:0 0 18px #b769f340;
}

.iwp-stat-lbl {
    display:block;
    margin-top:6px;
    color:var(--iwp-text-light);
    font-size:11px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

/* --- storia --------------------------------------------------------------- */
.iwp-story p {
    font-size:15px;
    line-height:1.85;
}

.iwp-story p:first-child::first-letter {
    float:left;
    color:var(--iwp-text-gold);
    font-family:Cinzel, Georgia, serif;
    font-size:3.2em;
    line-height:.9;
    margin:4px 8px 0 0;
}

[dir="rtl"] .iwp-story p:first-child::first-letter {
    float:right;
    margin:4px 0 0 8px;
}

/* --- schede dei sistemi -------------------------------------------------- */
.iwp-card--wide {
    max-width:1180px;
}

.iwp-sys-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));
    gap:18px;
    margin-top:8px;
}

@media (max-width:400px) {
    .iwp-sys-grid { grid-template-columns:1fr; }
}

.iwp-sys {
    background:linear-gradient(170deg,#210f2b,#180a21);
    border:1px solid #b14aff40;
    border-radius:6px;
    display:flex;
    flex-direction:column;
    overflow:hidden;
    scroll-margin-top:80px;
}

.iwp-sys:hover {
    border-color:#b769f399;
}

.iwp-sys-media {
    aspect-ratio:16/10;
    background:#15081c;
    position:relative;
    overflow:hidden;
}

.iwp-sys-media img,
.iwp-sys-media video {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.iwp-sys-media--icon {
    display:flex;
    align-items:center;
    justify-content:center;
    background:radial-gradient(circle at 50% 40%,#b769f31f,#00000000 65%),#15081c;
}

.iwp-sys-media--icon i {
    color:#b769f380;
    font-size:42px;
}

.iwp-sys-badge {
    position:absolute;
    top:8px;
    left:8px;
    background:#100616cc;
    border:1px solid #b769f366;
    border-radius:4px;
    color:var(--iwp-text-gold);
    font-size:10px;
    font-weight:800;
    letter-spacing:.14em;
    padding:3px 7px;
    text-transform:uppercase;
}

[dir="rtl"] .iwp-sys-badge {
    left:auto;
    right:8px;
}

.iwp-sys-body {
    padding:16px 16px 18px;
    display:flex;
    flex-direction:column;
    gap:8px;
    flex:1;
}

.iwp-sys-title {
    color:var(--iwp-text-warm);
    font-size:15px;
    font-weight:800;
    letter-spacing:.06em;
    margin:0;
    display:flex;
    align-items:center;
    gap:8px;
}

.iwp-sys-title i {
    color:var(--iwp-text-gold);
    font-size:14px;
}

.iwp-sys-text {
    color:var(--iwp-text-primary);
    font-size:13px;
    line-height:1.65;
    margin:0;
}

.iwp-sys-facts {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    list-style:none;
    margin:auto 0 0;
    padding:6px 0 0;
}

.iwp-sys-facts li {
    background:#b769f314;
    border:1px solid #b769f333;
    border-radius:999px;
    color:var(--iwp-text-light);
    font-size:11px;
    font-weight:700;
    padding:3px 9px;
}

/* --- calendario eventi --------------------------------------------------- */
.iwp-cal {
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:6px;
}

.iwp-cal-row {
    display:grid;
    grid-template-columns:minmax(0, 1.4fr) auto minmax(0, 1fr);
    align-items:center;
    gap:14px;
    background:linear-gradient(170deg,#210f2b,#180a21);
    border:1px solid #b14aff33;
    border-radius:6px;
    padding:12px 14px;
}

.iwp-cal-row.is-today {
    border-color:#b769f3b3;
    box-shadow:0 0 0 1px #b769f340 inset;
}

@media (max-width:760px) {
    .iwp-cal-row { grid-template-columns:1fr; gap:8px; }
}

.iwp-cal-name {
    color:var(--iwp-text-warm);
    font-weight:800;
    font-size:14px;
    margin:0 0 3px;
    display:flex;
    align-items:center;
    gap:8px;
}

.iwp-cal-name i {
    color:var(--iwp-text-gold);
}

.iwp-cal-desc {
    color:var(--iwp-text-primary);
    font-size:12.5px;
    line-height:1.55;
    margin:0;
}

.iwp-cal-days {
    display:flex;
    gap:4px;
    flex-wrap:wrap;
}

.iwp-cal-day {
    width:30px;
    height:30px;
    border-radius:4px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:10.5px;
    font-weight:800;
    letter-spacing:.04em;
    color:var(--iwp-text-dim);
    background:#ffffff08;
    border:1px solid #ffffff12;
}

.iwp-cal-day.on {
    color:#12021e;
    background:linear-gradient(135deg,#ce8fff,#b14aff);
    border-color:transparent;
}

.iwp-cal-day.today {
    outline:2px solid #ffffffb3;
    outline-offset:1px;
}

.iwp-cal-when {
    color:var(--iwp-text-light);
    font-size:12.5px;
    line-height:1.5;
}

.iwp-cal-when strong {
    color:var(--iwp-text-gold);
    font-size:14px;
}

.iwp-cal-note {
    color:var(--iwp-text-muted);
    font-size:12px;
    margin:14px 0 0;
    text-align:center;
}

/* --- prima settimana ----------------------------------------------------- */
.iwp-week {
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(210px, 1fr));
    gap:12px;
    list-style:none;
    margin:6px 0 0;
    padding:0;
}

.iwp-week li {
    background:linear-gradient(170deg,#210f2b,#180a21);
    border:1px solid #b14aff33;
    border-radius:6px;
    padding:14px 14px 16px;
}

.iwp-week-day {
    color:var(--iwp-text-gold);
    font-family:Cinzel, Georgia, serif;
    font-size:13px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
}

.iwp-week-title {
    color:var(--iwp-text-warm);
    font-size:14px;
    font-weight:800;
    margin:4px 0 6px;
}

.iwp-week-text {
    color:var(--iwp-text-primary);
    font-size:12.5px;
    line-height:1.6;
    margin:0;
}

/* --- classifiche --------------------------------------------------------- */
.iwp-ranks {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

@media (max-width:760px) {
    .iwp-ranks { grid-template-columns:1fr; }
}

.iwp-rank-title {
    color:var(--iwp-text-gold);
    font-size:12px;
    font-weight:800;
    letter-spacing:.16em;
    text-transform:uppercase;
    margin:0 0 10px;
}

.iwp-rank-list {
    list-style:none;
    margin:0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:6px;
}

.iwp-rank-list li {
    display:grid;
    grid-template-columns:28px 32px minmax(0, 1fr) auto;
    align-items:center;
    gap:10px;
    background:#ffffff06;
    border:1px solid #b14aff26;
    border-radius:5px;
    padding:7px 10px;
}

.iwp-rank-list--guild li {
    grid-template-columns:28px minmax(0, 1fr) auto;
}

.iwp-rank-pos {
    color:var(--iwp-text-gold);
    font-weight:800;
    text-align:center;
}

.iwp-rank-avatar {
    width:32px;
    height:32px;
    border-radius:50%;
    object-fit:cover;
    border:1px solid #b14aff66;
}

.iwp-rank-name {
    color:var(--iwp-text-warm);
    font-weight:700;
    font-size:13.5px;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.iwp-rank-sub {
    display:block;
    color:var(--iwp-text-muted);
    font-size:11px;
    font-weight:500;
}

.iwp-rank-val {
    color:var(--iwp-text-light);
    font-size:12.5px;
    font-weight:800;
    white-space:nowrap;
}

.iwp-rank-more {
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin-top:12px;
    color:var(--iwp-text-gold);
    font-size:12.5px;
    font-weight:700;
}

.iwp-rank-more:hover {
    color:#ffffff;
}

.iwp-rank-empty {
    color:var(--iwp-text-muted);
    font-size:13px;
    text-align:center;
}

/* --- sezione finale: un solo invito a giocare ---------------------------- */
.iwp-final-cta {
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:14px;
    margin-top:22px;
}

@media (max-width:560px) {
    .iwp-card { padding:44px 16px 28px; }
    .iwp-section { padding:44px 12px; }
    .iwp-hero-cta { padding:14px 20px; font-size:13px; }
}
