/* Polices auto-hébergées (SIL Open Font License) : Big Shoulders Display, Hanken Grotesk, IBM Plex Mono */
@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:600 900;font-display:swap;src:url(/assets/fonts/bigshouldersdisplay-600_900-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Big Shoulders Display';font-style:normal;font-weight:600 900;font-display:swap;src:url(/assets/fonts/bigshouldersdisplay-600_900-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/hankengrotesk-400_800-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/hankengrotesk-400_800-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibmplexmono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/ibmplexmono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibmplexmono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/ibmplexmono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* =====================================================================
   FRXTREAM Movies — identité « salle de cinéma »
   noir chaud · lumière de projecteur · ambre de marquise · typo de façade
   ===================================================================== */
:root{
  --ink:#0b0a09;--ink-2:#13110f;--ink-3:#1b1815;--ink-4:#26211d;
  --paper:#efe8da;--paper-dim:#b8af9f;--paper-faint:#7b7367;
  --line:rgba(239,232,218,.11);--line-2:rgba(239,232,218,.24);
  --amber:#f5a524;--amber-2:#ffcb6b;--red:#ff4d2e;--ok:#a7d676;--err:#ff6b57;--warn:#f5a524;
  --f-display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif;
  --f-body:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  --nav-h:64px;--pad:clamp(18px,4.2vw,64px);--r:3px;
  /* alias des anciens noms (admin, scripts) */
  --bg:var(--ink);--bg2:var(--ink-2);--surface:var(--ink-3);--surface2:var(--ink-4);--text:var(--paper);--muted:var(--paper-dim);
  --accent:var(--amber);--accent2:var(--amber-2);--radius:var(--r);--font:var(--f-body);--grad:var(--amber);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 .96 0 0 0 0 .86 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--ink);color:var(--paper);font-family:var(--f-body);font-size:16px;line-height:1.55;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::after{content:"";position:fixed;inset:0;z-index:9990;pointer-events:none;background:var(--grain);opacity:.055;mix-blend-mode:screen}
body.watch::after{display:none}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
img{display:block;max-width:100%}
[hidden]{display:none!important}
.i{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:-.18em}
.i use{pointer-events:none}
.muted{color:var(--paper-dim)}
.hp{position:absolute;left:-9999px;opacity:0}
:focus-visible{outline:2px solid var(--amber);outline-offset:3px}
::selection{background:var(--amber);color:var(--ink)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--ink-4);border:2px solid var(--ink);border-radius:8px}::-webkit-scrollbar-track{background:var(--ink)}
.eyebrow{font:500 .7rem/1 var(--f-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--amber)}

