:root { color-scheme:dark; --bg:#111014; --panel:#1b181e; --ink:#f7f3f5; --muted:#aaa3aa; --line:#373139; --pink:#f52aa0; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Figtree",system-ui,sans-serif; }
.page-shell { width:min(1220px,calc(100% - 40px)); margin:auto; }
.masthead { min-height:76px; display:flex; align-items:center; gap:18px; border-bottom:1px solid var(--line); }
.header-logo { width:58px; height:58px; flex:0 0 58px; display:block; overflow:hidden; border-radius:24%; }
.header-logo img { width:100%; height:100%; display:block; object-fit:cover; transform:scale(1.13); }
.masthead-note,footer { color:#8f8890; font:500 .63rem "IBM Plex Mono",monospace; letter-spacing:.06em; }
.header-links { margin-left:auto; display:flex; align-items:center; gap:24px; }
.judge-link,.skin-link { color:var(--ink); font-weight:700; text-decoration:none; }
.judge-link:hover,.skin-link:hover { color:var(--pink); }
.language-switch { display:flex; align-items:center; gap:5px; }
.language-switch button { width:27px; height:23px; display:grid; place-items:center; padding:0; border:1px solid transparent; border-radius:4px; background:transparent; cursor:pointer; font:1rem/1 system-ui,sans-serif; filter:saturate(.62) brightness(.78); opacity:.72; transition:filter .15s ease,opacity .15s ease,border-color .15s ease,background .15s ease; }
.language-switch button.active,.language-switch button:hover { border-color:rgba(245,42,160,.65); background:rgba(245,42,160,.1); filter:none; opacity:1; }
.clan-profile { margin-top:34px; border:1px solid var(--line); background:var(--panel); }
.clan-banner { height:310px; background:url('/assets/mic-banner.png') center top/cover no-repeat; border-bottom:1px solid var(--line); }
.clan-details { min-height:150px; display:flex; justify-content:space-between; align-items:center; gap:30px; padding:24px 30px 26px; }
.clan-tag { margin:0 0 5px; color:var(--pink); font:600 .65rem "IBM Plex Mono",monospace; }
h1 { margin:0; font:400 2.35rem/1 "Archivo Black",sans-serif; letter-spacing:-.06em; }
.clan-subtitle { margin:8px 0 0; color:var(--muted); font-size:.95rem; }
.creator-widget { display:flex; align-items:center; gap:14px; padding:10px 12px 10px 16px; border:1px solid var(--line); background:#151217; }
.creator-powered { padding-right:14px; border-right:1px solid var(--line); }
.creator-powered span,.creator-powered strong { display:block; }
.creator-powered span { color:#8f8790; font:500 .55rem "IBM Plex Mono",monospace; text-transform:uppercase; }
.creator-powered strong { margin-top:4px; color:var(--pink); font:600 .73rem "IBM Plex Mono",monospace; text-transform:uppercase; }
.twitter-card { display:flex; align-items:center; gap:9px; color:var(--ink); text-decoration:none; }
.twitter-card img { width:46px; height:46px; border:2px solid rgba(245,42,160,.7); border-radius:50%; object-fit:cover; }
.twitter-card span,.twitter-card strong,.twitter-card small { display:block; }
.twitter-card strong { font-size:.9rem; }
.twitter-card small { margin-top:3px; color:var(--muted); font:500 .55rem "IBM Plex Mono",monospace; }
.twitter-card > b { color:#817981; font-size:.82rem; }
.twitter-card:hover strong,.twitter-card:hover > b { color:var(--pink); }
.osu-link { padding:7px 9px; border:1px solid var(--line); color:var(--muted); font:600 .63rem "IBM Plex Mono",monospace; text-decoration:none; }
.osu-link:hover,.clan-owner a:hover { color:var(--pink); }
.map-announcement { position:relative; isolation:isolate; overflow:hidden; min-height:760px; margin-top:34px; border:1px solid var(--line); background:#121016; }
.map-announcement-background { position:absolute; z-index:-2; inset:-28px; display:block; overflow:hidden; background:#0a0d12; }
.map-announcement-background img { width:100%; height:100%; display:block; object-fit:cover; filter:blur(22px) saturate(1) brightness(.92); transform:scale(1.1); transition:filter .3s ease,transform .3s ease; }
.map-announcement-background:hover img { filter:blur(20px) saturate(1.05) brightness(1); transform:scale(1.12); }
.map-announcement::after { position:absolute; z-index:-1; inset:0; content:""; background:linear-gradient(115deg,rgba(10,8,13,.4) 0%,rgba(17,14,21,.3) 42%,rgba(16,13,20,.56) 100%); }
.map-announcement-content { position:relative; z-index:1; display:flex; flex-direction:column; min-height:760px; padding:42px 34px 34px; }
.map-announcement-hero { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; padding-bottom:30px; border-bottom:1px solid rgba(213,203,214,.2); }
.map-announcement-copy h2 { margin-top:0; font-size:clamp(2.4rem,5vw,4.7rem); }
.map-announcement-copy > p:not(.section-kicker) { max-width:42ch; margin:18px 0 0; color:#d0c9d0; line-height:1.55; font-size:1.02rem; }
.map-announcement-link { padding:11px 14px; border:1px solid var(--pink); color:var(--ink); font:600 .65rem "IBM Plex Mono",monospace; text-decoration:none; text-transform:uppercase; transition:background .15s ease,color .15s ease; }
.map-announcement-link:hover { background:var(--pink); color:#160b13; }
.map-announcement-showcase { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr); gap:18px; margin-top:28px; }
.map-announcement-video { position:relative; overflow:hidden; min-width:0; aspect-ratio:16/9; border:1px solid rgba(213,203,214,.3); background:rgba(8,7,11,.68); backdrop-filter:blur(6px); }
.map-announcement-video video { width:100%; height:100%; display:block; object-fit:cover; background:#08070b; }
.map-announcement-video-label { position:absolute; z-index:1; top:0; left:0; right:0; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 16px; background:linear-gradient(180deg,rgba(8,7,11,.82),transparent); pointer-events:none; }
.map-announcement-video-label .section-kicker { margin:0; }
.map-announcement-video-label strong { color:var(--ink); font:600 .68rem "IBM Plex Mono",monospace; text-transform:uppercase; }
.map-announcement-video-placeholder { position:absolute; inset:0; display:grid; place-content:center; gap:4px; padding:20px; text-align:center; }
.map-announcement-video-placeholder .section-kicker { margin:0; }
.map-announcement-video-placeholder strong { color:var(--ink); font:600 .82rem "IBM Plex Mono",monospace; }
.map-announcement-bounty { display:flex; flex-direction:column; justify-content:center; padding:24px; border:1px solid rgba(255,49,150,.58); background:rgba(18,12,20,.68); backdrop-filter:blur(7px); }
.map-announcement-bounty h3 { margin:0 0 20px; color:var(--ink); font:400 clamp(1.55rem,3vw,2.35rem)/1 "Archivo Black",sans-serif; letter-spacing:-.045em; }
.map-bounty-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.map-bounty-grid div { display:grid; gap:5px; padding:13px 12px; border:1px solid rgba(213,203,214,.25); background:rgba(8,7,11,.38); }
.map-bounty-grid strong { color:#f6c95e; font:400 clamp(1.55rem,3vw,2.15rem)/1 "Archivo Black",sans-serif; }
.map-bounty-grid span { color:var(--muted); font:700 .6rem "IBM Plex Mono",monospace; }
.map-announcement-bounty > p:last-child { margin:18px 0 0; color:#d0c9d0; font-size:.8rem; line-height:1.45; }
.map-announcement-board { flex:1; padding:32px 0 30px; }
.map-announcement-board-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:18px; }
.map-announcement-board-heading h3 { margin:0; font:400 1.55rem/1 "Archivo Black",sans-serif; letter-spacing:-.045em; }
.map-announcement-board-heading > span { color:var(--muted); font:600 .72rem "Figtree",system-ui,sans-serif; }
.leaderboard-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.leaderboard-panel { overflow:hidden; border:1px solid rgba(213,203,214,.24); background:rgba(12,10,15,.66); backdrop-filter:blur(5px); }
.leaderboard-panel-heading { display:flex; justify-content:space-between; align-items:center; gap:14px; padding:17px 20px; border-bottom:1px solid var(--line); }
.leaderboard-panel-heading h4 { margin:0; color:var(--ink); font:800 .9rem "Figtree",system-ui,sans-serif; letter-spacing:.04em; }
.leaderboard-panel-heading span { color:var(--muted); font:700 .68rem "Figtree",system-ui,sans-serif; }
.leaderboard-list { min-height:220px; }
.leaderboard-row { display:grid; grid-template-columns:44px minmax(0,1fr) auto; align-items:center; gap:14px; min-height:70px; padding:11px 20px; border-bottom:1px solid rgba(55,49,57,.7); font-family:"Figtree",system-ui,sans-serif; }
.leaderboard-row:last-child { border-bottom:0; }
.leaderboard-place { color:#817981; font:800 .86rem "Figtree",system-ui,sans-serif; }
.leaderboard-player { min-width:0; }
.leaderboard-player a,.leaderboard-player strong { display:block; overflow:hidden; color:var(--ink); font-size:.98rem; font-weight:800; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.leaderboard-player a:hover { color:var(--pink); }
.leaderboard-player small { display:block; margin-top:4px; overflow:hidden; color:var(--muted); font:600 .68rem "Figtree",system-ui,sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.leaderboard-value { color:var(--ink); font:800 1.18rem "Figtree",system-ui,sans-serif; white-space:nowrap; }
.leaderboard-row.gold .leaderboard-place,.leaderboard-row.gold .leaderboard-value { color:#f6c95e; }
.leaderboard-row.silver .leaderboard-place,.leaderboard-row.silver .leaderboard-value { color:#cbd1db; }
.leaderboard-row.bronze .leaderboard-place,.leaderboard-row.bronze .leaderboard-value { color:#d99060; }
.leaderboard-empty { margin:0; padding:48px 16px; color:var(--muted); font:600 .92rem "Figtree",system-ui,sans-serif; text-align:center; }
.map-announcement-footer { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px, .8fr); align-items:stretch; gap:16px; }
.map-announcement-nofail { display:flex; align-items:center; gap:16px; margin:0; padding:14px 18px; border:1px solid rgba(213,203,214,.3); background:rgba(25,22,31,.74); backdrop-filter:blur(5px); }
.map-announcement-nofail img { width:72px; height:50px; object-fit:contain; flex:0 0 72px; }
.map-announcement-nofail strong { display:block; font:600 .7rem "IBM Plex Mono",monospace; letter-spacing:.03em; }
.map-announcement-nofail p { margin:5px 0 0; color:var(--muted); font-size:.79rem; line-height:1.4; }
.map-announcement-cta { display:grid; place-items:center; margin:0; padding:18px 20px; border:1px solid var(--pink); color:var(--ink); font:600 clamp(.78rem,1.3vw,1.05rem) "IBM Plex Mono",monospace; letter-spacing:.02em; text-align:center; text-decoration:none; transition:background .15s ease,color .15s ease; }
.map-announcement-cta:hover { background:var(--pink); color:#160b13; }
.plays-section { padding:76px 0 86px; }
.section-bar { display:flex; justify-content:space-between; align-items:flex-end; padding:0 0 22px; }
.section-kicker { margin:0 0 8px; color:var(--pink); font:500 .58rem "IBM Plex Mono",monospace; letter-spacing:.09em; }
h2 { margin:0; font:400 2rem/1 "Archivo Black",sans-serif; letter-spacing:-.055em; }
.section-bar > span { color:var(--muted); font:.68rem "IBM Plex Mono",monospace; }
.plays-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.video-card { overflow:hidden; border:1px solid var(--line); background:var(--panel); }
.youtube-frame,.youtube-player { position:relative; width:100%; aspect-ratio:16/9; display:block; overflow:hidden; border:0; background:#09080a; }
.youtube-player { padding:0; cursor:pointer; }
.youtube-player img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .25s ease,filter .25s ease; }
.youtube-player:hover img { transform:scale(1.015); filter:brightness(.72); }
.play-button { position:absolute; top:50%; left:50%; width:62px; height:44px; display:grid; place-items:center; border-radius:12px; background:#ff0033; color:#fff; font-size:1rem; transform:translate(-50%,-50%); box-shadow:0 8px 28px rgba(0,0,0,.38); }
.youtube-frame iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-info { padding:18px 20px 20px; }
.video-date { margin:0 0 8px; color:var(--pink); font:500 .59rem "IBM Plex Mono",monospace; text-transform:uppercase; }
h3 { margin:0; font-size:1.08rem; line-height:1.25; letter-spacing:-.025em; }
.video-meta { display:flex; gap:9px; flex-wrap:wrap; margin-top:13px; color:var(--muted); font:.62rem "IBM Plex Mono",monospace; }
.video-meta span + span { padding-left:9px; border-left:1px solid var(--line); }
.player-row { display:flex; align-items:center; gap:10px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.player-row img { width:36px; height:36px; border-radius:50%; object-fit:cover; background:#2a262c; }
.player-row strong { display:block; font-size:.8rem; }
.card-links { display:flex; gap:12px; margin-top:3px; }
.card-links a { color:var(--muted); font:500 .55rem "IBM Plex Mono",monospace; text-decoration:none; text-transform:uppercase; }
.card-links a:hover { color:var(--pink); }
.loading-state,.empty-state { grid-column:1/-1; padding:48px 0; color:var(--muted); border-top:1px solid var(--line); }
footer { display:flex; justify-content:space-between; gap:18px; border-top:1px solid var(--line); padding:22px 0 30px; }
@media (max-width:760px) {
  .page-shell { width:min(100% - 24px,1220px); }
  .masthead { min-height:66px; }
  .masthead-note { display:none; }
  .header-links { gap:12px; }
  .language-switch { max-width:95px; flex-wrap:wrap; justify-content:flex-end; gap:2px; }
  .language-switch button { width:27px; height:22px; font-size:.92rem; }
  .clan-profile { margin-top:20px; }
  .clan-banner { height:180px; }
  .clan-details { min-height:0; align-items:flex-start; flex-direction:column; padding:20px; }
  .creator-widget { width:100%; flex-wrap:wrap; }
  .creator-powered { flex:1; }
  .osu-link { margin-left:auto; }
  .plays-section { padding:52px 0 64px; }
  .plays-grid { grid-template-columns:1fr; }
  .map-announcement { margin-top:20px; }
  .map-announcement { min-height:0; }
  .map-announcement-content { min-height:0; padding:26px 20px 26px; }
  .map-announcement-hero { align-items:flex-start; flex-direction:column; gap:22px; padding-bottom:26px; }
  .map-announcement-showcase { grid-template-columns:1fr; margin-top:22px; }
  .map-announcement-bounty { padding:20px; }
  .map-announcement-board { padding:26px 0 28px; }
  .map-announcement-board-heading { align-items:flex-start; flex-direction:column; gap:10px; }
  .leaderboard-columns { grid-template-columns:1fr; }
  .map-announcement-footer { grid-template-columns:1fr; }
  .map-announcement-cta { padding:16px 12px; font-size:.74rem; }
  h2 { font-size:1.65rem; }
}
@media (max-width:430px) { .clan-banner { height:132px; } .section-bar { align-items:flex-start; gap:14px; } }
