
*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--text);
    background:var(--bg-page);
    overflow-x:hidden;
    transition:
            background .35s ease,
            color .35s ease,
            border-color .35s ease,
            box-shadow .35s ease;
}

a{
    text-decoration:none;
    color:inherit;
}

img{
    max-width:100%;
    display:block;
}

.container{
    width:min(var(--max), calc(100% - 32px));
    margin:auto;
}

/* Effets de fond */

.page-glow{
    position:fixed;
    border-radius:999px;
    filter:blur(70px);
    pointer-events:none;
    z-index:0;
    opacity:.55;
}

.glow-1{
    width:300px;
    height:300px;
    left:-100px;
    top:80px;
    background:rgba(90,70,214,.18);
}

.glow-2{
    width:280px;
    height:280px;
    right:-80px;
    top:220px;
    background:rgba(138,121,255,.16);
}

.glow-3{
    width:340px;
    height:340px;
    left:38%;
    bottom:-120px;
    background:rgba(90,70,214,.12);
}

html[data-theme="dark"] .glow-1{
    background:rgba(143,124,255,.18);
}

html[data-theme="dark"] .glow-2{
    background:rgba(111,92,220,.16);
}

html[data-theme="dark"] .glow-3{
    background:rgba(143,124,255,.10);
}

.orbs span{
    position:absolute;
    border-radius:999px;
    pointer-events:none;
    filter:blur(18px);
    opacity:.55;
}

.orbs span:nth-child(1){
    width:160px;
    height:160px;
    top:30px;
    left:-20px;
    background:rgba(90,70,214,.18);
}

.orbs span:nth-child(2){
    width:130px;
    height:130px;
    top:160px;
    right:10%;
    background:rgba(138,121,255,.14);
}

.orbs span:nth-child(3){
    width:180px;
    height:180px;
    bottom:40px;
    left:42%;
    background:rgba(90,70,214,.10);
}

html[data-theme="dark"] .orbs span:nth-child(1){
    background:rgba(143,124,255,.16);
}

html[data-theme="dark"] .orbs span:nth-child(2){
    background:rgba(111,92,220,.14);
}

html[data-theme="dark"] .orbs span:nth-child(3){
    background:rgba(143,124,255,.08);
}

/* Navbar */

.nav-wrap{
    position:sticky;
    top:0;
    z-index:100;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    background:var(--nav-bg);
    border-bottom:1px solid var(--nav-border);
}

.nav{
    min-height:82px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}

.brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    flex-shrink:0;
}

.brand-logo{
    width:52px;
    height:52px;
    border-radius:16px;
    padding:6px;
    background:linear-gradient(135deg, rgba(90,70,214,.34), rgba(138,121,255,.22));
    border:1px solid var(--card-border);
    box-shadow:0 10px 26px rgba(90,70,214,.18);
    flex-shrink:0;
}

html[data-theme="dark"] .brand-logo{
    background:linear-gradient(135deg, rgba(143,124,255,.34), rgba(179,167,255,.16));
    box-shadow:0 10px 26px rgba(143,124,255,.18);
}

html[data-theme="dark"] .logo-frame::after{
    background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.08), transparent );
    filter:blur(3px);
}

.brand-logo img{
    width:100%;
    height:100%;
    object-fit:contain;
}

.brand-text{
    font-weight:800;
    font-size:18px;
    line-height:1.05;
    white-space:nowrap;
}

.brand-text small{
    display:block;
    font-size:10px;
    letter-spacing:.08em;
    color:var(--muted);
    text-transform:uppercase;
    margin-top:4px;
    white-space:nowrap;
}

.nav-right{
    display:flex;
    align-items:center;
    gap:18px;
    margin-left:auto;
    min-width:0;
}

.menu{
    display:flex;
    align-items:center;
    gap:6px;
    flex-wrap:nowrap;
}

.menu a{
    padding:10px 14px;
    border-radius:999px;
    font-weight:600;
    font-size:15px;
    color:var(--muted);
    white-space:nowrap;
    transition:all .25s ease;
}

.menu a:hover,
.menu a.is-active,
.footer-links-grid a.is-active{
    background:rgba(122,104,242,.12);
    color:var(--text);
}

.nav-actions{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
}

.menu-cta{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 18px;
    border-radius:999px;
    font-weight:700;
    white-space:nowrap;
    color:#fff !important;
    background:var(--discord);
    box-shadow:0 10px 24px rgba(88,101,242,.30);
    transition:all .25s ease;
}

.menu-cta:hover{
    background:var(--discord-hover) !important;
    color:#fff !important;
    transform:translateY(-2px);
    box-shadow:0 16px 34px rgba(88,101,242,.42);
}

.menu-ecurie{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:0 18px;
    border-radius:999px;
    font-weight:700;
    white-space:nowrap;
    color:#fff !important;
    background:linear-gradient(180deg,#9b6b3d,#7a4f29);
    border:1px solid rgba(210,170,90,.45);
    box-shadow:
            0 10px 22px rgba(90,60,30,.35),
            inset 0 1px 0 rgba(255,230,170,.25);
    transition:all .25s ease;
}

.menu-ecurie:hover{
    background:linear-gradient(180deg,#b8844d,#8c5a30);
    transform:translateY(-2px);
    color:#fff !important;
    box-shadow:
            0 16px 34px rgba(90,60,30,.45),
            inset 0 1px 0 rgba(255,230,170,.35);
}

.menu-toggle{
    display:none;
    width:46px;
    height:46px;
    border:1px solid var(--card-border);
    background:var(--panel-soft);
    border-radius:14px;
    padding:0;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:5px;
    cursor:pointer;
}

.menu-toggle span{
    width:18px;
    height:2px;
    background:var(--text);
    border-radius:999px;
    transition:.25s ease;
}

.menu-toggle.is-open span:nth-child(1){
    transform:translateY(7px) rotate(45deg);
}

.menu-toggle.is-open span:nth-child(2){
    opacity:0;
}

.menu-toggle.is-open span:nth-child(3){
    transform:translateY(-7px) rotate(-45deg);
}

/* Hero */

.hero{
    position:relative;
    padding:70px 0 40px;
}

.hero-shell{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:22px;
    position:relative;
    z-index:1;
}

.hero-main,
.hero-side,
.card,
.panel,
.cta-banner,
.quote-box{
    border-radius:var(--radius-lg);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow);
}

.hero-main{
    padding:34px;
    min-height:560px;
    background:var(--hero-main-bg);
}

.hero-side{
    padding:18px;
    min-height:560px;
    display:grid;
    grid-template-rows:1fr auto;
    gap:16px;
    background:var(--hero-side-bg);
}

.eyebrow{
    display:inline-block;
    font-size:12px;
    letter-spacing:.12em;
    font-weight:700;
    color:var(--muted);
    text-transform:uppercase;
    margin-bottom:16px;
}

h1{
    margin:0;
    font-size:clamp(40px, 5.2vw, 72px);
    line-height:.95;
    letter-spacing:-.04em;
    max-width:640px;
}

.gradient{
    background:linear-gradient(135deg, var(--primary), var(--primary2) 55%, var(--primary3) 100%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.hero-copy{
    margin-top:20px;
    max-width:640px;
    color:var(--muted);
    font-size:17px;
    line-height:1.7;
}

.hero-actions,
.cta-row{
    margin-top:24px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
}

.btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    padding:0 22px;
    border-radius:16px;
    font-weight:700;
    transition:.2s;
}

.btn:hover{
    transform:translateY(-2px);
}

.btn-primary{
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    color:#fff;
    box-shadow:0 16px 36px rgba(90,70,214,.28);
}

html[data-theme="dark"] .btn-primary{
    box-shadow:0 16px 36px rgba(143,124,255,.24);
}

.btn-secondary{
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
    color:var(--text);
}

.hero-stats{
    margin-top:24px;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:12px;
}

.stat{
    padding:16px;
    border-radius:20px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow-soft);
}

.stat strong{
    display:block;
    font-size:20px;
    margin-bottom:4px;
}

.stat span{
    font-size:13px;
    color:var(--muted);
    line-height:1.55;
}

.stat-number{
    text-align:center;
    padding:20px 16px;
}

.stat-number strong{
    display:block;
    font-size:34px;
    line-height:1;
    letter-spacing:-0.04em;
    margin-bottom:8px;
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.stat-number span{
    display:block;
    font-size:14px;
    font-weight:700;
    color:var(--muted);
    line-height:1.4;
}

/* Grand bouclier */

.logo-stage{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:30px;
    background:var(--logo-stage-bg);
    border:1px solid var(--card-border);
    padding:24px;
    min-height:360px;
    overflow:hidden;
    isolation:isolate;
}

.logo-stage::before{
    content:"";
    position:absolute;
    width:260px;
    height:260px;
    border-radius:999px;
    background:radial-gradient(circle, rgba(122,104,242,.26) 0%, rgba(122,104,242,.10) 42%, transparent 72%);
    filter:blur(20px);
    z-index:0;
    animation:shieldPulse 4.5s ease-in-out infinite;
}

.logo-stage::after{
    content:"";
    position:absolute;
    inset:-20%;
    background:
            conic-gradient(
                    from 0deg,
                    transparent 0deg,
                    rgba(255,255,255,.16) 40deg,
                    transparent 80deg,
                    transparent 360deg
            );
    opacity:.45;
    filter:blur(18px);
    z-index:0;
    animation:shieldAuraSpin 14s linear infinite;
}

.logo-frame{
    position:relative;
    width:280px;
    height:280px;
    border-radius:26px;
    background:var(--logo-frame-bg);
    border:1px solid var(--card-border);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:var(--shadow-soft);
    z-index:1;
    animation:shieldFloat 5s ease-in-out infinite;
}

.logo-frame::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:
            linear-gradient(135deg, rgba(255,255,255,.28), transparent 34%),
            linear-gradient(315deg, rgba(255,255,255,.10), transparent 40%);
    pointer-events:none;
}

.logo-frame::after{
    content:"";
    position:absolute;
    top:-30%;
    left:-60%;
    width:30%;
    height:200%;
    transform:rotate(20deg);
    background:linear-gradient(
            90deg,
            transparent,
            rgba(255,255,255,.25),
            transparent
    );
    opacity:.28;
    pointer-events:none;
    filter:blur(2px);
    animation:shieldShine 6s ease-in-out infinite;
}

.logo-frame img{
    width:75%;
    height:75%;
    object-fit:contain;
    filter:none;
    position:relative;
    z-index:1;
    animation:shieldBreath 5s ease-in-out infinite;
}

html[data-theme="dark"] .logo-stage::before{
    background:radial-gradient(circle, rgba(143,124,255,.34) 0%, rgba(143,124,255,.12) 42%, transparent 72%);
}

html[data-theme="dark"] .logo-stage::after{
    opacity:.38;
}

html[data-theme="dark"] .logo-frame{
    box-shadow:
            0 18px 34px rgba(0,0,0,.35),
            0 0 28px rgba(143,124,255,.10);
}

/* Mini cards */

.hero-side-cards{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:12px;
}

.mini-card{
    padding:16px;
    border-radius:20px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow-soft);
}

