/* ==========================================
   GLOBAL
========================================== */

*{

    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:"Montserrat",sans-serif;

}

body{

    background:#0b1017;
    color:white;
    overflow-x:hidden;
    position:relative;

}

/* ==========================================
   BACKGROUND
========================================== */

.bg-circle{

    position:fixed;
    border-radius:50%;
    filter:blur(90px);
    opacity:.18;
    z-index:-1;

}

.one{

    width:340px;
    height:340px;
    background:#00c16a;
    top:-120px;
    left:-120px;

}

.two{

    width:420px;
    height:420px;
    background:#0099ff;
    bottom:-180px;
    right:-180px;

}

.three{

    width:250px;
    height:250px;
    background:#ff4b91;
    top:45%;
    left:45%;

}

/* ==========================================
   NAVBAR
========================================== */

nav{

    width:96%;
    max-width:1680px;
    margin:14px auto;
    padding:14px 26px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:rgba(18,24,34,.82);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.07);
    border-radius:18px;
    box-shadow:0 15px 45px rgba(0,0,0,.35);
    position:sticky;
    top:12px;
    z-index:1500;

}

.logo{

    text-decoration:none;
    color:white;
    font-size:32px;
    font-weight:800;

}

.back-btn{

    text-decoration:none;
    color:white;
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 22px;
    border-radius:12px;
    background:#171f29;
    transition:.3s;

}

.back-btn:hover{

    background:#00c16a;
    transform:translateY(-3px);

}

/* ==========================================
   HERO
========================================== */

.hero{

    width:90%;
    max-width:1400px;
    margin:auto;
    position:relative;
    border-radius:30px;
    overflow:hidden;
    margin-bottom:70px;

}

.hero-backdrop{

    position:absolute;
    inset:0;
    background-size:cover;
    background-position:center;
    filter:blur(30px) saturate(1.15);
    transform:scale(1.2);

}

.hero-image{

    position:relative;
    width:100%;
    height:500px;
    object-fit:cover;
    object-position:center 30%;
    display:block;

}

.hero-overlay{

    position:absolute;
    inset:0;
    background:linear-gradient(
        to top,
        rgba(11,16,23,.98),
        rgba(11,16,23,.35)
    );

}

.hero-content{

    position:absolute;
    left:60px;
    right:60px;
    bottom:50px;
    display:flex;
    gap:40px;
    align-items:flex-end;

}

/* ==========================================
   POSTER
========================================== */

.poster img{

    width:270px;
    border-radius:20px;
    border:4px solid rgba(255,255,255,.12);
    box-shadow:0 18px 50px rgba(0,0,0,.45);

}

/* ==========================================
   HERO TEXT
========================================== */

.hero-text{

    max-width:650px;

}

.anime-type{

    display:inline-block;
    padding:8px 18px;
    border-radius:999px;
    background:#00c16a;
    color:white;
    font-weight:700;
    margin-bottom:14px;

}

.hero-text h1{

    font-size:clamp(30px,3.8vw,50px);
    font-weight:800;
    line-height:1.12;
    margin-bottom:12px;

}

.hero-text p{

    color:#d0d8e2;
    font-size:16px;
    line-height:1.6;
    margin-bottom:24px;
    max-width:620px;

}

/* ==========================================
   RATING
========================================== */

.rating-box{

    display:inline-flex;
    align-items:center;
    gap:18px;
    background:rgba(20,28,38,.82);
    backdrop-filter:blur(15px);
    padding:14px 24px;
    border-radius:18px;
    margin-bottom:24px;

}

.stars{

    color:#ffd54a;
    font-size:24px;

}

.score{

    font-size:32px;
    font-weight:800;

}

.rating-box span{

    color:#b6c1cf;

}

/* ==========================================
   JOIN BUTTON
========================================== */

.join-btn{

    display:inline-flex;
    align-items:center;
    gap:12px;
    text-decoration:none;
    background:#00c16a;
    color:white;
    padding:14px 30px;
    border-radius:14px;
    font-weight:700;
    transition:.3s;

}

.review-scroll-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:12px 24px;
    border:none;
    border-radius:12px;
    background:linear-gradient(135deg, #f59e0b, #ef4444);
    color:#fff;
    font-weight:700;
    font-size:15px;
    cursor:pointer;
    transition:transform .15s, box-shadow .15s;
    box-shadow:0 4px 16px rgba(245,158,11,.3);
}

.review-scroll-btn:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(245,158,11,.4);
}

.review-scroll-btn:active{
    transform:scale(.97);
}

.join-btn:hover{

    transform:translateY(-4px);
    box-shadow:0 15px 35px rgba(0,193,106,.35);

}

.hero-actions{

    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;

}

.anime-add-list-btn{

    display:inline-flex;
    align-items:center;
    gap:10px;
    text-decoration:none;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.18);
    color:#d8d8d8;
    padding:14px 26px;
    border-radius:14px;
    font-weight:700;
    font-family:'Montserrat',sans-serif;
    font-size:15px;
    cursor:pointer;
    transition:.3s;

}

.anime-add-list-btn:hover{

    transform:translateY(-4px);
    border-color:#8F5BFF;
    background:rgba(143,91,255,.14);
    color:white;
    box-shadow:0 15px 35px rgba(143,91,255,.3);

}

/* ==========================================
   INFORMATION
========================================== */

.info-section{

    width:90%;
    max-width:1400px;
    margin:0 auto 80px;
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:35px;

}

.glass-card{

    background:rgba(22,29,39,.82);
    backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.06);
    border-radius:24px;
    padding:35px;
    transition:.35s;

}

.glass-card:hover{

    transform:translateY(-6px);
    border-color:#00c16a;

}

.glass-card h2{

    margin-bottom:25px;
    font-size:28px;

}

.glass-card p{

    color:#c7d2de;
    line-height:2;

}

.info-row{

    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:18px 0;
    border-bottom:1px solid rgba(255,255,255,.06);

}

.info-row:last-child{

    border-bottom:none;

}

.info-row span{

    color:#9da9b9;

}

.info-row strong{

    color:white;

}

.info-row-genres{

    align-items:flex-start;

}

.info-row-genres .genre-tags{

    display:flex;

    flex-wrap:wrap;

    gap:6px;

    justify-content:flex-end;

    max-width:66%;

}

.info-row .genre-tag{

    background:rgba(139,92,246,.14);

    border:1px solid rgba(139,92,246,.38);

    color:#c4b5fd;

    font-size:11.5px;

    font-weight:700;

    line-height:1;

    padding:5px 10px;

    border-radius:999px;

    white-space:nowrap;

}

/* ==========================================
   CONTENT SECTION
========================================== */

.content-section{

    width:90%;
    max-width:1400px;
    margin:80px auto;

}

.section-title{

    font-size:36px;
    margin-bottom:40px;
    display:flex;
    align-items:center;
    gap:15px;

}

.section-title i{

    color:#00c16a;

}

/* ==========================================
   SEASONS
========================================== */

.season-grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(360px,1fr));
    gap:30px;
    align-items:start;

}

.season-card{

    background:#171f29;
    border-radius:24px;
    border:1px solid rgba(255,255,255,.06);
    overflow:hidden;
    transition:.35s;

}

.season-card:hover{

    transform:translateY(-8px);
    border-color:#00c16a;
    box-shadow:0 18px 45px rgba(0,0,0,.35);

}

.season-top{

    padding:25px;

    display:flex;

    flex-wrap:wrap;

    gap:10px;

    justify-content:space-between;

    align-items:center;

}

.season-top h3{

    font-size:24px;

}

.season-top span{

    color:#00c16a;

    font-weight:600;

}