/* ---------- boutons : carrés, capitales espacées */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:.95em 1.7em;border-radius:2px;border:1.5px solid transparent;font:800 .74rem/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;transition:background .18s,color .18s,border-color .18s,transform .18s}
.btn:hover{transform:translateY(-1px)}
.btn .i{font-size:1.25em}
.btn.white{background:var(--paper);color:var(--ink)}.btn.white:hover{background:var(--amber)}
.btn.glass{background:rgba(239,232,218,.07);border-color:var(--line-2);color:var(--paper)}.btn.glass:hover{background:rgba(239,232,218,.14);border-color:var(--paper)}
.btn.glass.on{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.btn.ghost{border-color:var(--line-2);color:var(--paper)}.btn.ghost:hover{border-color:var(--paper)}
.btn.danger{background:rgba(255,107,87,.1);border-color:rgba(255,107,87,.4);color:var(--err)}.btn.danger:hover{background:var(--err);color:var(--ink)}
.btn.grad{background:var(--amber);color:var(--ink)}
.btn.round{width:50px;height:50px;padding:0}
.btn.block{display:flex;width:100%}
.btn.sm{padding:.7em 1.1em;font-size:.66rem}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* ---------- navigation */
.nav{position:fixed;top:0;left:0;right:0;height:var(--nav-h);z-index:50;background:linear-gradient(180deg,rgba(11,10,9,.94),rgba(11,10,9,0));transition:background .3s,border-color .3s;border-bottom:1px solid transparent}
.nav.solid{background:rgba(11,10,9,.97);border-bottom-color:var(--line)}
.nav-in{height:100%;display:flex;align-items:center;gap:clamp(14px,2.6vw,38px);padding:0 var(--pad)}
.brand{display:flex;align-items:center;gap:14px;line-height:1}
.brand::before{content:"";width:40px;height:40px;flex:none;background:url(/assets/img/logo-mark.png) center/contain no-repeat}
.brand-main{font:900 1.75rem/1 var(--f-display);letter-spacing:.07em;text-transform:uppercase;color:var(--paper)}
.brand-tag{font:500 .58rem/1 var(--f-mono);letter-spacing:.3em;color:var(--amber);border:1px solid rgba(245,165,36,.45);padding:.42em .6em .42em .75em;border-radius:2px}
.brand.big{flex-direction:column;gap:.6em}.brand.big::before{width:84px;height:84px}.brand.big .brand-main{font-size:3.2rem}
.nav-links{display:flex;gap:clamp(14px,2vw,30px)}
.nav-links a{font:700 .72rem/1 var(--f-body);letter-spacing:.17em;text-transform:uppercase;color:var(--paper-dim);padding:.5em 0;position:relative;transition:color .18s}
.nav-links a:hover{color:var(--paper)}
.nav-links a.on{color:var(--paper)}
.nav-links a.on::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--amber)}
.nav-burger{display:none;font-size:1.5rem}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:clamp(6px,1.2vw,16px)}
.nav-ico{font-size:1.2rem;display:grid;place-items:center;width:40px;height:40px;border-radius:2px;color:var(--paper);transition:background .18s,color .18s}
.nav-ico:hover{background:rgba(239,232,218,.1);color:var(--amber)}
.nav-lang{font:500 .7rem/1 var(--f-mono);letter-spacing:.14em;color:var(--paper-dim);border:1px solid var(--line-2);padding:.55em .7em;border-radius:2px;transition:all .18s}
.nav-lang:hover{color:var(--ink);background:var(--paper);border-color:var(--paper)}
.search{position:relative;display:flex;align-items:center}
.search input{width:0;opacity:0;padding:0;border:1px solid transparent;background:transparent;border-radius:2px;height:40px;transition:width .3s,opacity .2s,padding .3s;outline:0;font-size:.95rem}
.search.open input{width:min(310px,52vw);opacity:1;padding:0 14px;background:var(--ink-2);border-color:var(--line-2)}
.search.open input:focus{border-color:var(--amber)}
.search-res{position:absolute;top:50px;right:0;width:min(400px,92vw);background:var(--ink-2);border:1px solid var(--line-2);border-radius:3px;overflow:hidden;display:none;box-shadow:0 24px 60px rgba(0,0,0,.7)}
.search.open .search-res.show{display:block}
.sr{display:flex;gap:14px;align-items:center;padding:9px 14px;transition:background .15s}
.sr:hover,.sr.sel{background:var(--ink-4)}
.sr img,.sr .noimg{width:42px;height:62px;object-fit:cover;border-radius:2px;background:var(--ink-4);flex:none}
.sr b{display:block;font-size:.95rem}.sr small{font:400 .72rem var(--f-mono);color:var(--paper-dim);letter-spacing:.04em}
.sr-all,.sr-none{display:block;padding:13px 14px;font:500 .68rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-dim);text-align:center;border-top:1px solid var(--line)}
.sr-all:hover{color:var(--amber)}.sr-none{border:0}
.menu{position:relative}
.menu-btn{display:flex;align-items:center;gap:6px}
.menu-btn .caret{font-size:.85rem;transition:transform .2s;color:var(--paper-dim)}
.menu.open .caret{transform:rotate(180deg)}
.menu-pop{position:absolute;right:0;top:calc(100% + 12px);min-width:230px;background:var(--ink-2);border:1px solid var(--line-2);border-radius:3px;padding:6px;display:none;box-shadow:0 24px 60px rgba(0,0,0,.7)}
.menu.open .menu-pop{display:block}
.menu-pop a,.menu-pop button{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border-radius:2px;font:600 .82rem var(--f-body);letter-spacing:.04em;color:var(--paper-dim);text-align:left;transition:background .15s,color .15s}
.menu-pop a:hover,.menu-pop button:hover{background:var(--ink-4);color:var(--paper)}
.menu-head{display:flex;align-items:center;gap:12px;padding:10px 12px 14px;border-bottom:1px solid var(--line);margin-bottom:5px;font:600 1rem var(--f-body)}

/* ---------- avatars : tuiles pleines à initiale (jamais d'emoji) */
.avatar{position:relative;display:inline-grid;place-items:center;flex:none;overflow:hidden;border-radius:3px;background:var(--bg-av,var(--amber));color:var(--fg-av,var(--ink));font-family:var(--f-display);font-weight:900;line-height:1;text-transform:uppercase;transition:transform .2s,box-shadow .2s}
.avatar::after{content:"";position:absolute;inset:0;opacity:.16}
.avatar.p1::after{background:repeating-linear-gradient(-45deg,currentColor 0 2px,transparent 2px 9px)}
.avatar.p2::after{background:radial-gradient(currentColor 1.4px,transparent 1.6px) 0 0/9px 9px}
.avatar.xs{width:28px;height:28px;font-size:1.05rem}
.avatar.sm{width:36px;height:36px;font-size:1.35rem}
.avatar.md{width:56px;height:56px;font-size:2rem}
.avatar.xl{width:min(160px,28vw);height:min(160px,28vw);font-size:min(92px,16vw);border-radius:4px}
.avatar.add{background:transparent;border:2px dashed var(--line-2);color:var(--paper-dim);font-size:min(52px,10vw)}
.avatar.add::after{display:none}