.mini-card strong{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--muted);
}

.mini-card p{
    margin:0;
    font-size:13px;
    color:var(--muted);
    line-height:1.55;
}

/* Sections */

section{
    padding:40px 0;
}

.section-head{
    margin-bottom:20px;
}

.section-head span{
    font-size:12px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:var(--muted);
    font-weight:700;
}

.section-head h2{
    margin:6px 0;
    font-size:38px;
    line-height:1.08;
}

.section-head p{
    max-width:680px;
    color:var(--muted);
    line-height:1.7;
}

/* Cards */

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

.grid-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

.recruitment-steps .card {
    position: relative;
    padding: 40px 30px;
    border-radius: 14px;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    transition: all 0.3s ease;
    overflow: hidden;
}

.step {
    position: absolute;
    top: -20px;
    right: 10px;
    font-size: 120px;
    font-weight: 800;
    color: var(--step-color);
    pointer-events: none;
}

.icon {
    font-size: 28px;
    margin-bottom: 15px;
}

.recruitment-steps .card:hover {
    transform: translateY(-6px);
    border-color: var(--card-hover-border);
    box-shadow: 0 0 25px var(--card-hover-shadow);
}

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

@media (max-width: 600px) {
    .grid-4 {
        grid-template-columns: 1fr;
    }
}

.card{
    padding:24px;
    border-radius:var(--radius);
    background:var(--panel);
}

.icon{
    width:50px;
    height:50px;
    border-radius:16px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    background:linear-gradient(135deg, rgba(90,70,214,.24), rgba(138,121,255,.18));
    margin-bottom:14px;
}

html[data-theme="dark"] .icon{
    background:linear-gradient(135deg, rgba(143,124,255,.24), rgba(179,167,255,.12));
}

.card h3{
    margin:0 0 8px;
}

.card p{
    margin:0;
    color:var(--muted);
    line-height:1.7;
}

/* Panels */

.showcase{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.panel{
    padding:28px;
    border-radius:32px;
    background:var(--panel-strong);
}

.panel h3{
    margin:0 0 10px;
}

.panel p{
    color:var(--muted);
    line-height:1.7;
}

.list{
    list-style:none;
    padding:0;
    margin:20px 0 0;
    display:grid;
    gap:10px;
}

.list li{
    padding:12px 14px;
    border-radius:14px;
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
}

/* CTA */

.wide-cta{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:18px;
}

.cta-banner{
    padding:30px;
    border-radius:32px;
    background:var(--cta-bg);
}

.quote-box{
    padding:30px;
    border-radius:32px;
    background:var(--quote-bg);
}

.quote-box blockquote{
    font-size:20px;
    margin:0;
    line-height:1.6;
}

.quote-box small{
    display:block;
    margin-top:18px;
    color:var(--muted);
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-weight:700;
}

.join-note{
    margin:18px 0 0;
    text-align:center;
    color:var(--muted);
    font-size:14px;
    line-height:1.6;
}

.final-cta{
    padding-top:0;
}

.quote-box{
    padding: 30px 28px;
    border-radius: 32px;
    border: 1px solid var(--card-border);
    background: var(--cta-bg);
    transition: all .25s ease;

}

.quote-box h4{
    margin: 0 0 16px;
    font-size: 18px;
    font-weight: 700;
}

.quote-box p{
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: 0;
    padding: 10px 0;
    font-size: 14px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

.quote-box p:last-child{
    border-bottom: none;
    padding-bottom: 0;
}

.quote-box strong{
    opacity: .85;
}

.quote-box:hover{
    transform: translateY(-4px);
    border-color: var(--card-hover-border);
    box-shadow: 0 8px 20px var(--card-hover-shadow);
}

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

.footer{
    margin-top:60px;
    padding:40px 0 24px;
    position:relative;
}

.footer::before{
    content:"";
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:1px;
    background:linear-gradient(90deg, transparent, var(--primary), transparent);
    opacity:.22;
}

.footer-container{
    position:relative;
}

.footer-box-v2{
    display:grid;
    grid-template-columns:1.2fr 1fr .9fr;
    gap:32px;
    align-items:start;
    padding:28px;
    border-radius:28px;
    background:var(--footer-bg);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow-soft);
}

.footer-col{
    min-width:0;
}

.footer-brand{
    display:flex;
    align-items:flex-start;
    gap:14px;
}

.footer-brand-col .mark{
    width:58px;
    height:58px;
    flex-shrink:0;
    border-radius:18px;
    padding:6px;
    background:linear-gradient(135deg, rgba(90,70,214,.18), rgba(138,121,255,.12));
    border:1px solid var(--card-border);
}

html[data-theme="dark"] .footer-brand-col .mark{
    background:linear-gradient(135deg, rgba(143,124,255,.18), rgba(179,167,255,.10));
}

.footer-brand-col strong{
    display:block;
    font-size:24px;
    line-height:1.05;
    margin-bottom:8px;
}

.footer-desc{
    margin:0 0 10px;
    color:var(--muted);
    font-size:14px;
    line-height:1.65;
    max-width:320px;
}

.footer-note{
    display:block;
    margin-top:0;
    color:var(--muted);
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-weight:700;
}

.footer-title{
    margin:0 0 14px;
    font-size:13px;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--muted);
}

