/* Meta888 — dark neon gaming portal */
:root{--bg:#050a18;--bg2:#08112a;--panel:#0b1634;--panel2:#10204a;--line:#1d3f86;--neon:#2d8cff;--cyan:#2fd6ff;--text:#eaf2ff;--mut:#8ea6d4;--gold:#ffc61a;--gold2:#ff9f0a;--ok:#2be3a0;--bad:#ff5468;--warn:#ffd45a}
*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%}
body{background:radial-gradient(1100px 500px at 50% -120px,#10306d 0,transparent 70%),var(--bg);color:var(--text);font:500 15px/1.45 "Rajdhani","Noto Sans SC",system-ui,-apple-system,sans-serif;min-height:100vh;padding-bottom:78px}
h1,h2,h3,.brand span,.hero h1,.rail b{font-family:"Orbitron","Noto Sans SC",sans-serif;letter-spacing:.02em}
a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:0}
.wrap{max-width:1280px;margin:0 auto;padding:0 14px}
/* ---------- header ---------- */
.top{background:linear-gradient(180deg,#0d1f4a,#07102a);position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);box-shadow:0 4px 24px rgba(45,140,255,.18)}
.top .wrap{display:flex;align-items:center;gap:10px;height:58px}
.brand{display:flex;align-items:center;gap:9px;font-weight:900;font-size:20px}
.brand img{width:42px;height:42px;border-radius:11px;background:#fff;box-shadow:0 0 14px rgba(47,214,255,.55)}
.brand span{background:linear-gradient(90deg,#fff,var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav{display:flex;gap:2px;margin-left:12px}.nav a{padding:6px 14px;font-weight:700;font-size:16px;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid transparent}
.nav a:hover{color:#fff}.nav a.on{color:var(--cyan);border-color:var(--cyan);text-shadow:0 0 10px rgba(47,214,255,.7)}
.sp{flex:1}
.lang{position:relative}.lang button{background:rgba(255,255,255,.08);color:#fff;border-radius:6px;padding:6px 11px;font-size:14px;font-weight:700;white-space:nowrap;border:1px solid var(--line)}
.lang div{display:none;position:absolute;right:0;top:38px;background:var(--panel);border:1px solid var(--neon);border-radius:10px;box-shadow:0 0 22px rgba(45,140,255,.4);overflow:hidden;min-width:160px}
.lang.open div{display:block}.lang a{display:block;padding:10px 14px;font-weight:700}.lang a:hover,.lang a.on{background:var(--panel2);color:var(--cyan)}
.marq{background:#06102a;border-bottom:1px solid var(--line);overflow:hidden;white-space:nowrap;color:var(--gold);font-weight:700;font-size:14px;letter-spacing:.05em;text-transform:uppercase}
.marq span{display:inline-block;padding:4px 0 4px 100%;animation:mq 34s linear infinite}
@keyframes mq{to{transform:translateX(-100%)}}
/* ---------- neon buttons ---------- */
.btn{display:inline-block;background:linear-gradient(180deg,#3da0ff,#1257d6);color:#fff;padding:9px 22px;font:700 17px "Rajdhani","Noto Sans SC",sans-serif;text-transform:uppercase;letter-spacing:.06em;text-align:center;border:1px solid #7cc0ff;border-radius:6px;box-shadow:0 0 14px rgba(45,140,255,.55),inset 0 1px 0 rgba(255,255,255,.4);text-shadow:0 1px 2px rgba(0,0,0,.5);transition:transform .1s,box-shadow .1s;clip-path:polygon(9px 0,100% 0,calc(100% - 9px) 100%,0 100%)}
.btn:hover{transform:translateY(-1px);box-shadow:0 0 22px rgba(47,214,255,.8),inset 0 1px 0 rgba(255,255,255,.4);filter:brightness(1.12)}.btn:active{transform:translateY(1px)}
.btn.gold{background:linear-gradient(180deg,#ffe066,var(--gold2));color:#2b1c00;border-color:#fff1b0;text-shadow:none;box-shadow:0 0 14px rgba(255,198,26,.5),inset 0 1px 0 rgba(255,255,255,.6)}
.btn.green{background:linear-gradient(180deg,#46f0b0,#0fae78);color:#02281b;border-color:#aaffdf;text-shadow:none;box-shadow:0 0 14px rgba(43,227,160,.45),inset 0 1px 0 rgba(255,255,255,.5)}
.btn.line{background:rgba(13,31,74,.8);color:var(--cyan);border-color:var(--neon);box-shadow:0 0 10px rgba(45,140,255,.35)}
.btn.sm{padding:5px 14px;font-size:15px}.btn.block{display:block;width:100%;padding:12px;font-size:19px}
/* ---------- layout ---------- */
main{padding:14px 0 6px}
h1{font-size:26px;line-height:1.15}h2{font-size:17px;margin:20px 0 10px;text-transform:uppercase;display:flex;align-items:center;gap:10px;color:#fff}
h2:before{content:"";width:5px;height:20px;background:linear-gradient(var(--cyan),var(--neon));box-shadow:0 0 10px var(--cyan);border-radius:2px}
.card{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:12px;padding:16px;box-shadow:0 0 0 1px rgba(45,140,255,.12),0 8px 26px rgba(0,0,0,.4)}
.muted{color:var(--mut);font-size:14px}
/* ---------- portal grid ---------- */
.hero{position:relative;border:1px solid var(--neon);border-radius:14px;overflow:hidden;min-height:250px;display:flex;align-items:center;background:#07123a url(img/hero-dark.jpg) center right/cover no-repeat;box-shadow:0 0 28px rgba(45,140,255,.45)}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,10,24,.92) 0,rgba(5,10,24,.6) 38%,transparent 66%)}
.hero .in{position:relative;padding:22px 26px;max-width:540px}
.hero h1{font-size:34px;color:#fff;text-shadow:0 0 18px rgba(47,214,255,.65)}.hero h1 em{display:block;font-style:normal;color:var(--gold);text-shadow:0 0 16px rgba(255,198,26,.6)}
.hero p{margin:10px 0 16px;color:#cfe0ff;font-weight:600;font-size:17px}.hero .btn+.btn{margin-left:8px}
.badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.badges span{border:1px solid var(--line);background:rgba(6,16,42,.7);border-radius:999px;padding:2px 11px;font-size:13px;font-weight:700;color:var(--cyan)}
.portal{display:grid;grid-template-columns:270px minmax(0,1fr) 290px;gap:16px;margin-top:16px;align-items:start}
.col{display:grid;gap:14px}
.mid{display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px}
.rail{display:grid;gap:10px;align-content:start;position:sticky;top:78px}
.rail button{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:10px;padding:9px 4px;color:var(--mut);display:flex;flex-direction:column;align-items:center;gap:3px;font:700 13px "Rajdhani","Noto Sans SC",sans-serif;text-transform:uppercase;letter-spacing:.03em}
.rail button span{font-size:26px;line-height:1;filter:grayscale(.3)}.rail button:hover{color:#fff}
.rail button.on{color:#fff;border-color:var(--cyan);box-shadow:0 0 16px rgba(47,214,255,.6),inset 0 0 14px rgba(47,214,255,.2);background:linear-gradient(180deg,#123478,#0c2257)}
.rail button.on span{filter:none;text-shadow:0 0 12px var(--cyan)}
.searchbox{margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
/* ---------- game cards ---------- */
.gc{position:relative;display:block;aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:#0a1330;border:2px solid var(--c1,#2d8cff);box-shadow:0 0 14px var(--c2,rgba(45,140,255,.5)),inset 0 0 0 1px rgba(255,255,255,.08);transition:transform .15s,box-shadow .15s}
.gc:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 0 26px var(--c1,#2d8cff)}
.gc img.art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.gc:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,7,20,.95) 0,rgba(3,7,20,.3) 34%,transparent 55%)}
.gc .tag{position:absolute;left:7px;top:7px;z-index:2;background:rgba(5,10,24,.78);border:1px solid var(--c1,#2d8cff);color:#fff;border-radius:5px;padding:0 7px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.gc .nm{position:absolute;left:6px;right:6px;bottom:30px;z-index:2;text-align:center;font:900 17px/1.05 "Orbitron","Noto Sans SC",sans-serif;text-transform:uppercase;color:#fff;text-shadow:0 0 12px var(--c1,#2d8cff),0 2px 3px #000}
.gc .nm img{max-width:88%;max-height:46px;object-fit:contain;filter:drop-shadow(0 2px 4px #000)}
.gc .go{position:absolute;left:0;right:0;bottom:0;z-index:2;text-align:center;padding:5px 0 6px;font:700 14px "Rajdhani",sans-serif;text-transform:uppercase;letter-spacing:.1em;color:#fff;background:linear-gradient(180deg,rgba(45,140,255,.0),rgba(45,140,255,.65))}
.gc:nth-child(6n+1){--c1:#a855f7;--c2:rgba(168,85,247,.5)}.gc:nth-child(6n+2){--c1:#2d8cff;--c2:rgba(45,140,255,.5)}.gc:nth-child(6n+3){--c1:#22c55e;--c2:rgba(34,197,94,.45)}
.gc:nth-child(6n+4){--c1:#ff9f0a;--c2:rgba(255,159,10,.45)}.gc:nth-child(6n+5){--c1:#f43f5e;--c2:rgba(244,63,94,.45)}.gc:nth-child(6n){--c1:#2fd6ff;--c2:rgba(47,214,255,.5)}
/* ---------- side panels ---------- */
.member .who{font:700 20px "Rajdhani",sans-serif;color:#fff}.member .row{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);font-weight:600}.member .row b{color:var(--gold)}
.member .btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.member .btns .btn{padding:8px 4px;font-size:15px}
.member .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.feed h3{font-size:13px;text-transform:uppercase;margin-bottom:6px;color:var(--cyan)}.feed table{font-size:13px}.feed td,.feed th{padding:4px 5px;border-bottom:1px solid rgba(29,63,134,.5)}
.feed .dep{background:#1257d6;color:#fff;padding:3px 6px;font-weight:700}.feed .wd{background:#d6213f;color:#fff;padding:3px 6px;font-weight:700}
.bn{position:relative;display:flex;align-items:flex-end;min-height:130px;border:1px solid var(--neon);border-radius:12px;overflow:hidden;background-size:cover;background-position:center;box-shadow:0 0 16px rgba(45,140,255,.4);transition:transform .15s}
.bn:hover{transform:translateY(-3px)}.bn:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,7,20,.9),rgba(3,7,20,.1) 65%)}
.bn .in{position:relative;padding:10px 12px;width:100%}.bn h3{font-size:30px;color:var(--gold);text-shadow:0 0 14px rgba(255,198,26,.6);line-height:1}.bn p{font-weight:700;font-size:15px;text-shadow:0 2px 3px #000}
.p1{background-image:url(img/promo1.jpg)}.p2{background-image:url(img/promo2.jpg)}.p3{background-image:url(img/promo3.jpg)}
.tabs{display:flex;gap:8px;overflow:auto;padding:2px 2px 8px}
.tab{background:var(--panel);border:1px solid var(--line);padding:5px 16px;border-radius:999px;white-space:nowrap;font-weight:700;color:var(--mut);text-transform:uppercase}.tab.on{color:#fff;border-color:var(--cyan);box-shadow:0 0 12px rgba(47,214,255,.55)}
.promos{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.promo{position:relative;border:1px solid var(--neon);border-radius:12px;overflow:hidden;min-height:190px;display:flex;align-items:flex-end;background-size:cover;background-position:center;box-shadow:0 0 18px rgba(45,140,255,.4)}
.promo:before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,7,20,.92),rgba(3,7,20,.15) 65%)}
.promo .in{position:relative;padding:14px;width:100%}.promo h3{font-size:38px;color:var(--gold);text-shadow:0 0 16px rgba(255,198,26,.6);line-height:1}.promo p{font-weight:700;font-size:17px}.promo ul{margin:6px 0 0 18px;font-size:14px;font-weight:600;color:#cfe0ff}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}
.steps div{background:var(--panel);border:1px solid var(--line);border-radius:10px;text-align:center;padding:12px 6px;font-weight:700;color:#fff;text-transform:uppercase}
.steps b{display:grid;place-items:center;width:38px;height:38px;margin:0 auto 4px;border-radius:50%;background:linear-gradient(180deg,#ffe066,var(--gold2));color:#2b1c00;font:900 18px "Orbitron",sans-serif;box-shadow:0 0 14px rgba(255,198,26,.6)}
/* ---------- forms ---------- */
label{display:block;font-size:14px;color:var(--mut);margin:13px 0 5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
input,select{width:100%;background:#071230;border:1px solid var(--line);color:#fff;padding:11px 12px;border-radius:8px;font:600 17px "Rajdhani","Noto Sans SC",sans-serif;outline:none}
input::placeholder{color:#5671a3}input:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(47,214,255,.2),0 0 14px rgba(47,214,255,.3)}
input[type=file]{padding:8px}select option{background:#0b1634}
.authbox{max-width:440px;margin:28px auto 10px;position:relative;padding-top:74px}
.authbox .mascot{position:absolute;left:50%;top:-52px;transform:translateX(-50%);width:112px;height:112px;border-radius:50%;border:3px solid var(--cyan);box-shadow:0 0 26px rgba(47,214,255,.7);object-fit:cover;background:#1a5fd0;animation:bob 3s ease-in-out infinite}
.authbox h1{text-align:center;margin-bottom:2px}
.msgs{max-width:1280px;margin:12px auto 0;padding:0 14px}
.msg{padding:10px 14px;border:1px solid;border-radius:10px;margin-bottom:8px;font-weight:700}
.msg.success{background:rgba(43,227,160,.12);color:var(--ok);border-color:var(--ok)}.msg.error{background:rgba(255,84,104,.12);color:var(--bad);border-color:var(--bad)}.msg.warning,.msg.info{background:rgba(255,212,90,.12);color:var(--warn);border-color:var(--warn)}
.methods{display:grid;gap:10px;margin-top:10px}
.method{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer;background:var(--bg2)}
.method input{width:20px;height:20px;margin-top:3px;accent-color:var(--cyan);padding:0}.method.on{border-color:var(--cyan);box-shadow:0 0 14px rgba(47,214,255,.4)}.method b{display:block;font-size:18px;color:#fff;text-transform:uppercase}.method small{color:var(--mut);font-weight:600;font-size:14px}
.bankbox{background:rgba(45,140,255,.1);border:1px dashed var(--neon);border-radius:10px;padding:12px;margin-top:10px}.bankbox b.no{font:900 24px "Orbitron",sans-serif;letter-spacing:.06em;color:var(--cyan)}
.amts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.amts button{background:var(--bg2);border:1px solid var(--line);padding:6px 0;border-radius:8px;font:700 18px "Rajdhani",sans-serif;color:#fff}.amts button:hover{border-color:var(--cyan);box-shadow:0 0 10px rgba(47,214,255,.4)}
.calc{background:rgba(255,198,26,.1);border:1px solid var(--gold);color:var(--gold);border-radius:10px;padding:10px 12px;margin-top:12px;font-weight:700}.calc b{font:900 20px "Orbitron",sans-serif;color:#fff}
table{width:100%;border-collapse:collapse}td,th{padding:9px 6px;border-bottom:1px solid rgba(29,63,134,.6);text-align:left;font-size:15px;font-weight:600}th{color:var(--mut);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.badge{padding:1px 10px;border:1px solid;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap;text-transform:uppercase}.b-success{color:var(--ok);border-color:var(--ok);background:rgba(43,227,160,.1)}.b-pending{color:var(--warn);border-color:var(--warn);background:rgba(255,212,90,.1)}.b-rejected{color:var(--bad);border-color:var(--bad);background:rgba(255,84,104,.1)}
.acct{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:12px;flex-wrap:wrap}
.acct .gi{display:flex;gap:12px;align-items:center}.acct .gi img{width:52px;height:52px;border-radius:10px;border:1px solid var(--neon);object-fit:cover}
.acct code{background:rgba(45,140,255,.18);border:1px solid var(--line);padding:0 8px;border-radius:6px;font-weight:700;color:var(--cyan)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.empty{text-align:center;color:var(--mut);padding:26px;font-weight:700;grid-column:1/-1}
footer{color:var(--mut);font-size:13px;text-align:center;padding:26px 16px;font-weight:600}
/* ---------- bottom nav ---------- */
.bnav{position:fixed;left:0;right:0;bottom:0;background:linear-gradient(180deg,#1257d6,#0a2d7a);border-top:1px solid #7cc0ff;display:flex;justify-content:space-around;padding:6px 0 max(8px,env(safe-area-inset-bottom));z-index:40;box-shadow:0 -4px 22px rgba(45,140,255,.5)}
.bnav a{display:flex;flex-direction:column;align-items:center;font:700 12px "Rajdhani",sans-serif;text-transform:uppercase;color:#cfe3ff;min-width:58px}.bnav a span{font-size:22px;line-height:1.15}.bnav a.on{color:#fff;text-shadow:0 0 10px #fff}
.bnav .midb span{background:linear-gradient(180deg,#ffe066,var(--gold2));width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin-top:-26px;border:3px solid #0a2d7a;box-shadow:0 0 18px rgba(255,198,26,.8);color:#2b1c00;font-weight:900;font-size:28px;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-5px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.lang button,.top .btn.sm{white-space:nowrap}
/* ---------- responsive ---------- */
@media(max-width:1100px){.portal{grid-template-columns:minmax(0,1fr) 270px}.portal>.col:first-child{display:none}}
@media(max-width:820px){
  .nav{display:none}.portal{grid-template-columns:1fr}.portal>.col:first-child{display:grid}.portal>.col:last-child{order:-1}
  .mid{grid-template-columns:1fr}.rail{grid-auto-flow:column;grid-auto-columns:72px;overflow:auto;position:static;padding-bottom:4px}
  .rail button{padding:6px 2px}.rail button span{font-size:22px}
  .grid{grid-template-columns:repeat(3,1fr);gap:9px}.gc .nm{font-size:12px;bottom:26px}.gc .go{font-size:12px}
  .hero{min-height:300px;align-items:flex-end}.hero:before{background:linear-gradient(0deg,rgba(5,10,24,.95) 0,rgba(5,10,24,.55) 58%,transparent)}.hero h1{font-size:25px}.hero .btn+.btn{margin:8px 0 0}
  .row2{grid-template-columns:1fr}
}
@media(min-width:900px){.bnav{display:none}body{padding-bottom:0}}
@media(max-width:480px){.brand span{display:none}.top .wrap{gap:7px}.top .btn.sm{padding:4px 10px;font-size:14px}.grid{grid-template-columns:repeat(2,1fr)}.authbox{margin-top:76px}h1{font-size:22px}}
@media(max-width:820px){.portal>.mid{order:0}.portal>.col:first-child{order:2}.portal>.col:last-child{order:-1}.hero{min-height:250px}.hero p{font-size:15px;margin:6px 0 12px}.badges{display:none}}

.bnimg{display:block;border:1px solid var(--neon);border-radius:12px;overflow:hidden;box-shadow:0 0 16px rgba(45,140,255,.4);transition:transform .15s}.bnimg:hover{transform:translateY(-3px)}.bnimg img{display:block;width:100%;height:auto}
.posters{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;margin-top:14px}
.poster{background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--neon);border-radius:14px;overflow:hidden;box-shadow:0 0 18px rgba(45,140,255,.35)}
.poster img{display:block;width:100%;height:auto}.poster .ph{aspect-ratio:1/1;display:grid;place-items:center;background:linear-gradient(135deg,#123478,#0a1a44)}.poster .ph h3{font-size:60px;color:var(--gold)}
.pinfo{padding:12px 14px 14px}.pinfo b{font:900 16px "Orbitron",sans-serif;text-transform:uppercase}.pinfo ul{margin:8px 0 12px 18px;font-size:14px;color:#cfe0ff;font-weight:600}
.gc .nm img{mix-blend-mode:screen;max-width:92%;max-height:54px;filter:none}
/* logo plate: same look as the Meta888 logo wall (dark rounded plate + neon border) */
.gc .nm{left:9px;right:9px;bottom:30px;background:linear-gradient(180deg,rgba(8,14,36,.92),rgba(3,7,20,.96));border:1.5px solid var(--c1,#2d8cff);border-radius:11px;padding:3px;box-shadow:0 0 14px var(--c2,rgba(45,140,255,.5)),inset 0 0 10px rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;min-height:42px}
.gc .nm img{mix-blend-mode:normal;display:block;width:100%;height:auto;max-width:100%;max-height:64px;object-fit:contain;border-radius:8px;filter:none}
.gc .nm:not(:has(img)){font-size:15px;padding:8px 4px}

/* ---------- sliding promo banner ---------- */
.slider{position:relative;border:1px solid var(--neon);border-radius:14px;overflow:hidden;box-shadow:0 0 28px rgba(45,140,255,.45);background:#07123a}
.slider .track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.slider .track::-webkit-scrollbar{display:none}
.slider .slide{position:relative;flex:0 0 100%;scroll-snap-align:start;display:block}
.slider .slide img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover}
.slider .cta{position:absolute;left:3.2%;bottom:7%;background:linear-gradient(180deg,#ffe066,var(--gold2));color:#2b1c00;border:1px solid #fff1b0;border-radius:6px;padding:6px 20px;font:700 17px "Rajdhani","Noto Sans SC",sans-serif;text-transform:uppercase;letter-spacing:.06em;box-shadow:0 0 16px rgba(255,198,26,.6);clip-path:polygon(9px 0,100% 0,calc(100% - 9px) 100%,0 100%)}
.slider .nv{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:rgba(5,10,24,.65);border:1px solid var(--cyan);color:#fff;font-size:24px;line-height:1;display:grid;place-items:center;opacity:.85}
.slider .nv:hover{background:rgba(47,214,255,.25);opacity:1}.slider .prev{left:10px}.slider .next{right:10px}
.slider .dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:7px}
.slider .dots button{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.45);padding:0}.slider .dots button.on{width:26px;border-radius:6px;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.portal.noleft{grid-template-columns:minmax(0,1fr) 290px}
.posters.wide{grid-template-columns:repeat(auto-fill,minmax(min(100%,460px),1fr))}.posters.wide .poster img{aspect-ratio:21/9;object-fit:cover}
@media(max-width:820px){.portal.noleft{grid-template-columns:1fr}.slider .nv{display:none}.slider .cta{font-size:13px;padding:3px 12px;bottom:11%}.slider .dots{bottom:4px}}

/* user-supplied banners already contain their own button: no overlay, natural ratio */
.slider .cta{display:none}.slider .slide img{aspect-ratio:auto}.posters.wide .poster img{aspect-ratio:auto;object-fit:contain}

/* login/register avatar: fixed, centred with margin (no transform => nothing can push it sideways) */
.authbox .mascot{left:0;right:0;margin:0 auto;transform:none;animation:none;width:132px;height:132px;top:-68px;border:0;border-radius:50%;background:transparent;box-shadow:0 0 26px rgba(47,214,255,.55)}