/* ---------- héros */
.hero{position:relative;height:min(90vh,880px);min-height:540px;overflow:hidden;background:#000}
.slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s}
.slide.on{opacity:1;visibility:visible}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center 22%;transform:scale(1.04)}
.slide.on .slide-bg{animation:kb 24s ease-out forwards}
@keyframes kb{to{transform:scale(1.12)}}
.slide-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.2s}
.slide-video.show{opacity:1}
.slide-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,10,9,.94) 0%,rgba(11,10,9,.62) 36%,rgba(11,10,9,.05) 72%),linear-gradient(0deg,var(--ink) 0%,rgba(11,10,9,0) 34%),linear-gradient(180deg,rgba(11,10,9,.6) 0%,rgba(11,10,9,0) 22%)}
.slide-body{position:absolute;left:var(--pad);bottom:clamp(100px,17vh,180px);max-width:min(720px,90vw)}
.slide-title{font:900 clamp(3.2rem,9.4vw,8.6rem)/.84 var(--f-display);letter-spacing:-.005em;text-transform:uppercase;text-shadow:0 4px 40px rgba(0,0,0,.55);margin-bottom:.22em;text-wrap:balance}
.slide-logo{max-width:min(460px,72vw);max-height:160px;object-fit:contain;object-position:left;margin-bottom:.7em;filter:drop-shadow(0 4px 24px rgba(0,0,0,.7))}
.slide-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4em 0;font:500 .78rem/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper);margin-bottom:1.2em}
.slide-meta>span+span::before,.detail-meta>span+span::before,.pop-meta>span+span::before{content:"/";margin:0 .85em;color:var(--paper-faint)}
.slide-ov{font-size:clamp(.98rem,1.2vw,1.12rem);line-height:1.6;color:#e6dfd0;max-width:54ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:1.7em;text-shadow:0 2px 14px rgba(0,0,0,.8)}
.slide-btns{display:flex;gap:10px;flex-wrap:wrap}
.hero-count{position:absolute;right:var(--pad);bottom:clamp(100px,17vh,180px);display:flex;align-items:center;gap:16px;font:500 .75rem/1 var(--f-mono);letter-spacing:.18em;color:var(--paper-dim)}
.hero-count b{font:900 2.6rem/1 var(--f-display);letter-spacing:.02em;color:var(--paper)}
.hero-dots{display:flex;gap:6px}
.dot{width:30px;height:18px;position:relative}
.dot::before{content:"";position:absolute;left:0;right:0;top:8px;height:2px;background:var(--line-2);transition:background .3s}
.dot.on::before{background:var(--amber)}
.hero-mute{position:absolute;right:var(--pad);bottom:56px;width:42px;height:42px;border:1px solid var(--line-2);display:grid;place-items:center;font-size:1.05rem;background:rgba(11,10,9,.5);z-index:7;border-radius:2px}
.hero-mute:hover{border-color:var(--paper)}
.match{color:var(--amber-2);font-weight:500}
.age{border:1px solid var(--line-2);padding:.18em .5em;border-radius:2px;line-height:1.2}
.rate{display:inline-flex;align-items:center;gap:.35em;color:var(--amber-2)}
.rate .i{fill:currentColor;stroke:none}

/* ---------- rangées */
.rows{position:relative;margin-top:-14vh;z-index:3;padding-bottom:30px}
.row{margin:0 0 clamp(14px,2.6vw,34px)}
.row-head{display:flex;align-items:center;gap:14px;padding:0 var(--pad);margin-bottom:4px}
.row-head h2{font:800 clamp(1.45rem,2.5vw,2.2rem)/1 var(--f-display);letter-spacing:.035em;text-transform:uppercase}
.row-n{font:500 .68rem/1 var(--f-mono);letter-spacing:.14em;color:var(--paper-faint);border:1px solid var(--line);padding:.4em .6em;border-radius:2px}
.row-line{flex:1;height:1px;background:linear-gradient(90deg,var(--line-2),transparent)}
.row-all{font:700 .66rem var(--f-body);letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim);display:inline-flex;align-items:center;gap:4px;transition:color .18s}
.row-all:hover{color:var(--amber)}
.row-wrap{position:relative}
.row-track{display:flex;gap:clamp(8px,1vw,14px);overflow-x:auto;padding:34px var(--pad);margin:-34px 0;scroll-snap-type:x proximity;scroll-padding:0 var(--pad);scrollbar-width:none;overscroll-behavior-x:contain}
.row-track::-webkit-scrollbar{display:none}
.row-arrow{position:absolute;top:34px;bottom:34px;width:var(--pad);min-width:38px;z-index:6;display:grid;place-items:center;font-size:1.7rem;color:var(--paper);background:linear-gradient(90deg,rgba(11,10,9,.92),rgba(11,10,9,0));opacity:0;transition:opacity .2s}
.row-arrow.l{left:0}.row-arrow.r{right:0;transform:scaleX(-1)}
.row-arrow.r .i{transform:scaleX(-1)}
.row-wrap:hover .row-arrow:not(.off){opacity:1}
.row-arrow.off{pointer-events:none}

