/* Komori — feuille de style (DM Sans hébergée localement) */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/dm-sans-latin-ext-400-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/dm-sans-latin-ext-500-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/dm-sans-latin-ext-700-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/dm-sans-latin-400-normal.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/dm-sans-latin-500-normal.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/dm-sans-latin-700-normal.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--bg:#21150F;--panel:#321C0F;--surf:#493021;--ink:#FFFDE0;--mute:#E9DCC6;--acc:#D6A77A;--on-acc:#21150F;--line:#493021;--lav:#A9A0BD;--r:12px;--w:1320px;box-sizing:border-box;color-scheme:dark}
@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#F5EFE4;--panel:#FFFBF2;--surf:#E9DCC6;--ink:#21150F;--mute:#6B5545;--acc:#8A5F40;--on-acc:#FFFFFF;--line:#DCCDB4;--lav:#777084;color-scheme:light}}
:root[data-theme="light"]{--bg:#F5EFE4;--panel:#FFFBF2;--surf:#E9DCC6;--ink:#21150F;--mute:#6B5545;--acc:#8A5F40;--on-acc:#FFFFFF;--line:#DCCDB4;--lav:#777084;color-scheme:light}
*{box-sizing:border-box}html{scroll-padding-top:72px}
body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.55 'DM Sans',system-ui,sans-serif;padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:inherit;text-decoration:none}h1,h2,h3{font-family:'DM Sans',system-ui,sans-serif;font-weight:700;margin:0;letter-spacing:-.02em}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}.i.f{fill:currentColor;stroke:none}
.wrap{max-width:var(--w);margin:0 auto;padding:0 clamp(16px,3vw,40px)}
/* header */
header{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.bar{display:flex;align-items:center;gap:20px;height:64px}
.logo{display:flex;align-items:center;gap:10px;font:700 22px 'DM Sans',system-ui,sans-serif;letter-spacing:-.02em;color:var(--ink)}.mark{width:34px;height:34px;flex:none;color:var(--ink)}.mark.sm{width:22px;height:22px}
.nav{display:flex;gap:4px;flex:none}.nav a{display:flex;align-items:center;gap:8px;white-space:nowrap;flex:none;padding:8px 14px;border-radius:999px;color:var(--mute);font-weight:500;transition:background .2s,color .2s}
.nav a:hover{color:var(--ink);background:var(--panel)}.nav a.on,.nav a.on:hover{color:var(--on-acc);background:none}
.sw{position:relative;margin-left:auto;width:min(360px,100%)}
.sw>.i{position:absolute;left:12px;top:11px;color:var(--mute)}
.sw input{width:100%;height:42px;padding:0 14px 0 40px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit}
#sugg{position:absolute;top:48px;left:0;right:0;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 40px #0005;overflow:hidden}
#sugg a{display:flex;gap:12px;align-items:center;padding:8px 12px}#sugg a:hover,#sugg a:focus{background:var(--line)}
#sugg img{width:36px;height:52px;object-fit:cover;border-radius:6px;background:var(--line)}#sugg small{color:var(--mute);display:block}
#sugg .all{justify-content:center;color:var(--acc);font-weight:500;border-top:1px solid var(--line)}
/* buttons / chips */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;border-radius:999px;border:1px solid transparent;background:var(--acc);color:var(--on-acc);font:700 14px 'DM Sans',sans-serif;cursor:pointer;transition:transform .2s,filter .2s}
.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn.ghost{background:transparent;color:inherit;border-color:currentColor}
.btn.sm{height:36px;padding:0 14px}.btn:disabled{opacity:.4;pointer-events:none}
.ib{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;transition:background .2s}.ib:hover{background:var(--line)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--panel);border:1px solid var(--line);font-size:13px;color:var(--mute);white-space:nowrap}
.chip .i{width:14px;height:14px}.chip.s{color:var(--acc)}
/* hero: all slides share one fixed size and layout */
.hero{position:relative;height:clamp(380px,44vw,540px);margin-top:20px;border-radius:20px;overflow:hidden;background:var(--panel)}
.slide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;padding:clamp(24px,4vw,56px);padding-right:clamp(24px,30vw,420px);color:#fff;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:opacity .8s,visibility 0s .8s}
.slide.on{opacity:1;visibility:visible;transition:opacity .8s}
.slide::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(var(--ov,33,21,15),.92),rgba(var(--ov,33,21,15),.35) 60%,rgba(var(--ov,33,21,15),.1)),linear-gradient(0deg,rgba(var(--ov,33,21,15),.7),transparent 50%)}
.slide>*{position:relative}.slide h1{font-size:clamp(28px,4vw,48px);line-height:1.05;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.slide p{margin:0;max-width:56ch;color:#e6e0f2;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:4.65em}
.slide .chip{background:#ffffff1f;border-color:#ffffff30;color:#fff}.slide .chip.s{color:#ffd37a}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.hn{position:absolute;bottom:20px;right:clamp(16px,3vw,40px);display:flex;gap:10px;align-items:center;z-index:2;color:#fff}
.hn .ib{background:#ffffff22;border-color:#ffffff40;color:#fff}.dots{display:flex;gap:6px;margin:0 6px}
/* rows & cards */
.sec{margin-top:36px}.sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.sh h2{font-size:24px}.sh .ct{display:flex;gap:8px}
.row{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;padding:4px 0 10px;scrollbar-width:none}.row::-webkit-scrollbar{display:none}
.row .card{flex:0 0 calc(clamp(140px,15vw,184px)*var(--sz,1));scroll-snap-align:start}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(160px*var(--sz,1)),1fr));gap:22px 16px}
.card{display:block}.poster{position:relative;aspect-ratio:2/3;border-radius:var(--r);overflow:hidden;background:var(--line);box-shadow:0 6px 18px #0003;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.poster img{width:100%;height:100%;object-fit:cover;display:block}
.card:hover .poster,.card:focus-visible .poster{transform:translateY(-5px);box-shadow:0 16px 32px #0006}
.badge{position:absolute;top:8px;left:8px;display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;background:#000a;color:#ffd37a;font-size:12px;font-weight:700}.badge .i{width:12px;height:12px}
.card b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:10px;font-weight:500;line-height:1.3;min-height:2.6em}.card small{color:var(--mute)}
.sk .poster{background:linear-gradient(90deg,var(--panel) 25%,var(--line) 50%,var(--panel) 75%);background-size:200% 100%;animation:sh 1.3s linear infinite;box-shadow:none}.sk-h{background:linear-gradient(90deg,var(--panel) 25%,var(--line) 50%,var(--panel) 75%);background-size:200% 100%;animation:sh 1.3s linear infinite}
@keyframes sh{to{background-position:-200% 0}}
/* catalogue */
.ph{padding:32px 0 8px}.ph h1{font-size:clamp(28px,4vw,40px)}.ph p{color:var(--mute);margin:6px 0 0}
.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
select{height:42px;padding:0 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;width:100%}
.genres{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none}.genres a,.genres button{font:inherit;cursor:pointer;padding:7px 16px;border-radius:999px;border:1px solid var(--line);background:var(--panel);white-space:nowrap;font-weight:500;color:var(--mute);transition:all .2s}
.genres a:hover,.genres button:hover{color:var(--ink)}.genres a.on,.genres button.on{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.more{display:flex;justify-content:center;margin:32px 0}.empty{padding:60px 0;text-align:center;color:var(--mute)}
/* detail */
/* le backdrop est le fond de la page : pleine largeur, sous le header, fondu vers la couleur de fond */
.dh{position:absolute;z-index:-1;top:0;left:0;right:0;height:clamp(440px,74vh,680px);pointer-events:none;background:var(--bg) center top/cover no-repeat}
.dh::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--bg) 2%,transparent 78%),linear-gradient(90deg,color-mix(in srgb,var(--bg) 78%,transparent),transparent 70%),color-mix(in srgb,var(--bg) 38%,transparent)}
.dh.art:not(.ld){animation:none;background:none}.dh.noimg{background:none!important}.dh.noimg .nc{display:none}
.dbody{position:relative;display:grid;grid-template-columns:240px 1fr;gap:36px;align-items:start;padding:36px 0 0}
.dbody .poster{box-shadow:0 20px 44px #0007}.info{padding-top:0}.info h1{text-shadow:0 2px 18px #0006}.info h1{font-size:clamp(28px,4vw,44px);line-height:1.05}.info .alt{color:var(--mute);margin:4px 0 12px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.desc{max-width:78ch;color:var(--mute);margin:12px 0 0}.desc.clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.dmore{margin:6px 0 0;padding:4px 0;border:0;background:none;color:var(--acc);font:700 14px 'DM Sans',sans-serif;cursor:pointer}.dmore:hover{text-decoration:underline}
.pcol .ext{display:flex;flex-direction:column;gap:10px;margin-top:16px}.pcol .ext .btn{width:100%;justify-content:flex-start;height:44px;padding:0 16px}.pcol .ext .btn .i{width:22px;height:22px}
.tabs{display:flex;gap:8px;flex-wrap:wrap}.tabs a{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--panel);font-weight:500;color:var(--mute)}.tabs a.on{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.tile{position:relative;height:84px;border-radius:var(--r);background-size:cover;background-position:center;overflow:hidden;display:grid;place-items:center;color:#fff;font:700 17px 'DM Sans',system-ui,sans-serif;text-align:center;border:2px solid transparent;transition:transform .25s,border-color .25s}
.tile::before{content:"";position:absolute;inset:0;background:rgba(var(--ov,33,21,15),.62);transition:background .25s}
.tile span{position:relative;text-shadow:0 2px 10px #000a;padding:0 8px}.tile:hover{transform:translateY(-2px)}.tile:hover::before{background:rgba(var(--ov,33,21,15),.4)}
.tile span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tile.on{border-color:var(--acc)}.tile.on span{color:var(--acc)}
.eps{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(360px,100%),1fr));gap:12px}
.ep{display:flex;gap:12px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);transition:transform .2s,border-color .2s;position:relative}
.ep:hover,.ep.on{border-color:var(--acc);transform:translateY(-2px)}.ep .th{width:176px;aspect-ratio:16/9;border-radius:8px;background:var(--line) center/cover;display:grid;place-items:center;color:#fff;flex:none}
.ep .th .i{filter:drop-shadow(0 1px 4px #000a)}.ep b{display:block;font-weight:500}.ep small{color:var(--mute);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.ep .eb{min-width:0;flex:1 1 auto}.ep .seen{position:static;flex:none;align-self:flex-start;margin:2px 2px 0 auto;font-size:12px;color:var(--acc);display:flex;gap:4px;align-items:center}
/* watch */
.watch{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;margin-top:20px}
.screen{aspect-ratio:16/9;background:#000;border-radius:var(--r);overflow:hidden;display:grid;place-items:center;text-align:center;color:#cfc8e0;padding:20px}.screen video{width:100%;height:100%;display:block}.screen.emb{padding:0}.screen iframe{width:100%;height:100%;border:0;display:block}
.wnote{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--panel);font-size:14px}.wnote[hidden]{display:none}.wnote span{margin-right:auto}.wnote b{color:var(--acc)}
.wbar{display:flex;justify-content:flex-start;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px}.wbar .acts{margin-top:0;flex-wrap:nowrap}.wlang{display:flex;gap:8px;flex-wrap:wrap;min-width:0}.wlb{display:flex;gap:8px;flex-wrap:wrap}.wld{display:none}.wlb button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--mute);font:500 14px 'DM Sans',sans-serif;cursor:pointer;transition:border-color .2s,color .2s}.wlb button small{font-size:11px;opacity:.75}.wlb button:hover:not(:disabled){border-color:var(--acc);color:var(--ink)}.wlb button[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}.wlb button:disabled{opacity:.5;cursor:not-allowed}
.wt{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}.wt h1{font-size:24px}
.side{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px;max-height:calc(100vh - 110px);overflow:auto;position:sticky;top:76px;align-self:start}
.side h3{font-size:18px;padding:4px 6px 10px}.side .ep{padding:6px;margin-bottom:8px}.side .ep .th{width:84px}
.src{display:flex;gap:8px;margin-top:8px}.src input{flex:1;height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit}
.err{padding:80px 0;text-align:center}.err p{color:var(--mute)}
/* ---- squelettes, images, recherche ---- */
.shim,.art:not(.ld){background:linear-gradient(90deg,var(--panel) 25%,var(--line) 50%,var(--panel) 75%);background-size:200% 100%;animation:sh 1.3s linear infinite}
.art img{opacity:0;transition:opacity .45s}.art.ld img{opacity:1}
.poster.shim{aspect-ratio:2/3}.sl{border-radius:8px}
.badge.na{color:var(--lav)}.tile{background-position:center 25%;background-size:cover}
.tile.sk{border-color:transparent}.tile.sk::before{display:none}.tile .badge{left:auto;right:8px;top:8px;z-index:1}
.ep.soon{opacity:.55;pointer-events:none}.ep .th.ld:not([style]){background:var(--line)}
.sbox{position:relative;max-width:640px;margin:14px 0}.sbox .i{position:absolute;left:16px;top:15px;color:var(--mute)}
.sbox input{width:100%;height:50px;padding:0 18px 0 46px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:inherit;font-size:16px}
.empty{grid-column:1/-1}.watch.one{grid-template-columns:minmax(0,1fr);max-width:1000px;margin-inline:auto}
#sugg .sr{display:flex;gap:12px;align-items:center;padding:8px 12px}.sth{width:36px;height:52px;border-radius:6px;overflow:hidden;position:relative;flex:none;display:block}
.sth img{width:100%;height:100%;object-fit:cover;display:block}
dialog.set{border:0;border-radius:16px;padding:22px;background:var(--panel);color:var(--ink);width:min(440px,92vw)}dialog.set::backdrop{background:rgba(var(--ov,33,21,15),.6)}
dialog.set h2{font-size:22px;margin-bottom:8px}dialog.set label{display:block;font-weight:500;margin:14px 0 6px}dialog.set p{color:var(--mute);font-size:13px;margin:6px 0}
dialog.set input{width:100%;height:42px;padding:0 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}
dialog.set .acts{margin-top:16px}
/* ---- planning, réglages, épisodes ---- */
.ep>div+div{min-width:0}.ep b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arow{display:flex;align-items:center;gap:14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin-bottom:10px;transition:transform .2s,border-color .2s}
.arow:hover{border-color:var(--acc);transform:translateX(3px)}.arow.past{opacity:.6}.arow .badge{position:static}
.atime{font:700 17px 'DM Sans',system-ui,sans-serif;width:56px;color:var(--acc);flex:none}
.aposter{width:52px;aspect-ratio:2/3;border-radius:8px;overflow:hidden;position:relative;flex:none}.aposter img{width:100%;height:100%;object-fit:cover;display:block}
.ainfo{flex:1;min-width:0}.ainfo b{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ainfo small{color:var(--mute)}
.set-wrap{max-width:760px;padding-bottom:20px}.card2{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:6px 20px;margin-bottom:20px}.card2 h2{font-size:18px;padding:14px 0 6px}
.srow2{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line);flex-wrap:wrap}.srow2 small{display:block;color:var(--mute)}
.seg{display:inline-flex;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{border:0;background:transparent;color:var(--mute);height:34px;padding:0 14px;border-radius:999px;font:500 14px 'DM Sans',sans-serif;cursor:pointer}.seg button[aria-pressed=true]{background:var(--acc);color:var(--on-acc)}
.sws{display:flex;gap:10px;flex-wrap:wrap}.sws button{width:30px;height:30px;border-radius:50%;border:2px solid transparent;cursor:pointer}.sws button[aria-pressed=true]{border-color:var(--ink)}
.keyrow{display:flex;gap:8px;width:100%;flex-wrap:wrap}.keyrow input{flex:1;min-width:180px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:inherit}
.no-anim *,.no-anim *::before,.no-anim *::after{animation:none!important;transition:none!important}
/* ---- Komori : mascotte, accueil, favoris ---- */
.mas{display:block;width:var(--ms,150px);max-width:60vw;height:auto;color:var(--ink);overflow:visible}
.lid{transform-box:fill-box;transform-origin:center;transform:scaleY(0);animation:blink 5.5s infinite}
@keyframes blink{0%,93%,100%{transform:scaleY(0)}95%,97%{transform:scaleY(1)}}
.breathe{transform-origin:50% 92%;animation:breathe 4.5s ease-in-out infinite}@keyframes breathe{50%{transform:scale(1.018)}}
.look{animation:look 6s ease-in-out infinite}@keyframes look{0%,100%{transform:translateX(0)}22%{transform:translateX(-7px)}58%{transform:translateX(7px)}80%{transform:translateX(0)}}
.z,.qm{font-family:'DM Sans',system-ui,sans-serif;font-weight:700;fill:var(--acc)}.z{font-size:34px;opacity:.85;animation:zz 3.2s ease-in-out infinite}.z2{animation-delay:.8s}.z3{animation-delay:1.6s}
@keyframes zz{0%,100%{transform:translate(0,0);opacity:.25}50%{transform:translate(8px,-14px);opacity:.95}}
.qm{font-size:56px;animation:bob 2.4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-8px)}}
.msg{display:grid;justify-items:center;gap:6px}.msg p{margin:0;max-width:44ch}
.welcome{display:flex;align-items:center;gap:20px;padding:24px 0 0}.welcome .mas{--ms:84px;flex:none}
.welcome h2{font-size:clamp(22px,3vw,30px);line-height:1.15}.welcome p{margin:6px 0 0;color:var(--mute);max-width:62ch}.welcome .chip{margin-bottom:8px}
.chip.lav{color:var(--lav)}
.empty .mas{margin:0 auto 14px}.empty h2{color:var(--ink);font-size:22px;margin-bottom:6px}.empty .btn{margin-top:18px}
.fmark{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:500;margin-bottom:10px}
#favb[aria-pressed=true]{color:var(--acc);border-color:var(--acc)}
footer{margin-top:60px;padding:28px 0 40px;border-top:1px solid var(--line);color:var(--mute);font-size:13px}
@media (max-width:860px){.watch{grid-template-columns:minmax(0,1fr)}.side{position:static;max-height:none}.dbody{grid-template-columns:130px 1fr;gap:16px;padding-top:20px}.pcol{display:contents}.pcol .poster{grid-column:1;grid-row:1}.dbody>.info{grid-column:2;grid-row:1}.pcol .ext{grid-column:1/-1;grid-row:2;flex-direction:row;flex-wrap:wrap;margin-top:0}.pcol .ext .btn{width:auto;flex:1 1 auto;justify-content:center}.ep .th{width:132px}.filters{grid-template-columns:1fr 1fr}.slide{padding-right:24px}.hn{bottom:12px}}
@media (max-width:1020px){.nav .lb{display:none}.nav a{padding:10px}}@media (max-width:640px){.bar{gap:8px}.logo span{display:none}.nav a{padding:8px}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* pastille qui glisse sous le bouton actif */
.nav{position:relative}.nav a{position:relative;z-index:1}
.nav .pill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:999px;background:var(--acc);pointer-events:none;opacity:0;transition:transform .38s cubic-bezier(.4,0,.2,1),width .38s cubic-bezier(.4,0,.2,1),opacity .2s}
/* plus de flash bleu au toucher (Android) */
*{-webkit-tap-highlight-color:transparent}
/* menu profil */
.pw{position:relative}.ib{padding:0;overflow:hidden}.ib .av{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover}
.pm{position:absolute;right:0;top:calc(100% + 10px);min-width:230px;padding:8px;border-radius:16px;background:var(--surf);border:1px solid var(--line);box-shadow:0 12px 32px #0006;z-index:30;display:flex;flex-direction:column;gap:2px;animation:pmin .18s ease}
.pm[hidden]{display:none}@keyframes pmin{from{opacity:0;transform:translateY(-6px)}}
.pm a,.pm button{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:0;background:none;color:var(--ink);font:inherit;font-weight:500;text-align:left;cursor:pointer}
.pm a:hover,.pm button:hover{background:var(--panel)}.pm .i{width:18px;height:18px}
.pm .pu{padding:8px 12px 10px;border-radius:10px 10px 0 0;border-bottom:1px solid var(--line);margin-bottom:4px}.pu .av{width:36px;height:36px;flex:none;aspect-ratio:1;border-radius:50%;object-fit:cover}.pu small{display:block;color:var(--mute);font-size:12px;font-weight:400}

/* bouton + sur les cartes */
.addb{position:absolute;top:8px;right:8px;width:34px;height:34px;padding:0;border-radius:50%;display:grid;place-items:center;border:0;background:#000b;color:#fff;cursor:pointer;opacity:0;transform:scale(.85);transition:opacity .2s,transform .2s,background .2s;z-index:2}
.addb .i{width:18px;height:18px}.addb.on{background:var(--acc);color:var(--on-acc)}
.card:hover .addb,.card:focus-within .addb,.addb:focus-visible{opacity:1;transform:none}.addb:hover{background:var(--acc);color:var(--on-acc)}
@media (hover:none){.addb{opacity:.85;transform:none}}
/* image absente : le chat de Komori */
.noimg{background:var(--panel)!important;animation:none!important}.noimg img{display:none}
.nc{position:absolute;inset:0;display:grid;place-items:center;color:var(--mute);opacity:.6;pointer-events:none}.nc .mas{--ms:min(62%,110px);color:var(--mute)}
.th.noimg .nc .mas{--ms:70%}
.noimg .badge{z-index:1}.th{position:relative}
/* toasts */
#toasts{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:60;pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}
.toast{display:flex;align-items:center;gap:10px;padding:10px 18px 10px 14px;border-radius:999px;background:var(--surf);border:1px solid var(--line);color:var(--ink);font-weight:500;box-shadow:0 12px 30px #0007;opacity:0;transform:translateY(14px) scale(.96);transition:opacity .3s,transform .3s cubic-bezier(.2,.8,.2,1)}
.toast.in{opacity:1;transform:none}.toast .mark{color:var(--acc)}.toast.out .mark{color:var(--mute)}
/* bande-annonce */
.modal{position:fixed;inset:0;z-index:70;background:#000c;display:grid;place-items:center;padding:16px;animation:pmin .2s ease}
.mbox{position:relative;width:min(960px,100%);aspect-ratio:16/9;border-radius:var(--r);overflow:hidden;background:#000}.mbox iframe{width:100%;height:100%;border:0;display:block}
.mx{position:absolute;top:10px;right:10px;z-index:2;background:#000a;border-color:#ffffff40;color:#fff}
.acts.ext{margin-top:10px}.acts.ext .btn{height:40px;padding:0 16px}.acts.ext .btn .i{width:20px;height:20px}
/* commentaires */
#anime-community-comment-section{min-height:120px}
/* profil */
.prof{display:flex;align-items:center;gap:20px;padding:36px 0 8px}.prof h1{font-size:clamp(26px,4vw,38px)}.pm2{color:var(--mute);margin:4px 0 0}
.pavatar{width:96px;height:96px;flex:none;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--panel);border:1px solid var(--line);display:grid;place-items:center}.pavatar img{width:100%;height:100%;object-fit:cover;display:block}.pavatar .i{width:40px;height:40px;color:var(--mute)}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;max-width:520px;margin-top:20px}.stat{padding:16px 18px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line)}.stat b{display:block;font-size:30px}.stat span{color:var(--mute);font-size:14px}

/* hero : dézoom, barres de progression, swipe */
.hero{touch-action:pan-y;user-select:none;-webkit-user-select:none}
.slide{background:none}.slide::before{z-index:1}.slide>*:not(.sbg){z-index:2}
.sbg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;transform:scale(1.14)}.slide>.sbg{position:absolute}
.slide.on .sbg{animation:dezoom 8s cubic-bezier(.25,.6,.3,1) forwards}.hero:not(.auto) .slide.on .sbg{animation:none;transform:none}
@keyframes dezoom{from{transform:scale(1.14)}to{transform:scale(1)}}
.slide.on>:not(.sbg){animation:rise .7s cubic-bezier(.2,.8,.2,1) both}.slide.on>:nth-child(3){animation-delay:.07s}.slide.on>:nth-child(4){animation-delay:.14s}.slide.on>:nth-child(5){animation-delay:.21s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
.dot{position:relative;overflow:hidden;width:8px;height:8px;border-radius:99px;border:0;padding:0;background:#ffffff59;cursor:pointer;transition:width .35s}.dot.on{width:36px}
.dot::after{content:"";position:absolute;inset:0;background:#fff;border-radius:inherit;transform:scaleX(0);transform-origin:left center}.dot.on::after{transform:scaleX(1)}
.hero.auto .dot.on::after{transform:scaleX(0);animation:dotfill 7s linear forwards}@keyframes dotfill{to{transform:scaleX(1)}}
.hero.hold .dot::after,.hero.hold .sbg{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.slide.on>*,.slide.on .sbg{animation:none!important}.sbg{transform:none}}
/* fiche : saisons / films / OVA dans la colonne de droite */
.dbody{grid-template-rows:auto 1fr}.pcol{grid-column:1;grid-row:1/3}.dbody>.info{grid-column:2;grid-row:1}.dbody>#tiles{grid-column:2;grid-row:2;min-width:0}#tiles .sec:first-child{margin-top:26px}
@media (max-width:860px){.dbody>#tiles{grid-column:1/-1;grid-row:3}}
/* nouvelles mascottes */
.err .mas{margin:0 auto 18px}.n404{font:800 36px 'DM Sans',system-ui,sans-serif;fill:var(--acc);animation:bob 2.4s ease-in-out infinite}
.scan{animation:scan 5.5s ease-in-out infinite}@keyframes scan{0%,100%{transform:translateX(0)}40%,60%{transform:translateX(86px)}}
.peek{animation:peek 3.4s ease-in-out infinite}@keyframes peek{0%,100%{transform:translateY(14px)}50%{transform:translateY(-3px)}}
.spark{animation:spark 1.1s steps(2,end) infinite}@keyframes spark{50%{opacity:0}}
.drip{animation:drip 2.6s ease-in infinite}@keyframes drip{0%{transform:translateY(-8px);opacity:0}20%{opacity:1}100%{transform:translateY(36px);opacity:0}}
.wave{transform-box:fill-box;transform-origin:50% 100%;animation:wave 1.5s ease-in-out infinite}@keyframes wave{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(14deg)}}
.glance{animation:glance 4.2s ease-in-out infinite}@keyframes glance{0%,40%,100%{transform:translateY(0)}55%,85%{transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.mas *{animation:none!important}}

/* ---- fiche : panneau saisons / films / OVA / spéciaux ---- */
.fr .seg{margin-bottom:14px}
.seg .n{margin-left:6px;opacity:.65;font-size:12px}
.frrail{display:flex;gap:14px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity;position:relative;scrollbar-width:thin}
.frrail[hidden]{display:none}
.fc{flex:none;width:132px;scroll-snap-align:start;display:flex;flex-direction:column;gap:3px;color:var(--ink);transition:transform .2s}
.fc:hover{transform:translateY(-3px)}
.fc .tp{position:relative;aspect-ratio:2/3;border-radius:var(--r);background:var(--panel) center/cover;border:2px solid transparent;overflow:hidden}
.fc.on .tp{border-color:var(--acc)}
.fc b{font-weight:600;font-size:15px;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fc.on b{color:var(--acc)}
.fc small{color:var(--mute);font-size:12.5px;line-height:1.3}
.fc small.t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:640px){.fc{width:112px}}
/* miniature de secours (bannière de l'anime) */
.ep .th .i{position:relative;z-index:1}
.th.fbk{background-position:center 30%}
.th.fbk::after{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(var(--ov,33,21,15),.5)}

/* ---- cases-catégories (Saisons / Films / OVA / Spéciaux) ---- */
.frcats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.fcat{position:relative;height:96px;border-radius:var(--r);border:2px solid var(--line);overflow:hidden;background:var(--panel);color:#fff;cursor:pointer;display:flex;align-items:flex-end;padding:12px 14px;text-align:left;font:700 21px 'DM Sans',system-ui,sans-serif;transition:border-color .2s,transform .2s}
.fcat:hover{transform:translateY(-2px)}
.fcat .fcb{position:absolute;inset:-6px;background-size:cover;background-position:center 25%;filter:blur(2px)}
.fcat::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,rgba(var(--ov,33,21,15),.92),rgba(var(--ov,33,21,15),.55))}
.fcat .tx{position:relative;z-index:2;display:flex;align-items:baseline;gap:10px}
.fcat small{font:500 14px 'DM Sans',sans-serif;color:var(--mute)}
.fcat[aria-pressed=true]{border-color:var(--acc)}
.fcat[aria-pressed=true] b{color:var(--acc)}
/* ---- épisodes : navigation, spoilers ---- */
.shr{display:flex;align-items:center;gap:8px}
.shh{display:flex;align-items:center;justify-content:space-between}
.spb{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--mute);display:grid;place-items:center;cursor:pointer}
.spb .i{width:18px;height:18px}
.spb[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.epnav{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px}
.pgs{display:flex;gap:6px;overflow-x:auto;max-width:100%;padding-bottom:4px;position:relative;scrollbar-width:thin;flex:1 1 320px;min-width:0}
.pg{flex:none;height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--mute);font:500 14px 'DM Sans',sans-serif;cursor:pointer}
.pg[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.epj{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.epj form{display:flex;gap:8px}
.epj input,.epj select{height:36px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:0 14px;font:500 14px 'DM Sans',sans-serif;max-width:220px}
.epj input{width:130px}
.ep .nn{display:none}
.spoil .ep[data-u] .tt{display:none}
.spoil .ep[data-u] .nn{display:inline}
.spoil .ep[data-u][data-t] small{visibility:hidden}

/* ---- v1.6 : fiche = poster + infos, puis un seul panneau (saisons + épisodes) pleine largeur ---- */
.dbody{grid-template-rows:auto}
.pcol{grid-column:1;grid-row:1}
.dbody>.info{grid-column:2;grid-row:1}
.btn.ic{width:44px;padding:0}
.btn.ic .i{width:22px;height:22px}
.hub{margin-top:30px;padding:20px 22px 24px;border:1px solid var(--line);border-radius:22px;background:color-mix(in srgb,var(--surf) 16%,var(--bg));scroll-margin-top:84px}
.hub .sec{margin-top:0}
.hub #tiles .sec:first-child{margin-top:0}
.hub #tiles+.sec{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
.hub .frrail{margin:0 -4px;padding:4px 4px 8px}
.sh h2 small{font:500 15px 'DM Sans',sans-serif;color:var(--mute);margin-left:12px}
.fcat{height:64px;font-size:18px;padding:10px 14px}
.frcats{margin-bottom:14px}
.fc{width:120px}
.fc small.t{-webkit-line-clamp:1}
@media(max-width:640px){.hub{padding:14px;border-radius:16px}.fc{width:104px}.fcat{font-size:16px}}
/* ---- v1.7 : fiche = épisodes (gauche/centre) + catégories verticales (droite) ---- */
.hub{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:start}
.hmain{min-width:0}.hside{position:sticky;top:84px;display:flex;flex-direction:column;gap:10px}
.etb{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.dd{position:relative}
.ddb,.tbn,.spb.wide{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 18px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:var(--r);font:500 15px 'DM Sans',sans-serif;cursor:pointer;width:auto;transition:border-color .2s,background .2s}
.ddb{min-width:170px;justify-content:space-between;font-size:16px}.ddb>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px}
.ddb:hover,.tbn:hover,.spb.wide:hover{border-color:var(--acc)}
.ddb .i{transition:transform .25s}.dd.open .ddb .i{transform:rotate(180deg)}
.ddm{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:min(380px,86vw);max-height:340px;overflow:auto;z-index:15;background:var(--surf);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 40px #0006;padding:6px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s,transform .2s,visibility 0s .2s}
.dd.open .ddm{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .2s}
.ddm button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;border-radius:8px;background:none;color:var(--ink);font:500 15px 'DM Sans',sans-serif;cursor:pointer}
.ddm button small{display:block;color:var(--mute);font-size:12.5px;font-weight:400}
.ddm button:hover{background:var(--panel)}.ddm button[aria-selected=true]{color:var(--acc)}
.tbn[aria-pressed=true],.spb.wide[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:var(--on-acc)}
.tbn[hidden]{display:none}
.spb.pop .i{animation:pop .5s cubic-bezier(.2,.8,.2,1)}@keyframes pop{0%{transform:scale(.4) rotate(-25deg)}60%{transform:scale(1.25)}100%{transform:none}}
/* catégories : accordéon vertical */
.facc{border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel);transition:border-color .2s}.facc.open{border-color:var(--acc)}
.facc .fcat{width:100%;height:68px;border:0;border-radius:0;font-size:18px}.facc .fcat:hover{transform:none}
.fcat .cv{position:absolute;z-index:2;right:12px;top:50%;margin-top:-10px;color:#fff;display:grid}.fcat .cv .i{transition:transform .25s}
.fcat[aria-expanded=true] b{color:var(--acc)}.fcat[aria-expanded=true] .cv .i{transform:rotate(180deg)}
.frl{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .32s cubic-bezier(.2,.8,.2,1),visibility 0s .32s}
.facc.open .frl{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .32s cubic-bezier(.2,.8,.2,1)}
.frli{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:2px;padding:0 6px}.facc.open .frli{padding:6px;max-height:420px;overflow-y:auto}
.fit{display:flex;gap:10px;align-items:center;width:100%;padding:6px;border:0;border-radius:8px;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.fit:hover,.fit.on{background:var(--surf)}.fit.on b{color:var(--acc)}
.fit .fp{position:relative;width:38px;aspect-ratio:2/3;border-radius:6px;flex:none;background:var(--line) center/cover;overflow:hidden}
.fx{min-width:0}.fit b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:500;font-size:14px;line-height:1.3}
.fit small{display:block;color:var(--mute);font-size:12px;line-height:1.3}.fit small.t{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
/* épisodes : cartes verticales (fiche uniquement, la liste de la page lecture reste compacte) */
.eps{grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr));gap:28px 18px}
.eps .ep{flex-direction:column;align-items:stretch;gap:10px;padding:0;border:0;background:none}
.eps .ep:hover,.eps .ep.on{transform:none}
.eps .ep .th{width:100%;border-radius:4px;transition:outline-color .2s}.eps .ep .th{outline:2px solid transparent;outline-offset:2px}.eps .ep:hover .th,.eps .ep.on .th{outline-color:var(--acc)}
.eps .ep .th>.i{opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s;width:34px;height:34px}.eps .ep:hover .th>.i{opacity:1;transform:none}
.eps .ep b{font-size:17px;font-weight:600}
.eps .ep .ed{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:6px 0 0;color:var(--mute);font-size:14px;line-height:1.5}
.eps .ep small{display:none}.eps .ep.soon small{display:block;margin-top:4px}
.eps .ep .seen{top:8px;right:8px;background:#000b;color:#fff;padding:2px 8px;border-radius:99px}
.ep .ed{display:none}.ep .th{overflow:hidden}
.th .dur,.th .fil{position:absolute;z-index:3;padding:2px 8px;border-radius:4px;background:#000c;color:#fff;font:700 13px 'DM Sans',sans-serif}
.th .dur{right:8px;bottom:8px}.th .fil{left:8px;top:8px;background:var(--acc);color:var(--on-acc);font-size:12px}
.side .th .dur,.side .th .fil.soonb{display:none}
.side .th .fil{left:4px;top:4px;padding:1px 5px;border-radius:3px;font-size:9px}
/* mode anti-spoil : voile flouté qui apparaît en fondu, avec la mention « Spoiler » */
.th .mk{position:absolute;inset:0;z-index:2;display:grid;place-content:center;justify-items:center;gap:3px;border-radius:inherit;color:var(--ink);background:color-mix(in srgb,var(--panel) 62%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transition:opacity .45s ease}
.th .mk .i{width:28px;height:28px}.side .th .mk .i{width:16px;height:16px}
.th .mk span{display:none;font:700 12px/1 'DM Sans',sans-serif;letter-spacing:.06em;text-transform:uppercase}.side .th .mk span{font-size:9px}
.ep .th>.i{transition:opacity .45s ease}
.spoil .ep[data-u] .th .mk{opacity:1}.spoil .ep[data-u] .th .mk span{display:block}
.spoil .ep[data-u] .th>.i{opacity:0!important}
.spoil .eps .ep[data-u] .ed{display:none}
/* Fillers ignorés : l'épisode reste dans la liste mais masqué comme en mode anti-spoil (voile flouté, titre et résumé cachés) ; le tag « Filler » reste visible dessus */
.ep[data-f] .tt{display:none}
.ep[data-f] .nn{display:inline}
.ep[data-f][data-t] small{visibility:hidden}
.ep[data-f] .th .mk{opacity:1}
.ep[data-f] .th>.i{opacity:0!important}
/* Filler masqué : le mot « FILLER » en grand à la place de l'œil barré, pour bien le distinguer d'un spoiler */
.th .mk .fl{display:none!important}
.ep[data-f] .th .mk .i,.ep[data-f] .th .mk .sp{display:none!important}
.ep[data-f] .th .mk .fl{display:block!important;font:800 28px/1 'DM Sans',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--acc)}
.side .ep[data-f] .th .mk .fl{font-size:12px;letter-spacing:.1em}
.ep[data-f] .th .fil{display:none}
.eps .ep[data-f] .ed{display:none}
@media (max-width:860px){.hub{grid-template-columns:1fr;padding:14px}.hside{position:static;order:-1}.eps{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));gap:22px 12px}.ddb,.tbn,.spb.wide{height:44px;padding:0 14px}}
@media (max-width:520px){.tbn span,.spb.wide span{display:none}.tbn,.spb.wide{padding:0 13px}}

/* ---- v1.8 ---- */
.dbody>.info{align-self:end}
.btn.ic{color:var(--acc)}
.mbox #tpl,.mbox iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tmsg{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-weight:500;background:#000}

.tbn:disabled{opacity:.55;cursor:default}.tbn:disabled:hover{border-color:var(--line)}

/* navigation des épisodes : pages à gauche (défilables), arc + n° d'épisode à droite, sur la même ligne */
.hmain .epnav{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:14px;margin-bottom:18px}
.hmain .pgs{flex:1 1 0;min-width:0;width:auto}
.hmain .epj{display:flex;flex:none;gap:8px;align-items:center;flex-wrap:nowrap;width:auto}
.hmain .epj select{flex:none;width:170px;height:44px}
.hmain .epj form{display:flex;gap:8px}
.hmain .epj input{width:112px;height:44px}.hmain .epj form button{height:44px}
@media (max-width:900px){.hmain .epnav{flex-wrap:wrap}.hmain .pgs{flex:1 1 100%}.hmain .epj{width:100%}.hmain .epj select{flex:1 1 0;width:auto}}
/* Chargé APRÈS app.css : recherche repliable, hero / fiche anime mobiles, fond personnalisable. */
[hidden]{display:none!important}
.slide::before{background:linear-gradient(90deg,rgba(var(--ov,33,21,15),.92),rgba(var(--ov,33,21,15),.35) 60%,rgba(var(--ov,33,21,15),.1)),linear-gradient(0deg,rgba(var(--ov,33,21,15),.7),transparent 50%)}
.sw .sbt{display:none}

@media (max-width:860px){
  /* Recherche : loupe ronde -> pastille */
  .sw{display:flex;align-items:center;margin-left:0;flex:0 0 var(--hb,40px);width:auto;height:var(--hb,40px);border-radius:999px;border:1px solid var(--line);background:var(--panel);transition:flex-grow .3s ease}
  .sw>.i{display:none}
  .sw .sbt{display:grid;place-items:center;flex:0 0 calc(var(--hb,40px) - 2px);width:calc(var(--hb,40px) - 2px);height:calc(var(--hb,40px) - 2px);padding:0;border:0;background:none;color:var(--ink);border-radius:50%;cursor:pointer}
  .sw input{flex:1 1 0;width:0;min-width:0;height:100%;padding:0;border:0;background:transparent;font-size:16px;opacity:0;pointer-events:none;transition:opacity .2s}
  .sw input:focus-visible{outline:0}
  .sw.open{flex:1 0 var(--hb,40px);margin-left:0}
  .sw.open input{opacity:1;pointer-events:auto;padding:0 16px 0 2px}
  #sugg{top:calc(100% + 8px)}
  .nav{margin:0 auto;max-width:340px;overflow:hidden;transition:max-width .3s ease,opacity .2s ease}
  .bar.sopen .nav{max-width:0;opacity:0;pointer-events:none;margin:0}
  .bar.sopen .logo span{display:none}

  /* Hero */
  .hero{height:clamp(430px,112vw,520px)}
  .slide{padding-bottom:64px}
  .hn{left:0;right:0;bottom:18px;justify-content:center;pointer-events:none}
  .hn>.ib{display:none}.hn .dots{pointer-events:auto}
  .slide h1{font-size:clamp(24px,7.4vw,34px)}
  .slide .acts .btn{flex:1 1 0;min-width:0;padding:0 12px}
}

@media (max-width:700px){
  /* Fiche anime : poster + titre côte à côte, le reste en pleine largeur */
  .dbody{grid-template-columns:118px minmax(0,1fr);grid-template-areas:"p t" "p a" "p m" "g g" "d d" "x x" "b b";gap:8px 14px}
  .dbody>.info{display:contents}
  .dbody .pcol .poster{grid-area:p}
  .dbody .dtt{grid-area:t;align-self:end;margin:0;font-size:clamp(21px,6.2vw,28px);overflow-wrap:anywhere}
  .dbody .alt{grid-area:a;margin:0;font-size:14px}.dbody .alt:empty{display:none}
  .dbody .c-meta{grid-area:m;margin:0;gap:6px;align-self:start}
  .dbody .c-gen{grid-area:g;margin:4px 0 0}
  .dbody .desc{grid-area:d;margin:0}
  .dbody .dmore{grid-area:x;justify-self:start;margin:0}
  .dbody .dacts{grid-area:b;margin-top:6px!important}
  .dbody .dacts .btn:first-child{flex:1 1 100%}
  .dbody .dacts .btn.ghost:not(.ic){flex:1 1 calc(50% - 5px);min-width:0;padding:0 12px}
  .dbody .dacts .btn.ic{flex:1 1 calc(50% - 5px);width:auto;padding:0 12px;gap:8px}
  .dbody .dacts .btn.ic .ibt{display:inline}
}

/* ---- v3 : à venir, footer, pages légales, ajustements mobiles ---- */
body{overflow-x:clip}
.btn.off{background:var(--panel);color:var(--mute);border-color:var(--line);pointer-events:none;cursor:default;gap:8px}
.ibt{display:none}
.th .soonb{background:#000c;color:#fff}
.fit.unrel .fp{opacity:.6}.fit.unrel .fx small:last-child{color:var(--acc)}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:32px 48px;margin-bottom:28px}
.fbrand .logo{font-size:20px;margin-bottom:12px;width:fit-content}.fbrand .mark{width:30px;height:30px}
.fbrand p{margin:0 0 16px;max-width:44ch;line-height:1.65}
.fsoc{display:flex;gap:10px;flex-wrap:wrap}
.fsoc a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--panel);color:var(--ink);transition:background .2s,color .2s,transform .2s}
.fsoc a:hover{background:var(--acc);color:var(--on-acc);transform:translateY(-2px)}
.fcol{display:flex;flex-direction:column;gap:9px}.fcol h4{margin:0 0 4px;color:var(--ink);font-size:14px;font-weight:700;letter-spacing:0}
.fcol a{color:var(--mute);width:fit-content;transition:color .2s}.fcol a:hover{color:var(--ink)}
.fbot{display:flex;justify-content:space-between;align-items:flex-start;gap:10px 28px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line);font-size:12.5px}
.fbot small{display:block;max-width:72ch;line-height:1.55;font-size:12.5px}
.legal{max-width:760px;margin:48px auto 0}.legal h1{font-size:clamp(28px,4vw,40px);margin-bottom:6px}
.legal .upd{color:var(--mute);margin:0 0 28px}.legal h2{font-size:19px;margin:28px 0 8px}
.legal p{color:var(--mute);margin:0}.legal a{color:var(--acc)}.legal .fsoc{margin-top:24px}.legal .fsoc a{color:var(--ink)}
@media (max-width:860px){.fgrid{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}
@media (max-width:560px){
  .fgrid{gap:26px 20px}.fbot{flex-direction:column}
  .hmain .epj{flex-wrap:wrap}.hmain .epj select{flex:1 1 100%;width:100%}
  .hmain .epj form{flex:1 1 100%}.hmain .epj input{flex:1;width:auto;min-width:0}
  .legal{margin-top:28px}
}

/* ---- v4 : mascotte café, studio, rappels, outils de lecture ---- */
.phc{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.phm{flex:none;margin-bottom:-6px}
.mas.cafe{--ms:clamp(170px,26vw,300px)}
.steam path{fill:none;stroke:var(--ink);stroke-width:6;stroke-linecap:round;opacity:0;animation:steam 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}
.steam path:nth-child(2){animation-delay:1s}.steam path:nth-child(3){animation-delay:2s}
@keyframes steam{0%{opacity:0;transform:translateY(14px) scaleY(.7)}30%{opacity:.7}100%{opacity:0;transform:translateY(-22px) scaleY(1.15)}}
@media (prefers-reduced-motion:reduce){.steam path{opacity:.45!important}}
.chip.clink{transition:border-color .2s,color .2s}.chip.clink:hover{border-color:var(--acc);color:var(--acc)}
.bellb{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer;transition:background .2s,color .2s,transform .2s}
.bellb:hover{border-color:var(--acc)}.bellb.on{background:var(--acc);color:var(--on-acc);border-color:var(--acc)}.bellb.on .i{fill:currentColor}
.bellb.pop,.bellb:active{transform:scale(.92)}
.wtools{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.wtools select{flex:1 1 200px;min-width:0;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);color:var(--ink);font:500 14px 'DM Sans',sans-serif}
.wtools .tbn{height:44px;flex:0 0 auto}
.watch.one>div>.wtools{margin-top:16px}
/* ---- v5 : verrous « appli », catalogue, hero, reprendre / historique, profil ---- */
html{background:var(--bg);-webkit-text-size-adjust:100%}
/* pas de sélection de texte, pas de menu « appui long », pas de halo de focus (sauf saisie de texte) */
*{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
input,textarea{-webkit-user-select:text;user-select:text}
img{-webkit-user-drag:none;user-drag:none}
:focus,:focus-visible,button:focus,a:focus,select:focus,input:focus{outline:none!important}

/* catalogue : on remonte la recherche et on fait « descendre » la mascotte à hauteur de la barre */
.ph.phc{padding-top:12px}
@media (min-width:1100px){.phc{align-items:flex-start;margin-bottom:calc(clamp(170px,26vw,300px)*-.18)}.phc .phm{align-self:flex-end}.phc .phm{pointer-events:none}.phc+.sbox{position:relative;z-index:1}}

/* hero : image toujours centrée dans le cadre, voile plus léger pour laisser voir les personnages */
.sbg{background-position:50% 50%;background-repeat:no-repeat}
.slide::before{background:linear-gradient(90deg,rgba(var(--ov,33,21,15),.82),rgba(var(--ov,33,21,15),.22) 55%,rgba(var(--ov,33,21,15),.04)),linear-gradient(0deg,rgba(var(--ov,33,21,15),.7),transparent 50%)}
@media (max-width:700px){.slide::before{background:linear-gradient(0deg,rgba(var(--ov,33,21,15),.92),rgba(var(--ov,33,21,15),.35) 55%,rgba(var(--ov,33,21,15),.08))}}

/* reprendre ma lecture */
.cwl{display:inline-flex;align-items:center;gap:6px;transition:color .2s,gap .2s}.cwl:hover{color:var(--acc);gap:10px}.cwl .i{width:22px;height:22px}
.row .card.cwc{flex:0 0 calc(clamp(230px,24vw,300px)*var(--sz,1))}
.cwc .poster{aspect-ratio:16/9}
.cwp{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(0deg,#0008,transparent 55%);opacity:0;transition:opacity .25s}
.cwp .i{width:42px;height:42px;padding:11px;border-radius:50%;background:var(--acc);color:var(--on-acc)}
.card:hover .cwp{opacity:1}
@media (hover:none){.cwp{opacity:1;place-items:end start;padding:10px;background:linear-gradient(0deg,#0007,transparent 45%)}.cwp .i{width:34px;height:34px;padding:8px}}
.epb{position:absolute;left:8px;top:8px;padding:3px 9px;border-radius:999px;background:#000b;color:#fff;font-size:12px;font-weight:700}
.pbar{position:absolute;left:0;right:0;bottom:0;height:4px;background:#ffffff40}.pbar>i{display:block;height:100%;background:var(--acc)}
.pbar.in{position:relative;margin-top:8px;border-radius:99px;overflow:hidden;background:var(--line)}

/* historique */
.hl{display:flex;flex-direction:column;gap:10px;max-width:860px;margin-top:6px}
.hd{margin:22px 0 2px;font-size:15px;color:var(--mute);font-weight:700;letter-spacing:0}
.hr{display:flex;align-items:center;gap:14px;padding:10px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line);transition:border-color .2s}.hr:hover{border-color:var(--acc)}
.hth{flex:none;width:56px}.hth .poster{border-radius:8px;box-shadow:none}
.hin{flex:1;min-width:0}.hin b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hin small{color:var(--mute)}
.hr .ib{flex:none;width:36px;height:36px}
.mut{color:var(--mute)}

/* ma liste : état de la synchronisation */
.syn{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 0;padding:10px 14px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line);color:var(--mute);width:fit-content;max-width:100%;font-size:14px}
.syn.ok{color:var(--ink)}.syn.ok .i{color:var(--acc)}.syn .btn{margin-left:auto}

/* profil */
.stats.big{max-width:760px;grid-template-columns:repeat(3,minmax(0,1fr))}.stats.big .stat b{font-size:clamp(26px,4.4vw,38px);line-height:1.15}
.stats.sm2{max-width:760px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}
.stat span{color:var(--mute)}
#pdy{margin-top:8px}
@media (max-width:480px){.stats.big{gap:8px}.stats.big .stat{padding:12px 12px}.stats.big .stat span{font-size:12.5px}}

/* Page lecture : le nom de l'épisode est le grand titre (gras), le nom de la saison est dessous en petit */
.wt h1{font-weight:700}
.wt small{display:block;line-height:1.3;margin-top:4px}

/* Écran de chargement, téléphone uniquement : recouvre tout l'écran, y compris sous la barre d'outils de Safari */
@media (max-width:600px){
  #splash{position:fixed!important;top:-200px!important;right:0!important;bottom:-200px!important;left:0!important;height:auto!important;min-height:0!important}
  html:has(#splash:not(.out)),html:has(#splash:not(.out)) body{overflow:hidden}
}

/* Fiche animé : le backdrop (.dh, z-index:-1) doit passer devant le fond de la page.
   Comme html a son propre fond, le fond du body n'est plus « remonté » sur le canvas et recouvrait le backdrop. */
body{background:transparent}
.seg button:disabled{opacity:.45;cursor:not-allowed}
/* Aucune barre de défilement visible (le défilement reste possible) */
*{scrollbar-width:none!important}*::-webkit-scrollbar{display:none!important}

.ep .th{position:relative;overflow:hidden}.ep .th .pbar{z-index:3;height:3px}.ep .th .pbar>i{transition:width .4s ease}
/* thèmes (réglages) */
.tsec{padding:18px 0 8px;border-bottom:1px solid var(--line)}.tsec>b{display:block}.tsec>small{display:block;margin-top:2px;color:var(--mute)}
.tgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:16px 14px;margin-top:16px}
.tc{display:flex;flex-direction:column;gap:8px;padding:0;border:0;background:none;color:var(--ink);font:inherit;font-weight:500;text-align:left;cursor:pointer}
.tp{display:flex;flex-direction:column;gap:6px;height:88px;padding:10px;border-radius:14px;border:2px solid var(--line);transition:transform .2s,border-color .2s,box-shadow .2s}
.tc:hover .tp{transform:translateY(-2px)}.tc[aria-pressed=true] .tp{border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 28%,transparent)}
.ta{display:flex;align-items:center;height:14px;padding:0 4px;border-radius:7px}.ta b{width:8px;height:8px;border-radius:50%}
.tl{display:block;height:5px;width:72%;border-radius:3px}.tl.s{width:46%;opacity:.75}.tb{display:block;margin-top:auto;width:38px;height:11px;border-radius:6px}
.tn{padding:0 2px}.tn small{display:block;color:var(--mute);font-size:12px;font-weight:400}
.tc[aria-pressed=true] .tn{color:var(--acc)}
/* bio du profil */
.pbio{margin-top:10px;max-width:640px;color:var(--mute);line-height:1.5;overflow-wrap:anywhere}.pbio a{color:var(--acc)}.pbio.clip{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
.fsoc a .i{width:20px;height:20px}
.fls{flex:1;min-width:0;text-align:center;color:var(--acc);font-weight:600;font-size:14px}.fls[hidden]{display:none}@media (max-width:700px){.fls{order:3;flex-basis:100%}}

/* pages d'épisodes (1–50, 51–100…) : défilement horizontal au doigt */
.hmain,.hub>*{min-width:0}
.pgs{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x pan-y;scrollbar-width:none}
.pgs::-webkit-scrollbar{display:none}
.pg{touch-action:manipulation}

/* grille d'épisodes : épisode à reprendre + animation de lancement */
.eps .ep.rsm .th{outline-color:var(--acc)}
.rsmb{position:absolute;left:8px;bottom:12px;padding:3px 9px;border-radius:999px;background:var(--acc);color:var(--on-acc);font-size:12px;font-weight:700;z-index:2}
.eps.going .ep:not(.launch){opacity:.35;transition:opacity .3s}
.ep.launch{pointer-events:none}
.ep.launch .th{position:relative;animation:epgo .34s cubic-bezier(.3,.7,.2,1) forwards;outline-color:var(--acc)}
.ep.launch .th>.i{opacity:1!important;transform:scale(1.3)!important}
.ep.launch .th::after{content:'';position:absolute;inset:0;background:radial-gradient(circle,#fff7,transparent 65%);animation:epflash .34s ease-out forwards}
@keyframes epgo{0%{transform:scale(1)}35%{transform:scale(.94)}100%{transform:scale(1.05);filter:brightness(1.2)}}
@keyframes epflash{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1.5)}}
.no-anim .ep.launch .th,.no-anim .ep.launch .th::after{animation:none}
/* historique */
.hstats{max-width:760px;grid-template-columns:repeat(3,minmax(0,1fr));margin:14px 0 6px}.hstats .stat b{font-size:clamp(20px,3.6vw,28px)}
.hr{padding:12px 14px;gap:16px}.hth{width:64px}
.hin b{font-weight:600;font-size:16px}
.hmeta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}
.hst{padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--line);color:var(--mute)}
.hst.on{background:color-mix(in srgb,var(--acc) 22%,transparent);color:var(--acc)}.hst.next{background:var(--acc);color:var(--on-acc)}
.hpc{font-size:13px;color:var(--mute)}
.hact{display:flex;align-items:center;gap:6px;flex:none}.hgo{white-space:nowrap}
@media (max-width:560px){.hr{flex-wrap:wrap}.hact{width:100%;justify-content:space-between}.hstats{gap:8px}.hstats .stat{padding:12px}}

/* tag « Vu » sur l'affiche, en haut à droite */
.ep .th{position:relative}
.ep .th .seen{position:absolute;top:8px;right:8px;margin:0;align-self:auto;z-index:2;display:flex;align-items:center;gap:4px;background:#000b;color:#fff;padding:2px 8px;border-radius:99px;font-size:12px}
.ep .th .seen .i{width:13px;height:13px}

/* ?artdebug : source de chaque image */
.artdebug .poster[data-src]{position:relative}.artdebug .poster[data-src]::after{content:attr(data-src);position:absolute;left:6px;top:6px;z-index:9;padding:2px 7px;border-radius:6px;font:700 11px/1.4 monospace;color:#fff;background:#2563eb}.artdebug .poster[data-src=AniList]::after{background:#dc2626}
#artdbg{position:fixed;left:8px;bottom:8px;z-index:99;max-width:94vw;font:11px/1.35 monospace;background:#000d;color:#fff;padding:6px 9px;border-radius:8px;white-space:pre-wrap;pointer-events:none}

/* hero : logo de la série à la place du titre en texte */
.slide .hlogo{display:none;max-width:min(560px,100%);max-height:clamp(64px,13vw,150px);width:auto;height:auto;object-fit:contain;object-position:left center;filter:drop-shadow(0 4px 18px #000a)}
.slide.hasLogo .hlogo{display:block}
.slide.hasLogo h1{display:block;overflow:visible;line-height:0}
.slide.hasLogo .ttl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* invitation Discord (même esprit que .pwa-card) */
.dsc-card{position:fixed;z-index:54;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));max-width:440px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:12px 12px 12px 14px;background:var(--surf);color:var(--ink);border:1px solid var(--line);border-radius:18px;box-shadow:0 16px 40px #0007;opacity:0;transform:translateY(20px);transition:opacity .35s,transform .35s cubic-bezier(.2,.8,.2,1)}
.dsc-card.in{opacity:1;transform:none}
body:has(.pwa-card) .dsc-card{opacity:0;pointer-events:none} /* jamais en même temps que l'encart d'installation / de mise à jour */
.dsc-ic{width:44px;height:44px;border-radius:11px;flex:none;display:grid;place-items:center;background:#5865f2;color:#fff}.dsc-ic .i{width:26px;height:26px}
.dsc-tx{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.3}.dsc-tx b{font-weight:700}.dsc-tx span{color:var(--mute);font-size:13px}
.dsc-card .btn{flex:none}.dsc-x{width:34px;height:34px;flex:none;background:transparent;border-color:transparent;color:var(--mute)}
@media (min-width:700px){.dsc-card{left:20px;right:auto;bottom:calc(20px + env(safe-area-inset-bottom,0px));margin:0;width:400px}}
.no-anim .dsc-card{transition:opacity .2s;transform:none}
@media (prefers-reduced-motion:reduce){.dsc-card{transition:opacity .2s;transform:none}}

/* liste : retrait animé + toast « Annuler » */
.card.leaving{animation:cardOut .22s ease forwards;pointer-events:none}
@keyframes cardOut{to{opacity:0;transform:scale(.86) translateY(10px);filter:blur(2px)}}
.card.entering{animation:cardIn .3s cubic-bezier(.2,.8,.2,1)}
@keyframes cardIn{from{opacity:0;transform:scale(.88)}}
.no-anim .card.leaving{animation:none;opacity:0}.no-anim .card.entering{animation:none}
.toast.act{pointer-events:auto;padding-right:8px}.toast.act span{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tact{margin-left:6px;border:0;border-radius:999px;background:var(--acc);color:var(--on-acc);font:600 13px 'DM Sans',sans-serif;padding:7px 14px;cursor:pointer}
body:has(.toast.act) .dsc-card{opacity:0;pointer-events:none}
/* hero : titre latin discret sous un logo japonais */
.slide .hsub{display:none;margin-top:8px;font-size:clamp(12px,1.3vw,14px);font-weight:500;letter-spacing:.04em;color:#fffc;text-shadow:0 2px 10px #000b}
.slide.hasLogo.jaLogo .hsub{display:block}

/* reprendre ma lecture : texte resserré + boutons info / retirer */
.cwc b{min-height:0;margin-top:10px}
.cwc small{display:block;margin-top:2px;line-height:1.3}
.cwa{position:absolute;top:8px;right:8px;display:flex;gap:6px;z-index:2}
.cwa .addb{position:static;opacity:0;transform:scale(.85);text-decoration:none}
.card:hover .cwa .addb,.card:focus-within .cwa .addb,.cwa .addb:focus-visible{opacity:1;transform:none}
.cwa .cwx:hover{background:#dc2626;color:#fff}
@media (hover:none){.cwa .addb{opacity:.9;transform:none}}

/* cartes distribuées une à une */
.card.deal{animation:cardDeal .5s cubic-bezier(.2,.8,.2,1) var(--dl,0ms) backwards}
@keyframes cardDeal{from{opacity:0;transform:translateX(-34px) translateY(10px) rotate(-5deg) scale(.88)}}
.no-anim .card.deal{animation:none}
@media (prefers-reduced-motion:reduce){.card.deal{animation:none}}

/* hero : fluidité (couches GPU dédiées) */
.sbg{will-change:transform;backface-visibility:hidden;transform-origin:center}
.slide{will-change:opacity;contain:layout paint}

/* page watch : liste d'épisodes un peu plus grande, miniatures plus visibles */
.side .ep{padding:9px;margin-bottom:10px;gap:14px}
.side .ep .th{width:128px}
.watch{grid-template-columns:minmax(0,1fr) 380px}
@media (max-width:860px){.watch{grid-template-columns:minmax(0,1fr)}.side .ep .th{width:120px}}

/* watch : miniatures pleine hauteur de la carte */
.side .ep{padding:0;gap:14px;overflow:hidden;align-items:stretch}
.side .ep .th{width:150px;aspect-ratio:auto;min-height:84px;align-self:stretch;border-radius:0}
.side .ep .eb,.side .ep>div+div{align-self:center;padding:8px 10px 8px 0}
.side .ep .seen{margin:8px 8px 0 auto}
@media (max-width:860px){.side .ep .th{width:140px}}
/* bouton Installer */
.wr{display:flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative}
.dlw{position:relative}.dlw .btn small{margin-left:6px;opacity:.65;font-size:11px;font-weight:500}
.dlm{position:absolute;right:0;bottom:calc(100% + 8px);z-index:20;min-width:240px;max-width:86vw;padding:10px;border:1px solid var(--line);border-radius:14px;background:var(--surf,var(--panel));box-shadow:0 12px 30px #0006;display:grid;gap:8px}
.dlm[hidden]{display:none}.dlm p{margin:0;padding:6px;color:var(--mute);font-size:14px}
.dlr{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px}.dlr small{color:var(--mute);font-size:11px}
.dlr span{display:flex;gap:6px;flex-wrap:wrap}.dlr a{padding:4px 10px;border-radius:99px;background:var(--acc);color:var(--on-acc);font-weight:600;font-size:13px}

/* watch : miniatures de la liste suivent l'arrondi de la carte ; boutons comme avant, « Installer » sous « Suivant » */
.side .ep .th{border-radius:calc(var(--r) - 1px) 0 0 calc(var(--r) - 1px)}
.side .ep .th::before,.side .ep .th::after{border-radius:inherit}
.wbar{align-items:center}
.wr{flex-direction:row;align-items:center;gap:8px}
.wback{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:16px}
.dlm{right:auto;left:0;bottom:auto;top:calc(100% + 8px)}

/* watch : menu « Sources » (lecteur proxy/direct, embed) dans le style des boutons de langue + lecteur Vidstack */
.wsrcw{display:flex;align-items:center}
.wsrcw[hidden]{display:none}
.wsrcw .ddb{height:36px;min-width:0;padding:0 14px;gap:8px;border-radius:999px;background:var(--panel);color:var(--mute);font:500 14px 'DM Sans',sans-serif}
.wsrcw .ddb:hover,.wsrcw .dd.open .ddb{border-color:var(--acc);color:var(--ink)}
.wsrcw .ddb>span{max-width:230px}
.wsrcw .ddb .i{width:16px;height:16px}
.wsrcw .ddm{top:calc(100% + 8px);max-height:320px}
.wsrcw .ddm button{font-size:14px}
.ddg{padding:10px 12px 4px;color:var(--mute);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.ddg:first-child{padding-top:6px}
.screen.vds{display:block;padding:0}
.screen media-player{display:block;width:100%;height:100%;aspect-ratio:auto;border-radius:inherit;--media-brand:var(--acc);--video-brand:var(--acc)}
/* lecteur Vidstack : bouton « Passer l'intro / l'outro » */
.frskip{position:absolute;right:16px;bottom:68px;z-index:6;height:40px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(10,18,14,.72);color:#fff;font:600 14px 'DM Sans',sans-serif;cursor:pointer;backdrop-filter:blur(6px)}
.frskip:hover{background:var(--acc);border-color:var(--acc);color:#04130b}
.frskip[hidden]{display:none}

/* ===== watch : barre (langue / source / précédent-suivant), largeur mobile, lecteur plus gros ===== */
html,body{max-width:100%;overflow-x:clip}
.watch>div,.watch>aside{min-width:0;max-width:100%}
.wt h1,.wt small{overflow-wrap:anywhere}
#cmts,#anime-community-comment-section{max-width:100%;overflow-x:clip;overflow-anchor:none}
.screen,.screen.vds{max-width:100%}
/* grand écran : langues à gauche ; source + précédent + suivant groupés tout à droite */
.wbar .wsrcw{margin-left:auto}
.wbar .wr{margin-left:0}
.wbar .wsrcw[hidden]+.wr{margin-left:auto}
.wbar .wld .ddb{height:36px;min-width:0;width:100%;justify-content:space-between;padding:0 14px;gap:8px;border-radius:999px;background:var(--panel);color:var(--mute);font:500 14px 'DM Sans',sans-serif}
.wbar .wld .ddb:hover,.wbar .wld.open .ddb{border-color:var(--acc);color:var(--ink)}
.wbar .wld .ddm button{font-size:14px}.wbar .wld .ddm button:disabled{opacity:.45;cursor:not-allowed}
.wbar .wld .ddm button small{display:inline;margin-left:4px}
@media (max-width:720px){
  .wlb{display:none}
  .wlang{flex:1 1 0;display:block}
  .wld{display:block}
  .wbar{gap:10px}
  .wbar .wsrcw{margin-left:0;flex:1 1 0;min-width:0}
  .wbar .wsrcw .dd,.wbar .wsrcw .ddb{width:100%}
  .wbar .wsrcw .ddb{justify-content:space-between}
  .wbar .wsrcw .ddb>span{max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .wbar .wr,.wbar .wsrcw[hidden]+.wr{margin-left:0;flex:1 1 100%}
  .wbar .wr .acts{width:100%}.wbar .wr .acts .btn{flex:1 1 0;justify-content:center}
  .wsrcw .ddm,.wld .ddm{min-width:100%}
  .wld .ddm{left:0}.wsrcw .ddm{left:auto;right:0}
}
/* lecteur Vidstack : icônes et commandes plus grosses (même gabarit que MegaPlay) */
.screen media-player{--video-sm-button-size:48px;--media-button-icon-size:76%;--video-sm-play-button-size:64px;--video-sm-load-button-size:72px;--video-sm-time-font-size:15px;--video-sm-chapter-title-font-size:16px;--media-menu-font-size:15px;--media-kb-bezel-size:68px;--media-kb-text-size:160%;--media-slider-height:46px}
.screen media-player .vds-time-group{font-weight:600}
@media (max-width:720px){.screen media-player{--video-sm-button-size:44px;--video-sm-play-button-size:60px}}
.frskip{bottom:84px;height:44px;padding:0 20px;font-size:15px}

/* ===== lecteur : appui long x2, Anime4K Upscale ===== */
.frfast{position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:9;padding:8px 16px;border-radius:999px;background:rgba(10,18,14,.78);border:1px solid rgba(255,255,255,.3);color:#fff;font:700 15px 'DM Sans',sans-serif;letter-spacing:.02em;backdrop-filter:blur(6px);pointer-events:none;animation:frfast 1s ease-in-out infinite alternate}
.frfast[hidden]{display:none}
@keyframes frfast{from{opacity:.75}to{opacity:1}}
.fra4k-cv{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;background:#000;z-index:0}
.fra4k-btn{color:#fff}
.fra4k-btn.on{color:var(--acc)}
.fra4k{position:absolute;top:64px;right:12px;z-index:9;width:min(340px,calc(100% - 24px));max-height:calc(100% - 130px);overflow:auto;padding:14px;border-radius:14px;background:rgba(10,12,12,.94);border:1px solid rgba(255,255,255,.14);color:#fff;font:500 14px 'DM Sans',sans-serif;box-shadow:0 18px 40px #000a;backdrop-filter:blur(10px)}
.fra4k[hidden]{display:none}
.fra4k .a4h{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fra4k .a4h b{display:block;font-size:15px}.fra4k small{display:block;color:rgba(255,255,255,.6);font-size:12px;font-weight:400}
.fra4k .a4sw{flex:none;width:44px;height:26px;border-radius:999px;border:0;background:rgba(255,255,255,.22);position:relative;cursor:pointer;transition:background .2s}
.fra4k .a4sw i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.fra4k .a4sw[aria-checked=true]{background:var(--acc)}.fra4k .a4sw[aria-checked=true] i{transform:translateX(18px)}
.fra4k .a4g{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.fra4k .a4m{padding:10px 8px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.06);color:#fff;text-align:center;cursor:pointer;font:inherit}
.fra4k .a4m b{display:block;font-size:14px}
.fra4k .a4m:hover{background:rgba(255,255,255,.12)}
.fra4k .a4m[aria-pressed=true]{background:var(--acc);border-color:var(--acc);color:var(--on-acc,#04130b)}.fra4k .a4m[aria-pressed=true] small{color:inherit;opacity:.8}
.fra4k .a4n{margin:12px 2px 0;color:rgba(255,255,255,.55);font-size:12px;line-height:1.4}
@media (max-width:720px){.fra4k{top:56px;right:8px;width:min(320px,calc(100% - 16px))}}