.expand-btn{

    width:100%;

    padding:18px;

    border:none;

    cursor:pointer;

    background:#10161f;

    color:white;

    font-size:15px;

    font-weight:700;

    transition:.3s;

}

.expand-btn:hover{

    background:#00c16a;

}

.episode-list{

    display:none;

    padding:20px;

}

.episode-list.show{

    display:block;

    animation:episodeFade .4s ease;

}

@keyframes episodeFade{

    from{opacity:0; transform:translateY(-8px);}

    to{opacity:1; transform:translateY(0);}

}

.expand-btn i{

    transition:transform .3s ease;

    display:inline-block;

    margin-left:8px;

}

.expand-btn.active{

    background:#00c16a;

}

.expand-btn.active i{

    transform:rotate(180deg);

}

.episode{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px;

    border-radius:14px;

    margin-bottom:15px;

    background:#0f141c;

    transition:.25s;

}

.episode:hover{

    background:#1d2733;

}

.episode h4{

    margin-bottom:6px;

}

.episode p{

    color:#9ca8b8;

    font-size:14px;

}

.episode-rating{

    color:#ffd54a;

    font-weight:700;

}

/* ==========================================
   STREAMING
========================================== */

.section-note{

    color:#9aa7b5;

    font-size:15px;

    margin:-10px 0 25px;

}

/* Where to Watch — compact provider list */

.stream-list{

    display:flex;

    flex-direction:column;

    gap:12px;

}

.stream-row{

    display:flex;

    align-items:center;

    gap:16px;

    background:#171f29;

    border:1px solid rgba(255,255,255,.06);

    border-radius:16px;

    padding:14px 18px;

    text-decoration:none;

    transition:.25s;

}

.stream-row:hover{

    border-color:#00c16a;

    transform:translateX(4px);

    background:#1b2430;

}

.stream-logo{

    flex:none;

    width:44px;

    height:44px;

    border-radius:12px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:800;

    font-size:15px;

    color:#fff;

    background:var(--brand, #5a6a7a);

    box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);

    letter-spacing:.5px;

}

.stream-row-main{

    flex:1;

    min-width:0;

    display:flex;

    flex-direction:column;

    gap:8px;

}

.stream-row-name{

    font-weight:700;

    font-size:15px;

    color:#eef3f8;

    white-space:nowrap;

    overflow:hidden;

    text-overflow:ellipsis;

}

.stream-row-badges{

    display:flex;

    flex-wrap:wrap;

    gap:6px;

}

.stream-row-side{

    flex:none;

    display:flex;

    align-items:center;

    gap:12px;

}

.badge-meta{

    padding:5px 11px;

    border-radius:999px;

    background:#0f141c;

    color:#9aa7b5;

    font-size:11px;

    font-weight:600;

}

.badge-region{

    padding:5px 11px;

    border-radius:999px;

    font-size:11px;

    font-weight:700;

}

.badge-us{

    background:rgba(60,130,246,.16);

    color:#6ea8ff;

}

.badge-jp{

    background:rgba(255,193,7,.14);

    color:#ffd166;

}

.stream-status{

    display:inline-block;

    padding:7px 14px;

    border-radius:999px;

    background:rgba(0,193,106,.1);

    color:#4ade80;

    font-size:12px;

    font-weight:600;

}

.stream-link{

    display:inline-block;

    padding:8px 16px;

    border-radius:999px;

    background:rgba(0,193,106,.12);

    color:#00c16a;

    font-size:12px;

    font-weight:700;

    transition:.3s;

}

.stream-link:hover{

    background:#00c16a;

    color:#06121a;

}

.region-list{

    display:flex;

    justify-content:center;

    flex-wrap:wrap;

    gap:10px;

}

.region-list span{

    padding:8px 14px;

    border-radius:999px;

    background:#0f141c;

    color:#d9e2ec;

    font-size:13px;

}

/* ==========================================
   LANGUAGES
========================================== */

.language-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:30px;

}

.language-grid ul{

    margin-top:20px;

    list-style:none;

}

.language-grid li{

    padding:14px 0;

    border-bottom:1px solid rgba(255,255,255,.06);

    color:#c7d2de;

}

.language-grid li:last-child{

    border-bottom:none;

}

/* ==========================================
   WATCH ORDER
========================================== */

.watch-order{

    display:flex;

    flex-direction:column;

    gap:20px;

}

.watch-card{

    display:flex;

    align-items:center;

    gap:25px;

    background:#171f29;

    padding:24px;

    border-radius:20px;

    transition:.3s;

    border:1px solid rgba(255,255,255,.05);

}

.watch-card:hover{

    transform:translateX(10px);

    border-color:#00c16a;

}

.watch-number{

    width:60px;

    height:60px;

    border-radius:50%;

    background:#00c16a;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:22px;

    font-weight:800;

}

/* ==========================================
   RECOMMENDATIONS
========================================== */

.recommendation-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:30px;

}

.recommend-card{

    text-decoration:none;

    color:white;

    background:#171f29;

    border-radius:20px;

    overflow:hidden;

    transition:.35s;

    border:1px solid rgba(255,255,255,.06);

}

.recommend-card:hover{

    transform:translateY(-8px);

    border-color:#00c16a;

}

.recommend-card img{

    width:100%;

    height:300px;

    object-fit:cover;

}

.recommend-card h3{

    padding:20px;

    text-align:center;

}

/* ==========================================
   COMMUNITY STATS
========================================== */

.stats-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:25px;

}

.stat-card{

    background:#171f29;

    padding:40px;

    border-radius:22px;

    text-align:center;

    border:1px solid rgba(255,255,255,.06);

    transition:.35s;

}

.stat-card:hover{

    transform:translateY(-8px);

    border-color:#00c16a;

}

.stat-card h1{

    font-size:54px;

    margin-bottom:12px;

    color:#00c16a;

}

.stat-card p{

    color:#c5d0dc;

}

/* ==========================================
   QUOTE
========================================== */

.quote-card{

    max-width:900px;

    margin:auto;

    padding:60px;

    text-align:center;

    background:#171f29;

    border-radius:30px;

    border:1px solid rgba(255,255,255,.06);

}

.quote-card i{

    font-size:46px;

    color:#00c16a;

    margin-bottom:25px;

}

.quote-card p{

    font-size:28px;

    line-height:1.8;

    color:white;

    margin-bottom:25px;

    font-style:italic;

}

.quote-card span{

    color:#9ca8b8;

    font-size:18px;

}

/* ==========================================
   COMMUNITY RATING
========================================== */

.rating-panel{

    max-width:900px;
    margin:auto;
    background:#171f29;
    border-radius:30px;
    padding:60px;
    text-align:center;
    border:1px solid rgba(255,255,255,.06);

}

.big-rating{

    font-size:82px;
    font-weight:800;
    color:#ffffff;
    margin-bottom:10px;

}

.rating-stars{

    color:#ffd54a;
    font-size:34px;
    margin-bottom:20px;

}

.rating-panel p{

    color:#a9b5c3;
    margin-bottom:35px;

}

.rate-box{

    margin-top:40px;

}

.rate-box h3{

    margin-bottom:20px;

}

.user-stars{

    display:flex;
    justify-content:center;
    gap:18px;

}

.user-stars i{

    font-size:36px;
    color:#7b8595;
    cursor:pointer;
    transition:.3s;

}

.user-stars i:hover{

    color:#ffd54a;
    transform:scale(1.2);

}

/* ==========================================
   REVIEW BOX
========================================== */

.review-box{

    max-width:900px;
    margin:0 auto 30px;
    display:flex;
    flex-direction:column;
    gap:0;

}