.footer-links-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px 14px;
}

.footer-links-grid a{
    color:var(--muted);
    font-weight:600;
    transition:color .2s ease, transform .2s ease;
}

.footer-links-grid a:hover,
.footer-links-grid a.is-active{
    color:var(--text);
    transform:translateX(2px);
}

.footer-actions{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.footer-actions .btn{
    width:100%;
}

.footer-legal{
    margin:10px 0 0;
    color:var(--muted);
    font-size:12px;
    line-height:1.6;
    opacity:.92;
    max-width:420px;
}

.footer-legal-links{
    margin-top:14px;
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    font-size:13px;
}

.footer-legal-links a{
    color:var(--muted);
    transition:.2s;
}

.footer-legal-links a:hover{
    color:var(--text);
}

.admin-access{
    position:absolute;
    right: 5px;
    bottom: 6px;
    width:38px;
    height:38px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:18px;
    text-decoration:none;
    color:#fff;
    background:rgba(0,0,0,.38);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    box-shadow:0 8px 20px rgba(0,0,0,.18);
    opacity:0;
    transform:translateY(6px) scale(.85);
    pointer-events:none;
    transition:
            opacity .25s ease,
            transform .25s ease,
            background .25s ease;
}

.footer-container:hover .admin-access{
    opacity:.85;
    transform:translateY(0) scale(1);
    pointer-events:auto;
}

.admin-access:hover{
    opacity:1 !important;
    transform:translateY(0) scale(1.08) !important;
    background:rgba(0,0,0,.52);
}

/* Reveal */

.reveal{
    opacity:0;
    transform:translateY(18px);
    transition:opacity .6s ease, transform .6s ease;
}

.reveal.is-visible{
    opacity:1;
    transform:none;
}

.delay-1{
    transition-delay:.08s;
}

.delay-2{
    transition-delay:.16s;
}

.floating,
.shine{
    animation:none;
}

.count-up.is-done{
    animation:countPop .28s ease;
}

/* Animations */

@keyframes countPop{
    0%{ transform:scale(1); }
    50%{ transform:scale(1.08); }
    100%{ transform:scale(1); }
}

@keyframes shieldFloat{
    0%,100%{
        transform:translateY(0px);
    }
    50%{
        transform:translateY(-10px);
    }
}

@keyframes shieldPulse{
    0%,100%{
        transform:scale(1);
        opacity:.55;
    }
    50%{
        transform:scale(1.12);
        opacity:.9;
    }
}

@keyframes shieldAuraSpin{
    from{
        transform:rotate(0deg);
    }
    to{
        transform:rotate(360deg);
    }
}

@keyframes shieldShine{
    0%{
        left:-70%;
        opacity:0;
    }
    20%{
        opacity:.4;
    }
    50%{
        left:130%;
        opacity:0;
    }
    100%{
        left:130%;
        opacity:0;
    }
}

@keyframes shieldBreath{
    0%,100%{
        transform:scale(1);
    }
    50%{
        transform:scale(1.025);
    }
}

.page-glow{
    position:fixed;
    border-radius:999px;
    filter:blur(70px);
    pointer-events:none;
    z-index:0;
    opacity:.62;
    animation: floatGlow 8s ease-in-out infinite;
    will-change: transform;
}

.glow-1{
    animation-delay:0s;
}

.glow-2{
    animation-delay:-2s;
}

.glow-3{
    animation-delay:-4s;
}

@keyframes floatGlow{
    0%,100%{
        transform:translate3d(0,0,0) scale(1);
    }
    50%{
        transform:translate3d(40px,-50px,0) scale(1.08);
    }
}

.orbs span{
    animation: floatOrb 7s ease-in-out infinite;
    will-change: transform;
}

.orbs span:nth-child(2){
    animation-delay:-2s;
}

.orbs span:nth-child(3){
    animation-delay:-4s;
}

@keyframes floatOrb{
    0%,100%{
        transform:translate3d(0,0,0);
    }
    50%{
        transform:translate3d(18px,-24px,0);
    }
}

@media (prefers-reduced-motion: reduce){
    .page-glow,
    .orbs span,
    .logo-stage::before,
    .logo-stage::after,
    .logo-frame,
    .logo-frame img,
    .logo-frame::after,
    .reveal{
        animation:none !important;
        transition:none !important;
    }
}

/* Responsive */

@media (max-width:1100px){
    .brand-text small{
        display:none;
    }

    .menu a{
        padding:10px 12px;
        font-size:14px;
    }

    .nav-right{
        gap:12px;
    }
}

@media (max-width:1000px){
    .hero-shell,
    .showcase,
    .grid-3,
    .wide-cta{
        grid-template-columns:1fr;
    }

    .hero-stats{
        grid-template-columns:1fr 1fr;
    }

    .hero-side-cards{
        grid-template-columns:1fr;
    }

    .footer-box-v2{
        grid-template-columns:1fr;
        gap:24px;
    }

    .footer-links-grid{
        grid-template-columns:1fr 1fr;
    }

    .footer-actions{
        flex-direction:row;
        flex-wrap:wrap;
    }

    .footer-actions .btn{
        width:auto;
    }
}

@media (max-width:920px){
    .menu-toggle{
        display:inline-flex;
        margin-left:auto;
    }

    .nav-right{
        position:static;
        margin-left:0;
    }

    .menu{
        position:absolute;
        top:calc(100% + 10px);
        right:16px;
        left:16px;
        display:none;
        flex-direction:column;
        align-items:stretch;
        gap:10px;
        padding:12px;
        border-radius:20px;
        background:var(--panel-strong);
        border:1px solid var(--card-border);
        box-shadow:var(--shadow);
        z-index:120;
        backdrop-filter:blur(16px);
        -webkit-backdrop-filter:blur(16px);
    }

    .menu.is-open{
        display:flex;
    }

    .menu a{
        width:100%;
        justify-content:center;
        text-align:center;
    }

    .nav-actions{
        display:none;
    }

    .nav{
        position:relative;
    }
}

@media (max-width:640px){
    .nav{
        min-height:auto;
        padding:12px 0;
        align-items:center;
    }

    .brand{
        min-width:0;
        max-width:calc(100% - 64px);
    }

    .brand-logo{
        width:46px;
        height:46px;
    }

    .brand-text{
        font-size:15px;
    }

    .brand-text small{
        display:none;
    }

    .hero-actions,
    .cta-row{
        flex-direction:column;
        align-items:stretch;
    }

    .hero-stats{
        grid-template-columns:1fr;
    }

    .section-head h2{
        font-size:30px;
    }

    .logo-stage::after{
        animation-duration:8s;
        opacity:.22;
    }

    .logo-frame{
        animation-duration:6s;
    }

    .footer-box-v2{
        padding:22px;
    }

    .footer-brand{
        align-items:center;
    }

    .footer-brand-col strong{
        font-size:20px;
    }

    .footer-links-grid{
        grid-template-columns:1fr;
    }

    .footer-actions{
        flex-direction:column;
    }

    .footer-actions .btn{
        width:100%;
    }
}

@media (max-width:480px){
    h1{
        font-size:36px;
    }

    .logo-frame{
        width:220px;
        height:220px;
    }

    .hero-main{
        padding:24px;
    }

    .hero-side{
        padding:14px;
    }

    .card,
    .panel,
    .cta-banner,
    .quote-box{
        padding:22px;
    }
}

@media (prefers-reduced-motion: reduce){
    .logo-stage::before,
    .logo-stage::after,
    .logo-frame,
    .logo-frame img,
    .logo-frame::after,
    .reveal{
        animation:none !important;
        transition:none !important;
    }
}

/* =========================
   ADMIN
========================= */

.admin-page{
    min-height:100vh;
    padding:48px 0;
}

.admin-wrap{
    width:min(1100px, calc(100% - 32px));
    margin:0 auto;
}

.admin-auth-wrap{
    width:min(520px, calc(100% - 32px));
    margin:0 auto;
    padding-top:6vh;
}

.admin-login-card{
    text-align:center;
}

.admin-login-form-block{
    padding:24px;
    border-radius:24px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow-soft);
}

