@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{color-scheme:dark;--bg:#141515;--panel:#1b1c1c;--text:#eeece5;--muted:#a2a39c;--gold:#dbc18b;--line:#33352f}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--text);font:14px 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}header,main,footer{max-width:1280px;margin:auto}header{height:116px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 12px}.logo{width:190px;height:104px;object-fit:contain}nav{display:flex;gap:38px;align-items:center}nav a{color:var(--muted);font-size:13px}nav a.active{color:var(--gold)}nav a:last-child{border:1px solid #575344;padding:12px 18px;border-radius:5px}nav span{margin-left:14px;color:var(--gold)}main{padding:0 30px}.hero{display:grid;grid-template-columns:1fr 310px;gap:70px;padding:63px 0 45px;align-items:center}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--gold);margin:0 0 22px}.breadcrumb{color:var(--muted);font-size:12px;margin:0 0 23px}.breadcrumb span{margin:0 10px;color:#63645e}h1{font:500 clamp(46px,5vw,70px)/1.09 'Playfair Display',Georgia,serif;letter-spacing:-2px;margin:0 0 24px}h1 em{color:var(--gold);font-weight:500}.intro{color:#afb0a8;line-height:1.8}.season-meta{display:flex;gap:14px;align-items:center;margin-top:29px;font-size:12px}.season-meta span+span{border-left:1px solid #48483e;padding-left:14px;color:var(--muted)}.winner{background:radial-gradient(ellipse at top,#353124 0%,#20211e 65%);border:1px solid #4c4535;border-radius:8px;text-align:center;padding:26px 20px 31px}.crown{font-size:56px;color:var(--gold);line-height:1.1;margin-bottom:24px}.winner .eyebrow{font-size:9px;margin-bottom:13px}.winner h2{font:500 45px 'Playfair Display',Georgia,serif;margin:0}.winner p:not(.eyebrow){font-size:12px;color:var(--muted)}.winner-line{width:40px;height:1px;background:#706344;margin:23px auto}.winner>span{color:#aaa99e;font-size:11px;line-height:1.8}.stats{display:flex;border-block:1px solid var(--line);padding:27px 0;gap:55px;align-items:center}.stats>div{display:flex;align-items:center;gap:15px}.stats strong{font:500 35px 'Playfair Display',Georgia,serif}.stats span{font-size:9px;letter-spacing:1.2px;max-width:100px;line-height:1.7;color:var(--muted)}.stats p{margin:0 0 0 auto;color:var(--muted);font-size:12px;line-height:1.6}.stats em{font-style:normal;color:var(--gold)}.section{padding-top:56px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:28px}.section-heading .eyebrow{margin-bottom:11px}h2{font:500 33px/1.2 'Playfair Display',Georgia,serif;margin:0}h2>span{color:var(--gold)}.pill{font-size:9px;letter-spacing:1px;padding:10px 13px;border:1px solid var(--line);border-radius:30px;color:#bebfb5;white-space:nowrap}.pill i{display:inline-block;width:5px;height:5px;background:#bdcda4;border-radius:50%;margin-left:8px}.toolbar{display:flex;justify-content:space-between;gap:15px;margin-bottom:16px}.search{display:flex;align-items:center;border:1px solid var(--line);border-radius:5px;padding:8px 13px;gap:10px;background:var(--panel)}.search>span{font-size:24px;color:var(--muted)}input{background:none;border:0;color:var(--text);width:230px;outline:none;font-size:12px}input::placeholder{color:var(--muted)}.sort{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:11px}select{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:5px;padding:11px;font-size:12px}.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:7px;scrollbar-color:#69604c var(--panel)}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}thead{background:#20221f}th{font-weight:500}thead th{font-size:9px;letter-spacing:1.4px;color:var(--muted);padding:18px 20px}tbody td,tbody th{padding:16px 20px;border-top:1px solid #2b2d28}tbody td{font-size:13px}.ranking tbody tr{background:#191b19}.ranking tbody tr:nth-child(even){background:#1c1e1b}.ranking tbody tr:hover{background:#262920}.ranking .leader{background:#28291f}.rank{font:500 24px 'Playfair Display',Georgia,serif;color:#84887d}.rank.podium{color:var(--gold)}.queen{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:600}.avatar{display:grid;place-items:center;width:37px;height:37px;border-radius:50%;border:1px solid #665d44;color:#dcca9e;background:#363327;font:500 15px 'Playfair Display',Georgia,serif}.tone-2{background:#33352e;border-color:#535d49;color:#c9d1b5}.tone-3{background:#352c32;border-color:#594953;color:#d8bfcf}.tone-0{background:#2e3336;border-color:#475763;color:#bbceda}.queen-note{display:block;color:var(--gold);font-size:9px;font-weight:400;letter-spacing:.25px;margin-top:5px}.score{font-size:21px;font-weight:600!important;color:var(--gold)}.score small{font-size:9px;color:var(--muted);margin-left:6px;font-weight:400}.muted,.total{color:var(--muted)}.section-heading>.muted{font-size:11px}.total{font-size:10px}.table-note{color:var(--muted);font-size:10px;line-height:1.8;margin:14px 0}.tie-note{padding:17px 20px;background:#23241e;border:1px solid #3d3e30;border-radius:5px;color:#b8baad;font-size:11px;line-height:1.8}.tie-note>span{color:var(--gold);font-size:17px;margin-right:9px}.tie-note strong{color:#e3dfd0;font-weight:500}.track{min-width:930px}.track thead th{text-align:center;padding:15px 8px}.track th:first-child{text-align:left;width:180px;padding-left:20px;position:sticky;left:0;z-index:1;background:#20221f}.track tbody th{background:#1c1e1b;font-size:12px}.track td{padding:5px 3px}.track tbody tr{background:#191b19}.placement{display:grid;place-items:center;min-width:66px;min-height:38px;border-radius:3px;font-size:10px;font-weight:700}.WIN{background:#2623aa;color:white}.TOP2{background:#7460c3;color:white}.HIGH{background:#a8d5df;color:#153941}.SAFE{background:#dadbd7;color:#343932}.LOW{background:#f3b1c4;color:#61283b}.BOTTOM{background:#f2764e;color:#471d13}.ELIM{background:#a92230;color:white}.out{background:#292c28;color:#71756b}.finale{min-width:110px;display:grid;place-items:center;font-size:9px;min-height:38px;color:#aeb1a6;text-transform:uppercase;letter-spacing:.5px}.finale.champion{background:#dbc18b;color:#352d1a;border-radius:3px;font-weight:700}.finale.miss{color:#b7d5cb}.legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:20px}.legend>span{display:flex;align-items:center;gap:7px;font-size:9px;color:#b9bcb1}.legend i{width:8px;height:8px;border-radius:2px}.rules{display:grid;grid-template-columns:1fr 1.5fr;gap:70px;border-block:1px solid var(--line);margin:54px 0 0;padding:38px 0}.rules .eyebrow{margin-bottom:12px}.rules p{font-size:12px;color:var(--muted);line-height:1.8}.points{display:flex;justify-content:space-between;gap:10px;margin-bottom:26px}.points div{text-align:center}.points span{font-size:9px;letter-spacing:.8px;color:var(--muted);display:block}.points strong{display:block;font:500 28px 'Playfair Display',Georgia,serif;color:var(--gold);margin-top:8px}summary{font-size:11px;color:#d2d3c8;cursor:pointer;line-height:1.7}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;align-items:center;padding:30px;font-size:11px;color:var(--muted)}footer>span{color:var(--text);font-family:Georgia,serif;font-size:16px}footer p{font-size:10px}footer small{width:100%;font-size:9px;color:#8e9287}.gold{color:var(--gold)}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip:focus{display:block;padding:15px}:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.search:focus-within{outline:2px solid var(--gold)}
@media(min-width:1500px){header,main,footer{max-width:1300px}}
@media(max-width:800px){header{height:90px;padding:0 20px}.logo{width:135px;height:78px}nav{gap:18px}nav a{font-size:11px}nav a:last-child{padding:9px}main{padding:0 20px}.hero{grid-template-columns:1fr 240px;gap:20px;padding-top:38px}h1{font-size:47px}.hero .eyebrow{font-size:8px}.stats{gap:25px}.stats p{display:none}.section-heading>.muted{display:none}.rules{gap:30px}.ranking{min-width:740px}.ranking th:nth-child(2){position:sticky;left:0;background:#1c1e1b;z-index:1}.ranking thead th:nth-child(2){background:#20221f}}
@media(max-width:580px){header{height:85px}nav{gap:16px}nav a:last-child{border:0;padding:0}nav a:nth-child(2){display:none}main{padding:0 16px}.hero{display:block;padding:32px 0}.hero .eyebrow{font-size:8px;letter-spacing:1.6px}.breadcrumb{font-size:11px}h1{font-size:51px}.intro{font-size:13px}.winner{margin-top:30px;padding:21px;display:grid;grid-template-columns:55px 1fr;text-align:left;column-gap:16px}.crown{grid-row:1/4;margin:0;align-self:center;font-size:49px}.winner .eyebrow{margin:0 0 8px}.winner h2{font-size:32px}.winner p:not(.eyebrow){margin:6px 0 0}.winner-line,.winner>span{display:none}.season-meta{font-size:11px}.stats{gap:20px;justify-content:space-between;padding:22px 0}.stats>div{display:block}.stats strong{font-size:28px}.stats span{display:block;font-size:8px;margin-top:5px;max-width:100px}.section{padding-top:36px}h2{font-size:27px}.section-heading{align-items:flex-start}.section-heading .eyebrow{font-size:8px;letter-spacing:1.5px}.pill{font-size:7px;padding:8px;letter-spacing:.5px;margin-top:27px}.toolbar{flex-direction:column}.search{width:100%}input{width:100%;min-width:0}.sort{justify-content:flex-end}thead th,tbody td,tbody th{padding:14px}.queen{font-size:12px;gap:10px}.avatar{width:31px;height:31px}.ranking{min-width:680px}.tie-note{padding:12px;font-size:10px}.rules{display:block;margin-top:36px;padding:30px 0}.points{margin-top:27px}.points strong{font-size:26px}.points span{font-size:8px}footer{padding:25px 16px}footer p{margin:0}.desktop{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Portraits promotionnels : originaux conservés, cadrage uniquement en CSS. */
.avatar{position:relative;overflow:hidden;flex-shrink:0;width:46px;height:46px}
.avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%}
.avatar img[hidden],.winner-photo[hidden]{display:none}
.winner-portrait{position:relative;width:156px;height:195px;margin:0 auto 22px;border-radius:80px 80px 8px 8px;overflow:hidden;border:1px solid #8e7850;background:#353124;display:grid;place-items:center}
.winner-portrait .crown{margin:0}
.winner-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
footer small a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:580px){.avatar{width:40px;height:40px}.winner{grid-template-columns:85px 1fr}.winner-portrait{grid-row:1/4;width:85px;height:107px;margin:0;border-radius:45px 45px 5px 5px}.winner .eyebrow{align-self:end}.winner h2{align-self:center}.winner p:not(.eyebrow){align-self:start}}

.season-switch{display:flex;justify-content:flex-end;align-items:center;gap:14px;padding-top:25px;color:var(--muted);font-size:12px}
.IN{background:#3d67dd;color:white}.OUT{background:#d81749;color:white}.QUIT{background:#090909;color:white;border:1px solid #555}
@media(max-width:580px){.season-switch{justify-content:space-between;gap:8px;font-size:11px}}
/* Les photos S3 sont horizontales : conserver leur composition dans le bloc gagnante. */
.season-3 .winner-portrait{width:100%;height:auto;aspect-ratio:580/381;border-radius:7px}
.season-3 .winner-photo{object-fit:contain}
.season-3 .avatar img{object-position:center}
@media(max-width:580px){.season-3 .winner{grid-template-columns:110px 1fr}.season-3 .winner-portrait{width:110px;align-self:center}}
[hidden]{display:none!important}
.season-switch{flex-wrap:wrap}.cumulative-link{margin-right:auto;color:var(--gold);border:1px solid #575344;border-radius:5px;padding:11px 14px}
.participation-details{margin-top:8px;max-width:280px;white-space:normal;font-weight:400}.participation-details summary{font-size:10px;color:var(--gold)}.participation-details a{display:block;font-size:10px;line-height:1.7;padding-top:6px;color:var(--muted)}.participation-details a:hover{text-decoration:underline}.cumulative-hero{grid-template-columns:1fr}
@media(max-width:580px){.season-switch select{max-width:100%;min-width:0}.season-switch .cumulative-link{width:100%}.season-switch label{flex-basis:25%}.season-switch select{flex:1 1 60%}}
[class~="IMM"]{background:#fff8dc;color:#302b18}

.placement.immunity,.legend i.immunity{outline:2px solid #ff48ba;outline-offset:-2px}.placement.disqualified,.legend i.disqualified{background:#050505;color:white}.placement.returned-eliminated,.legend i.returned-eliminated{background:#ff1515;color:white}

.placement.LOSS,.legend i.LOSS{background:#ffb000;color:#171717}

.GUEST { background: #d9d9d9; color: #303030; }

.WIN.opening-lipsync{background:#81d9ef;color:#17282d}.LOSS.opening-lipsync{background:#ffa987;color:#30221a}.golden-boot{background:#eee88e;color:#332d14}

.BTM2,.BTM3,.BTM7{background:#ff6347;color:#24120e}.golden-chocolate{background:#eb49b5;color:#24102a}.DEPT{background:#ffb000;color:#2c2104}

.IN.competition-entry{background:#900090;color:#fff}

.tournament.WIN{background:#900090;color:#fff}.tournament.LOSS{background:#e90046;color:#fff}.tournament.TOP2{background:#3764ef;color:#fff}

.WIN.lipsync-lost{background:#3d67dd;color:white}.WIN.challenge-only{background:#00bfe9;color:white}.WIN.return-win{background:#900090;color:white}.ELIM.return-elim{background:#ed00dc;color:white}

.tournament.GLSA{background:#080899;color:white}

.BTM4{background:#ff653f;color:#111}

.country-flag{display:inline-block;position:relative;margin-left:.45em;font-size:1rem;cursor:help;vertical-align:middle}
.country-flag:hover::after,.country-flag:focus::after{content:attr(data-country);position:absolute;left:0;bottom:100%;z-index:20;padding:6px 9px;border:1px solid #bda773;border-radius:4px;background:#161916;color:#fff;font:12px sans-serif;white-space:nowrap;pointer-events:none}
.country-flag:focus-visible{outline:2px solid #bda773;outline-offset:3px}

.country-flag img{display:block;width:22px;height:16px;object-fit:contain;filter:none;border-radius:1px}