.review-box .review-composer{

    background:#171f29;
    border-radius:30px;
    padding:30px 35px;
    border:1px solid rgba(255,255,255,.06);
    transition:border-color .2s, box-shadow .2s;
    text-align:center;

}

.review-box .review-composer:focus-within{

    border-color:rgba(34,197,94,.3);
    box-shadow:0 0 0 3px rgba(34,197,94,.1);

}

.review-rate-row{

    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    justify-content:center;
    margin-bottom:16px;

}

.review-rate-label{

    color:#e5e7eb;
    font-weight:700;
    font-size:.95rem;

}

.review-rate-row .user-stars{

    justify-content:center;
    gap:10px;

}

.review-rate-row .user-stars i{

    font-size:34px;
    color:#7b8595;
    cursor:pointer;
    transition:.2s;

}

.review-rate-row .user-stars i:hover{

    transform:scale(1.2);

}

.review-rate-row .user-stars i.fas{

    color:#ffd54a;

}

.review-rate-row .selected-rating-label{

    margin-top:0;
    width:100%;
    text-align:center;
    color:#9ca3af;
    font-size:.9rem;

}

.review-box textarea{

    width:100%;
    min-height:80px;
    max-height:160px;
    resize:none;
    overflow-y:auto;
    border:none;
    outline:none;
    border-radius:18px;
    padding:18px 22px;
    background:#0f141c;
    color:white;
    font-size:15px;
    font-family:inherit;
    line-height:1.5;
    margin-top:12px;
    box-sizing:border-box;

}

.review-box textarea::placeholder{

    color:#95a3b2;

}

.review-box button{

    align-self:flex-end;
    padding:14px 32px;
    border:none;
    border-radius:14px;
    background:#00c16a;
    color:white;
    cursor:pointer;
    font-weight:700;
    font-size:15px;
    transition:.3s;
    margin-top:14px;

}

.review-box button:hover:not(:disabled){

    background:#18d67d;
    transform:translateY(-2px);

}

.review-box button:disabled{

    opacity:.45;
    cursor:not-allowed;

}

/* ==========================================
   REVIEWS
========================================== */

.reviews{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
    gap:30px;

}

.review-card{

    background:#171f29;
    border-radius:22px;
    padding:28px;
    border:1px solid rgba(255,255,255,.06);
    transition:.35s;

}

.review-card:hover{

    transform:translateY(-8px);
    border-color:#00c16a;
    box-shadow:0 20px 40px rgba(0,0,0,.35);

}

.review-header{

    display:flex;
    align-items:center;
    gap:18px;
    margin-bottom:20px;

}

.review-header img{

    width:65px;
    height:65px;
    border-radius:50%;
    object-fit:cover;

}

.review-header h3{

    margin-bottom:6px;

}

.review-header span{

    color:#ffd54a;

}

.review-card p{

    color:#c7d2de;
    line-height:1.8;

}

/* ==========================================
   FOOTER
========================================== */

footer{

    margin-top:90px;
    padding:70px 20px;
    text-align:center;
    border-top:1px solid rgba(255,255,255,.06);

}

footer h2{

    font-size:34px;
    margin-bottom:15px;

}

footer p{

    color:#95a3b2;
    max-width:700px;
    margin:auto;
    line-height:1.8;

}

/* ==========================================
   ANIMATIONS
========================================== */

.hero{

    animation:fadeUp .8s ease;

}

.info-section{

    animation:fadeUp 1s ease;

}

.content-section{

    animation:fadeUp 1.2s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;
        transform:translateY(35px);

    }

    to{

        opacity:1;
        transform:translateY(0);

    }

}

.bg-circle.one{

    animation:floatOne 12s ease-in-out infinite alternate;

}

.bg-circle.two{

    animation:floatTwo 10s ease-in-out infinite alternate;

}

.bg-circle.three{

    animation:floatThree 14s ease-in-out infinite alternate;

}

@keyframes floatOne{

    from{

        transform:translateY(0);

    }

    to{

        transform:translateY(70px);

    }

}

@keyframes floatTwo{

    from{

        transform:translateX(0);

    }

    to{

        transform:translateX(-70px);

    }

}

@keyframes floatThree{

    from{

        transform:translateY(0);

    }

    to{

        transform:translateY(-60px);

    }

}

/* ==========================================
   RESPONSIVE
========================================== */

@media(max-width:1100px){

    .hero-content{

        flex-direction:column;
        align-items:center;
        text-align:center;

    }

    .info-section{

        grid-template-columns:1fr;

    }

}

@media(max-width:768px){

    nav{

        width:95%;

    }

    .hero{

        width:95%;

    }

    .hero-image{

        height:320px;

    }

    .hero-content{

        left:20px;
        right:20px;
        bottom:28px;
        gap:24px;

    }

    .poster img{

        width:200px;

    }

    .hero-text h1{

        font-size:clamp(26px,6vw,34px);

    }

    .hero-text p{

        font-size:14px;

    }

    .season-grid,
    .recommendation-grid,
    .stats-grid,
    .reviews{

        grid-template-columns:1fr;

    }

    .stream-row{

        flex-wrap:wrap;

        gap:12px;

    }

    .stream-row-side{

        width:100%;

        justify-content:space-between;

    }

    .language-grid{

        grid-template-columns:1fr;

    }

    .quote-card{

        padding:35px 25px;

    }

    .quote-card p{

        font-size:22px;

    }

    .big-rating{

        font-size:60px;

    }

}
/* ==========================================
   RATING BREAKDOWN (added)
========================================== */

.rating-breakdown{

    max-width:420px;
    margin:0 auto 30px auto;
    display:flex;
    flex-direction:column;
    gap:10px;

}

.breakdown-row{

    display:flex;
    align-items:center;
    gap:14px;

}

.breakdown-label{

    width:36px;
    color:#a9b5c3;
    font-size:14px;
    text-align:right;

}

.breakdown-track{

    flex:1;
    height:10px;
    background:#0d131c;
    border-radius:20px;
    overflow:hidden;

}

