:root{--red:#ff2b3a;--blue:#2f6bff;--bg:#0b0b0d;--bg2:#121215;--panel:#17171b;--line:#2a2a31;--txt:#ededf0;--mut:#9b9ba6;--white:#f4f4f6;--r:6px;
--stripe:repeating-linear-gradient(135deg,transparent 0 14px,#ffffff10 14px 16px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--txt);font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;line-height:1.6;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}
main{flex:1}a{color:var(--white)}img{max-width:100%}
h1,h2,h3{font-family:"Bahnschrift","Arial Narrow","Segoe UI",sans-serif;letter-spacing:.5px;line-height:1.15}
.mut{color:var(--mut)}.small{font-size:.85rem}.center{text-align:center}
code{background:#000;border:1px solid var(--line);padding:2px 8px;border-radius:4px;font-family:ui-monospace,Consolas,monospace}
.wrap{max-width:1200px;margin:0 auto;padding:0 5vw}
/* ---- nav ---- */
.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.nav::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,var(--blue),transparent 30%,transparent 70%,var(--red))}
.nav .wrap{display:flex;align-items:center;gap:22px;height:66px}
.brand img{height:40px;width:auto;display:block}
.links{display:flex;gap:4px;margin-left:auto;align-items:center}
.links a{color:var(--mut);text-decoration:none;font-weight:600;font-size:.92rem;padding:8px 12px;border-radius:4px;text-transform:uppercase;letter-spacing:1px}
.links a:hover,.links a.on{color:var(--white);background:#ffffff0d}.links a.on{box-shadow:inset 0 -2px 0 var(--white)}
.acct{display:flex;align-items:center;gap:8px}
.acct img{width:32px;height:32px;border-radius:50%;border:2px solid var(--line)}
.menu-btn{display:none;margin-left:auto;background:none;border:1px solid var(--line);color:var(--txt);font-size:1.2rem;border-radius:4px;padding:4px 10px;cursor:pointer}
/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;font-weight:700;text-transform:uppercase;letter-spacing:1px;font-size:.9rem;border:2px solid var(--white);color:var(--white);background:transparent;cursor:pointer;text-decoration:none;clip-path:polygon(10px 0,100% 0,calc(100% - 10px) 100%,0 100%);transition:.15s}
.btn:hover{background:#ffffff14}.btn.solid{background:var(--white);color:var(--bg)}.btn.solid:hover{filter:brightness(.88)}
.btn.discord{border-color:#5865f2;background:#5865f2;color:#fff}.btn.sm{padding:7px 14px;font-size:.78rem}
.btn[disabled]{opacity:.5;cursor:not-allowed}
/* ---- hero ---- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero .banner{width:100%;height:auto;display:block;aspect-ratio:3/1;object-fit:cover;max-height:520px}
.hero-body{position:relative;margin-top:-6vw;padding-bottom:60px;text-align:center}
.tag{display:inline-block;text-transform:uppercase;letter-spacing:3px;font-size:.75rem;font-weight:700;color:var(--mut);padding:6px 14px;border:1px solid var(--line);background:var(--bg)}
.hero h1{font-size:clamp(2rem,5vw,3.6rem);margin:16px 0 10px}
.hero p.lead{color:var(--mut);max-width:680px;margin:0 auto 26px;font-size:1.1rem}
.cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.connect{display:inline-flex;margin-top:22px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 60%,#000)}
.connect code{border:0;background:none;padding:10px 16px}.connect button{background:var(--line);color:var(--txt);border:0;padding:0 16px;font-weight:700;cursor:pointer}.connect button:hover{background:var(--white);color:#000}
.status{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:18px;color:var(--mut);font-weight:600}
.dot{width:10px;height:10px;border-radius:50%;background:#555}.status.on .dot{background:#2ee66b;box-shadow:0 0 10px #2ee66b}.status.on b{color:var(--white)}
/* ---- sections ---- */
.section{padding:80px 0;position:relative}
.section.alt{background:var(--bg2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section.alt::before{content:"";position:absolute;top:0;right:0;width:220px;height:100%;background:var(--stripe);mask-image:linear-gradient(90deg,transparent,#000);pointer-events:none}
.h2{font-size:clamp(1.7rem,3.5vw,2.4rem);text-transform:uppercase;margin:0 0 10px;display:flex;align-items:center;gap:14px}
.h2::before{content:"";width:26px;height:26px;background:linear-gradient(135deg,transparent 40%,var(--white) 40% 60%,transparent 60%);flex:none}
.page-head{padding:70px 0 40px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg2),var(--bg));position:relative;overflow:hidden}
.page-head::after{content:"";position:absolute;right:-40px;top:-40px;width:340px;height:200px;background:repeating-linear-gradient(135deg,transparent 0 18px,#fff 18px 30px);opacity:.9;clip-path:polygon(40% 0,100% 0,100% 60%);}
.page-head::before{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:url(/img/skyline.svg) repeat-x bottom/auto 90px;opacity:.5}
.page-head h1{font-size:clamp(2rem,5vw,3.2rem);margin:0;text-transform:uppercase;position:relative}
.page-head p{color:var(--mut);margin:8px 0 0;max-width:640px;position:relative}
.grid{display:grid;gap:20px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
.card{background:var(--panel);border:1px solid var(--line);padding:24px;position:relative;transition:.2s}
.card:hover{border-color:#55555f}.card h3{margin:.2em 0 .4em}.card p{color:var(--mut);margin:0}
.card.corner::after{content:"";position:absolute;top:0;right:0;width:34px;height:34px;background:linear-gradient(225deg,var(--white) 0 6px,transparent 6px 10px,#ffffff55 10px 14px,transparent 14px)}
.ico{font-size:1.8rem}
.about{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.about p{color:var(--mut);font-size:1.05rem;white-space:pre-line}
.about img{border:1px solid var(--line);height:auto;background:var(--bg2);padding:30px}
.news .card img{margin:-24px -24px 16px;width:calc(100% + 48px);max-width:none;aspect-ratio:16/7;object-fit:cover}
.date{font-size:.75rem;letter-spacing:2px;color:var(--mut);text-transform:uppercase}
.cta-band{border:1px solid var(--line);background:linear-gradient(110deg,var(--panel) 60%,var(--bg2));padding:40px;display:flex;justify-content:space-between;align-items:center;gap:30px;position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;left:-60px;top:0;bottom:0;width:120px;background:repeating-linear-gradient(135deg,transparent 0 10px,#fff 10px 16px);opacity:.12;transform:skewX(-20deg)}
.cta-band h2{margin:0 0 6px;text-transform:uppercase}.cta-band p{margin:0;color:var(--mut)}
details{background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--white);padding:14px 18px;margin-bottom:10px}
summary{cursor:pointer;font-weight:700}details p{color:var(--mut);margin:.6em 0 0;white-space:pre-line}
/* ---- staff ---- */
.rank{margin:0 0 40px}.rank h2{font-size:1.1rem;text-transform:uppercase;letter-spacing:3px;color:var(--mut);border-bottom:1px solid var(--line);padding-bottom:8px}
.staff{text-align:center}.staff img,.staff .av{background:var(--bg2);width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--line);margin:0 auto 12px;display:grid;place-items:center;background:#222;font-size:2rem;font-weight:800}
.staff .role{color:var(--white);font-weight:600;font-size:.9rem}.staff .bio{font-size:.9rem;margin-top:8px}
.pill{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:2px;padding:3px 10px;border:1px solid var(--line);color:var(--mut);margin-top:6px}
/* ---- rules ---- */
.rules-sec{margin-bottom:40px}.rules-sec h2{text-transform:uppercase}
.rules-sec ol{list-style:none;padding:0;margin:0;counter-reset:r}
.rules-sec li{counter-increment:r;background:var(--panel);border:1px solid var(--line);padding:16px 18px 16px 70px;position:relative;margin-bottom:8px}
.rules-sec li::before{content:counter(r,decimal-leading-zero);position:absolute;left:18px;top:14px;font-weight:900;font-size:1.3rem;color:#ffffff55;font-family:Bahnschrift,sans-serif}
.rules-sec li b{display:block}.rules-sec li span{color:var(--mut);white-space:pre-line}
/* ---- store ---- */
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.tab{background:none;border:1px solid var(--line);color:var(--txt);padding:8px 16px;cursor:pointer;font-weight:600}.tab.on{background:var(--white);color:var(--bg)}
.store-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.pkg{padding:0;display:flex;flex-direction:column;overflow:hidden}.pkg img,.pkg .ph{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--bg2);display:grid;place-items:center;font-size:2rem}
.pkg .body{padding:18px;display:flex;flex-direction:column;gap:10px;flex:1}.price{font-size:1.3rem;font-weight:800}
.pkg .row{display:flex;gap:8px;margin-top:auto}.pkg .btn{flex:1;justify-content:center;padding:9px 10px;font-size:.78rem}
.modal{position:fixed;inset:0;background:#000c;display:grid;place-items:center;z-index:80;padding:20px}
.modal-card{background:var(--panel);border:1px solid var(--line);max-width:640px;width:100%;max-height:88vh;overflow:auto;padding:28px;position:relative}
.x{position:absolute;top:8px;right:12px;background:none;border:0;color:var(--txt);font-size:1.8rem;cursor:pointer}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100%);background:var(--bg2);border-left:1px solid var(--line);z-index:85;padding:24px;overflow:auto}
.line{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.basket-fab{position:fixed;right:20px;bottom:20px;z-index:60}
/* ---- profile ---- */
.profile{display:flex;gap:24px;align-items:center}.profile img{width:110px;height:110px;border-radius:50%;border:3px solid var(--white)}
.role-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:4px 10px;margin:4px;font-size:.85rem}.role-chip i{width:10px;height:10px;border-radius:50%;background:#999}
/* ---- footer ---- */
.footer{border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 70%,#000);position:relative;padding:40px 0 30px}
.footer::before{content:"";position:absolute;left:0;right:0;top:-80px;height:80px;background:url(/img/skyline.svg) repeat-x bottom/auto 80px;opacity:.35;pointer-events:none}
.footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;align-items:center}
.footer img{height:46px}.footer nav a{color:var(--mut);text-decoration:none;margin:0 8px}.footer nav a:hover{color:var(--white)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--white);color:#000;padding:10px 20px;font-weight:700;z-index:99}
[hidden]{display:none!important}
@media(max-width:960px){.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr 1fr}.about{grid-template-columns:1fr}}
@media(max-width:820px){.menu-btn{display:block}.links{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;align-items:stretch;background:var(--bg);padding:12px 5vw;border-bottom:1px solid var(--line)}.links.open{display:flex}
.g2,.g3,.g4{grid-template-columns:1fr}.cta-band{flex-direction:column;text-align:center}.hero-body{margin-top:0;padding-top:30px}.section{padding:56px 0}.profile{flex-direction:column;text-align:center}.connect code{font-size:.8rem}}

/* ---- theme toggles (classes on <html>, set by the server) ---- */
.t-nostripes .section.alt::before,.t-nostripes .page-head::after,.t-nostripes .cta-band::before,.t-nostripes .card.corner::after,.t-nostripes .h2::before{display:none}
.t-noskyline .page-head::before,.t-noskyline .footer::before{display:none}
.t-nonavline .nav::after{display:none}
.site-lightbar{display:none;height:4px;position:sticky;top:0;z-index:51}
.t-sitelightbar .site-lightbar{display:flex}.t-sitelightbar .nav{top:4px}
.site-lightbar span{flex:1;animation:slb 1.1s infinite}.site-lightbar span:nth-child(odd){background:var(--red);box-shadow:0 0 18px 4px color-mix(in srgb,var(--red) 60%,transparent)}
.site-lightbar span:nth-child(even){background:var(--blue);box-shadow:0 0 18px 4px color-mix(in srgb,var(--blue) 60%,transparent);animation-delay:.55s}
@keyframes slb{0%,40%{opacity:1}50%,100%{opacity:.15;box-shadow:none}}
.brand img{filter:drop-shadow(0 0 1px #0008)}
/* staff role colours from Discord */
.rank[style] h2{border-bottom-color:var(--rc);color:var(--txt)}.rank[style] h2::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--rc);margin-right:10px;vertical-align:middle}
.card.staff[style]{border-top:3px solid var(--rc)}.card.staff[style] img{border-color:var(--rc)}.card.staff[style] .role{color:var(--rc);filter:brightness(1.25)}