.admin-login-form-block-compact{
    text-align:left;
}

.admin-login-badge{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 12px;
    border-radius:999px;
    margin-bottom:16px;
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
    color:var(--muted);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.12em;
    font-weight:700;
}

.admin-card{
    background:var(--panel-strong);
    border:1px solid var(--card-border);
    border-radius:28px;
    box-shadow:var(--shadow);
    padding:28px;
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
}

.admin-title{
    margin:0 0 8px;
    font-size:32px;
    line-height:1.05;
    letter-spacing:-0.03em;
}

.admin-subtitle{
    margin:0 0 22px;
    color:var(--muted);
    line-height:1.6;
}

.admin-topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:22px;
}

.admin-topbar-left h1{
    margin:0 0 6px;
    font-size:32px;
    line-height:1.05;
}

.admin-topbar-left p{
    margin:0;
    color:var(--muted);
}

.admin-brand{
    display:flex;
    align-items:center;
    gap:14px;
}

.admin-brand-center{
    justify-content:center;
    margin-bottom:18px;
}

.admin-brand h1{
    margin:0 0 4px;
    font-size:30px;
    line-height:1.05;
}

.admin-brand p{
    margin:0;
    color:var(--muted);
}

.admin-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}

.admin-field{
    margin-bottom:16px;
}

.admin-field label{
    display:block;
    margin-bottom:8px;
    font-weight:700;
    color:var(--text);
}

.admin-input,
.admin-textarea{
    width:100%;
    border-radius:16px;
    border:1px solid var(--line-soft);
    background:var(--pill-bg);
    color:var(--text);
    padding:14px 16px;
    font:inherit;
    outline:none;
    transition:border-color .2s ease, box-shadow .2s ease;
}

.admin-input:focus,
.admin-textarea:focus{
    border-color:rgba(122,104,242,.45);
    box-shadow:0 0 0 4px rgba(122,104,242,.12);
}

.admin-password-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
    align-items:center;
}

.admin-password-toggle{
    min-width:110px;
}

.admin-textarea{
    min-height:130px;
    resize:vertical;
}

.admin-actions{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:10px;
}

.admin-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:0 18px;
    border:none;
    border-radius:16px;
    font-weight:700;
    font:inherit;
    cursor:pointer;
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.admin-btn:hover{
    transform:translateY(-2px);
}

.admin-btn-primary{
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    color:#fff;
    box-shadow:0 16px 36px rgba(90,70,214,.28);
}

.admin-btn-secondary{
    background:var(--pill-bg);
    color:var(--text);
    border:1px solid var(--line-soft);
}

.admin-alert{
    margin-bottom:16px;
    padding:14px 16px;
    border-radius:16px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
    color:var(--text);
}

.admin-alert-success{
    border-color:rgba(34,197,94,.25);
}

.admin-alert-error{
    border-color:rgba(239,68,68,.25);
}

.admin-save-status{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:18px;
    padding:14px 16px;
    border-radius:16px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
    color:var(--muted);
    transition:border-color .2s ease, color .2s ease, box-shadow .2s ease;
}

.admin-save-status.is-hidden{
    opacity:0;
    transform:translateY(-6px);
    margin:0;
    padding-top:0;
    padding-bottom:0;
    max-height:0;
    overflow:hidden;
    border-width:0;
    pointer-events:none;
}

.admin-save-dot{
    width:10px;
    height:10px;
    border-radius:999px;
    background:currentColor;
    opacity:.9;
    flex-shrink:0;
}

.admin-save-status.is-dirty{
    color:#d97706;
    border-color:rgba(217,119,6,.28);
}

.admin-save-status.is-saving{
    color:#2563eb;
    border-color:rgba(37,99,235,.28);
}

.admin-save-status.is-saving .admin-save-dot{
    animation:adminPulse 1s ease-in-out infinite;
}

.admin-save-status.is-success{
    color:#16a34a;
    border-color:rgba(22,163,74,.28);
}

.admin-save-status.is-error{
    color:#dc2626;
    border-color:rgba(220,38,38,.28);
}

.admin-stats-bar{
    display:grid;
    grid-template-columns:repeat(5, 1fr);
    gap:14px;
    margin-bottom:20px;
}

.admin-stat-box{
    padding:16px;
    border-radius:18px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow-soft);
    text-align:center;
}

.admin-stat-box span{
    display:block;
    font-size:12px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:6px;
}

.admin-stat-box strong{
    display:block;
    font-size:28px;
    line-height:1;
    letter-spacing:-0.04em;
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.admin-footer-link{
    margin-top:16px;
    text-align:center;
}

.admin-footer-link a{
    color:var(--muted);
}

.menu-ecurie{
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.menu-ecurie img{
    width:22px;
    height:22px;
    object-fit:contain;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,.3));
}

.admin-overview-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:18px;
    margin-bottom:18px;
}

.admin-panel-card{
    margin-bottom:18px;
}

.admin-card-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}

.admin-kicker{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    font-weight:700;
}

.admin-section-title{
    margin:0;
    font-size:24px;
    line-height:1.1;
}

.admin-alert-grid{
    display:grid;
    gap:12px;
    margin-bottom:18px;
}

.admin-inline-alert{
    padding:16px 18px;
    border-radius:18px;
    border:1px solid var(--card-border);
    background:var(--panel-soft);
    box-shadow:var(--shadow-soft);
}

.admin-inline-alert strong{
    display:block;
    margin-bottom:4px;
}

.admin-inline-alert p{
    margin:0;
    color:var(--muted);
    line-height:1.6;
}

.admin-inline-alert.tone-warning{
    border-color:rgba(217,119,6,.24);
}

.admin-inline-alert.tone-neutral{
    border-color:rgba(148,163,184,.24);
}

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

.admin-summary-item{
    padding:16px;
    border-radius:18px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
}

.admin-summary-item span{
    display:block;
    margin-bottom:8px;
    color:var(--muted);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:700;
}

.admin-summary-item strong{
    display:block;
    font-size:18px;
    line-height:1.4;
}

.admin-performance-list{
    display:grid;
    gap:12px;
}

.admin-performance-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px;
    border-radius:18px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
}

.admin-performance-row span{
    color:var(--muted);
}

.admin-performance-row strong{
    font-size:22px;
    line-height:1;
}

.admin-performance-row small{
    display:block;
    margin-top:6px;
    color:var(--muted);
    font-size:12px;
    font-weight:600;
    text-align:right;
}

.admin-chip-row{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.admin-chip{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 12px;
    border-radius:999px;
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
    color:var(--muted);
    font-size:13px;
    font-weight:700;
}

.admin-chip.is-active{
    color:var(--text);
    border-color:rgba(122,104,242,.32);
}

.admin-kpi-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:14px;
}

.admin-kpi-card{
    padding:18px;
    border-radius:20px;
    background:var(--panel-soft);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow-soft);
}

.admin-kpi-card span{
    display:block;
    margin-bottom:10px;
    color:var(--muted);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.1em;
    font-weight:700;
}

.admin-kpi-card strong{
    display:block;
    margin-bottom:6px;
    font-size:34px;
    line-height:1;
    letter-spacing:-0.04em;
}

.admin-kpi-card small{
    color:var(--muted);
    line-height:1.5;
}

.admin-filters{
    display:grid;
    grid-template-columns:180px 180px minmax(220px, 1fr) auto;
    gap:14px;
    margin-bottom:18px;
}

.admin-filter-group label{
    display:block;
    margin-bottom:8px;
    font-weight:700;
}

.admin-filter-group-search{
    min-width:0;
}

.admin-filter-actions{
    display:flex;
    align-items:flex-end;
    gap:10px;
}

.admin-table-wrap{
    overflow-x:auto;
    border-radius:20px;
    border:1px solid var(--card-border);
    background:var(--panel-soft);
}

.admin-table{
    width:100%;
    border-collapse:collapse;
}

