:root{--bg:#0f0d12;--card:#1a171f;--card2:#221e29;--line:#2f2a37;--txt:#f4efe6;--mute:#a79fb0;--gold:#ffc400;--org:#ff7a00;--grad:linear-gradient(135deg,#ffd60a,#ff7a00)}
*{box-sizing:border-box}
html{scroll-padding-top:70px}
body{margin:0;background:var(--bg);color:var(--txt);font:400 16px/1.75 "Nunito Sans",system-ui,sans-serif;padding-bottom:56px}
a{color:inherit;text-decoration:none}
img{max-width:100%}
h1,h2,h3{font-family:Outfit,system-ui,sans-serif;font-weight:800;line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(1.7rem,5vw,2.6rem)}h2{font-size:1.45rem}h3{font-size:1.15rem}
.hd{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 14px;background:rgba(15,13,18,.96);border-bottom:2px solid var(--org)}
.hd button{background:none;border:0;color:var(--txt);width:42px;height:42px;display:grid;place-items:center;cursor:pointer;border-radius:8px}
.hd button:hover{background:var(--card2)}
.brand{display:flex;align-items:center;gap:10px}
.bt{display:flex;flex-direction:column;align-items:flex-end;line-height:1}
.bt b{font:800 1.12rem Outfit,sans-serif;letter-spacing:.04em;color:#fff}
.bt i{font:600 .78rem Outfit,sans-serif;letter-spacing:.32em;color:var(--gold);font-style:normal;margin-top:3px}
.brand img{width:44px;height:44px}
.sf{display:none;padding:10px 14px;background:var(--card);border-bottom:1px solid var(--line)}
.sf.on{display:block}
input,select,textarea{width:100%;background:#120f16;color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:11px 13px;font:inherit}
input[type=checkbox]{width:auto}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.ann{background:var(--grad);color:#1a1200;text-align:center;font-weight:700;padding:6px 12px;font-size:.92rem}
main{max-width:1100px;margin:0 auto;padding:18px 14px 40px}
.loading,.muted{color:var(--mute)}
.crumb{font-size:.85rem;color:var(--mute);margin-bottom:12px}
.crumb a:hover{color:var(--gold)}
.hero{position:relative;border-radius:14px;overflow:hidden;min-height:330px;display:flex;align-items:flex-end;background:var(--card) center/cover;border:1px solid var(--line);margin-bottom:26px}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,13,18,.15),rgba(15,13,18,.95))}
.hero>div{position:relative;padding:24px 20px;max-width:680px}
.hero p{color:#e5dfd6;margin:.2em 0 1em}
.btn{display:inline-block;background:var(--grad);color:#1a1200;font:800 .95rem Outfit,sans-serif;padding:11px 22px;border-radius:999px;border:0;cursor:pointer;margin:4px 8px 4px 0}
.btn.o{background:none;color:var(--gold);border:2px solid var(--org)}
.btn:disabled{opacity:.4;cursor:not-allowed}
.sec{margin:34px 0}
.sec>h2{border-left:4px solid var(--org);padding-left:12px}
.chip{display:inline-block;background:var(--org);color:#fff;font:700 .78rem "Nunito Sans";padding:3px 12px;border-radius:999px;margin-right:6px}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}
.pc{display:block}
.pc .pic{aspect-ratio:2/3;border-radius:10px;border:1px solid var(--line)}
.pc:hover .pic{border-color:var(--gold)}
.pc h3{font-size:1rem;margin:9px 0 0}
.pc p{margin:0;font-size:.82rem;color:var(--mute)}
.pic{width:100%;object-fit:cover;display:block;background:var(--card)}
.hb{aspect-ratio:16/9;border-radius:12px;margin-bottom:14px}
.ph{display:grid;place-items:center;text-align:center;padding:10px;background:linear-gradient(160deg,#2a2233,#15111a);color:var(--gold);font:800 1rem Outfit,sans-serif}
.rows{display:grid;gap:12px}
.rc{display:flex;gap:12px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px}
.rc:hover{border-color:var(--org)}
.rc .pic{width:96px;aspect-ratio:16/10;border-radius:8px;flex:none}
.rc h3{font-size:.98rem;margin:0}
.rc small{color:var(--mute)}
.box{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:20px 0}
.cats a{display:flex;justify-content:space-between;align-items:center;padding:10px 4px;border-bottom:1px solid var(--line)}
.cats a:last-child{border:0}
.cats a:hover{color:var(--gold)}
.cats b{background:var(--org);color:#fff;border-radius:999px;font-size:.78rem;min-width:28px;text-align:center;padding:1px 8px}
.art{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;margin:20px 0}
.art .pic{border-radius:10px;aspect-ratio:16/9;margin:6px 0 14px}
.prose h2{margin-top:1.4em;font-size:1.5rem}
.prose h2 span,.art h2 span{color:var(--org)}
.prose p,.prose li{color:#e2dcd2}
.prose ul{padding-left:20px}
.pbody img{border-radius:10px}
.tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}
.tab{background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:8px;padding:9px 18px;font:700 .95rem Outfit;cursor:pointer}
.tab.on{background:var(--grad);color:#1a1200;border-color:transparent}
.eps{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.eps a{display:block;text-align:center;background:var(--card2);border:2px solid var(--org);border-radius:10px;padding:10px 6px;font:700 .95rem Outfit;color:#fff}
.eps a:hover,.eps a.cur{background:var(--org)}
.eps small{display:block;font:600 .7rem "Nunito Sans";color:var(--gold)}
.player{width:100%;aspect-ratio:16/9;border:0;background:#000;border-radius:10px;display:block}
.nop{aspect-ratio:16/9;display:grid;place-items:center;background:#000;border-radius:10px;color:var(--mute);text-align:center;padding:14px}
.dl{display:grid;gap:10px}
.dl a{text-align:center;background:var(--grad);color:#1a1200;font:800 1rem Outfit;padding:13px;border-radius:10px}
.dl a.b{background:var(--card2);color:var(--gold);border:2px solid var(--org)}
.meta{color:var(--mute);font-size:.88rem;margin:4px 0 14px}
.nav{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ad{margin:18px 0;text-align:center;min-height:10px;overflow:hidden}
details{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:8px 0}
summary{cursor:pointer;font-weight:700}
.share{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex}
.share a{flex:1;text-align:center;padding:12px 4px;font:700 .85rem Outfit;color:#fff}
.share a:nth-child(1){background:#1877f2}.share a:nth-child(2){background:#000}.share a:nth-child(3){background:#25d366}.share a:nth-child(4){background:#229ed9}
footer{border-top:2px solid var(--org);background:#0b090e;padding:28px 14px;text-align:center;color:var(--mute);font-size:.9rem}
footer a{margin:0 9px;display:inline-block;padding:3px 0}
footer a:hover{color:var(--gold)}
.dim{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.65);display:none}
.dim.on{display:block}
.dr{position:fixed;top:0;left:0;bottom:0;width:min(310px,86vw);z-index:31;background:var(--card);border-right:2px solid var(--org);padding:18px;overflow:auto;transform:translateX(-102%);transition:transform .2s}
.dr.on{transform:none}
.dr h3{color:var(--gold);margin-top:18px}
@media(min-width:700px){.grid{grid-template-columns:repeat(4,1fr)}.eps{grid-template-columns:repeat(4,1fr)}.rows{grid-template-columns:1fr 1fr}.dl{grid-template-columns:repeat(3,1fr)}.two{display:grid;grid-template-columns:1fr 300px;gap:24px;align-items:start}.hero{min-height:400px}}
@media(min-width:1000px){.grid{grid-template-columns:repeat(6,1fr)}}
@media(prefers-reduced-motion:reduce){.dr{transition:none}}

.sl{display:flex;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font:700 .95rem Outfit}
.sl:last-child{border:0}
.sl:hover{color:var(--gold)}
.sl .pic{width:56px;aspect-ratio:2/3;border-radius:6px;flex:none;font-size:.6rem;padding:4px}
.sl small{display:block;font:400 .8rem "Nunito Sans";color:var(--mute)}

/* admin */
.adm{max-width:900px;margin:0 auto;padding:16px 14px 60px}
.adm h1{font-size:1.6rem}
.f{display:grid;gap:12px}
.f label{display:block;font-size:.85rem;color:var(--mute);margin-bottom:4px}
.f .row{display:flex;gap:8px;align-items:center}
.li{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--line);padding:10px 0}
.li span{overflow:hidden;text-overflow:ellipsis}
.sm{padding:6px 14px;font-size:.82rem;margin:0 0 0 4px}
.msg{color:var(--gold);min-height:1.4em}

.side .rows{grid-template-columns:1fr!important}.side .grid{grid-template-columns:repeat(2,1fr)!important}.side .box{margin-top:0}.side .box+.box{margin-top:20px}.side .rc .pic{width:84px}

/* v2 */
.inner{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:16px;margin:22px 0}
.inner h2{margin-top:0}
.pr{display:flex;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}
.pr:last-child{border:0}
.pr .pic{width:52px;aspect-ratio:2/3;border-radius:6px;flex:none;font-size:.6rem}
.pr h3{font-size:.95rem;margin:0}
.pr small{color:var(--mute)}
.pr:hover h3{color:var(--gold)}
.btn.wa{background:#25d366;color:#fff;display:block;text-align:center;margin:12px 0 0}
.tabs.sc{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}
.tab{white-space:nowrap}
.tb{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.tb button{background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:6px 10px;font:700 .8rem Outfit;cursor:pointer}
.prev{border:1px dashed var(--org);border-radius:10px;padding:12px;margin-top:8px}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.stat{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center}
.stat b{display:block;font:800 1.8rem Outfit;color:var(--gold)}
.ck{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}
.ok{color:#4ade80}.no{color:var(--mute)}
.adm .tabs{flex-wrap:nowrap;overflow-x:auto}
.hint{font-size:.8rem;color:var(--mute);margin:4px 0 0}
.mm{text-align:center;padding:60px 14px}
@media(min-width:700px){.stats{grid-template-columns:repeat(4,1fr)}}

/* admin shell */
.lg{max-width:400px;margin:8vh auto;padding:26px 20px;background:var(--card);border:1px solid var(--line);border-radius:16px;text-align:center}
.lg .f{text-align:left}
.shell{min-height:100vh}
.side{position:fixed;top:0;left:0;bottom:0;width:260px;background:#0b090e;border-right:2px solid var(--org);z-index:40;display:flex;flex-direction:column;transform:translateX(-102%);transition:transform .2s}
.side.on{transform:none}
.sl{display:flex;gap:10px;align-items:center;padding:16px;border-bottom:1px solid var(--line)}
.sl b{display:block;font:800 1rem Outfit;color:#fff;line-height:1.1}
.sl i{font:600 .7rem Outfit;letter-spacing:.3em;color:var(--gold);font-style:normal}
.side nav{flex:1;overflow:auto;padding:8px 10px}
.side nav h4{margin:16px 12px 4px;font:700 .7rem Outfit;letter-spacing:.14em;color:var(--mute);text-transform:uppercase}
.side nav a{display:block;padding:10px 12px;border-radius:8px;cursor:pointer;border-left:3px solid transparent;margin:2px 0}
.side nav a:hover{background:var(--card2)}
.side nav a.on{background:var(--card2);border-left-color:var(--gold);color:var(--gold);font-weight:700}
.sf2{padding:12px;border-top:1px solid var(--line);display:grid;gap:8px}
.sf2 .btn{margin:0;text-align:center}
.mn{padding:12px 14px 80px;max-width:1000px}
.top{display:flex;align-items:center;gap:8px}
.top button{background:none;border:0;color:var(--txt);width:42px;height:42px;display:grid;place-items:center;cursor:pointer}
.top h1{font-size:1.5rem;margin:0}
.mk{background:var(--card2);border:1px dashed var(--gold);color:var(--gold);border-radius:8px;padding:8px;text-align:center}
@media(min-width:900px){.side{transform:none}.mn{margin-left:260px;padding:20px 28px 80px}.top button{display:none}.dim{display:none!important}}

.dc{display:block;text-align:center}
.dc .pic{aspect-ratio:16/9;border-radius:8px;border:1px solid var(--line)}
.dc:hover .pic{border-color:var(--gold)}
.dc span{display:block;margin:10px 0 2px;color:var(--mute);font-size:1.02rem}
.dc:hover span{color:var(--gold)}
.dsep{width:200px;max-width:60%;height:3px;border:0;background:var(--line);margin:22px auto}

.inner .tabs .tab{flex:1;padding:14px 10px;font-size:1.05rem;text-align:center}

.srv{gap:10px}
.srv .tab{flex:1 1 140px;padding:16px 18px;font-size:1.15rem;border-radius:12px;text-align:center}
.cd{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:12px}
.cd div{background:var(--card);border:2px solid var(--org);border-radius:12px;padding:12px 4px;text-align:center;color:var(--mute);font-size:.8rem}
.cd b{display:block;font:800 1.9rem Outfit;color:var(--gold)}

.sh{font-size:1.7rem;margin:24px 0 10px}
.inner>.sh:first-of-type{margin-top:8px}

.flat{margin:26px 0}
.flat>h2:first-child{margin-top:0}
.pbody .player{width:calc(100% + 24px);margin-left:-12px;border-radius:8px}
.flat .sh{margin:26px 0 12px}
.flat .sh:first-child{margin-top:0}

/* v15 */
.hr{display:flex;align-items:center}
.dr{padding-top:56px}
.dcl{position:absolute;top:10px;right:10px;width:42px;height:42px;display:grid;place-items:center;background:var(--card2);border:1px solid var(--line);border-radius:50%;color:var(--txt);cursor:pointer}
.sf{position:relative}
.sug{position:absolute;left:14px;right:14px;top:100%;z-index:25;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.sug a{display:block;padding:12px 14px;border-bottom:1px solid var(--line)}
.sug a:last-child{border:0}
.sug a:hover{background:var(--card2);color:var(--gold)}
.fav{margin:4px 0 10px}
.vote{display:flex;gap:10px;margin:18px 0}
.vote .btn{margin:0;flex:1;text-align:center}
.vh{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.splash{display:grid;gap:14px;justify-items:center;padding:34px 0}
.splash img{width:88px;height:88px;animation:pl 1.2s ease-in-out infinite}
.sk{width:100%;max-width:640px;height:90px;border-radius:12px;background:linear-gradient(90deg,var(--card) 25%,var(--card2) 50%,var(--card) 75%);background-size:200% 100%;animation:sh 1.4s linear infinite}
.sk.s2{height:60px}.sk.s3{height:60px}
@keyframes sh{to{background-position:-200% 0}}
@keyframes pl{50%{transform:scale(1.08);opacity:.8}}
@media(prefers-reduced-motion:reduce){.splash img,.sk{animation:none}}
html.lt{--bg:#f6f3ee;--card:#ffffff;--card2:#f0ebe3;--line:#ddd5c8;--txt:#1d1a22;--mute:#6b6472}
.lt .hd{background:rgba(255,255,255,.96)}
.lt .bt b{color:#1d1a22}
.lt .bt i{color:#c27a00}
.lt footer{background:#ece6db;color:#5d5666}
.lt input,.lt select,.lt textarea{background:#fff;color:#1d1a22}
.lt .prose p,.lt .prose li{color:#2c2733}
.lt .chip,.lt .eps a{color:#1d1a22}
.lt .eps a:hover,.lt .eps a.cur{color:#fff}
.lt .sl b,.lt .cd div{color:#6b6472}
