:root{--p:#8fc2ff;--a:#2f7ce0;--bg:#0a1526;--panel:#101f38;--text:#e8f0fb;--line:rgba(120,170,240,.16);--muted:#93a8c8;--soft:rgba(47,124,224,.16);--field:rgba(255,255,255,.05)}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:16px/1.55 system-ui,Segoe UI,Roboto,sans-serif}
body{background:linear-gradient(color-mix(in srgb,var(--bg) 84%,transparent),color-mix(in srgb,var(--bg) 93%,transparent)),url('/uploads/hero-29a762c9.png') center top/cover fixed no-repeat,var(--bg)}
body.home{background:radial-gradient(ellipse at 50% -10%,rgba(47,124,224,.18),transparent 60%) fixed,var(--bg)}
a{color:var(--p)}img{max-width:100%}
header{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--panel) 82%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--a) 35%,var(--line));box-shadow:0 4px 30px rgba(47,124,224,.28)}
header::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,var(--a),var(--p),var(--a),transparent);box-shadow:0 0 14px 1px color-mix(in srgb,var(--a) 70%,transparent);animation:hdrglow 4s ease-in-out infinite}
@keyframes hdrglow{0%,100%{opacity:.5}50%{opacity:1}}
.nav{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:12px;padding:10px 20px}
.nav .brand{display:flex;align-items:center;gap:10px;text-decoration:none;white-space:nowrap;flex:0 0 auto}.nav .brand img{height:36px;width:auto}
.nav .brand .mark{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,var(--a),#0d2f66);color:#fff;font-size:19px;box-shadow:0 4px 12px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.25);border:1px solid rgba(140,185,255,.35)}
.nav .brand .bt{font-weight:800;font-size:18px;letter-spacing:.2px;color:var(--p);line-height:1}.nav .brand .bt em{font-style:normal;color:var(--text);font-weight:700}
.nav .links{display:flex;align-items:center;gap:1px;margin-left:auto}.nav .links a{color:var(--text);text-decoration:none;padding:6px 9px;border-radius:8px;font-weight:500;font-size:14.5px;white-space:nowrap}.nav .links a:hover{background:var(--soft);color:var(--p)}
.nav .links .dd{position:relative}
.nav .links summary{list-style:none;cursor:pointer;color:var(--text);padding:6px 9px;border-radius:8px;font-weight:500;font-size:14.5px;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.nav .links summary::-webkit-details-marker{display:none}
.nav .links summary:hover,.nav .links .dd[open] summary{background:var(--soft);color:var(--p)}
.nav .links .dd .caret{font-size:11px;transition:transform .12s}.nav .links .dd[open] .caret{transform:rotate(180deg)}
.nav .links .ddmenu{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 36px rgba(0,0,0,.5);padding:6px;display:flex;flex-direction:column;gap:2px;z-index:20}
.nav .links .ddmenu a{padding:10px 12px;border-radius:8px;font-size:14px}
.nav .play{background:linear-gradient(180deg,var(--a),#123f86);color:#fff;font-weight:700;text-decoration:none;padding:8px 16px;border-radius:9px;box-shadow:0 3px 12px rgba(0,0,0,.4);white-space:nowrap}
.navtog{display:none}.burger{display:none;cursor:pointer;font-size:24px;line-height:1;color:var(--p);padding:4px 10px;border-radius:8px;user-select:none}.burger:hover{background:var(--soft)}
.announce{background:linear-gradient(90deg,#123f86,var(--a));color:#fff;text-align:center;padding:8px 12px;font-weight:600}
.maintbar{position:sticky;top:0;z-index:300;display:flex;align-items:center;justify-content:center;gap:9px;min-height:40px;padding:8px 14px;text-align:center;font-weight:700;font-size:13.5px;letter-spacing:.2px;color:#2a1c00;background:linear-gradient(90deg,#e8a01e,#ffd873,#e8a01e);background-size:200% 100%;animation:maintpulse 3.5s linear infinite;box-shadow:0 2px 16px rgba(232,160,30,.55)}
.maintbar .mdot{width:9px;height:9px;border-radius:50%;background:#7a1f00;box-shadow:0 0 0 0 rgba(122,31,0,.6);animation:maintblink 1.4s ease-in-out infinite;flex:0 0 auto}
@keyframes maintpulse{0%{background-position:0 0}100%{background-position:200% 0}}
@keyframes maintblink{0%,100%{box-shadow:0 0 0 0 rgba(122,31,0,.55)}70%{box-shadow:0 0 0 7px rgba(122,31,0,0)}}
body.maint header{top:40px}
.hero{position:relative;min-height:72vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:60px 20px;background:radial-gradient(ellipse at 50% 25%,rgba(47,124,224,.22),transparent 62%),linear-gradient(180deg,color-mix(in srgb,var(--panel) 60%,var(--bg)),var(--bg))}
.hero.img{background-size:cover;background-position:center}
.hero.img::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,11,22,.58) 0%,rgba(6,11,22,.3) 24%,rgba(6,11,22,.55) 62%,var(--bg) 100%),radial-gradient(ellipse 78% 70% at 50% 44%,rgba(4,9,19,.8),rgba(4,9,19,.36) 60%,transparent 82%)}
.hero>div{position:relative;max-width:860px;padding:24px 20px}
.hero img.logo{max-height:220px;margin-bottom:10px;filter:drop-shadow(0 8px 26px rgba(0,0,0,.6))}
.hero h1{font-size:clamp(40px,6.8vw,72px);margin:0 0 14px;font-weight:900;letter-spacing:.5px;line-height:1.02;background:linear-gradient(180deg,#ffffff,#b9d4ff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 28px rgba(47,124,224,.6)) drop-shadow(0 2px 8px rgba(0,0,0,.55))}
.hero h1 b{color:var(--p)}
.hero p{font-size:clamp(17px,2.2vw,21px);color:#cfe0f7;margin:0 auto 28px;max-width:520px;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.playbtn{display:inline-block;background:linear-gradient(180deg,var(--a),#123f86);color:#fff;font-weight:800;font-size:clamp(22px,3vw,30px);padding:18px 58px;border-radius:16px;text-decoration:none;border:1px solid rgba(140,185,255,.4);transition:transform .12s;animation:pbpulse 2.8s ease-in-out infinite}
.playbtn:hover{transform:translateY(-2px) scale(1.03)}
@keyframes pbpulse{0%,100%{box-shadow:0 14px 38px rgba(47,124,224,.42),inset 0 1px 0 rgba(255,255,255,.25)}50%{box-shadow:0 16px 52px rgba(47,124,224,.75),inset 0 1px 0 rgba(255,255,255,.25)}}
.sub{margin-top:18px;color:#cbdcf5;font-size:14px;text-shadow:0 1px 6px rgba(0,0,0,.7)}.sub a{color:#bcd8ff;font-weight:700}
.herobadges{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:0 0 26px}
.herobadges span{font-size:12.5px;font-weight:600;color:#e6f0ff;background:rgba(140,185,255,.14);border:1px solid rgba(140,185,255,.28);padding:6px 13px;border-radius:999px;backdrop-filter:blur(4px)}
.status{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:32px}
.stat{display:flex;align-items:center;gap:13px;padding:13px 22px 13px 18px;min-width:158px;background:linear-gradient(180deg,rgba(20,38,68,.72),rgba(9,18,34,.74));border:1px solid rgba(140,185,255,.18);border-radius:15px;box-shadow:0 12px 30px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.06);backdrop-filter:blur(9px);transition:transform .18s ease,border-color .18s ease}
.stat:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--a) 50%,var(--line))}
.stat .si{font-size:26px;line-height:1;filter:drop-shadow(0 2px 5px rgba(0,0,0,.55))}
.stat .sv{display:flex;flex-direction:column;text-align:left;min-width:0}
.stat .sv b{font-size:24px;font-weight:800;color:#eef4ff;line-height:1.08;letter-spacing:.3px}
.stat .sv>span{font-size:10.5px;color:#9fb6d8;text-transform:uppercase;letter-spacing:.7px;margin-top:4px;white-space:nowrap}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#35d07a;margin-right:8px;vertical-align:middle;box-shadow:0 0 10px 1px rgba(53,208,122,.9);animation:pulse 1.8s infinite}
.dot.off{background:#ff5a63;animation:none;box-shadow:0 0 10px 1px rgba(255,90,99,.85)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(53,208,122,.6)}70%{box-shadow:0 0 0 8px rgba(53,208,122,0)}100%{box-shadow:0 0 0 0 rgba(53,208,122,0)}}
@media(max-width:560px){.status>div{padding:9px 15px}.status b{font-size:20px}}
main{max-width:1100px;margin:0 auto;padding:30px 20px}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:10px 0 40px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 6px 22px rgba(0,0,0,.28)}.card .ic{font-size:30px}.card h3{margin:8px 0 6px;color:var(--p)}
.news article{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;margin-bottom:16px;box-shadow:0 6px 22px rgba(0,0,0,.28)}.news h3{margin:0 0 4px}.news .meta{color:var(--muted);font-size:13px;margin-bottom:10px}
/* News page: featured post + card grid */
.nmeta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px;margin:6px 0 14px}
.nmeta .av{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--a),#123f86);color:#fff;font-weight:800;font-size:13px}
.nbody{color:var(--text);opacity:.92}.nbody a{color:var(--p)}
article.feat{position:relative;background:linear-gradient(160deg,var(--panel),color-mix(in srgb,var(--a) 16%,var(--panel)));border:1px solid var(--line);border-radius:18px;padding:30px 34px;box-shadow:0 14px 40px rgba(0,0,0,.4);margin-bottom:22px}
article.feat .feat-tag{display:inline-block;background:linear-gradient(180deg,var(--a),#123f86);color:#fff;font-size:12px;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:10px}
article.feat h2{margin:0;color:var(--p);font-size:28px}
.newsgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
article.ncard{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:22px 24px;box-shadow:0 6px 22px rgba(0,0,0,.28);transition:transform .12s,box-shadow .12s}
article.ncard:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.45)}
article.ncard .ndate{color:var(--a);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px}
article.ncard h3{margin:6px 0 0;color:var(--p);font-size:19px}
h2.sec{color:var(--p);margin:30px 0 14px;font-size:26px}
.page{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 30px;max-width:860px;margin:0 auto;box-shadow:0 6px 22px rgba(0,0,0,.28)}.page h2{color:var(--p)}
footer{text-align:center;color:var(--muted);font-size:13px;padding:30px 20px;border-top:1px solid var(--line);margin-top:30px;background:var(--panel)}
.form{max-width:420px;margin:0 auto}.form label{display:block;font-size:13px;color:var(--muted);margin:12px 0 4px}.form input{width:100%;padding:10px;border-radius:8px;border:1px solid var(--line);background:var(--field);color:var(--text);font:inherit}.form input:focus{outline:2px solid var(--a);outline-offset:0;border-color:var(--a)}
.form button{margin-top:18px;width:100%;padding:12px;border:0;border-radius:8px;background:linear-gradient(180deg,var(--a),#123f86);color:#fff;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.4)}.msg{margin-top:12px;min-height:1.4em}.ok{color:#35d07a}.bad{color:#ff5a63}
.muted{color:var(--muted)}
/* Home-page account panel: overlaps the hero, shows a login form or the signed-in profile. */
.homeacct{max-width:1000px;margin:-56px auto 0;padding:0 20px;position:relative;z-index:3}
.acctcard{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px 28px;box-shadow:0 18px 55px rgba(0,0,0,.45)}
.acctcard .lgn{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.acctcard .lgn .txt{flex:1;min-width:220px}.acctcard .lgn h3{margin:0 0 4px;color:var(--p);font-size:22px}.acctcard .lgn p{margin:0;color:var(--muted);font-size:14px}
.acctcard form.lf{display:flex;gap:8px;flex-wrap:wrap;flex:2;min-width:280px}
.acctcard form.lf input{flex:1;min-width:130px;padding:11px;border-radius:10px;border:1px solid var(--line);background:var(--field);color:var(--text);font:inherit}
.acctcard form.lf input:focus{outline:2px solid var(--a);border-color:var(--a)}
.acctcard form.lf button{padding:11px 20px;border:0;border-radius:10px;background:linear-gradient(180deg,var(--a),#123f86);color:#fff;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.4)}
.acctcard .amsg{flex-basis:100%;min-height:1em;font-size:13px}
.prof{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--a),#123f86);display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.4);flex:0 0 auto}
.prof .who{flex:1;min-width:180px}.prof .who .nm{font-size:22px;font-weight:800}.prof .who .mt{color:var(--muted);font-size:13px;margin-top:2px}
.prof .pts{text-align:center;padding:6px 20px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.prof .pts b{display:block;font-size:30px;color:var(--p);line-height:1}.prof .pts span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.prof .acts{display:flex;gap:8px;flex-wrap:wrap}
.prof .acts a,.prof .acts button{padding:9px 15px;border-radius:10px;text-decoration:none;font:inherit;font-weight:700;cursor:pointer;border:1px solid var(--line);background:var(--field);color:var(--text)}
.prof .acts a.primary{background:linear-gradient(180deg,var(--a),#123f86);color:#fff;border:0;box-shadow:0 4px 14px rgba(0,0,0,.4)}
.prof .charchips{flex-basis:100%;display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.charchip{display:flex;gap:7px;align-items:center;background:var(--field);border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:13px}.charchip .dot2{width:8px;height:8px;border-radius:50%;background:#35d07a}
.chip{display:inline-block;padding:2px 10px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.4px}.chip.on{background:rgba(53,208,122,.16);color:#35d07a}.chip.off{background:rgba(140,170,220,.12);color:var(--muted)}
@media(max-width:1080px){
.nav{flex-wrap:wrap}
.burger{display:block;margin-left:auto;order:2}
.nav .play{order:3}
.nav .links{order:4;flex-basis:100%;flex-direction:column;margin-left:0;gap:2px;display:none;padding:8px 0 4px;border-top:1px solid var(--line);margin-top:6px}
.navtog:checked~.links{display:flex}
.nav .links a{padding:11px 10px}
.nav .links .dd,.nav .links summary{width:100%}
.nav .links .ddmenu{position:static;box-shadow:none;border:0;padding:2px 0 2px 14px;min-width:0}
.hero{min-height:52vh;padding:40px 16px}.hero.img{background-position:center center;background-size:cover}
.hero h1{font-size:clamp(30px,8vw,44px)}.hero>div{padding:28px 24px;max-width:100%}.homeacct{margin-top:-36px}
.acctcard{padding:18px}.acctcard form.lf{min-width:0}
.prof .pts{border-left:0;border-right:0;padding:6px 0}}
@media(max-width:480px){.hero{min-height:44vh;padding:32px 14px}.hero .playbtn{font-size:20px;padding:14px 34px}}
/* Mobile hardening (Android): background-attachment:fixed is broken/janky on mobile browsers
   (background won't scroll, white gaps, viewport-height jitter with the URL bar) - use scroll. */
@media(max-width:1080px){
body,body.home{background-attachment:scroll!important}
.nav{padding:10px 14px}.nav .brand .bt{font-size:16px}
.homeacct{padding:0 12px}.acctcard{padding:16px 14px}
.status{gap:10px}.stat{min-width:calc(50% - 6px);padding:11px 12px}
main{padding:22px 14px}
}
@media(max-width:480px){
.stat{min-width:100%}
.hero h1{font-size:clamp(26px,9vw,40px)}
.acctcard .lgn h3,.prof .who .nm{font-size:19px}
.cggrid,.itgrid,.features,.newsgrid{padding-left:14px;padding-right:14px}
}