:root{--bg:#120C08;--card:#1E1611;--line:#33261D;--txt:#F6EEE3;--mut:#A8998A;--acc:#C8692A;--acc2:#F0A93B;--gold:#F2C14E;--chestnut:#7A3E1D;--ink:#0B0705;--cream:#F6EEE3;--stripes:repeating-linear-gradient(90deg,var(--acc) 0 6px,transparent 6px 10px,var(--cream) 10px 16px,transparent 16px 20px);--tab:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--txt);font:15px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,sans-serif;overscroll-behavior:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.muted{color:var(--mut)}.small{font-size:12.5px}
.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
#app{max-width:520px;margin:0 auto;min-height:100dvh;padding-bottom:calc(var(--tab) + var(--safe-b))}
body[data-mode=feed] #app,body[data-mode=watch] #app{padding-bottom:0}
body[data-mode=watch] .tabbar{display:none}
.mark{width:30px;height:30px;margin-right:7px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
/* tab bar */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;height:calc(var(--tab) + var(--safe-b));padding-bottom:var(--safe-b);display:flex;justify-content:space-around;align-items:center;background:rgba(18,12,8,.94);backdrop-filter:blur(14px);border-top:1px solid #2A1E16}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:#9A8A7B}
.tabbar svg{width:23px;height:23px;fill:currentColor}
.tabbar a.active{color:#fff}.tabbar a.active svg{fill:var(--acc)}
/* feed */
.feed{height:100dvh;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none}
.feed::-webkit-scrollbar{display:none}
.slide{position:relative;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;background:#000;display:grid;place-items:center}
body[data-mode=feed] .slide{height:calc(100dvh - var(--tab) - var(--safe-b))}
body[data-mode=feed] .feed{height:calc(100dvh - var(--tab) - var(--safe-b))}
.bgblur{position:absolute;inset:-40px;background-size:cover;background-position:center;filter:blur(28px) brightness(.45) saturate(1.3);transform:scale(1.1)}
.slide video{position:relative;width:100%;height:100%;object-fit:contain;z-index:1}
.lockbg{position:relative;z-index:1;width:100%;aspect-ratio:16/9;object-fit:contain;filter:brightness(.5)}
.shade{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.55) 0,transparent 18%,transparent 52%,rgba(0,0,0,.88) 100%)}
.feed-top,.watch-top{position:fixed;top:0;left:0;right:0;max-width:520px;margin:0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + var(--safe-t)) 14px 10px}
.logo{display:flex;align-items:center;position:relative;padding-bottom:5px}
.logo .wm{font-weight:800;font-size:18px;letter-spacing:-.2px;text-shadow:0 1px 4px rgba(0,0,0,.6)}.logo .wm em{font-style:normal;font-weight:400;color:var(--acc2)}
.logo::after{content:"";position:absolute;left:37px;right:2px;bottom:0;height:3px;border-radius:2px;background:var(--stripes);opacity:.9}
.feed-tabs b{border-bottom:2px solid var(--acc2);padding-bottom:3px}
.watch-top>div{flex:1;min-width:0}.watch-top b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.back{font-size:30px;line-height:1;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.4)}
.back.floating{position:absolute;top:calc(10px + var(--safe-t));left:12px;z-index:5}
.coinchip{display:flex;align-items:center;gap:5px;padding:6px 11px;border-radius:20px;background:rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.14);font-weight:700;font-size:13px}
.coin{display:inline-block;width:.95em;height:.95em;border-radius:50%;vertical-align:-.12em;background:radial-gradient(circle at 35% 30%,#fff3b8,#f5c451 45%,#b9821c);box-shadow:inset 0 0 0 1.5px rgba(120,70,0,.55),0 0 6px rgba(245,196,81,.45)}
.rail{position:absolute;right:8px;bottom:150px;z-index:3;display:flex;flex-direction:column;gap:18px}
.rail button{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;text-shadow:0 1px 3px #000}
.rail svg{width:30px;height:30px;fill:#fff;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
.rail button.on svg{fill:var(--acc)}
.meta{position:absolute;left:0;right:64px;bottom:0;z-index:3;padding:0 14px 18px}
.meta h2{margin:6px 0 4px;font-size:22px;font-family:Georgia,serif}.meta h2.sm{font-size:17px}
.blurb{margin:0 0 12px;font-size:13.5px;color:#ddd;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cta{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;border-radius:12px;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);font-weight:600;font-size:14px}
.cta span{font-size:20px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.pill{font-size:11px;padding:3px 8px;border-radius:20px;background:var(--acc);font-weight:700;letter-spacing:.3px}
.pill.dim{background:rgba(255,255,255,.16);font-weight:500}.pill.ex{background:#444;color:#ffd}.pill.gold{background:var(--gold);color:#000}
.prog{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.15);z-index:4}
.prog i{display:block;height:100%;width:0;background:var(--acc)}
.mutehint{position:absolute;top:calc(64px + var(--safe-t));left:50%;transform:translateX(-50%);z-index:3;padding:6px 12px;border-radius:20px;background:rgba(0,0,0,.55);font-size:12px}
.flash{position:absolute;z-index:6;font-size:44px;animation:fl .7s ease forwards;pointer-events:none}
@keyframes fl{from{opacity:.95;transform:scale(.8)}to{opacity:0;transform:scale(1.4)}}
.lockpanel,.previewend{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(86%,340px);text-align:center;padding:22px 18px;border-radius:18px;background:rgba(22,15,10,.86);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:8px;align-items:center}
.lockpanel h3,.previewend h3{margin:2px 0}.lockicon{font-size:34px}
.slide.soon{background:radial-gradient(circle at 50% 40%,#2a1a14,#000)}
/* pages */
.pagehead{display:flex;justify-content:space-between;align-items:center;padding:calc(14px + var(--safe-t)) 16px 6px}
.pagehead h1{margin:0;font-size:26px;font-family:Georgia,serif}
.pad{padding:8px 16px 20px}
.sect{margin:22px 0 10px;font-size:16px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border-radius:12px;font-weight:700;background:var(--card);border:1px solid var(--line)}
.btn.primary{background:linear-gradient(135deg,var(--acc),var(--acc2));border:0}
.btn.ghost{background:transparent}.btn.block{width:100%;margin-top:9px}.btn.sm{padding:8px 13px;font-size:13px}.btn.grow{flex:1}
.btn.vipbtn{background:linear-gradient(135deg,#3a2a08,#7a5a12);border:1px solid #a17d2c;color:#ffe9b0}
.btn:disabled{opacity:.45}
.row-btns{display:flex;gap:10px;margin:12px 0}
.search{width:100%;padding:12px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);color:#fff;font-size:16px;outline:none}
.genres{display:flex;gap:8px;overflow-x:auto;margin:12px 0 4px;scrollbar-width:none}
.gchip{padding:7px 14px;border-radius:20px;background:var(--card);border:1px solid var(--line);white-space:nowrap;font-size:13px}
.gchip.on{background:#fff;color:#000;font-weight:700}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.hscroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.hscroll .card{flex:0 0 31%}
.card img{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:10px;background:#1A120D;display:block}
.card .ct{font-size:13px;font-weight:600;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .cs{font-size:11.5px;color:var(--mut)}
.card .bar{height:3px;background:#333;border-radius:2px;margin-top:5px}.card .bar i{display:block;height:100%;background:var(--acc);border-radius:2px}
.charts{display:flex;flex-direction:column;gap:10px}
.chart{display:flex;align-items:center;gap:12px;padding:8px;border-radius:12px;background:var(--card)}
.chart img{width:84px;aspect-ratio:16/9;object-fit:cover;border-radius:8px}
.rk{font:800 22px Georgia,serif;width:22px;text-align:center;color:#666}.rk.r1{color:var(--gold)}.rk.r2{color:#d8d8d8}.rk.r3{color:#d08a4a}
/* series detail */
.series-hero{position:relative;background:linear-gradient(180deg,var(--c2),var(--c1) 60%,var(--bg));padding:calc(54px + var(--safe-t)) 16px 0;display:flex;flex-direction:column;align-items:center;text-align:center}
.series-hero .cover{width:46%;aspect-ratio:2/3;object-fit:cover;border-radius:14px;box-shadow:0 18px 50px rgba(0,0,0,.6)}
.series-hero .cover.wide{width:100%;aspect-ratio:16/9}
.sh-info h1{margin:14px 0 4px;font-family:Georgia,serif;font-size:26px}
.sh-info .chips{justify-content:center;margin-top:8px}
.syn{color:#ddd;margin:14px 0 0}
.banner{display:block;width:100%;text-align:left;padding:12px 14px;border-radius:12px;background:linear-gradient(90deg,#2a1d06,#16120a);border:1px solid #4d3a12;color:#ffe3a3;font-size:13px}
.banner.vip{background:#2a2206}
.epgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.ep{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:10px;background:var(--card);border:1px solid var(--line);font-weight:700}
.ep.locked{color:#777}.ep.cur{border-color:var(--acc);color:var(--acc)}
.ep i,.eth i{position:absolute;top:3px;right:3px;font-style:normal;font-size:8.5px;padding:1px 4px;border-radius:5px;background:#333}
.ep i.free,.eth i.free{background:#1f8f55}.ep i.lk,.eth i.lk{background:none;font-size:10px}
.eplist{display:flex;flex-direction:column;gap:10px}
.eprow{display:flex;gap:12px;padding:8px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.eprow.cur{border-color:var(--acc)}.eprow.soon{opacity:.55}
.eth{position:relative;flex:0 0 128px;aspect-ratio:16/9;border-radius:8px;background-size:cover;background-position:center}
.eth i{font-size:10px}
.einfo{min-width:0;display:flex;flex-direction:column;gap:2px}
/* rewards / profile */
.wallet{display:flex;justify-content:space-between;align-items:center;padding:18px;border-radius:16px;background:linear-gradient(135deg,#2b1708,#16100c);border:1px solid #4a2f12}
.big{font-size:26px;font-weight:800}
.panel{margin-top:14px;padding:14px;border-radius:16px;background:var(--card);border:1px solid var(--line)}
.ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0;border-radius:10px;background:#2A1E16;font-size:13px}
.day.claimed{background:#3a2c0c;opacity:.75}.day.next{outline:2px solid var(--gold)}
.task{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.task:first-of-type{border-top:0}
.vipcard{background:linear-gradient(135deg,#221a06,#141008);border-color:#4d3a12}
.profile{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--card)}.profile>div:nth-child(2){flex:1;min-width:0}
.av{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:800;background:linear-gradient(135deg,var(--acc),var(--acc2))}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;text-align:center}.stats>div{padding:12px 4px;border-radius:12px;background:var(--card)}.stats .big{font-size:20px}
.menu{margin-top:14px;border-radius:16px;overflow:hidden;background:var(--card)}
.menu button{display:flex;justify-content:space-between;width:100%;padding:15px 16px;border-top:1px solid var(--line);text-align:left}.menu button:first-child{border-top:0}
.menu .danger{color:#ff6b7d}
.fine{font-size:11.5px;color:#86766A;margin-top:14px;line-height:1.5}
/* sheets */
.backdrop{position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.6);opacity:0;transition:opacity .25s}.backdrop.open{opacity:1}
.sheet{position:fixed;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;z-index:41;max-height:88dvh;overflow-y:auto;padding:8px 18px calc(22px + var(--safe-b));border-radius:22px 22px 0 0;background:#17100B;border-top:1px solid #3A2A1F;transform:translateY(100%);transition:transform .25s ease}
.sheet.open{transform:none}.hidden{display:none}
.grip{width:40px;height:4px;border-radius:2px;background:#4A3828;margin:4px auto 10px}
.sheet h3{margin:6px 0 6px;font-size:19px}.sheet h4{margin:18px 0 8px}
.balance-line{margin:8px 0 10px}
.packs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pack{position:relative;padding:16px 6px 12px;border-radius:14px;background:#251A13;border:1px solid var(--line);text-align:center}
.pc{font-size:18px;font-weight:800}.pb{font-size:11px;color:#7fdc9b;margin:3px 0 8px}.pp{font-weight:800}
.ptag{position:absolute;top:-8px;left:50%;transform:translateX(-50%);font-size:9.5px;padding:2px 7px;border-radius:8px;background:var(--acc);white-space:nowrap;font-weight:700}
.vips{display:flex;flex-direction:column;gap:8px}
.vip-plan{position:relative;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px;border-radius:14px;background:linear-gradient(135deg,#241b07,#15110a);border:1px solid #4d3a12;text-align:left}
.vip-plan .ptag{left:auto;right:12px;transform:none;background:var(--gold);color:#000}
.form{display:flex;flex-direction:column;gap:9px;margin-top:10px}
.form input{padding:13px 14px;border-radius:12px;background:#251A13;border:1px solid var(--line);color:#fff;font-size:16px;width:100%}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.summary{display:flex;justify-content:space-between;padding:13px 14px;border-radius:12px;background:#251A13;margin-top:8px}
.ledger>div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}.pos{color:#7fdc9b}.neg{color:#ff8a8a}
.ad{text-align:center;padding:10px 0 6px}.adbox{padding:40px 16px;border-radius:14px;background:repeating-linear-gradient(45deg,#251A13,#251A13 12px,#2C2017 12px,#2C2017 24px)}
.adtitle{font-size:24px;font-weight:800;margin:8px 0}.adcount{margin-top:14px}
.spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}
.toast{position:fixed;left:50%;bottom:calc(var(--tab) + 20px + var(--safe-b));transform:translate(-50%,20px);z-index:60;padding:10px 16px;border-radius:22px;background:#fff;color:#000;font-weight:600;font-size:14px;opacity:0;transition:.25s;pointer-events:none;white-space:nowrap}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* Okapi Reels brand accents */
.credit{font-size:10.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--acc2);margin-top:14px}
.credit+h1{margin-top:4px!important}
.pagehead h1{position:relative;padding-bottom:6px}.pagehead h1::after{content:"";position:absolute;left:0;bottom:0;width:46px;height:3px;border-radius:2px;background:var(--stripes)}
.tabbar{border-top:0;box-shadow:inset 0 1px 0 #2A1E16}.tabbar::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--stripes);opacity:.35}
.gchip.on{background:var(--cream);color:var(--ink)}
.toast{background:var(--cream);color:var(--ink)}

/* Arc divider in the episode list */
.archead{margin:14px 2px 6px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--acc2)}
.eplist .archead:first-child{margin-top:2px}

/* Owner code */
.ownerform{display:grid;gap:10px;margin-top:8px}
.ownerform input{width:100%;box-sizing:border-box;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--txt);font-size:16px}
.banner.owner{margin:12px 0}

/* iOS zooms into inputs under 16px; keep all text fields at 16px */
input,textarea,select{font-size:16px}
.sheet.kb{border-radius:22px;padding-bottom:14px}

.linkbtn{background:none;border:0;color:var(--muted,#bba);text-decoration:underline;font-size:14px;padding:6px 0;cursor:pointer;align-self:center}
#authMsg a{color:inherit;text-decoration:underline}