/* ---------- cartes */
.card{position:relative;flex:none;scroll-snap-align:start;--w:clamp(122px,13.4vw,216px);width:var(--w);transition:transform .28s cubic-bezier(.2,.8,.2,1),z-index 0s .28s}
.card-img{position:relative;aspect-ratio:2/3;border-radius:2px;overflow:hidden;background:var(--ink-3);cursor:pointer;outline:1px solid var(--line);outline-offset:-1px}
.card-img>img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.card-img::after{content:"";position:absolute;inset:7px;pointer-events:none;opacity:0;transition:opacity .2s,inset .25s;z-index:3;
  background:linear-gradient(var(--amber),var(--amber)) 0 0/16px 2px no-repeat,linear-gradient(var(--amber),var(--amber)) 0 0/2px 16px no-repeat,
  linear-gradient(var(--amber),var(--amber)) 100% 0/16px 2px no-repeat,linear-gradient(var(--amber),var(--amber)) 100% 0/2px 16px no-repeat,
  linear-gradient(var(--amber),var(--amber)) 0 100%/16px 2px no-repeat,linear-gradient(var(--amber),var(--amber)) 0 100%/2px 16px no-repeat,
  linear-gradient(var(--amber),var(--amber)) 100% 100%/16px 2px no-repeat,linear-gradient(var(--amber),var(--amber)) 100% 100%/2px 16px no-repeat}