.admin-table th,
.admin-table td{
    padding:14px 16px;
    text-align:left;
    vertical-align:top;
}

.admin-table th{
    color:var(--muted);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.1em;
}

.admin-table tbody tr + tr td{
    border-top:1px solid var(--line-soft);
}

.admin-agent strong{
    display:block;
    margin-bottom:4px;
    font-size:14px;
}

.admin-agent span{
    display:block;
    color:var(--muted);
    font-size:12px;
    line-height:1.5;
}

.admin-badge{
    display:inline-flex;
    align-items:center;
    min-height:28px;
    padding:0 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:700;
}

.admin-badge.is-human{
    background:rgba(34,197,94,.12);
    color:#16a34a;
}

.admin-badge.is-bot{
    background:rgba(245,158,11,.12);
    color:#d97706;
}

.admin-table-empty{
    color:var(--muted);
    text-align:center !important;
}

.admin-pagination{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:18px;
}

.admin-pagination-label{
    color:var(--muted);
    font-weight:700;
}

@keyframes adminPulse{
    0%, 100%{
        transform:scale(1);
        opacity:.55;
    }
    50%{
        transform:scale(1.35);
        opacity:1;
    }
}

@media (max-width:820px){
    .admin-grid{
        grid-template-columns:1fr;
    }

    .admin-overview-grid,
    .admin-kpi-grid,
    .admin-summary-grid,
    .admin-filters{
        grid-template-columns:1fr;
    }

    .admin-topbar{
        flex-direction:column;
        align-items:flex-start;
    }

    .admin-stats-bar{
        grid-template-columns:1fr;
    }

    .admin-card-head,
    .admin-pagination{
        flex-direction:column;
        align-items:flex-start;
    }

    .admin-filter-actions{
        align-items:stretch;
        flex-wrap:wrap;
    }
}



/* =========================
   THEME AUTOMNE SAHARASH
   Ambiance foret, taverne, feuilles, donjons et parchemin chaud.
   Version propre : pas de body::before/body::after, donc pas d'espace vide en haut.
========================= */

:root{
    --bg-page:#f3ead8;
    --text:#332315;
    --muted:#79624a;
    --primary:#d97706;
    --primary2:#f2a93b;
    --primary3:#8b5a2b;
    --max:1180px;
    --radius:24px;
    --radius-lg:34px;
    --discord:#5865f2;
    --discord-hover:#4752c4;

    --nav-bg:rgba(243,234,216,.88);
    --nav-border:rgba(139,90,43,.20);
    --card-border:rgba(139,90,43,.20);
    --card-bg:linear-gradient(180deg, rgba(255,248,232,.88), rgba(237,219,184,.76));
    --card-hover-border:rgba(217,119,6,.45);
    --card-hover-shadow:rgba(139,90,43,.18);

    --panel:linear-gradient(180deg, rgba(255,248,232,.86), rgba(237,219,184,.72));
    --panel-soft:rgba(250,238,214,.74);
    --panel-strong:rgba(255,247,230,.86);
    --pill-bg:rgba(255,241,214,.74);
    --line-soft:rgba(139,90,43,.18);

    --hero-main-bg:
            radial-gradient(circle at 16% 12%, rgba(217,119,6,.22), transparent 34%),
            radial-gradient(circle at 88% 10%, rgba(242,169,59,.14), transparent 32%),
            radial-gradient(circle at 52% 100%, rgba(139,90,43,.12), transparent 38%),
            linear-gradient(135deg, rgba(255,248,232,.94), rgba(239,218,181,.78));

    --hero-side-bg:
            radial-gradient(circle at 50% 8%, rgba(139,90,43,.18), transparent 36%),
            linear-gradient(160deg, rgba(255,247,230,.92), rgba(233,207,166,.78));

    --logo-stage-bg:
            radial-gradient(circle at center, rgba(242,169,59,.20), transparent 60%),
            linear-gradient(135deg, rgba(255,247,230,.95), rgba(235,211,171,.82));

    --logo-frame-bg:linear-gradient(145deg, rgba(255,248,232,.96), rgba(225,189,134,.84));

    --cta-bg:
            radial-gradient(circle at 20% 20%, rgba(217,119,6,.20), transparent 32%),
            radial-gradient(circle at 90% 15%, rgba(139,90,43,.14), transparent 34%),
            linear-gradient(135deg, rgba(255,247,230,.92), rgba(235,207,163,.80));

    --quote-bg:linear-gradient(145deg, rgba(255,247,230,.90), rgba(231,205,164,.70));
    --footer-bg:rgba(255,247,230,.78);

    --shadow:0 20px 50px rgba(111,72,35,.12);
    --shadow-soft:0 11px 26px rgba(111,72,35,.09);
    --step-color:rgba(217,119,6,.10);
}

html[data-theme="dark"]{
    --bg-page:#1a1008;
    --text:#fff1cf;
    --muted:#d9b982;
    --primary:#f59e0b;
    --primary2:#f97316;
    --primary3:#b45309;

    --nav-bg:rgba(26,16,8,.80);
    --nav-border:rgba(245,158,11,.24);
    --card-border:rgba(245,158,11,.22);
    --card-bg:linear-gradient(180deg, rgba(55,31,12,.84), rgba(31,20,11,.82));
    --card-hover-border:rgba(249,115,22,.52);
    --card-hover-shadow:rgba(249,115,22,.20);

    --panel:linear-gradient(180deg, rgba(48,28,11,.86), rgba(28,18,10,.84));
    --panel-soft:rgba(255,204,128,.08);
    --panel-strong:rgba(38,24,11,.88);
    --pill-bg:rgba(255,204,128,.09);
    --line-soft:rgba(245,158,11,.18);

    --hero-main-bg:
            radial-gradient(circle at 18% 10%, rgba(245,158,11,.20), transparent 34%),
            radial-gradient(circle at 88% 12%, rgba(249,115,22,.14), transparent 30%),
            radial-gradient(circle at 55% 100%, rgba(120,53,15,.18), transparent 38%),
            linear-gradient(145deg, rgba(48,28,11,.92), rgba(26,16,8,.90));

    --hero-side-bg:
            radial-gradient(circle at 45% 5%, rgba(249,115,22,.16), transparent 36%),
            linear-gradient(160deg, rgba(48,28,11,.90), rgba(26,16,8,.88));

    --logo-stage-bg:
            radial-gradient(circle at 50% 42%, rgba(245,158,11,.20), transparent 44%),
            linear-gradient(180deg, rgba(48,28,11,.88), rgba(26,16,8,.86));

    --logo-frame-bg:linear-gradient(145deg, rgba(72,38,13,.94), rgba(39,25,12,.90));

    --cta-bg:
            radial-gradient(circle at 22% 18%, rgba(245,158,11,.18), transparent 32%),
            linear-gradient(135deg, rgba(54,31,12,.92), rgba(31,20,11,.88));

    --quote-bg:linear-gradient(145deg, rgba(48,28,11,.88), rgba(69,34,13,.46));
    --footer-bg:rgba(31,20,11,.84);
    --shadow:0 24px 70px rgba(0,0,0,.36);
    --shadow-soft:0 14px 34px rgba(0,0,0,.25);
    --step-color:rgba(245,158,11,.13);
}