.breakdown-fill{

    height:100%;
    background:linear-gradient(90deg,#ffd54a,#ff9f43);
    border-radius:20px;
    transition:width .5s ease;

}

.breakdown-count{

    width:28px;
    color:#7b8595;
    font-size:13px;

}

/* Filled state for the interactive rating stars */

.user-stars i.filled{

    color:#ffd54a;

}

.selected-rating-label{

    margin-top:14px;
    color:#a9b5c3;
    font-size:14px;

}

.rating-cta{

    margin-top:26px;
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    padding:16px 38px;
    border:none;
    border-radius:16px;
    background:linear-gradient(135deg,#00c16a,#0ea5e9);
    color:#fff;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
    transition:transform .2s, box-shadow .2s;
    box-shadow:0 8px 24px rgba(0,193,106,.25);

}

.rating-cta:hover{

    transform:translateY(-2px);
    box-shadow:0 12px 30px rgba(0,193,106,.35);

}

.rating-cta:active{

    transform:scale(.97);

}

.rating-cta-hint{

    font-size:11px;
    font-weight:500;
    opacity:.85;

}

/* ==========================================
   REVIEW BOX (added: username input + error)
========================================== */

.review-box input[type="text"]{

    width:100%;
    border:none;
    outline:none;
    border-radius:14px;
    padding:16px 22px;
    background:#171f29;
    color:white;
    font-size:15px;
    font-family:inherit;

}

.review-box input[type="text"]::placeholder{

    color:#95a3b2;

}

.review-error{

    align-self:flex-end;
    color:#ff6b6b;
    font-size:14px;
    min-height:18px;

}

/* ==========================================
   REVIEWS (added: initials avatar + empty state)
========================================== */

.review-avatar-initial{

    width:65px;
    height:65px;
    min-width:65px;
    border-radius:50%;
    background:linear-gradient(135deg,#00c16a,#00875a);
    color:white;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    font-size:24px;

}

.no-reviews{

    text-align:center;
    color:#7b8595;
    grid-column:1 / -1;
    padding:40px 0;

}

/* ==========================================
   NAV (user pill + two-tone brand)
========================================== */

.logo{

    display:flex;
    align-items:center;
    gap:2px;
    font-size:28px;
    font-weight:800;
    text-decoration:none;
    color:inherit;

}

.logo-anime{

    color:#00c16a;

}

.logo-chat{

    color:#ffffff;

}

.nav-right{

    display:flex;
    align-items:center;
    gap:14px;

}

.nav-user-pill{

    display:flex;
    align-items:center;
    gap:10px;
    background:rgba(22,29,39,.85);
    border:1px solid rgba(255,255,255,.08);
    padding:8px 16px;
    border-radius:999px;
    text-decoration:none;
    color:inherit;
    transition:.25s;

}

.nav-user-pill:hover{

    border-color:rgba(143,91,255,.55);
    background:rgba(30,38,52,.95);

}

.nav-user-avatar{

    width:30px;
    height:30px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:12px;
    font-weight:800;
    overflow:hidden;
}

.nav-user-avatar-img{
    width:30px !important;
    height:30px !important;
    object-fit:cover;
    border-radius:50%;
    display:inline-block;
    flex:none;
    overflow:hidden;
    color:white;

}

.nav-user-name{

    font-size:14px;
    font-weight:600;
    color:#e6edf5;

}

.nav-logout-btn{

    text-decoration:none;
    color:#ff6b6b;
    font-size:14px;
    font-weight:600;
    padding:9px 16px;
    border-radius:999px;
    background:rgba(255,107,107,.1);
    transition:.3s;

}

.nav-logout-btn:hover{

    background:#ff6b6b;
    color:white;

}

.login-btn{

    color:#00c16a;
    font-weight:700;
    padding:10px 20px;
    border-radius:999px;
    background:rgba(0,193,106,.12);
    transition:.3s;

}

.login-btn:hover{

    background:#00c16a;
    color:#06121a;

}

/* ==========================================
   EPISODE LIST (rate links + chips)
========================================== */

.episode-link{

    text-decoration:none;
    color:inherit;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;

}

.episode-thumb{

    width:112px;
    aspect-ratio:16/9;
    object-fit:cover;
    border-radius:10px;
    border:1px solid rgba(255,255,255,.12);
    flex:none;
    box-shadow:0 6px 18px rgba(0,0,0,.35);

}

.episode-thumb-poster{

    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#0c1119;

}

.episode-thumb-poster img{

    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 22%;
    filter:brightness(.92);
    transition:filter .3s ease;

}

.episode-link:hover .episode-thumb-poster img{

    filter:brightness(1.05);

}

.episode-main{

    min-width:0;

}

.episode-main p{

    color:#9ca8b8;
    font-size:14px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    max-width:420px;

}

.episode-side{

    display:flex;
    align-items:center;
    gap:12px;
    flex:none;

}

.episode-rating{

    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#ffd54a;
    font-weight:700;
    font-size:14px;
    background:rgba(255,213,74,.1);
    padding:7px 13px;
    border-radius:999px;

}

.episode-rate-btn{

    display:inline-flex;
    align-items:center;
    gap:7px;
    font-size:13px;
    font-weight:700;
    color:#00c16a;
    background:rgba(0,193,106,.12);
    padding:9px 15px;
    border-radius:999px;
    transition:.3s;

}

.episode-link:hover .episode-rate-btn{

    background:#00c16a;
    color:#06121a;

}

.episode-rate-btn.rated {
    background: #27d07d;
    color: #000;
}

/* ---- Quick Rate Popup ---- */
.quick-rate-popup {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-bottom: 8px;
    z-index: 100;
    animation: qrFadeIn .15s ease;
}
@keyframes qrFadeIn {
    from { opacity: 0; transform: translateX(-50%) translateY(4px); }
    to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
.quick-rate-inner {
    background: #1a2233;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 12px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    box-shadow: 0 8px 30px rgba(0,0,0,.5);
}
.quick-rate-title {
    font-size: 12px;
    font-weight: 700;
    color: rgba(255,255,255,.7);
}
.quick-rate-stars {
    display: flex;
    gap: 4px;
}
.qr-star {
    width: 30px;
    height: 30px;
    border-radius: 6px;
    border: 1px solid rgba(255,255,255,.1);
    background: rgba(255,255,255,.05);
    color: rgba(255,255,255,.5);
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: all .15s;
}
.qr-star:hover {
    background: #27d07d;
    color: #000;
    border-color: #27d07d;
    transform: scale(1.1);
}

/* ==========================================
   TBC (NOT YET RELEASED) EPISODES
========================================== */

.episode-tbc{

    opacity:.75;
    cursor:default;
    gap:14px;

}

.episode-tbc:hover{

    background:#0f141c;

}

.episode-thumb-tbc{

    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:.4rem;
    background:linear-gradient(135deg,#141a26,#1c2331);
    color:#8b93a7;
    border:1px dashed #39425a;

}

.episode-thumb-tbc i{

    font-size:1.1rem;
    opacity:.85;

}

.tbc-chip{

    background:rgba(139,147,167,.14);
    border:1px solid rgba(139,147,167,.35);
    color:#aab2c4;
    font-size:.6rem;
    font-weight:700;
    letter-spacing:.1em;
    padding:.18rem .55rem;
    border-radius:999px;

}

.episode-tbc .tbc-title{

    color:#8b93a7;
    font-style:italic;

}

.episode-tbc-note{

    display:inline-flex;
    align-items:center;
    font-size:.72rem;
    font-weight:600;
    letter-spacing:.04em;
    color:#7d8699;
    background:rgba(139,147,167,.08);
    padding:7px 13px;
    border-radius:999px;
    white-space:nowrap;

}

/* ==========================================
   EPISODE RATE PAGE
========================================== */

.ep-hero{

    width:90%;
    max-width:1400px;
    margin:40px auto 60px;
    display:flex;
    gap:40px;
    align-items:flex-start;
    background:rgba(22,29,39,.85);
    backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.06);
    border-radius:30px;
    padding:40px;
    animation:fadeUp .8s ease;

}

.ep-poster img{

    width:240px;
    border-radius:18px;
    border:4px solid rgba(255,255,255,.12);
    box-shadow:0 18px 50px rgba(0,0,0,.45);

}

.ep-poster.has-thumb img{

    width:420px;
    max-width:100%;
    aspect-ratio:16/9;
    object-fit:cover;

}

.ep-hero-text{

    flex:1;
    min-width:0;

}

.ep-hero-text h1{

    font-size:44px;
    font-weight:800;
    margin:16px 0 10px;
    line-height:1.2;

}

.ep-subtitle{

    color:#00c16a;
    font-weight:700;
    font-size:16px;
    margin-bottom:14px;

}

.ep-synopsis{

    color:#c7d2de;
    line-height:1.9;
    font-size:15px;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
    margin-bottom:24px;

}

.ep-nav{

    display:flex;
    gap:12px;

}

.ep-nav-btn{

    display:inline-flex;
    align-items:center;
    gap:8px;
    text-decoration:none;
    color:white;
    font-weight:700;
    font-size:14px;
    padding:11px 18px;
    border-radius:12px;
    background:#10161f;
    transition:.3s;

}

.ep-nav-btn:hover{

    background:#00c16a;
    color:#06121a;

}

.ep-nav-btn.disabled{

    opacity:.4;
    pointer-events:none;

}

.ep-flashes{

    width:90%;
    max-width:1400px;
    margin:-20px auto 0;

}

.ep-flash{

    padding:16px 22px;
    border-radius:14px;
    margin-bottom:14px;
    font-weight:600;
    font-size:15px;
    animation:fadeUp .4s ease;

}

.ep-flash-success{

    background:rgba(0,193,106,.15);
    color:#4ade80;
    border:1px solid rgba(0,193,106,.3);

}

.ep-flash-error{

    background:rgba(255,107,107,.12);
    color:#ff8080;
    border:1px solid rgba(255,107,107,.3);

}

.ep-rating-panel{

    max-width:900px;
    margin:auto;
    background:#171f29;
    border-radius:30px;
    padding:55px;
    text-align:center;
    border:1px solid rgba(255,255,255,.06);

}

.ep-big-rating{

    font-size:88px;
    font-weight:800;
    color:#ffd54a;
    line-height:1;
    margin-bottom:8px;

}

.ep-rating-stars{

    color:#ffd54a;
    font-size:18px;
    font-weight:700;
    margin-bottom:14px;

}

.ep-rating-panel p{

    color:#a9b5c3;
    margin-bottom:30px;

}

.ep-breakdown{

    max-width:440px;
    margin:0 auto;
    display:flex;
    flex-direction:column;
    gap:9px;

}

.review-score{

    color:#9ca8b8;
    font-size:13px;
    font-weight:600;

}

/* ==========================================
   WIRE REVIEW SYSTEM
========================================== */

.wire-review{

    max-width:900px;
    margin:auto;
    background:#171f29;
    border-radius:30px;
    padding:45px;
    text-align:center;
    border:1px solid rgba(255,255,255,.06);

}

.wire-stars{

    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;

}

.wire-star{

    font-size:38px;
    color:#7b8595;
    cursor:pointer;
    transition:.25s;

}

.wire-star:hover{

    transform:scale(1.25);

}

.wire-star.filled{

    color:#ffd54a;

}

.wire-form{

    display:flex;
    flex-direction:column;
    gap:20px;
    margin-top:26px;

}

.wire-form textarea{

    width:100%;
    height:150px;
    resize:none;
    border:none;
    outline:none;
    border-radius:18px;
    padding:22px;
    background:#0f141c;
    color:white;
    font-size:15px;
    font-family:inherit;

}

.wire-form textarea::placeholder{

    color:#95a3b2;

}

.wire-form button{

    align-self:flex-end;
    padding:15px 36px;
    border:none;
    border-radius:14px;
    background:#00c16a;
    color:white;
    cursor:pointer;
    font-weight:700;
    font-size:15px;
    transition:.3s;

}

.wire-form button:hover:not(:disabled){

    background:#18d67d;
    transform:translateY(-3px);

}

.wire-form button:disabled{

    opacity:.45;
    cursor:not-allowed;

}

.wire-login-prompt{

    max-width:900px;
    margin:auto;
    background:#171f29;
    border-radius:30px;
    padding:60px;
    text-align:center;
    border:1px solid rgba(255,255,255,.06);

}

.wire-login-prompt i.fa-lock{

    font-size:44px;
    color:#00c16a;
    margin-bottom:20px;

}

.wire-login-prompt h3{

    font-size:26px;
    margin-bottom:10px;

}

.wire-login-prompt p{

    color:#a9b5c3;
    margin-bottom:28px;

}

/* ==========================================
   EPISODE RATE PAGE RESPONSIVE
========================================== */

@media(max-width:900px){

    .ep-hero{

        flex-direction:column;
        align-items:center;
        text-align:center;

    }

    .ep-hero-text h1{

        font-size:32px;

    }

    .ep-nav{

        justify-content:center;

    }

    .nav-right{

        gap:8px;

    }

    .nav-user-name{

        display:none;

    }

    .ep-big-rating{

        font-size:62px;

    }

    .wire-star{

        font-size:30px;

    }

}

/* ===========================================
   NAV PROFILE DROPDOWN (Crunchyroll-style)
   Avatar pill opens Settings / History / Lists / Logout.
=========================================== */

.nav-user-wrap{
    position:relative;
}

.nav-user-trigger{
    cursor:pointer;
    font-family:'Montserrat',sans-serif;
    display:flex;
    align-items:center;
    gap:10px;
    padding:6px 14px 6px 6px;
    border-radius:999px;
    background:rgba(22,29,39,.85);
    border:1px solid rgba(255,255,255,.08);
    color:inherit;
    transition:.25s;
}
.nav-user-trigger:hover,
.nav-user-trigger[aria-expanded="true"]{
    border-color:rgba(143,91,255,.55);
    background:rgba(30,38,52,.95);
    box-shadow:0 0 18px rgba(143,91,255,.4);
}

.nav-user-caret{
    font-size:11px;
    color:#8f94b0;
    transition:transform .25s;
}
.nav-user-trigger[aria-expanded="true"] .nav-user-caret{
    transform:rotate(180deg);
}

.nav-user-menu{
    position:absolute;
    top:calc(100% + 12px);
    right:0;
    z-index:3000;
    min-width:235px;
    background:#141a2e;
    border:1px solid rgba(143,91,255,.35);
    border-radius:16px;
    padding:8px;
    box-shadow:0 22px 60px rgba(0,0,0,.7),0 0 30px rgba(123,46,255,.15);
}
.nav-user-menu[hidden]{
    display:none;
}
@keyframes navDrop{
    from{opacity:0;transform:translateY(-8px) scale(.97);}
    to{opacity:1;transform:translateY(0) scale(1);}
}

.nav-user-menu-head{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px 14px;
    border-radius:12px;
    text-decoration:none;
    color:white;
    transition:.2s;
    margin-bottom:4px;
}
.nav-user-menu-head:hover{
    background:linear-gradient(135deg,rgba(143,91,255,.26),rgba(63,140,255,.16));
    box-shadow:0 0 18px rgba(143,91,255,.4);
}
.nav-user-menu-name{
    font-weight:700;
    font-size:15px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    max-width:150px;
}

.nav-user-menu-item{
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
    box-sizing:border-box;
    padding:11px 14px;
    border-radius:10px;
    text-decoration:none;
    color:#d8d8d8;
    font-size:13.5px;
    font-weight:600;
    cursor:pointer;
    transition:.2s;
}
.nav-user-menu-item i{
    width:18px;
    text-align:center;
    color:#8f94b0;
    font-size:14px;
    flex-shrink:0;
    transition:.2s;
}
.nav-user-menu-item:hover{
    background:linear-gradient(135deg,rgba(143,91,255,.3),rgba(63,140,255,.18));
    color:white;
    box-shadow:0 0 20px rgba(143,91,255,.5),inset 0 0 12px rgba(143,91,255,.15);
    transform:translateX(3px);
}
.nav-user-menu-item:hover i{
    color:#c9a8ff;
    filter:drop-shadow(0 0 6px rgba(201,168,255,.8));
}
.nav-user-menu-item.danger{
    color:#ff5c7a;
}
.nav-user-menu-item.danger:hover{
    background:linear-gradient(135deg,rgba(255,59,107,.32),rgba(255,122,89,.16));
    color:#ff9db1;
    box-shadow:0 0 20px rgba(255,59,107,.55),inset 0 0 12px rgba(255,59,107,.15);
    transform:translateX(3px);
}
.nav-user-menu-item.danger:hover i{
    color:#ff8fa3;
    filter:drop-shadow(0 0 6px rgba(255,143,163,.8));
}

/* ==========================================
   RANK BADGES — ELEMENT-THEMED ANIMATIONS
========================================== */

/* --- shared base --- */
.rank-badge {
    display: inline-block;
    margin-left: 8px;
    padding: 4px 18px;
    border-radius: 20px;
    font-weight: 900;
    font-size: 0.85rem;
    letter-spacing: 2px;
    vertical-align: middle;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.rank-badge::before,
.rank-badge::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    z-index: -1;
}

/* ---- S+ : COSMIC / UNIVERSE — rotating rainbow + star twinkle ---- */
@keyframes cosmicSpin {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
@keyframes cosmicTwinkle {
    0%,100% { opacity: 0.4; transform: scale(0.8); }
    50%     { opacity: 1;   transform: scale(1.3); }
}
.rank-S\+ {
    background: linear-gradient(90deg,#FFD700,#FF6B6B,#a78bfa,#54A0FF,#2dd4bf,#FFD700);
    background-size: 300% 100%;
    animation: cosmicSpin 2s linear infinite;
    color: #0a0e14;
    text-shadow: 0 0 6px rgba(255,215,0,0.8), 0 0 12px rgba(168,139,250,0.6);
    box-shadow: 0 0 14px rgba(255,215,0,0.5), 0 0 28px rgba(168,139,250,0.3);
}
.rank-S\+::before {
    background: radial-gradient(circle at 30% 40%, rgba(255,255,255,0.9) 1px, transparent 2px),
                radial-gradient(circle at 70% 25%, rgba(255,255,255,0.8) 1px, transparent 2px),
                radial-gradient(circle at 50% 70%, rgba(255,255,255,0.7) 1px, transparent 2px);
    animation: cosmicTwinkle 1.5s ease-in-out infinite alternate;
}
.rank-S\+::after {
    background: linear-gradient(90deg, transparent 30%, rgba(255,255,255,0.4) 50%, transparent 70%);
    background-size: 200% 100%;
    animation: cosmicSpin 3s linear infinite reverse;
}

/* ---- S : FIRE — flickering flame ---- */
@keyframes flameFlicker {
    0%   { background-position: 50% 100%; }
    25%  { background-position: 30% 60%; }
    50%  { background-position: 70% 40%; }
    75%  { background-position: 40% 80%; }
    100% { background-position: 50% 100%; }
}
@keyframes flameGlow {
    0%,100% { box-shadow: 0 0 8px 2px rgba(255,100,0,0.6), 0 0 20px rgba(255,50,0,0.3); }
    50%     { box-shadow: 0 0 14px 4px rgba(255,150,0,0.8), 0 0 30px rgba(255,80,0,0.4); }
}
.rank-S {
    background: linear-gradient(0deg, #b91c1c 0%, #ef4444 25%, #f97316 50%, #facc15 80%, #fff7ed 100%);
    background-size: 100% 300%;
    animation: flameFlicker 0.8s ease-in-out infinite, flameGlow 1.5s ease-in-out infinite;
    color: #fff;
    text-shadow: 0 0 8px rgba(255,200,0,0.9);
}
.rank-S::before {
    background: linear-gradient(0deg, transparent 0%, rgba(255,255,255,0.15) 40%, rgba(255,200,100,0.25) 60%, transparent 100%);
    background-size: 100% 200%;
    animation: flameFlicker 0.6s ease-in-out infinite reverse;
}

/* ---- A : LIGHTNING / ELECTRIC ---- */
@keyframes lightningFlash {
    0%,90%,100% { opacity: 0; }
    92%  { opacity: 0.9; }
    94%  { opacity: 0.2; }
    96%  { opacity: 0.8; }
}
@keyframes electricPulse {
    0%,100% { box-shadow: 0 0 6px rgba(254,202,87,0.5); }
    50%     { box-shadow: 0 0 18px rgba(254,202,87,0.8), 0 0 35px rgba(139,92,246,0.3); }
}
.rank-A {
    background: linear-gradient(135deg, #FECA57, #f1c40f, #8b5cf6, #FECA57);
    background-size: 200% 200%;
    animation: electricPulse 2s ease-in-out infinite;
    color: #1a1200;
    text-shadow: 0 0 6px rgba(254,202,87,0.9);
}
.rank-A::before {
    background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 30%, transparent 70%, rgba(255,255,255,0.6) 100%);
    animation: lightningFlash 4s infinite;
}

/* ---- B : WATER — flowing wave ---- */
@keyframes waterFlow {
    0%   { background-position: 0% 0%; }
    50%  { background-position: 100% 100%; }
    100% { background-position: 0% 0%; }
}
@keyframes waterRipple {
    0%,100% { box-shadow: 0 0 5px rgba(84,160,255,0.4); }
    50%     { box-shadow: 0 0 15px rgba(84,160,255,0.7), inset 0 0 8px rgba(255,255,255,0.1); }
}
.rank-B {
    background: linear-gradient(135deg, #1e3a5f, #2980b9, #54A0FF, #7dd3fc, #2980b9);
    background-size: 300% 300%;
    animation: waterFlow 3s ease-in-out infinite, waterRipple 2.5s ease-in-out infinite;
    color: #e0f2fe;
    text-shadow: 0 0 6px rgba(84,160,255,0.8);
}
.rank-B::before {
    background: repeating-linear-gradient(90deg, transparent, rgba(255,255,255,0.08) 4px, transparent 8px);
    animation: waterFlow 4s linear infinite;
    background-size: 200% 100%;
}

/* ---- C : EARTH / NATURE — slow pulse, rocky ---- */
@keyframes earthPulse {
    0%,100% { box-shadow: 0 0 6px rgba(167,139,250,0.4); filter: brightness(1); }
    50%     { box-shadow: 0 0 18px rgba(167,139,250,0.6), 0 0 30px rgba(34,197,94,0.2); filter: brightness(1.1); }
}
.rank-C {
    background: linear-gradient(135deg, #4c1d95, #7c3aed, #a78bfa, #22c55e, #7c3aed);
    background-size: 300% 300%;
    animation: earthPulse 4s ease-in-out infinite;
    color: #e9d5ff;
    text-shadow: 0 0 5px rgba(167,139,250,0.7);
}
.rank-C::before {
    background: radial-gradient(circle at 60% 50%, rgba(34,197,94,0.15) 0%, transparent 60%);
    animation: earthPulse 6s ease-in-out infinite;
}

/* ---- D : AIR / WIND — gentle swirl ---- */
@keyframes airSwirl {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}
@keyframes airGlow {
    0%,100% { box-shadow: 0 0 6px rgba(45,212,191,0.3); }
    50%     { box-shadow: 0 0 14px rgba(45,212,191,0.5), 0 0 24px rgba(45,212,191,0.2); }
}
.rank-D {
    background: linear-gradient(90deg, #0f766e, #2dd4bf, #5eead4, #99f6e4, #2dd4bf, #0f766e);
    background-size: 300% 100%;
    animation: airSwirl 4s ease-in-out infinite, airGlow 3s ease-in-out infinite;
    color: #042f2e;
    text-shadow: 0 0 4px rgba(45,212,191,0.6);
}
.rank-D::before {
    background: linear-gradient(90deg, transparent 40%, rgba(255,255,255,0.25) 50%, transparent 60%);
    background-size: 200% 100%;
    animation: airSwirl 2.5s ease-in-out infinite;
}

/* ---- F : POOP 💩 ---- */
@keyframes poopWobble {
    0%,100% { transform: rotate(0deg); }
    25%     { transform: rotate(-3deg); }
    75%     { transform: rotate(3deg); }
}
@keyframes poopPulse {
    0%,100% { box-shadow: 0 0 4px rgba(139,69,19,0.3); }
    50%     { box-shadow: 0 0 12px rgba(139,69,19,0.5), 0 0 20px rgba(120,80,20,0.2); }
}
.rank-F {
    background: linear-gradient(135deg, #4a2c0a, #7c4a1c, #a0652c, #7c4a1c, #4a2c0a);
    animation: poopWobble 2s ease-in-out infinite, poopPulse 3s ease-in-out infinite;
    color: #fef3c7;
    text-shadow: 0 0 4px rgba(160,101,44,0.7);
    padding-left: 6px;
}
.rank-F::before {
    content: '💩';
    font-size: 0.9rem;
    position: relative;
    margin-right: 3px;
    animation: poopWobble 1.5s ease-in-out infinite;
}

/* ==========================================
   LIKE / DISLIKE VOTE BUTTONS
========================================== */
@keyframes btnBounce { 0%,100%{transform:scale(1)} 50%{transform:scale(1.25)} }
.review-vote-bar{ display:flex; gap:10px; margin-top:14px; align-items:center; }
.review-vote-btn {
    background: linear-gradient(135deg,#111827,#0d1420);
    border: 1px solid #1f2937;
    border-radius: 24px;
    padding: 7px 16px;
    cursor: pointer;
    font-size: 0.88rem;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    transition: all 0.2s;
    color: #6b7280;
}
.review-vote-btn:hover {
    border-color: #374151;
    transform: translateY(-1px);
}
.review-vote-btn.vote-active.voted-like,
.review-vote-btn.vote-active[data-kind="like"]{
    background: linear-gradient(135deg,#052e16,#064e3b);
    border-color: #22c55e;
    color: #22c55e;
    box-shadow: 0 0 12px rgba(34,197,94,0.35), inset 0 0 8px rgba(34,197,94,0.1);
}
.review-vote-btn.vote-active.voted-dislike,
.review-vote-btn.vote-active[data-kind="dislike"]{
    background: linear-gradient(135deg,#2a0a0a,#3b0d0d);
    border-color: #ef4444;
    color: #ef4444;
    box-shadow: 0 0 12px rgba(239,68,68,0.35), inset 0 0 8px rgba(239,68,68,0.1);
}
.review-vote-btn:active { animation: btnBounce 0.3s ease; }

/* ===== Exilar liquid gauge (anime / episode overall vote) — wide tank ===== */
.elix-bottle { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; }
.elix-glass {
    position: relative; width: 240px; height: 44px; box-sizing: border-box;
    border-radius: 12px; overflow: hidden;
    background: linear-gradient(180deg, #0e1520, #080e1a);
    border: 1.5px solid rgba(250,204,21,0.6);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.06), 0 8px 30px -8px rgba(250,204,21,0.4), 0 0 30px rgba(250,204,21,0.12);
}
.elix-glass::before { /* left cap (pipe fitting) */
    content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 14px;
    background: linear-gradient(90deg, rgba(250,204,21,0.5), rgba(250,204,21,0.15));
    box-shadow: inset 0 0 0 1px rgba(253,224,71,0.35);
}
.elix-glass::after { /* shine */
    content: ""; position: absolute; top: 5px; left: 18px; right: 28px; height: 6px;
    background: linear-gradient(180deg, rgba(255,255,255,0.3), rgba(255,255,255,0.03));
    border-radius: 6px; z-index: 3;
}
.elix-liquid {
    position: absolute; left: 14px; top: 0; bottom: 0; transition: width 0.9s cubic-bezier(0.2,0.8,0.2,1);
    background: linear-gradient(90deg, #a7f3d0, #34d399 60%, #059669);
    box-shadow: 0 0 30px rgba(52,211,153,1), inset 0 0 18px rgba(255,255,255,0.45);
    border-radius: 0 12px 12px 0;
}
.elix-liquid::before {
    content: ""; position: absolute; left: 55%; top: 26%; width: 9px; height: 9px;
    border-radius: 99px; background: rgba(255,255,255,0.85); filter: blur(0.5px);
    animation: elixBubble 3.4s ease-in-out infinite;
}
.elix-liquid::after {
    content: ""; position: absolute; right: -1px; top: 0; bottom: 0; width: 3px;
    background: rgba(255,255,255,0.9); border-radius: 3px;
}
@keyframes elixBubble { 0%,100% { transform: translate(0,0); opacity: 0.35; } 50% { transform: translate(12px,-2px); opacity: 0.95; } }
.elix-level {
    position: absolute; left: 7px; top: 50%; transform: translateY(-50%); z-index: 4;
    font-size: 0.85rem; font-weight: 900; color: #0b0f19; padding: 1px 8px; border-radius: 99px;
    background: rgba(253,224,71,0.92); box-shadow: 0 1px 4px rgba(0,0,0,0.3);
}
.elix-num {
    position: absolute; z-index: 4; right: 12px; top: 50%; transform: translateY(-50%);
    font-weight: 900; font-size: 1.25rem; font-variant-numeric: tabular-nums; color: #fdf3d8;
    filter: drop-shadow(0 1px 1px rgba(0,0,0,0.85));
}
.elix-num i { font-size: 0.85rem; color: #fde047; margin-left: 2px; }
.elix-label { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.8px; color: #facc15; text-transform: uppercase; opacity: 0.95; }

/* ---- Rating Power: negative (mobbed-down) elixir tank ---- */
.elix-negative {
    border-color: rgba(239,68,68,0.45) !important;
    box-shadow: 0 10px 36px -18px rgba(239,68,68,0.45);
}
.elix-negative .elix-num { color: #f87171; }
.elix-negative .elix-level { color: #f87171; }
.elix-negative .elix-liquid {
    background: linear-gradient(180deg, #fca5a5, #ef4444 60%, #b91c1c) !important;
    box-shadow: 0 0 16px rgba(239,68,68,0.8);
}

/* ---- Rating Power: locked vote buttons (votes are C+ only) ---- */
.review-vote-btn.rv-like-locked {
    cursor: not-allowed !important;
    opacity: 0.55;
    border-style: dashed !important;
}
.rv-lock-tag {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 0.6rem; font-weight: 800; letter-spacing: 0.03em;
    color: #fbbf24; background: rgba(251,191,36,0.12);
    border: 1px solid rgba(251,191,36,0.35); border-radius: 999px;
    padding: 1px 6px; margin-left: 4px; vertical-align: middle;
}

/* ============================================================
   ANIME PAGE — MOBILE polish
   ============================================================ */
@media(max-width:600px){
    .hero-content { padding: 22px 16px 28px; }
    .info-section { padding: 18px 16px; }
    .watch-order {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 6px;
    }
    .episodes-list, .comments-section { padding: 0 14px; }
}

/* ============================================================
   ANIME PAGE — small phones
   ============================================================ */
@media(max-width:560px){
    .hero-image { height: 230px; }
    .hero-content { left: 12px; right: 12px; bottom: 16px; gap: 14px; }
    .hero-content .poster { display: none; }
    .hero-text h1 { font-size: clamp(19px, 6.4vw, 26px); }
    .hero-text p { font-size: 12.5px; line-height: 1.5; }
    .info-left, .info-right { padding: 0 14px; }
    .info-row { flex-wrap: wrap; gap: 8px; }
    .watch-order { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .episodes-list, .comments-section, .recommendation-grid { padding-left: 12px; padding-right: 12px; }
    .stream-row { gap: 8px; }
    .stream-row a, .stream-row button { flex: 1 1 auto; min-width: 0; font-size: 12.5px; }
    iframe, video { max-width: 100%; }
    .player-wrap, .video-box { aspect-ratio: 16 / 9; height: auto; max-height: 46vh; }
}

/* ============================================================
   ANIME DETAIL — PHONE HERO REDESIGN (app-style card, not a
   shrunken desktop banner). Content flows under the art instead
   of being absolutely stacked onto a short image, so nothing
   clips or squeezes on small screens.
============================================================ */
@media (max-width: 560px){
    .hero{
        margin-bottom: 14px;
    }
    .hero-image{
        height: 200px;
    }
    .hero-content{
        position: relative;
        z-index: 2;
        left: auto;
        right: auto;
        bottom: auto;
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
        margin-top: -52px;
        padding: 16px 16px 20px;
    }
    .hero-text{
        width: 100%;
        max-width: 100%;
    }
    .hero-text p{
        margin-bottom: 12px;
    }
    .anime-type{
        margin-bottom: 8px;
        font-size: 12px;
        padding: 6px 14px;
    }

    /* rating row: wraps instead of overflowing the right edge */
    .rating-box{
        max-width: 100%;
        width: fit-content;
        flex-wrap: wrap;
        gap: 8px 14px;
        padding: 10px 16px;
        margin-bottom: 2px;
    }
    .stars{
        font-size: 19px;
        line-height: 1;
    }
    .score{
        font-size: 26px;
        line-height: 1;
    }

    /* action buttons: full-width stacked rows — reads like an app */
    .hero-actions{
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        gap: 9px;
    }
    .hero-actions .join-btn,
    .hero-actions .anime-add-list-btn,
    .hero-actions .review-scroll-btn{
        width: 100%;
        justify-content: center;
        padding: 13px 16px;
        font-size: 14px;
        box-sizing: border-box;
    }

    /* section titles: one line, no mid-phrase wraps */
    .section-title{
        font-size: clamp(17px, 5vw, 22px);
        line-height: 1.2;
        white-space: nowrap;
    }
    .section-title a{
        white-space: nowrap;
    }

    /* season cards + episode rows: comfortable touch sizes */
    .season-card{
        margin-bottom: 14px;
    }
    .expand-btn{
        padding: 15px 16px;
        font-size: 14px;
    }
    .episode-list{
        padding: 12px;
    }
    .episode{
        padding: 10px 8px;
    }
}
@media (max-width: 768px) and (min-width: 561px){
    .rating-box{
        max-width: 100%;
        flex-wrap: wrap;
    }
    .hero-text{
        min-width: 0;
    }
    .section-title{
        white-space: nowrap;
        font-size: clamp(18px, 4vw, 26px);
    }
}


/* ==========================================================
   ANIME PAGE — final mobile sizing (compact app feel)
   Synopsis + Information become full-width reading cards,
   the rating row shrinks to one line, action buttons become
   short app pills, and "You May Also Like" goes 2-across.
========================================================== */
@media (max-width: 600px){

    /* ---- Synopsis + Information: full-bleed comfortable cards ---- */
    .info-section{
        width:100%;
        margin:0 0 10px;
        gap:0;
    }
    .info-left,
    .info-right{
        width:100%;
        padding:0 12px;
        margin:0 0 14px;
        box-sizing:border-box;
    }
    .info-left .glass-card,
    .info-right .glass-card{
        width:100% !important;
        box-sizing:border-box;
        padding:18px 16px;
        border-radius:16px;
    }
    .glass-card h2{
        font-size:19px;
        margin-bottom:10px;
    }
    .glass-card p{
        font-size:14px;
        line-height:1.62;
    }

    /* ---- Information rows: two-line-friendly, phone type ---- */
    .info-row{
        padding:11px 0;
        gap:10px;
    }
    .info-row > span{
        font-size:12.5px;
    }
    .info-row > strong{
        font-size:13px;
        text-align:right;
        min-width:0;
    }
    .info-row-genres{
        align-items:flex-start;
    }
    .info-row-genres > span{
        padding-top:3px;
    }
    .info-row-genres .genre-tags{
        justify-content:flex-end;
        flex-wrap:wrap;
    }
    .genre-tag{
        font-size:11px;
        padding:3px 9px;
        border-radius:999px;
    }

    /* ---- Rating row: one compact line ---- */
    .rating-box{
        padding:7px 12px;
        border-radius:13px;
        gap:6px 10px;
        margin-bottom:10px;
    }
    .rating-box .stars{
        font-size:15px;
        line-height:1;
    }
    .rating-box .score{
        font-size:19px;
        line-height:1;
    }
    .rating-box span{
        font-size:12px;
    }

    /* ---- Actions: app-style — primary full-width, pair below ---- */
    .hero-actions{
        flex-direction:row;
        flex-wrap:wrap;
        align-items:stretch;
        gap:8px;
        width:100%;
    }
    .hero-actions .join-btn,
    .hero-actions .anime-add-list-btn,
    .hero-actions .review-scroll-btn{
        width:auto;
        padding:10px 14px;
        font-size:13px;
        font-weight:700;
        border-radius:12px;
        justify-content:center;
        box-sizing:border-box;
    }
    .hero-actions .join-btn{
        flex:1 1 100%;
    }
    .hero-actions .anime-add-list-btn,
    .hero-actions .review-scroll-btn{
        flex:1 1 calc(50% - 4px);
        min-width:0;
    }

    /* ---- "You May Also Like": 2-across compact cards ---- */
    .recommendation-grid{
        grid-template-columns:repeat(2, 1fr);
        gap:10px;
        padding-left:12px;
        padding-right:12px;
    }
    .recommend-card{
        border-radius:14px;
    }
    .recommend-card img{
        height:auto;
        aspect-ratio:2/3;
    }
    .recommend-card h3{
        font-size:12.5px;
        line-height:1.3;
        padding:8px 10px 10px;
    }
}


/* ---- secondary actions: keep them ONE line at half width ---- */
@media (max-width: 600px){
    .hero-actions .join-btn,
    .hero-actions .anime-add-list-btn,
    .hero-actions .review-scroll-btn{
        height:38px;
        box-sizing:border-box;
    }
    .hero-actions .anime-add-list-btn,
    .hero-actions .review-scroll-btn{
        padding:0 8px !important;
        font-size:12.5px !important;
        gap:6px;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
        line-height:1;
    }
    .hero-actions .join-btn{
        padding:0 14px !important;
        font-size:13px !important;
        gap:8px;
        white-space:nowrap;
    }
}


/* ==========================================================
   ANIME PAGE — review composer sized for phones
   (10-star row must FIT the card, tap-friendly but compact;
   form controls bumped up a touch for mobile thumbs)
========================================================== */
@media (max-width: 600px){
    .review-box{
        max-width:100%;
        padding:0 12px;
        margin-bottom:18px;
    }
    .review-box .review-composer{
        border-radius:18px;
        padding:22px 14px 18px;
    }
    /* 10 stars on one row that actually fits 360px screens */
    .review-rate-row{
        gap:6px;
        margin-bottom:14px;
    }
    .review-rate-label{
        font-size:.95rem;
        width:100%;
        margin-bottom:2px;
    }
    .review-rate-row .user-stars{
        gap:4px;
        max-width:100%;
    }
    .review-rate-row .user-stars i{
        font-size:23px;
        line-height:1;
    }
    .selected-rating-label{
        font-size:.9rem;
    }
    .review-box textarea{
        min-height:96px;
        padding:14px 16px;
        border-radius:14px;
        font-size:15px;
        margin-top:10px;
    }
    .review-box button{
        padding:13px 26px;
        font-size:14.5px;
        border-radius:12px;
        margin-top:12px;
    }
}

/* Tall pixel-art avatars (gyaru / fantasy7, 300x600 full-body art)
   are cropped to the face + upper body EVERYWHERE, matching the
   homepage. Position only - never size. */
img[src*="gyaru"],
img[src*="fantasy7"]{
    object-position: top center;
}
