:root {
  --bg: #f6f2eb;
  --surface: #fffdfa;
  --surface-2: #efe8de;
  --text: #211a15;
  --muted: #8b7d70;
  --brown: #805c3a;
  --brown-2: #b58a61;
  --dark: #211914;
  --line: rgba(70, 50, 35, .11);
  --shadow: 0 24px 70px rgba(45, 29, 17, .11);
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--bg); color: var(--text); }
body { min-height: 100dvh; }
button, input, select { font: inherit; }
button { border: 0; }
a { color: inherit; }
.hidden { display: none !important; }
.view { min-height: 100dvh; }
.view-selection { display: grid; place-items: center; padding: 28px 16px 40px; }
.selection-shell { width: min(1040px, 100%); }
.brand-block { display: flex; align-items: center; gap: 20px; margin-bottom: 26px; }
.brand-logo { width: 90px; height: 90px; border-radius: 26px; object-fit: cover; box-shadow: var(--shadow); background: #000; flex: 0 0 auto; }
.eyebrow, .sheet-kicker, .hero-kicker, .card-kicker { font-size: 10px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.eyebrow { display: inline-flex; gap: 8px; align-items: center; }
.eyebrow img { width: 24px; height: 16px; object-fit: cover; border-radius: 4px; box-shadow: 0 0 0 1px rgba(0,0,0,.08); }
h1 { margin: 4px 0 8px; font-size: clamp(48px, 8vw, 86px); line-height: .86; letter-spacing: -.065em; }
.brand-copy p { max-width: 650px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.selection-path { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; color: #a99b8e; font-size: 12px; }
.path-chip { background: transparent; color: var(--muted); padding: 7px 8px; border-radius: 999px; cursor: pointer; font-weight: 800; }
.path-chip.active { background: #e7ddcf; color: #65472e; }
.path-chip:disabled { cursor: default; opacity: .75; }
.category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.selection-intro { grid-column: 1 / -1; padding: 10px 4px 5px; }
.selection-intro h2 { margin: 6px 0 5px; font-size: clamp(28px, 4.6vw, 42px); letter-spacing: -.045em; }
.selection-intro p { margin: 0 0 8px; color: var(--muted); font-size: 13px; line-height: 1.55; }
.category-card { min-height: 132px; padding: 21px; border: 1px solid var(--line); border-radius: 22px; background: var(--surface); box-shadow: 0 10px 28px rgba(55, 39, 27, .045); text-align: left; cursor: pointer; transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; position: relative; }
.category-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: rgba(117, 82, 47, .18); }
.category-card strong { display: block; max-width: 92%; font-size: 18px; line-height: 1.12; letter-spacing: -.025em; }
.category-card span { display: block; color: var(--muted); margin-top: 8px; font-size: 12px; }
.category-card .count { margin-top: 14px; color: var(--brown); font-weight: 900; }
.category-wide { min-height: 112px; }
.region-card { min-height: 154px; background: linear-gradient(140deg, #fffdfa, #f0e7da); }
.region-card strong { font-size: 26px; margin-top: 10px; }
.region-card .card-kicker { color: #a17d5b; }
.school-card { min-height: 86px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.school-card strong { font-size: 16px; }
.school-card span { margin-top: 5px; }
.arrow { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); color: #8b6a4c !important; font-size: 21px !important; margin: 0 !important; }
.secondary-button { margin-top: 14px; padding: 12px 16px; border-radius: 999px; background: #e8dfd4; color: #63452d; font-weight: 900; cursor: pointer; }
.view-school { position: relative; overflow: hidden; background: #1f1813; }
.backdrop { position: absolute; inset: 0; background: radial-gradient(circle at center, rgba(255,248,237,.14), transparent 48%), #1e1712; }
.topbar { position: absolute; top: 0; left: 0; right: 0; z-index: 8; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 18px; }
.topbar-brand { display: flex; align-items: center; gap: 10px; min-width: 0; color: #fff; }
.topbar-brand img { width: 38px; height: 38px; border-radius: 12px; object-fit: cover; flex: 0 0 auto; }
.topbar-brand strong { display: block; font-size: 14px; line-height: 1; white-space: nowrap; }
.topbar-brand span { display: block; margin-top: 4px; color: rgba(255,255,255,.68); font-size: 9px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 45vw; }
.icon-button, .close-button { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; border: 1px solid rgba(255,255,255,.16); background: rgba(30,23,18,.28); color: #fff; backdrop-filter: blur(18px); cursor: pointer; }
.icon-button img { width: 20px; height: 20px; object-fit: contain; filter: brightness(0) invert(1); }
.hero-wrap { position: relative; z-index: 2; height: 100dvh; padding: 62px 14px 118px; display: grid; place-items: center; }
.hero-card { position: relative; width: min(1180px, 100%); height: 100%; min-height: 420px; overflow: hidden; border-radius: 32px; box-shadow: 0 40px 100px rgba(0,0,0,.28); cursor: pointer; touch-action: manipulation; user-select: none; }
.hero-picture, .hero-picture img, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-picture img { object-fit: cover; object-position: center; transform: scale(1.01); }
.hero-shade { background: linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.04) 32%, rgba(13,10,7,.76) 100%); }
.hero-copy { position: absolute; z-index: 4; left: 28px; right: 28px; bottom: 28px; color: #fff; }
.hero-copy h2 { margin: 8px 0 0; max-width: 890px; font-size: clamp(30px, 4vw, 58px); line-height: .98; letter-spacing: -.045em; text-wrap: balance; }
.counter-pill { display: inline-flex; align-items: center; gap: 10px; margin-top: 16px; padding: 10px 14px; border: 1px solid rgba(255,255,255,.18); border-radius: 999px; background: rgba(255,255,255,.13); backdrop-filter: blur(18px); }
.counter-pill span { font-size: 11px; color: rgba(255,255,255,.7); }
.counter-pill strong { min-width: 48px; font-size: 18px; text-align: right; }
.click-hint, .click-locked { position: absolute; z-index: 4; right: 24px; top: 28px; padding: 9px 12px; border-radius: 999px; background: rgba(20,15,12,.26); border: 1px solid rgba(255,255,255,.15); backdrop-filter: blur(18px); color: rgba(255,255,255,.84); font-size: 12px; font-weight: 900; }
.click-locked { left: 50%; right: auto; top: 50%; transform: translate(-50%, -50%); background: rgba(15,11,8,.72); padding: 12px 16px; white-space: nowrap; }
.float-layer { position: absolute; inset: 0; z-index: 5; pointer-events: none; overflow: hidden; }
.float-number { position: absolute; transform: translate(-50%, -50%); color: #fff7ea; font-weight: 950; font-size: 22px; text-shadow: 0 6px 18px rgba(0,0,0,.35); animation: floatUp .85s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes floatUp { from { opacity: 0; transform: translate(-50%, -8%) scale(.8); } 20% { opacity: 1; } to { opacity: 0; transform: translate(-50%, -130%) scale(1.03); } }
.leaderboard-delta { position: fixed; z-index: 9; left: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; color: #54e58a; font-size: clamp(24px, 3vw, 42px); font-weight: 950; letter-spacing: -.05em; opacity: 0; text-shadow: 0 0 14px rgba(84,229,138,.28); }
.leaderboard-delta.show { animation: leaderboardDelta 2.5s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes leaderboardDelta { 0% { opacity: 0; transform: translate(-26px,-50%) scale(.9); filter: blur(1.5px); } 12% { opacity: 1; transform: translate(0,-50%) scale(1.08); filter: blur(0); } 72% { opacity: 1; } 100% { opacity: 0; transform: translate(-18px,-50%) scale(.99); filter: blur(1px); } }
.bottom-dock { position: absolute; z-index: 7; left: 14px; right: 14px; bottom: 15px; display: grid; place-items: center; }
.leader-dock { width: min(780px, 100%); display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 22px; border: 1px solid rgba(255,255,255,.16); background: rgba(31,24,19,.7); backdrop-filter: blur(22px); box-shadow: 0 14px 50px rgba(0,0,0,.22); color: #fff; text-align: left; cursor: pointer; }
.leader-icon-wrap { width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.10); }
.leader-icon-wrap img { width: 22px; height: 22px; object-fit: contain; filter: brightness(0) invert(1); }
.leader-summary { min-width: 0; }
.leader-summary span, .my-rank span { display: block; color: rgba(255,255,255,.55); font-size: 9px; font-weight: 900; letter-spacing: .13em; }
.leader-summary strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.leader-summary small { display: block; margin-top: 1px; color: rgba(255,255,255,.68); font-size: 10px; }
.my-rank strong { display: block; margin-top: 1px; font-size: 15px; text-align: right; }
.chevron { opacity: .7; font-size: 18px; transition: transform .25s ease; }
.leader-dock[aria-expanded="true"] .chevron { transform: rotate(180deg); }
.sheet { position: fixed; inset: 0; z-index: 30; display: flex; align-items: flex-end; opacity: 0; pointer-events: none; transition: opacity .22s ease; }
.sheet.open { opacity: 1; pointer-events: auto; }
.sheet-backdrop { position: absolute; inset: 0; background: rgba(22,16,12,.47); backdrop-filter: blur(5px); }
.sheet-panel { position: relative; width: min(900px, calc(100% - 20px)); max-height: min(86dvh, 820px); margin: 0 auto 10px; overflow: hidden; border-radius: 28px; background: #fbf8f3; box-shadow: 0 30px 100px rgba(40,26,15,.26); transform: translateY(38px); transition: transform .3s cubic-bezier(.2,.8,.2,1); }
.sheet.open .sheet-panel { transform: translateY(0); }
.sheet-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; padding: 22px 22px 14px; }
.sheet-head h3 { margin: 6px 0 0; font-size: 25px; letter-spacing: -.04em; }
.sheet-subtitle { margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.sheet .close-button { color: var(--text); background: #f1e8dd; border-color: transparent; backdrop-filter: none; font-size: 24px; }
.leaderboard-list { max-height: calc(min(86dvh, 820px) - 100px); overflow: auto; padding: 0 12px 14px; scroll-behavior: smooth; }
.leader-row { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 12px 10px; border-radius: 16px; transition: background .22s ease; }
.leader-row + .leader-row { margin-top: 3px; }
.leader-row.active { background: #eee2d4; }
.leader-rank { color: var(--muted); font-size: 13px; font-weight: 900; }
.leader-row.active .leader-rank, .leader-row.active .leader-name { color: #6e5238; }
.leader-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 800; }
.leader-meta { margin-top: 2px; color: var(--muted); font-size: 10px; }
.leader-count { white-space: nowrap; font-size: 13px; font-weight: 900; }
.about-panel { padding-bottom: 18px; overflow-y: auto; }
.about-text { padding: 0 22px 16px; color: var(--muted); line-height: 1.65; }
.author-block { margin: 0 22px 14px; padding: 15px; border-radius: 18px; background: #f1e8dd; }
.author-block p { margin: 8px 0 12px; color: #6f6154; line-height: 1.6; font-size: 13px; }
.production-link { display: inline-block; color: #6e4d31; font-weight: 900; text-decoration: none; }
.production-link:hover { text-decoration: underline; }
.leaderboard-tabs { display:flex; gap:8px; margin-top:12px; flex-wrap:wrap; }
.rank-tab { border:1px solid var(--line); background:#f4eee6; color:#6e5a48; border-radius:999px; padding:9px 13px; font:inherit; font-size:12px; font-weight:850; cursor:pointer; }
.rank-tab.active { background:#241a14; color:#fff; border-color:#241a14; }
.contact-school-link { display:block; margin-top:10px; color:#6e4d31; font-size:12px; font-weight:900; text-decoration:none; }
.contact-school-link:hover { text-decoration:underline; }

.support-row { margin: 0 22px 14px; padding: 15px; border: 1px solid var(--line); border-radius: 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.support-row strong, .support-row span { display: block; }
.support-row strong { font-size: 14px; }
.support-row span { margin-top: 4px; color: var(--muted); font-size: 10px; }
.support-button { padding: 11px 14px; border-radius: 12px; background: #271d16; color: #fff; font-size: 12px; font-weight: 900; text-decoration: none; white-space: nowrap; }
.support-disabled { opacity: .5; pointer-events: none; }
.stats-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 0 22px; }
.stat-card { min-height: 118px; display: flex; flex-direction: column; justify-content: space-between; padding: 14px; border-radius: 18px; background: #f1e8dd; }
.stat-label { color: var(--muted); font-size: 11px; font-weight: 800; }
.stat-card strong { font-size: 25px; letter-spacing: -.03em; }
.rate-card { min-width: 0; }
.rate-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.rate-head strong { font-size: 18px; }
.cps-chart { height: 58px; display: flex; align-items: end; gap: 5px; padding-top: 7px; }
.cps-bar { flex: 1; min-width: 9px; height: 20%; border-radius: 7px 7px 4px 4px; background: #b89470; opacity: .55; transition: height .28s ease, opacity .28s ease; }
.cps-bar.current { opacity: 1; background: #755538; }
.rate-average { color: #9a8d80; font-size: 9px; }
.data-note { margin: 13px 22px 0; color: #a49588; font-size: 10px; }
.captcha-gate { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.captcha-gate.open { opacity: 1; pointer-events: auto; }
.captcha-backdrop { position: absolute; inset: 0; background: rgba(19,14,11,.72); backdrop-filter: blur(8px); }
.captcha-panel { position: relative; width: min(440px, 100%); padding: 25px; border-radius: 26px; background: #fbf8f3; box-shadow: 0 30px 110px rgba(0,0,0,.35); }
.captcha-badge { color: #8d6b4b; font-size: 9px; font-weight: 950; letter-spacing: .18em; }
.captcha-panel h3 { margin: 6px 0 7px; font-size: 27px; letter-spacing: -.04em; }
.captcha-panel p { margin: 0 0 18px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.captcha-status { min-height: 18px; margin: 10px 0 6px; color: var(--muted); font-size: 10px; }
@media (max-width: 800px) { .category-grid { grid-template-columns: 1fr; } .stats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) {
  .view-selection { place-items: start; padding-top: 22px; }
  .brand-block { align-items: flex-start; gap: 13px; }
  .brand-logo { width: 66px; height: 66px; border-radius: 20px; }
  h1 { font-size: 52px; }
  .brand-copy p { font-size: 12px; }
  .category-card { min-height: 112px; padding: 17px; border-radius: 18px; }
  .region-card strong { font-size: 22px; }
  .hero-wrap { padding: 58px 9px 110px; }
  .hero-card { border-radius: 24px; }
  .hero-copy { left: 20px; right: 20px; bottom: 21px; }
  .hero-copy h2 { font-size: 31px; }
  .click-hint { top: 20px; right: 18px; }
  .leader-dock { grid-template-columns: auto minmax(0,1fr) auto; }
  .my-rank { display: none; }
  .sheet-panel { width: 100%; margin: 0; border-radius: 28px 28px 0 0; }
  .stats-grid { grid-template-columns: 1fr 1fr; }
  .support-row { align-items: flex-start; flex-direction: column; }
  .support-button { width: 100%; text-align: center; }
  .captcha-panel { padding: 20px; }
  .desktop-only { display: none; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .001ms !important; transition-duration: .001ms !important; } }
.selection-tools{position:absolute;right:18px;top:18px;z-index:10}.light-tool{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:rgba(255,255,255,.76);backdrop-filter:blur(16px);border-radius:999px;padding:10px 13px;color:#5f4937;font:inherit;font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 10px 30px rgba(50,35,23,.08)}.light-tool img{width:17px;height:17px;object-fit:contain;opacity:.76}.topbar-actions{display:flex;align-items:center;gap:8px}.account-panel{padding-bottom:20px;overflow-y:auto}.account-tabs{display:flex;gap:8px;padding:0 22px 14px}.account-tab{flex:1;border:1px solid var(--line);background:#f4eee6;color:#6e5a48;border-radius:14px;padding:11px 13px;font:inherit;font-size:12px;font-weight:900;cursor:pointer}.account-tab.active{background:#241a14;color:#fff;border-color:#241a14}.account-form{display:grid;gap:12px;padding:0 22px}.account-form label{display:grid;gap:6px;color:#604b38;font-size:11px;font-weight:850}.account-form input{width:100%;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#261d17;outline:none;font:inherit}.account-form input:focus{border-color:#9b7c5c;box-shadow:0 0 0 3px rgba(155,124,92,.13)}.account-help{padding:13px 14px;border-radius:16px;background:#f1e8dd;color:#756658;font-size:11px;line-height:1.6}.account-help a{color:#6e4d31;font-weight:900}.bot-button{display:block;text-align:center;padding:12px 14px;border-radius:14px;background:#241a14;color:#fff;text-decoration:none;font-weight:900;font-size:12px}.bot-button.disabled{opacity:.45;pointer-events:none}.account-submit{width:100%;margin-top:2px}.account-status{min-height:18px;padding:8px 22px 0;color:#856e5c;font-size:11px;line-height:1.45}.account-logged{padding:0 22px}.account-status-card{display:grid;gap:5px;padding:16px;border-radius:18px;background:#f1e8dd}.account-status-card span{color:#8f7f70;font-size:10px}.account-status-card strong{font-size:17px}.account-status-card b{font-size:12px;color:#6e5238}.account-note{color:#756658;font-size:11px;line-height:1.5}.global-notice{position:fixed;z-index:120;left:50%;top:22px;transform:translateX(-50%) translateY(-24px);width:min(620px,calc(100% - 24px));padding:0 18px;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.global-notice.show{opacity:1;transform:translateX(-50%) translateY(0)}.global-notice>div{padding:16px 18px;border-radius:18px;background:rgba(35,27,21,.94);box-shadow:0 22px 70px rgba(0,0,0,.25);color:#fff;text-align:center;font-weight:850;font-size:14px;line-height:1.45;letter-spacing:-.01em}.global-notice.show>div{animation:noticePulse .5s ease both}@keyframes noticePulse{from{transform:scale(.97);filter:blur(2px)}to{transform:scale(1);filter:blur(0)}}
@media(max-width:700px){.selection-tools{right:12px;top:12px}.light-tool{padding:9px 11px}.account-panel{border-radius:28px 28px 0 0}.global-notice{top:12px}}

/* Fast city navigation */
.city-tools{grid-column:1/-1;position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin:4px 0 2px;padding-right:38px}
.city-search-wrap{position:relative}.city-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-52%);color:#9c8b7a;font-size:20px;pointer-events:none}.city-search-wrap input{width:100%;margin:0;padding:13px 15px 13px 40px;border:1px solid var(--line);border-radius:15px;background:rgba(255,253,250,.92);color:var(--text);outline:none;font:inherit;box-shadow:0 10px 30px rgba(55,39,27,.035)}.city-search-wrap input:focus{border-color:rgba(117,82,47,.3);box-shadow:0 0 0 4px rgba(117,82,47,.08)}
.city-alphabet{position:fixed;left:10px;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 4px;border-radius:12px;background:rgba(255,253,250,.78);border:1px solid rgba(70,50,35,.08);backdrop-filter:blur(14px);box-shadow:0 12px 35px rgba(55,39,27,.06)}.city-letter{width:22px;height:18px;padding:0;border-radius:6px;background:transparent;color:#8e7d6c;font-size:9px;font-weight:900;line-height:18px;cursor:pointer}.city-letter:hover{background:#e9dfd4;color:#65472e}.city-letter:disabled{opacity:.2;cursor:default}.city-letter-section{grid-column:1/-1;scroll-margin-top:18px}.city-section-title{position:sticky;top:4px;z-index:5;width:28px;height:28px;margin:5px 0 8px;display:grid;place-items:center;border-radius:9px;background:#e8dfd4;color:#67492f;font-size:11px;font-weight:950;box-shadow:0 6px 20px rgba(55,39,27,.05)}.city-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.city-empty{grid-column:1/-1;padding:38px 12px;text-align:center;color:var(--muted);font-size:12px}
.account-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 22px}.account-stat-grid>div{min-height:90px;display:flex;flex-direction:column;justify-content:space-between;padding:13px;border:1px solid var(--line);border-radius:16px;background:#fffdfa}.account-stat-grid span{color:#918174;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.account-stat-grid strong{font-size:16px;line-height:1.1}.account-stat-grid small{color:#897a6b;font-size:9px;line-height:1.35}
.verification-box{display:grid;gap:9px;padding:13px;border:1px solid var(--line);border-radius:17px;background:#f1e8dd}.verification-code-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.verification-code-row code{font-size:22px;font-weight:950;letter-spacing:.18em;color:#34261b}.mini-copy{padding:8px 10px;border-radius:10px;background:#e6d9cb;color:#65472e;font-size:10px;font-weight:900;cursor:pointer}.verification-status{min-height:18px;margin:0;color:#756658;font-size:10px;line-height:1.5}
.turnstile-invisible{position:fixed;width:1px;height:1px;left:-10000px;top:-10000px;opacity:0;pointer-events:none;overflow:hidden}.click-locked{z-index:7}
.global-notice{transition:opacity .25s ease,transform .25s ease}.global-notice>div{font-size:15px;padding:17px 20px}.global-notice.show>div{animation:noticePulse .5s ease both}
.event-fx-layer{position:fixed;inset:0;z-index:110;pointer-events:none;overflow:hidden}.event-particle{position:absolute;top:-40px;font-size:20px;font-weight:950;text-shadow:0 4px 14px rgba(0,0,0,.22);animation:eventRain 2.8s cubic-bezier(.12,.72,.2,1) forwards;transform:translateX(0) rotate(0deg);white-space:nowrap}.event-particle.plus{color:#37d778}.event-particle.minus{color:#ff5d63}@keyframes eventRain{0%{opacity:0;transform:translate(0,-30px) rotate(-7deg) scale(.82)}10%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translate(var(--drift),105vh) rotate(12deg) scale(1.06)}}
.game-event-banner{position:fixed;z-index:115;left:50%;top:20px;transform:translate(-50%,-120%);min-width:min(420px,calc(100% - 24px));display:flex;flex-direction:column;align-items:center;gap:3px;padding:13px 18px;border-radius:18px;background:rgba(28,21,16,.94);color:#fff;box-shadow:0 22px 70px rgba(0,0,0,.3);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s ease;text-align:center}.game-event-banner.show{transform:translate(-50%,0);opacity:1}.game-event-banner strong{font-size:23px;letter-spacing:-.04em}.game-event-banner span{font-size:10px;color:rgba(255,255,255,.62)}
@media(max-width:800px){.city-tools{grid-template-columns:1fr;padding-right:0}.city-alphabet{left:4px;gap:0;padding:5px 3px}.city-letter{width:19px;height:17px;font-size:8px;line-height:17px}.city-section-grid{grid-template-columns:1fr}.category-grid{padding-left:16px}}
@media(max-width:700px){.city-alphabet{top:48%;}.city-tools{padding-right:0}.account-stat-grid{grid-template-columns:1fr 1fr}.game-event-banner{top:10px}.event-particle{font-size:18px}}

/* Countries + faster admin photo workflow */
.country-grid{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.country-card{text-align:left;min-height:145px;position:relative;overflow:hidden}
.country-card-top{display:flex;align-items:center;gap:8px;margin-bottom:7px}.country-card-top img{width:21px;height:15px;object-fit:cover;border-radius:3px;box-shadow:0 2px 8px rgba(55,39,27,.12)}
.country-card strong{font-size:25px;display:block;letter-spacing:-.03em}.country-card>span:last-child{display:block;margin-top:7px;color:var(--muted);font-size:10px}
@media(max-width:800px){.country-grid{grid-template-columns:1fr}}
.home-leaderboard{margin:22px 0 8px;padding:18px;border:1px solid var(--line);border-radius:22px;background:rgba(255,253,250,.78);box-shadow:0 18px 50px rgba(55,39,27,.05)}
.home-leader-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.home-leader-head h2{margin:3px 0 0;font-size:20px;letter-spacing:-.03em}.home-leaderboard .leaderboard-list{display:grid;gap:6px;min-height:56px}.home-leaderboard .leader-row{background:#fffdfa}.home-leaderboard .leaderboard-tabs{display:flex;gap:5px}.home-leaderboard .rank-tab{font-size:9px;padding:7px 9px}
.consent-check{display:flex!important;grid-template-columns:none!important;align-items:flex-start;gap:8px!important;line-height:1.45}.consent-check input{width:17px!important;min-width:17px;margin-top:2px}.contact-school-link{border:0;background:transparent;padding:0;text-align:left;font:inherit;cursor:pointer}
.float-number.negative{color:#e65b61}

.home-leaderboard .leader-empty{padding:14px 8px;color:var(--muted);font-size:11px;text-align:center}
@media(max-width:700px){.home-leader-head{align-items:flex-start;flex-direction:column}.home-leader-head .leaderboard-tabs{width:100%}.home-leader-head .rank-tab{flex:1}}