body{
    background:
            radial-gradient(circle at top left, rgba(217,119,6,.18), transparent 34%),
            radial-gradient(circle at top right, rgba(242,169,59,.16), transparent 38%),
            radial-gradient(circle at bottom center, rgba(139,90,43,.12), transparent 42%),
            linear-gradient(180deg, #f7efdf, #ead9bb 55%, #f7efdf);
}

html[data-theme="dark"] body{
    background:
            radial-gradient(circle at top left, rgba(245,158,11,.16), transparent 34%),
            radial-gradient(circle at top right, rgba(249,115,22,.12), transparent 38%),
            radial-gradient(circle at bottom center, rgba(120,53,15,.16), transparent 42%),
            linear-gradient(180deg, var(--bg-page), #251509 55%, var(--bg-page));
}

/* Lumieres automne */
.page-glow{
    filter:blur(76px);
    opacity:.44;
}

.glow-1,
html[data-theme="dark"] .glow-1{
    background:rgba(217,119,6,.30);
}

.glow-2,
html[data-theme="dark"] .glow-2{
    background:rgba(242,169,59,.24);
}

.glow-3,
html[data-theme="dark"] .glow-3{
    background:rgba(139,90,43,.22);
}

.orbs span:nth-child(1),
html[data-theme="dark"] .orbs span:nth-child(1){
    background:rgba(217,119,6,.24);
}

.orbs span:nth-child(2),
html[data-theme="dark"] .orbs span:nth-child(2){
    background:rgba(242,169,59,.20);
}

.orbs span:nth-child(3),
html[data-theme="dark"] .orbs span:nth-child(3){
    background:rgba(139,90,43,.18);
}

.nav-wrap{
    box-shadow:0 8px 26px rgba(111,72,35,.08);
}

.brand-logo,
html[data-theme="dark"] .brand-logo{
    background:linear-gradient(135deg, rgba(242,169,59,.40), rgba(139,90,43,.22));
    box-shadow:0 12px 28px rgba(139,90,43,.20);
}

.footer-brand-col .mark,
html[data-theme="dark"] .footer-brand-col .mark{
    background:linear-gradient(135deg, rgba(242,169,59,.24), rgba(139,90,43,.14));
}

.menu a:hover,
.menu a.is-active,
.footer-links-grid a.is-active{
    background:rgba(217,119,6,.16);
    color:var(--text);
}

.menu-ecurie{
    background:linear-gradient(180deg,#c47a2c,#7a431d);
    border-color:rgba(242,169,59,.58);
    box-shadow:0 10px 22px rgba(111,72,35,.30), inset 0 1px 0 rgba(255,224,160,.34);
}

.menu-ecurie:hover{
    background:linear-gradient(180deg,#e59b3c,#9a541f);
}

.btn-primary,
.admin-btn-primary{
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    color:#2f1f12;
    box-shadow:0 15px 34px rgba(217,119,6,.25);
}

html[data-theme="dark"] .btn-primary,
html[data-theme="dark"] .admin-btn-primary{
    color:#241509;
    box-shadow:0 16px 38px rgba(249,115,22,.22);
}

.btn-secondary,
.admin-btn-secondary{
    background:rgba(255,246,226,.62);
    border-color:rgba(139,90,43,.22);
}

html[data-theme="dark"] .btn-secondary,
html[data-theme="dark"] .admin-btn-secondary{
    background:rgba(255,204,128,.08);
}

/* Panneaux */
.hero-main,
.hero-side,
.card,
.panel,
.cta-banner,
.quote-box,
.footer-box-v2,
.admin-card{
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
}

.hero-main,
.hero-side{
    position:relative;
    overflow:hidden;
}

.hero-main::after{
    content:"🍂";
    position:absolute;
    right:24px;
    top:18px;
    font-size:78px;
    opacity:.13;
    pointer-events:none;
    transform:rotate(12deg);
}

.hero-side::after{
    content:"🍁";
    position:absolute;
    right:18px;
    bottom:12px;
    font-size:72px;
    opacity:.13;
    pointer-events:none;
}

/* Feuilles legeres dans le hero */
.hero::before{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:0;
    opacity:.30;
    background-image:
            radial-gradient(ellipse, rgba(217,119,6,.55) 0 1px, transparent 3px),
            radial-gradient(ellipse, rgba(242,169,59,.48) 0 1px, transparent 3px),
            radial-gradient(ellipse, rgba(139,90,43,.38) 0 1px, transparent 3px);
    background-size:190px 190px, 280px 280px, 360px 360px;
    animation:autumnLeaves 34s linear infinite;
}

@keyframes autumnLeaves{
    from{ background-position:0 -180px, 60px -120px, 130px -240px; }
    to{ background-position:70px 240px, -20px 280px, 180px 340px; }
}

.gradient,
.stat-number strong,
.admin-stat-box strong{
    background:linear-gradient(135deg, var(--primary2), var(--primary) 48%, var(--primary3));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.icon,
html[data-theme="dark"] .icon{
    background:linear-gradient(135deg, rgba(242,169,59,.34), rgba(217,119,6,.18), rgba(139,90,43,.12));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.30);
}

.logo-stage::before,
html[data-theme="dark"] .logo-stage::before{
    background:radial-gradient(circle, rgba(242,169,59,.36) 0%, rgba(217,119,6,.15) 44%, transparent 72%);
}

.logo-stage::after{
    background:conic-gradient(from 0deg, transparent 0deg, rgba(255,255,255,.26) 36deg, rgba(242,169,59,.15) 58deg, transparent 88deg, transparent 360deg);
}

.logo-frame::after{
    background:linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);
}

/* Cartes plus vivantes */
.card,
.mini-card,
.stat,
.admin-kpi-card,
.admin-summary-item{
    transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}

.card:hover,
.mini-card:hover,
.stat:hover,
.admin-kpi-card:hover,
.admin-summary-item:hover{
    transform:translateY(-4px);
    border-color:var(--card-hover-border);
    box-shadow:0 18px 38px var(--card-hover-shadow);
}

.card{
    position:relative;
    overflow:hidden;
}

.card::after{
    content:"";
    position:absolute;
    inset:0;
    border-radius:inherit;
    pointer-events:none;
    background:linear-gradient(120deg, transparent, rgba(255,238,200,.12), transparent);
    transform:translateX(-120%);
    transition:1s ease;
}

.card:hover::after{
    transform:translateX(120%);
}

.footer::before{
    background:linear-gradient(90deg, transparent, var(--primary3), var(--primary), var(--primary2), transparent);
    opacity:.34;
}

.admin-input:focus,
.admin-textarea:focus{
    border-color:rgba(217,119,6,.42);
    box-shadow:0 0 0 4px rgba(242,169,59,.15);
}

/* Mode clair automne chaud */
html:not([data-theme="dark"]) .hero-main,
html:not([data-theme="dark"]) .hero-side,
html:not([data-theme="dark"]) .card,
html:not([data-theme="dark"]) .panel,
html:not([data-theme="dark"]) .cta-banner,
html:not([data-theme="dark"]) .quote-box,
html:not([data-theme="dark"]) .footer-box-v2,
html:not([data-theme="dark"]) .admin-card,
html:not([data-theme="dark"]) .mini-card,
html:not([data-theme="dark"]) .stat,
html:not([data-theme="dark"]) .admin-kpi-card,
html:not([data-theme="dark"]) .admin-summary-item,
html:not([data-theme="dark"]) .admin-stat-box{
    border-color:rgba(139,90,43,.18);
    box-shadow:
            0 10px 30px rgba(111,72,35,.09),
            0 2px 6px rgba(111,72,35,.04);
}

html:not([data-theme="dark"]) .menu a:hover,
html:not([data-theme="dark"]) .menu a.is-active,
html:not([data-theme="dark"]) .footer-links-grid a.is-active{
    background:rgba(217,119,6,.12);
}

html:not([data-theme="dark"]) .list li,
html:not([data-theme="dark"]) .admin-input,
html:not([data-theme="dark"]) .admin-textarea,
html:not([data-theme="dark"]) .admin-chip{
    background:rgba(255,242,220,.74);
    border-color:rgba(139,90,43,.16);
}

/* Mobile */
@media (max-width:920px){
    .menu{
        top:calc(100% + 8px);
    }

    .menu a{
        padding:14px 16px;
        border-radius:16px;
        background:var(--pill-bg);
        border:1px solid var(--line-soft);
    }
}

@media (max-width:640px){
    .hero-main::after,
    .hero-side::after{
        font-size:54px;
        opacity:.10;
    }

    .hero::before{
        opacity:.20;
    }
}

/* Accessibilite mouvement */
@media (prefers-reduced-motion: reduce){
    .hero::before,
    .page-glow,
    .orbs span,
    .logo-stage::before,
    .logo-stage::after,
    .logo-frame,
    .logo-frame img,
    .logo-frame::after,
    .reveal{
        animation:none !important;
        transition:none !important;
    }
}


/* =========================================================
   SAHARASH AUTOMNE - FEUILLES QUI TOMBENT
   Ajoute dans ton HTML juste apres <body> :
   <div class="falling-leaves"><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span></div>
========================================================= */

.falling-leaves{
    position:fixed;
    inset:0;
    overflow:hidden;
    pointer-events:none;
    z-index:0;
}

.falling-leaves span{
    position:absolute;
    top:-120px;
    width:22px;
    height:22px;
    opacity:.72;
    background:radial-gradient(circle at 30% 28%, #ffe0a3 0%, #e59b3c 38%, #b45309 100%);
    border-radius:65% 8% 65% 8%;
    box-shadow:0 0 14px rgba(217,119,6,.22);
    animation:fallingLeaf linear infinite;
    transform-origin:center center;
}

.falling-leaves span::after{
    content:"";
    position:absolute;
    left:50%;
    top:2px;
    width:2px;
    height:18px;
    border-radius:999px;
    background:rgba(88,49,18,.42);
    transform:translateX(-50%) rotate(-8deg);
}

.falling-leaves span:nth-child(odd){
    background:radial-gradient(circle at 30% 28%, #ffd38a 0%, #d97706 42%, #92400e 100%);
}

.falling-leaves span:nth-child(3n){
    width:18px;
    height:18px;
    opacity:.58;
    background:radial-gradient(circle at 30% 28%, #ffe8b8 0%, #f59e0b 42%, #7c2d12 100%);
}

.falling-leaves span:nth-child(1){ left:4%; animation-duration:19s; animation-delay:-1s; }
.falling-leaves span:nth-child(2){ left:12%; animation-duration:24s; animation-delay:-7s; }
.falling-leaves span:nth-child(3){ left:21%; animation-duration:18s; animation-delay:-4s; }
.falling-leaves span:nth-child(4){ left:30%; animation-duration:27s; animation-delay:-13s; }
.falling-leaves span:nth-child(5){ left:39%; animation-duration:20s; animation-delay:-9s; }
.falling-leaves span:nth-child(6){ left:48%; animation-duration:25s; animation-delay:-15s; }
.falling-leaves span:nth-child(7){ left:57%; animation-duration:18s; animation-delay:-5s; }
.falling-leaves span:nth-child(8){ left:66%; animation-duration:28s; animation-delay:-18s; }
.falling-leaves span:nth-child(9){ left:74%; animation-duration:21s; animation-delay:-8s; }
.falling-leaves span:nth-child(10){ left:82%; animation-duration:26s; animation-delay:-12s; }
.falling-leaves span:nth-child(11){ left:90%; animation-duration:22s; animation-delay:-6s; }
.falling-leaves span:nth-child(12){ left:97%; animation-duration:30s; animation-delay:-20s; }

@keyframes fallingLeaf{
    0%{
        transform:translate3d(0,-130px,0) rotate(0deg) scale(.78);
        opacity:0;
    }
    10%{ opacity:.72; }
    28%{
        transform:translate3d(46px,28vh,0) rotate(115deg) scale(1);
    }
    52%{
        transform:translate3d(-38px,56vh,0) rotate(225deg) scale(.9);
    }
    78%{
        transform:translate3d(42px,84vh,0) rotate(320deg) scale(1.02);
    }
    100%{
        transform:translate3d(-28px,115vh,0) rotate(430deg) scale(.78);
        opacity:0;
    }
}

html[data-theme="dark"] .falling-leaves span{
    opacity:.50;
    filter:drop-shadow(0 0 6px rgba(249,115,22,.20));
}

main,
header,
footer{
    position:relative;
    z-index:1;
}

@media (max-width:640px){
    .falling-leaves span{
        width:16px;
        height:16px;
        opacity:.48;
    }

    .falling-leaves span:nth-child(n+8){
        display:none;
    }
}

@media (prefers-reduced-motion: reduce){
    .falling-leaves span{
        animation:none !important;
        display:none;
    }
}

/* RAID PAGE */
.mini-card-bot{
    padding:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:180px;
}

.mini-card-bot img{
    width:min(100%, 220px);
    height:auto;
    filter:drop-shadow(0 14px 28px rgba(63,26,135,.28));
}

.card-inline-action{
    margin-top:18px;
}

.raid-hero .hero-main{
    min-height:auto;
}

.raid-stats .stat strong{
    font-size:18px;
}

.raid-calendar-summary{
    margin-bottom:18px;
}

.raid-month-panel{
    margin-bottom:22px;
}

.raid-month-head{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
}

.raid-month-head span{
    display:block;
    font-size:12px;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--muted);
    font-weight:800;
}

.raid-month-head h3{
    margin:6px 0 0;
    font-size:28px;
}

.raid-month-head p{
    max-width:420px;
    text-align:right;
}

.raid-month-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    justify-content:flex-end;
}

.raid-month-nav{
    min-height:44px;
}

.raid-month-grid{
    display:grid;
    grid-template-columns:repeat(7, minmax(0,1fr));
    gap:10px;
}

.raid-month-weekdays{
    margin-bottom:10px;
}

.raid-month-weekdays span{
    padding:0 8px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
}

.raid-day{
    min-height:118px;
    padding:12px;
    border-radius:18px;
    border:1px solid var(--line-soft);
    background:var(--pill-bg);
    display:grid;
    align-content:start;
    gap:8px;
}

.raid-day.is-outside{
    opacity:.45;
}

.raid-day.is-today{
    background:linear-gradient(180deg, rgba(138,121,255,.16), rgba(90,70,214,.10)), var(--pill-bg);
    border-color:rgba(138,121,255,.42);
    box-shadow:0 0 0 2px rgba(138,121,255,.34) inset, 0 14px 30px rgba(90,70,214,.12);
}

.raid-day.is-today .raid-day-head strong{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:32px;
    height:32px;
    padding:0 8px;
    border-radius:999px;
    background:linear-gradient(135deg, rgba(90,70,214,.95), rgba(138,121,255,.85));
    color:#fff;
    box-shadow:0 8px 18px rgba(90,70,214,.22);
}

.raid-day.has-finished-only{
    background:linear-gradient(180deg, rgba(148,163,184,.08), rgba(100,116,139,.06)), var(--pill-bg);
    border-color:rgba(148,163,184,.20);
}

.raid-day.is-today.has-finished-only{
    background:linear-gradient(180deg, rgba(148,163,184,.18), rgba(100,116,139,.12)), var(--pill-bg);
    border-color:rgba(138,121,255,.42);
    box-shadow:0 0 0 1px rgba(148,163,184,.18) inset, 0 0 0 3px rgba(138,121,255,.18), 0 12px 28px rgba(15,23,42,.12);
}

.raid-day.is-today.has-finished-only .raid-day-head strong{
    background:linear-gradient(135deg, rgba(90,70,214,.92), rgba(148,163,184,.88));
    color:#fff;
    box-shadow:0 8px 18px rgba(90,70,214,.18);
}

.raid-day-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.raid-day-head strong{
    font-size:15px;
}

.raid-day-head span{
    font-size:11px;
    color:var(--muted);
}

.raid-day-chip{
    padding:8px 9px;
    border-radius:12px;
    background:rgba(90,70,214,.10);
    border:1px solid rgba(138,121,255,.16);
    display:grid;
    gap:2px;
    transition:transform .2s ease, border-color .2s ease, background .2s ease;
}

.raid-day-chip-meta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}

.raid-day-chip b{
    font-size:11px;
}

.raid-day-chip-status{
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:currentColor;
    opacity:.82;
    margin-left:auto;
    text-align:right;
}

.raid-day-chip span{
    font-size:12px;
    line-height:1.35;
}

.raid-day-chip.is-live{
    background:rgba(217,95,61,.14);
    border-color:rgba(255,143,90,.24);
}

.raid-day-chip.is-finished{
    background:rgba(148,163,184,.16);
    border-color:rgba(148,163,184,.30);
    color:var(--text);
}

.raid-day-chip.is-cancelled{
    background:rgba(100,116,139,.12);
    border-color:rgba(100,116,139,.24);
    color:var(--muted);
    opacity:.82;
}

.raid-day.has-many-raids .raid-day-head span{
    font-size:10px;
}

.raid-day.has-many-raids .raid-day-chip{
    padding:7px 8px;
    gap:1px;
    border-radius:10px;
}

.raid-day.has-many-raids .raid-day-chip b{
    font-size:10px;
}

.raid-day.has-many-raids .raid-day-chip span{
    font-size:11px;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.raid-day.has-three-raids .raid-day-chip{
    padding:6px 7px;
}

.raid-day.has-three-raids .raid-day-chip span{
    font-size:10px;
    line-height:1.15;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}


.raid-day-chip:hover{
    transform:translateY(-1px);
    border-color:rgba(138,121,255,.32);
}

.raid-calendar-group{
    display:grid;
    gap:22px;
}

.raid-calendar-grid{
    margin-top:-6px;
}

.raid-card-detailed{
    display:grid;
    gap:0;
}

.raid-card{
    position:relative;
    overflow:hidden;
}

.raid-card::after{
    content:"";
    position:absolute;
    inset:auto 0 0 0;
    height:3px;
    background:linear-gradient(90deg, rgba(90,70,214,.18), rgba(138,121,255,.5), rgba(90,70,214,.18));
}

.raid-card-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}

.raid-status-badge{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:0 12px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    border:1px solid var(--line-soft);
    background:var(--pill-bg);
}

.raid-status-badge.is-live{
    color:#fff;
    background:linear-gradient(135deg, #d95f3d, #ff8f5a);
    border-color:rgba(255,143,90,.42);
}

.raid-status-badge.is-open{
    color:#fff;
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    border-color:rgba(138,121,255,.38);
}

.raid-status-badge.is-full{
    color:#fff;
    background:linear-gradient(135deg, #55657d, #7e90ab);
    border-color:rgba(126,144,171,.38);
}

.raid-status-badge.is-closed,
.raid-status-badge.is-finished,
.raid-status-badge.is-cancelled{
    color:var(--text);
    background:var(--pill-bg);
}

.raid-date{
    font-size:13px;
    color:var(--muted);
    text-align:right;
    line-height:1.5;
}

.raid-metrics{
    margin-top:18px;
    display:grid;
    gap:10px;
}

.raid-metrics p{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin:0;
    padding:10px 0;
    font-size:14px;
    border-bottom:1px solid rgba(255,255,255,0.06);
}

.raid-metrics p:last-child{
    padding-bottom:0;
    border-bottom:none;
}

.raid-progress{
    margin-top:18px;
    width:100%;
    height:10px;
    border-radius:999px;
    background:rgba(255,255,255,.08);
    overflow:hidden;
    border:1px solid var(--line-soft);
}

.raid-progress span{
    display:block;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg, var(--primary), var(--primary2));
}

.raid-empty-state{
    text-align:center;
}

.raid-roster{
    margin-top:20px;
    padding-top:18px;
    border-top:1px solid var(--line-soft);
}

.raid-roster h4{
    margin:0 0 14px;
    font-size:16px;
}

.raid-roster-list{
    display:grid;
    gap:10px;
}

.raid-player{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    border-radius:14px;
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
}

.raid-player strong{
    display:block;
    font-size:14px;
    margin-bottom:4px;
}

.raid-player small{
    display:block;
    color:var(--muted);
    font-size:12px;
    line-height:1.4;
}

.raid-player-state{
    flex-shrink:0;
    padding:6px 10px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    background:rgba(90,70,214,.12);
    border:1px solid rgba(138,121,255,.24);
}

.raid-player-state.is-confirmed{
    color:#0f3f22;
    background:rgba(88,214,141,.42);
    border-color:rgba(31,163,89,.58);
}

.raid-player-state.is-backup{
    color:#5a3200;
    background:rgba(255,191,95,.45);
    border-color:rgba(232,145,28,.60);
}

.raid-roster-empty{
    color:var(--muted);
}

@media (max-width:1000px){
    .raid-month-head{
        align-items:start;
        flex-direction:column;
    }

    .raid-month-head p{
        text-align:left;
    }
}

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

    .raid-month-weekdays{
        display:none;
    }

    .raid-day{
        min-height:auto;
    }

    .raid-player{
        align-items:flex-start;
        flex-direction:column;
    }
}

/* RAID CARD POLISH */
.raid-headline{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:14px;
}

.raid-description{
    margin-top:8px !important;
}

.raid-capacity{
    min-width:132px;
    padding:14px 16px;
    border-radius:18px;
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
    text-align:center;
    box-shadow:var(--shadow-soft);
}

.raid-capacity strong{
    display:block;
    font-size:26px;
    line-height:1;
    letter-spacing:-.04em;
    margin-bottom:8px;
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}

.raid-capacity span{
    display:block;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
}

.raid-metric-grid{
    margin-top:18px;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
    gap:12px;
}

.raid-metric-card{
    padding:14px 16px;
    border-radius:18px;
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
}

.raid-metric-card span{
    display:block;
    margin-bottom:8px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
}

.raid-metric-card strong{
    display:block;
    font-size:22px;
    line-height:1.1;
}

.raid-metric-card.is-leader{
    background:linear-gradient(135deg, rgba(90,70,214,.24), rgba(138,121,255,.16));
    border-color:rgba(138,121,255,.32);
    box-shadow:0 10px 24px rgba(90,70,214,.10);
}

.raid-metric-card.is-leader strong{
    font-size:18px;
}

.raid-leader-card{
    margin-top:18px;
    padding:14px 16px;
    border-radius:18px;
    background:linear-gradient(135deg, rgba(90,70,214,.14), rgba(138,121,255,.10));
    border:1px solid rgba(138,121,255,.22);
}

.raid-leader-card span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
}

.raid-leader-card strong{
    display:block;
    font-size:18px;
}

.raid-roster-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}

.raid-roster-head h4{
    margin:0;
}

.raid-roster-head small{
    color:var(--muted);
    font-size:12px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
}

.raid-player-main{
    min-width:0;
}

.raid-player-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    color:var(--muted);
    font-size:12px;
    line-height:1.4;
}