.noimg{width:100%;height:100%;display:grid;place-items:center;text-align:center;padding:14px;background:repeating-linear-gradient(135deg,var(--ink-3) 0 8px,var(--ink-2) 8px 16px);color:var(--paper-dim);font:800 1.15rem/1.05 var(--f-display);letter-spacing:.04em;text-transform:uppercase}
.badges{position:absolute;top:0;left:0;display:flex;flex-direction:column;gap:0;align-items:flex-start;z-index:2}
.tag{font:500 .58rem/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;padding:.55em .8em;background:var(--ink);color:var(--paper)}
.tag.new{background:var(--amber);color:var(--ink);font-weight:500}
.tag.ser{color:var(--paper-dim);border-top:1px solid var(--line)}
.tag.next{position:absolute;top:0;left:0;background:var(--amber);color:var(--ink)}
.pbar{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(239,232,218,.2);z-index:2}
.pbar i{display:block;height:100%;background:var(--amber)}
.card-pop{position:absolute;inset:0;border-radius:2px;display:flex;flex-direction:column;justify-content:flex-end;gap:7px;padding:12px;opacity:0;pointer-events:none;background:linear-gradient(0deg,rgba(11,10,9,.98) 0%,rgba(11,10,9,.84) 50%,rgba(11,10,9,.12) 100%);transition:opacity .2s;overflow:hidden;z-index:4}
.pop-media{position:absolute;inset:0;z-index:-1}
.pop-media video{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.pop-media video.show{opacity:1}
.card-btns{display:flex;gap:6px}
.cbtn{width:32px;height:32px;border-radius:2px;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--paper);font-size:.9rem;background:rgba(11,10,9,.7);transition:border-color .15s,background .15s,color .15s}
.cbtn:hover{border-color:var(--paper);background:var(--ink-4)}
.cbtn.play{background:var(--paper);color:var(--ink);border-color:var(--paper)}.cbtn.play:hover{background:var(--amber);border-color:var(--amber)}
.cbtn.on{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.cbtn.more{margin-left:auto}
.cbtn.sm{width:28px;height:28px;font-size:.8rem}
.pop-meta{display:flex;flex-wrap:wrap;align-items:center;font:500 .62rem/1.4 var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-dim)}
.pop-meta>span+span::before{margin:0 .5em}
.pop-name{font:800 1.12rem/1 var(--f-display);letter-spacing:.03em;text-transform:uppercase;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pop-genres{font:400 .64rem var(--f-mono);letter-spacing:.04em;color:var(--paper-faint)}
@media (hover:hover) and (pointer:fine){
  .card.poster:hover,.card.top10:hover{transform:scale(1.1);z-index:8;transition-delay:.12s,0s}
  .card.poster:hover .card-pop,.card.top10:hover .card-pop{opacity:1;pointer-events:auto;transition-delay:.12s}
  .card.poster:hover .card-img::after,.card.top10:hover .card-img::after{opacity:1;inset:5px;transition-delay:.12s}
  .card.poster:hover .card-img,.card.top10:hover .card-img{box-shadow:0 22px 50px rgba(0,0,0,.8)}
  .card.poster:hover .card-img>img{transform:scale(1.05)}
  .card.wide:hover{transform:scale(1.04);z-index:8}
}
.card.top10{--w:clamp(196px,22vw,340px);display:flex;align-items:flex-end}
.card.top10 .rank{flex:none;width:47%;font:900 clamp(8rem,15vw,14rem)/.74 var(--f-display);letter-spacing:-.04em;text-align:right;color:var(--ink);-webkit-text-stroke:2px var(--paper-faint);margin-right:-.06em;margin-bottom:-.02em;z-index:1;user-select:none;transition:color .25s,-webkit-text-stroke-color .25s}
.card.top10:hover .rank{-webkit-text-stroke-color:var(--amber);color:rgba(245,165,36,.12)}
.card.top10 .card-img{width:53%;flex:none}
.card.top10 .card-pop{left:calc(47% - 4px)}
.card.wide{--w:clamp(230px,25vw,380px);margin-bottom:1.6em}
.card.wide .card-img{aspect-ratio:16/9}
.card.wide .card-play{position:absolute;inset:0;display:grid;place-items:center;font-size:2.4rem;background:rgba(11,10,9,.45);opacity:0;transition:opacity .2s;z-index:3}
.card.wide:hover .card-play{opacity:1}
.card.wide:hover .card-img::after{opacity:1}
.card-cap{display:flex;align-items:center;gap:8px;padding:10px 0 0;font:700 .85rem var(--f-body)}
.card-cap b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:.01em}
.card-cap small{font:400 .66rem var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--paper-faint);position:absolute;bottom:-1.5em;left:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(138px,14.5vw,212px),1fr));gap:clamp(18px,2vw,30px) clamp(10px,1.2vw,16px)}
.grid .card{width:auto;--w:100%}
.grid.sm{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
@media (hover:hover) and (pointer:fine){.grid .card.poster:hover{transform:scale(1.06)}}

/* ---------- pages */
.page{padding:calc(var(--nav-h) + 40px) var(--pad) 70px;min-height:80vh}
.page.narrow{max-width:860px;margin:0 auto}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.page-head h1{font:900 clamp(2.6rem,6vw,5rem)/.88 var(--f-display);letter-spacing:.005em;text-transform:uppercase}
.filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips.scroll{flex-wrap:nowrap;overflow-x:auto;padding-bottom:12px;margin-bottom:14px;scrollbar-width:none}
.chips.scroll::-webkit-scrollbar{display:none}
.chip{flex:none;padding:.65em 1.05em;border-radius:2px;border:1px solid var(--line-2);color:var(--paper-dim);font:500 .68rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;transition:all .18s}
.chip:hover{border-color:var(--paper);color:var(--paper)}
.chip.on{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.select,.fld input,.fld select,.fld textarea,.inline-form input,.search-page input{background:var(--ink-2);border:1px solid var(--line-2);border-radius:2px;padding:.78em 1em;color:var(--paper);outline:0;transition:border-color .18s,box-shadow .18s}
.select{font:500 .72rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:.8em 1em}
.select:focus,.fld input:focus,.fld select:focus,.fld textarea:focus,.inline-form input:focus,.search-page input:focus{border-color:var(--amber);box-shadow:0 0 0 3px rgba(245,165,36,.18)}
.sentinel{height:60px}
.center-msg{min-height:100vh;display:grid;place-content:center;text-align:center;gap:16px;padding:20px;justify-items:center}
.center-msg h1{font:900 clamp(7rem,22vw,16rem)/.8 var(--f-display);color:transparent;-webkit-text-stroke:2px var(--amber)}
.empty-state{min-height:70vh;display:grid;place-content:center;justify-items:center;text-align:center;gap:16px;padding:calc(var(--nav-h) + 20px) 20px 20px}
.empty-state.small{min-height:34vh;padding:20px}
.empty-state h1{font:900 clamp(2.4rem,5vw,4rem)/.9 var(--f-display);text-transform:uppercase}
.empty-state p{color:var(--paper-dim);max-width:480px}
.empty-ico{font-size:3rem;color:var(--amber)}
.search-page{display:flex;gap:10px;margin-bottom:24px}.search-page input{flex:1;font-size:1.1rem}
.sub{margin:34px 0 14px;font:800 1.5rem var(--f-display);letter-spacing:.04em;text-transform:uppercase}
.inline-form{display:flex;gap:10px;margin:16px 0}.inline-form input{flex:1}
.req-list{list-style:none;display:grid;gap:6px}
.req-list li{display:flex;justify-content:space-between;gap:12px;background:var(--ink-2);border:1px solid var(--line);padding:14px 16px;border-radius:2px;align-items:center}
.req-list small{display:block;color:var(--paper-dim)}
.st{font:500 .64rem/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:.55em .8em;border:1px solid var(--line-2);border-radius:2px;font-style:normal}
.st-done{color:var(--ok);border-color:rgba(167,214,118,.4)}.st-rejected{color:var(--err);border-color:rgba(255,107,87,.4)}.st-open{color:var(--amber);border-color:rgba(245,165,36,.4)}
.panel{background:var(--ink-2);border:1px solid var(--line);border-radius:3px;padding:22px;margin-bottom:14px;display:grid;gap:14px}
.panel h2{font:800 1.5rem var(--f-display);letter-spacing:.04em;text-transform:uppercase}
.alert{padding:12px 15px;border-radius:2px;font-size:.9rem;background:var(--ink-3);border:1px solid var(--line-2);border-left:3px solid var(--paper-dim)}
.alert.err{border-left-color:var(--err);color:#ffd0c8}
.alert.ok{border-left-color:var(--ok);color:#dff0c8}
.foot{position:relative;padding:44px var(--pad) 40px;margin-top:40px;color:var(--paper-faint);font:500 .68rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase;display:flex;gap:14px;justify-content:center;align-items:center}
.foot::before{content:"";position:absolute;left:0;right:0;top:0;height:14px;background:repeating-linear-gradient(90deg,transparent 0 11px,var(--ink) 11px 23px) center/100% 6px no-repeat,var(--ink-3)}
.foot a:hover{color:var(--amber)}
.toast{position:fixed;left:50%;bottom:34px;transform:translateX(-50%);background:var(--paper);color:var(--ink);padding:.95em 1.6em;border-radius:2px;font:500 .74rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;z-index:200;box-shadow:0 14px 50px rgba(0,0,0,.6);animation:toast .25s;border-left:4px solid var(--amber)}
@keyframes toast{from{opacity:0;transform:translate(-50%,12px)}}

/* ---------- connexion : le ticket de cinéma sous le faisceau du projecteur */
.auth{min-height:100vh;display:grid}
.aurora{position:fixed;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(120% 70% at 50% 110%,#1d1409 0%,var(--ink) 60%)}
.aurora::before{content:"";position:absolute;left:50%;top:-6vh;width:150vmax;height:120vh;transform:translateX(-50%);
  background:conic-gradient(from 180deg at 50% 0,transparent 163deg,rgba(255,226,170,.05) 170deg,rgba(255,231,184,.17) 180deg,rgba(255,226,170,.05) 190deg,transparent 197deg);
  -webkit-mask:linear-gradient(#000,transparent 86%);mask:linear-gradient(#000,transparent 86%);animation:beam 7s ease-in-out infinite alternate}
.aurora::after{content:"FRX";position:absolute;right:-2vw;bottom:-9vw;font:900 40vw/.8 var(--f-display);letter-spacing:-.03em;color:transparent;-webkit-text-stroke:2px rgba(239,232,218,.07);user-select:none}
@keyframes beam{from{opacity:.75}to{opacity:1}}
.auth-wrap,.profiles-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;padding:34px 16px;position:relative}
.auth-card{--notch:118px;width:min(420px,100%);background:var(--paper);color:var(--ink);border-radius:4px;padding:clamp(24px,5vw,38px) clamp(24px,5vw,40px) clamp(26px,5vw,38px);display:grid;gap:18px;position:relative;box-shadow:0 40px 90px rgba(0,0,0,.65);
  -webkit-mask:radial-gradient(circle 13px at 0 var(--notch),#0000 97%,#000) 0 0/100% 100% no-repeat,radial-gradient(circle 13px at 100% var(--notch),#0000 97%,#000);
  -webkit-mask-composite:source-in;mask-composite:intersect;
  mask:radial-gradient(circle 13px at 0 var(--notch),#0000 97%,#000),radial-gradient(circle 13px at 100% var(--notch),#0000 97%,#000)}
.auth-card::before{content:"";position:absolute;left:20px;right:20px;top:var(--notch);border-top:2px dashed rgba(11,10,9,.28);pointer-events:none}
.auth-card .eyebrow{color:#9a5b00;display:flex;justify-content:space-between;gap:12px}
.auth-card .eyebrow::after{content:"N° " attr(data-no);color:rgba(11,10,9,.45)}
.auth-card h1{font:900 3rem/.85 var(--f-display);letter-spacing:.005em;text-transform:uppercase;margin-bottom:34px}
.auth-card .fld>span{color:#6f6252;font:500 .66rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.auth-card .fld input,.auth-card .fld select{background:transparent;border:0;border-bottom:2px solid var(--ink);border-radius:0;color:var(--ink);padding:.6em 0;font-size:1.05rem;font-weight:500}
.auth-card .fld input:focus{border-bottom-color:#c47a00;box-shadow:none}
.auth-card .fld small{color:#8a7d6a}
.auth-card .btn.white{background:var(--ink);color:var(--paper)}.auth-card .btn.white:hover{background:#c47a00;color:var(--ink)}
.auth-card .btn.glass{background:transparent;border-color:rgba(11,10,9,.35);color:var(--ink)}.auth-card .btn.glass:hover{border-color:var(--ink);background:rgba(11,10,9,.06)}
.auth-card .btn.danger{background:transparent;color:#a3200d;border-color:rgba(163,32,13,.45)}.auth-card .btn.danger:hover{background:#a3200d;color:var(--paper)}
.auth-card .alert{background:rgba(11,10,9,.06);border-color:rgba(11,10,9,.18);border-left-color:#c47a00;color:var(--ink)}
.auth-card .alert.err{border-left-color:#a3200d;color:#7d1808}.auth-card .alert.ok{border-left-color:#3b7a0f;color:#244b08}
.auth-card .check small{color:#8a7d6a}
.auth-card.plain{background:none;color:var(--paper);box-shadow:none;padding:0;margin-top:-8px;-webkit-mask:none;mask:none}.auth-card.plain::before{display:none}
.fld{display:grid;gap:7px;font-size:.88rem}
.fld>span{color:var(--paper-dim);font:500 .68rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.fld small{color:var(--paper-faint)}
.fld input,.fld select,.fld textarea{width:100%;font-size:1rem}
.check{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.check input{margin-top:.35em;accent-color:var(--amber)}
.check small{display:block;color:var(--paper-dim)}
.auth-alt{text-align:center;color:#6f6252;font-size:.9rem}.auth-alt a{color:var(--ink);font-weight:800;text-decoration:underline;text-underline-offset:3px;text-decoration-color:#c47a00}
.auth-lang{text-align:center;font:500 .66rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase}.auth-lang a{color:#6f6252}.auth-lang a:hover{color:var(--ink)}
.who{font:900 clamp(3rem,8vw,6.4rem)/.86 var(--f-display);text-transform:uppercase;text-align:center}
.profiles{display:flex;gap:clamp(16px,3vw,38px);flex-wrap:wrap;justify-content:center}
.profile{display:grid;justify-items:center;gap:14px;color:var(--paper-dim);transition:color .2s}
.profile button{display:grid;justify-items:center;gap:14px;color:inherit}
.profile:hover{color:var(--paper)}
.profile:hover .avatar,.profile button:hover .avatar{transform:translateY(-4px);box-shadow:0 0 0 3px var(--paper),0 18px 40px rgba(0,0,0,.6)}
.pf-av{position:relative;display:block}
.pf-av.edit i{position:absolute;inset:0;display:grid;place-items:center;background:rgba(11,10,9,.62);border-radius:4px;font-size:2rem;color:var(--paper);font-style:normal}
.pf-name{font:500 .8rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase}
.pf-kids{font:500 .58rem/1 var(--f-mono);letter-spacing:.16em;background:var(--amber);color:var(--ink);padding:.5em .7em;border-radius:2px;text-transform:uppercase}
.profiles-foot{display:flex;gap:10px}
.avatar-pick{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.avatar-pick label{cursor:pointer;display:grid;place-items:center}
.avatar-pick input{position:absolute;opacity:0;pointer-events:none}
.avatar-pick .avatar{width:100%;max-width:56px;height:auto;aspect-ratio:1;opacity:.5;transition:all .15s}
.avatar-pick input:checked+.avatar{opacity:1;box-shadow:0 0 0 2px var(--paper),0 0 0 5px var(--ink);transform:scale(1.04)}
.auth-card .avatar-pick input:checked+.avatar{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--ink)}

/* ---------- modale & fiche titre */
.modal{position:fixed;inset:0;z-index:100;display:flex;justify-content:center;overflow-y:auto;padding:clamp(0px,3vw,44px) clamp(0px,2vw,24px)}
.modal-bg{position:fixed;inset:0;background:rgba(8,7,6,.88);animation:fade .25s}
.modal-box{position:relative;width:min(940px,100%);height:fit-content;min-height:200px;margin:auto 0;background:var(--ink-2);border:1px solid var(--line-2);border-radius:4px;overflow:hidden;box-shadow:0 40px 120px rgba(0,0,0,.85);animation:pop .3s cubic-bezier(.2,.8,.2,1)}
@keyframes fade{from{opacity:0}}@keyframes pop{from{opacity:0;transform:translateY(26px) scale(.98)}}
body.modal-open{overflow:hidden}
.modal-x{position:absolute;top:14px;right:14px;z-index:5;width:40px;height:40px;border-radius:2px;background:rgba(11,10,9,.82);border:1px solid var(--line-2);display:grid;place-items:center;font-size:1.15rem}
.modal-x:hover{background:var(--paper);color:var(--ink)}
.detail-hero{position:relative;aspect-ratio:16/8.4;background-size:cover;background-position:center 20%;background-color:var(--ink-3)}
.detail-shade{position:absolute;inset:0;background:linear-gradient(0deg,var(--ink-2) 2%,rgba(19,17,15,.2) 58%,rgba(19,17,15,.4) 100%),linear-gradient(90deg,rgba(11,10,9,.55),transparent 60%)}
.detail-head{position:absolute;left:clamp(18px,3vw,42px);right:18px;bottom:clamp(16px,2.6vw,34px)}
.detail-title{font:900 clamp(2.6rem,6vw,4.8rem)/.86 var(--f-display);letter-spacing:.005em;text-transform:uppercase;text-shadow:0 4px 30px rgba(0,0,0,.7);margin-bottom:.4em}
.detail-logo{max-width:min(400px,66%);max-height:124px;object-fit:contain;object-position:left;margin-bottom:.8em;filter:drop-shadow(0 4px 20px rgba(0,0,0,.8))}
.detail-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.detail-body{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:30px;padding:14px clamp(18px,3vw,42px) 28px}
.detail-meta{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:14px;font:500 .78rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--paper)}
.tagline{font:italic 500 1.05rem var(--f-body);color:var(--amber-2);margin-bottom:10px}
.detail-ov{color:#e2dac9;line-height:1.7;max-width:62ch}
.detail-side{display:grid;gap:3px;align-content:start;font-size:.9rem;border-left:1px solid var(--line);padding-left:22px}
.detail-side dt{font:500 .62rem var(--f-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-top:14px}
.detail-side dd{color:var(--paper)}.detail-side dd a:hover{color:var(--amber)}
.detail-eps,.detail-sim{padding:8px clamp(18px,3vw,42px) 30px}
.detail h3{font:800 1.7rem var(--f-display);letter-spacing:.04em;text-transform:uppercase;margin-bottom:14px}
.eps-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;border-bottom:1px solid var(--line);padding-bottom:10px}.eps-head h3{margin:0}
.season-sel{background:var(--ink-3);border:1px solid var(--line-2);border-radius:2px;padding:.7em 1em;font:500 .72rem var(--f-mono);letter-spacing:.1em;text-transform:uppercase}
.ep{display:grid;grid-template-columns:48px 176px 1fr;gap:18px;align-items:center;padding:16px 10px;border-bottom:1px solid var(--line);transition:background .15s}
.ep:hover{background:var(--ink-3)}
.ep-n{font:900 2.4rem/1 var(--f-display);color:transparent;-webkit-text-stroke:1.5px var(--paper-faint);text-align:center;transition:-webkit-text-stroke-color .2s}
.ep:hover .ep-n{-webkit-text-stroke-color:var(--amber)}
.ep-img{position:relative;aspect-ratio:16/9;border-radius:2px;overflow:hidden;background:var(--ink-4);outline:1px solid var(--line);outline-offset:-1px}
.ep-img img{width:100%;height:100%;object-fit:cover}
.ep-done{position:absolute;top:6px;right:6px;width:22px;height:22px;background:var(--amber);color:var(--ink);display:grid;place-items:center;font-size:.8rem;border-radius:2px}
.ep-txt{display:grid;gap:4px;min-width:0}
.ep-txt b{font-size:1rem;letter-spacing:.01em}.ep-txt small{font:400 .68rem var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--paper-faint)}
.ep-ov{color:var(--paper-dim);font-size:.88rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.title-page{padding:calc(var(--nav-h) + 16px) var(--pad) 40px;max-width:1100px;margin:0 auto}
.title-page .detail{background:var(--ink-2);border:1px solid var(--line-2);border-radius:4px;overflow:hidden}
.title-page .modal-x{display:none}
.trailer-frame{position:fixed;inset:0;z-index:120;background:rgba(8,7,6,.95);display:grid;place-items:center;padding:20px}
.trailer-frame iframe{width:min(1100px,96vw);aspect-ratio:16/9;border:0;border-radius:3px;outline:1px solid var(--line-2)}
.trailer-frame button{position:absolute;top:16px;right:16px;width:44px;height:44px;border:1px solid var(--line-2);border-radius:2px;background:var(--ink-2);font-size:1.2rem;display:grid;place-items:center}

/* ---------- responsive */
@media (max-width:900px){
  .nav-burger{display:block}
  .nav-links{position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;gap:0;background:var(--ink);padding:6px var(--pad) 16px;display:none;border-bottom:1px solid var(--line-2)}
  .nav-links.open{display:flex}
  .nav-links a{padding:17px 0;font-size:.85rem;border-bottom:1px solid var(--line)}
  .nav-links a.on::after{display:none}.nav-links a.on{color:var(--amber)}
  .brand-tag{display:none}
  .hero{min-height:480px;height:76vh}
  .slide-body{bottom:84px}.hero-count{display:none}
  .hero-mute{display:none}
  .detail-body{grid-template-columns:1fr}.detail-side{border-left:0;padding-left:0}
  .ep{grid-template-columns:30px 124px 1fr;gap:12px}.ep-ov{display:none}
  .row-arrow,.card-pop{display:none}
  .rows{margin-top:-8vh}
  .modal{padding:0}.modal-box{border-radius:0;min-height:100vh}
  .auth-card h1{font-size:2.6rem}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- captcha (carte-ticket de connexion) */
.captcha{gap:9px}
.captcha-row{display:flex;gap:10px;align-items:stretch}
.captcha img{flex:1;min-width:0;max-width:260px;height:auto;aspect-ratio:260/90;border:2px solid var(--ink);border-radius:2px;background:#fff;object-fit:cover}
.captcha-refresh{flex:none;width:44px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:2px;font-size:1.15rem;color:var(--ink);transition:background .15s,color .15s}
.captcha-refresh:hover{background:var(--ink);color:var(--paper)}
.captcha input{text-transform:uppercase;letter-spacing:.3em;font-family:var(--f-mono)!important;font-weight:500!important}
.captcha input::placeholder{letter-spacing:.02em;text-transform:none;font-family:var(--f-body)}