.raid-player-meta span{
    display:inline-flex;
    align-items:center;
    gap:4px;
}

.raid-player-role{
    padding:4px 8px;
    border-radius:999px;
    background:rgba(255,255,255,.06);
    border:1px solid var(--line-soft);
}

.raid-player-role.is-leader{
    color:#fff;
    background:linear-gradient(135deg, var(--primary), var(--primary2));
    border-color:rgba(138,121,255,.30);
}

@media (max-width:1000px){
    .raid-headline{
        flex-direction:column;
    }

    .raid-capacity{
        width:100%;
    }

    .raid-metric-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width:640px){
    .raid-roster-head{
        align-items:flex-start;
        flex-direction:column;
    }
}

/* RAID COMPACT MODE */
.raid-day-more{
    font-size:11px;
    font-weight:800;
    letter-spacing:.04em;
    color:var(--muted);
    padding:2px 2px 0;
}

.raid-summary{
    list-style:none;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    cursor:pointer;
}

.raid-summary::-webkit-details-marker{
    display:none;
}

.raid-summary-main{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.raid-summary-text{
    min-width:0;
}

.raid-summary-text strong{
    display:block;
    font-size:18px;
    margin-bottom:4px;
}

.raid-summary-text small{
    display:block;
    color:var(--muted);
    font-size:13px;
}

.raid-summary-side{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:0;
}

.raid-summary-pill{
    padding:8px 10px;
    border-radius:999px;
    background:var(--pill-bg);
    border:1px solid var(--line-soft);
    font-size:12px;
    font-weight:800;
}

.raid-summary-toggle{
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--muted);
}

details[open] .raid-summary-toggle{
    color:var(--text);
}

.raid-details{
    margin-top:18px;
}

@media (max-width:1000px){
    .raid-summary{
        align-items:flex-start;
        flex-direction:column;
    }

    .raid-summary-side{
        width:100%;
        justify-content:space-between;
    }
}

@media (max-width:640px){
    .raid-summary-main{
        align-items:flex-start;
        flex-direction:column;
    }
}
