/* Public site: landing page, glass top bar, news. Admin does not load this file. */
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ico { width: 1.1em; height: 1.1em; flex: none; fill: currentColor; vertical-align: -.18em; }
.gt { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* top bar */
.topbar { position: fixed; inset: 0 0 auto 0; z-index: 20; display: flex; align-items: center; gap: 16px; padding: 10px 22px; background: rgba(var(--bg-rgb), .62); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); border-bottom: 1px solid rgba(255, 255, 255, .07); }
.brand { display: inline-flex; align-items: center; gap: 9px; color: #fff; font-weight: 800; font-size: 1.05rem; white-space: nowrap; }
.brand:hover { text-decoration: none; }
.brand-ico { color: var(--accent); width: 1.7em; height: 1.7em; }
.brand-text b { color: var(--accent); }
.pill-nav { margin: 0 auto; display: flex; gap: 2px; padding: 4px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .08); border-radius: 12px; }
.pill-nav a { color: #d9c9cc; padding: 7px 14px; border-radius: 9px; font-size: .88rem; font-weight: 600; border: 1px solid transparent; }
.pill-nav a:hover { color: #fff; text-decoration: none; background: rgba(255, 255, 255, .06); }
.pill-nav a[aria-current] { color: #fff; background: rgba(var(--accent-rgb), .22); border-color: rgba(var(--accent-rgb), .6); }
.topright { display: flex; align-items: center; gap: 8px; }
.chip { display: inline-flex; align-items: center; gap: 7px; padding: 7px 12px; border-radius: 10px; font-size: .82rem; font-weight: 600; color: #f1e8e9; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); cursor: default; list-style: none; }
summary.chip { cursor: pointer; }
summary.chip::-webkit-details-marker { display: none; }
.clock { letter-spacing: .06em; }
.clock .ico { color: var(--accent-2); }
.clock-label { text-transform: uppercase; font-size: .68rem; color: var(--muted); letter-spacing: .1em; }
.clock time { font-variant-numeric: tabular-nums; font-weight: 700; letter-spacing: .1em; }
.menu { position: relative; }
.menu-list { position: absolute; right: 0; top: calc(100% + 8px); min-width: 150px; background: #1a1113; border: 1px solid var(--line); border-radius: 12px; padding: 6px; display: grid; box-shadow: 0 18px 40px rgba(0, 0, 0, .5); }
.menu-list a, .menu-list button { color: var(--text); padding: 8px 10px; border-radius: 8px; text-align: left; background: none; border: 0; font-size: .9rem; }
.menu-list a:hover, .menu-list button:hover { background: var(--surface-2); text-decoration: none; }
.menu-list a[aria-current] { color: var(--accent); }
@media (max-width: 1160px) {
  .topbar { flex-wrap: wrap; padding: 8px 14px; }
  .brand { margin-right: auto; }
  .pill-nav { margin: 0; order: 3; width: 100%; overflow-x: auto; }
  .clock-label { display: none; }
  .inner-main { padding-top: 140px; }
}
@media (max-width: 520px) {
  .brand-text { display: none; }
  .chip-t { display: none; }
  .topbar { gap: 8px 10px; padding: 8px 12px; }
  .topright { gap: 6px; }
  .chip { padding: 7px 10px; }
  .topbar .brand-logo { height: 12px; }
  .clock .ico { display: none; }
  .clock { padding: 7px 9px; letter-spacing: .02em; }
  .brand { flex: 1 1 auto; min-width: 0; }
  .topright { margin-left: 0; }
  .pill-nav { scrollbar-width: none; }
  .pill-nav::-webkit-scrollbar { display: none; }
  .pill-nav a { padding: 8px 13px; white-space: nowrap; }
  .menu-list { right: 0; max-width: 80vw; }
}

/* landing */
.landing { position: relative; min-height: 100vh; min-height: 100svh; display: grid; place-items: center; text-align: center; padding: 110px 20px 90px; isolation: isolate; background: radial-gradient(90% 60% at 50% 38%, rgba(var(--accent-rgb), .18), transparent 70%), linear-gradient(180deg, rgba(var(--bg-rgb), .55) 0%, rgba(var(--bg-rgb), .2) 45%, var(--bg) 98%), var(--hero-img) center / cover no-repeat, var(--bg); }
.landing-inner { max-width: 760px; display: grid; justify-items: center; gap: 22px; }
.kicker { display: inline-flex; align-items: center; gap: 8px; text-transform: uppercase; letter-spacing: .14em; font-size: .7rem; font-weight: 700; padding: 7px 14px; border-radius: 999px; background: rgba(var(--bg-rgb), .6); border: 1px solid rgba(255, 255, 255, .12); color: #e7d6d9; }
.kicker i { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 10px var(--accent); }
.landing-title { margin: 0; font-size: clamp(2.8rem, 9vw, 6rem); line-height: 1; font-weight: 900; letter-spacing: -.02em; color: #fff; text-shadow: 0 6px 40px rgba(0, 0, 0, .6); }
.landing-title span { background: linear-gradient(90deg, #ff5a5f, var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; filter: drop-shadow(0 0 22px rgba(var(--accent-rgb), .45)); }
.landing-lead { margin: 0; max-width: 56ch; color: #d9c9cc; font-size: 1.05rem; text-shadow: 0 2px 14px rgba(0, 0, 0, .7); }
.landing-cta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-top: 6px; }
.btn.lg { padding: 12px 22px; font-weight: 700; border-radius: 10px; }
.btn.primary { box-shadow: 0 8px 28px rgba(var(--accent-rgb), .35); }
.btn.dark { background: rgba(var(--bg-rgb), .75); border-color: rgba(255, 255, 255, .14); }
.scroll-hint { position: absolute; bottom: 22px; left: 50%; transform: translateX(-50%); display: grid; justify-items: center; gap: 8px; color: var(--muted); font-size: .65rem; letter-spacing: .2em; text-transform: uppercase; }
.scroll-hint:hover { text-decoration: none; color: #fff; }
.scroll-hint span { width: 1px; height: 28px; background: linear-gradient(var(--accent), transparent); animation: sh 1.8s ease-in-out infinite; }
@keyframes sh { 0%, 100% { transform: scaleY(.4); transform-origin: top; opacity: .5; } 50% { transform: scaleY(1); opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .scroll-hint span { animation: none; } }

/* bands and cards */
.band { padding: 64px 0; }
.band-alt { background: linear-gradient(180deg, transparent, rgba(var(--accent-rgb), .05)); border-top: 1px solid var(--line); }
.band h2 { margin: 0 0 22px; font-size: 1.6rem; border: 0; padding: 0; }
.band-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.band-head h2 { margin-bottom: 22px; }
.news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.news-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; transition: transform .2s, border-color .2s; }
.news-card:hover { transform: translateY(-3px); border-color: var(--accent); }
.news-img { display: block; aspect-ratio: 16 / 9; background: var(--surface-2); overflow: hidden; }
.news-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-ph { display: block; width: 100%; height: 100%; background: radial-gradient(100% 120% at 20% 0%, rgba(var(--accent-rgb), .45), transparent 60%), linear-gradient(135deg, var(--surface-2), var(--surface-d)); }
.news-body { padding: 16px 18px 18px; display: grid; gap: 8px; align-content: start; flex: 1; }
.news-body time { color: var(--accent); font-size: .78rem; font-weight: 700; letter-spacing: .06em; }
.news-body h3 { margin: 0; font-size: 1.15rem; line-height: 1.3; }
.news-body h3 a { color: #fff; }
.news-body p { margin: 0; color: var(--muted); font-size: .94rem; }
.news-body .more { font-weight: 600; font-size: .9rem; margin-top: auto; }
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.tile { display: grid; gap: 6px; padding: 22px; background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 12px; color: var(--text); }
.tile:hover { text-decoration: none; background: var(--surface-2); }
.tile strong { font-size: 1.1rem; color: #fff; }
.tile span { color: var(--muted); font-size: .92rem; }

/* inner pages */
.inner-main { padding-top: 96px; }
body.home .site-footer { margin-top: 0; }
.post { max-width: 760px; margin: 0 auto; }
.post header time { color: var(--accent); font-weight: 700; font-size: .85rem; letter-spacing: .06em; }
.post h1 { font-size: clamp(1.8rem, 4vw, 2.6rem); margin: .2em 0 .6em; }
.post-img { width: 100%; border-radius: 14px; margin-bottom: 22px; display: block; }
.prose { font-size: 1.05rem; line-height: 1.75; color: #e6d9db; }
.prose h2 { font-size: 1.5rem; margin: 1.6em 0 .5em; } .prose h3 { font-size: 1.2rem; margin: 1.4em 0 .4em; }
.prose ul { padding-left: 1.3em; } .prose a { text-decoration: underline; }
.page-hero { padding: 24px 24px; }
.admin-thumb { max-width: 260px; border-radius: 8px; border: 1px solid var(--line); }

.brand-logo { height: 15px; width: auto; display: block; }
.landing-title { line-height: 0; }
.landing-logo { width: min(86vw, 760px); height: auto; filter: drop-shadow(0 4px 30px rgba(0, 0, 0, .7)) drop-shadow(0 0 28px rgba(var(--accent-rgb), .35)); }

/* ===== v2: professional public layout ===== */
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
.img-missing { display: none; }
* { scrollbar-color: #4a2a2f transparent; scrollbar-width: thin; }
.eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: .16em; font-size: .72rem; font-weight: 700; color: var(--accent); margin-bottom: 6px; }
.page-head { padding: 8px 0 6px; max-width: 70ch; }
.page-head h1 { margin: 0 0 .25em; font-size: clamp(1.9rem, 4vw, 2.6rem); letter-spacing: -.01em; color: #fff; background: none; -webkit-text-fill-color: initial; }
.page-head .lead { margin: 0; color: var(--muted); font-size: 1.05rem; }
.band h2 { font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.01em; margin: 0 0 24px; }
.band-head { align-items: end; }
.band-head h2 { margin-bottom: 0; }
.band-head { margin-bottom: 26px; }
.band-link { font-weight: 600; font-size: .92rem; white-space: nowrap; }

/* news cards */
.news-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 22px; margin-top: 22px; }
.news-card { background: linear-gradient(180deg, var(--surface-b), #171012); border-radius: 16px; }
.news-img { position: relative; }
.news-img img { transition: transform .5s ease; }
.news-card:hover .news-img img { transform: scale(1.05); }
.news-ph { display: grid; place-items: center; color: rgba(255, 255, 255, .25); }
.news-ph .ico { width: 3rem; height: 3rem; }
.news-meta { display: flex; gap: 10px; align-items: center; color: var(--muted); font-size: .78rem; letter-spacing: .04em; }
.news-meta time { color: var(--accent); font-weight: 700; }
.news-meta span::before { content: "\00b7"; margin-right: 10px; }
.news-card.is-big { display: grid; grid-template-columns: 1.25fr 1fr; }
.news-card.is-big .news-img { aspect-ratio: auto; min-height: 340px; }
.news-card.is-big .news-body { padding: 32px 34px; align-content: center; gap: 14px; }
.news-card.is-big h3 { font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.2; }
.news-card.is-big p { font-size: 1.05rem; }
@media (max-width: 800px) { .news-card.is-big { grid-template-columns: 1fr; } .news-card.is-big .news-img { min-height: 0; aspect-ratio: 16 / 9; } .news-card.is-big .news-body { padding: 20px; } }

/* post */
.post { max-width: 780px; margin: 0 auto; }
.post-head h1 { font-size: clamp(2rem, 5vw, 3rem); line-height: 1.1; letter-spacing: -.02em; margin: .3em 0 .4em; color: #fff; }
.post-lead { font-size: 1.2rem; color: #d9c9cc; margin: 0 0 22px; }
.post-fig { margin: 0 -60px 30px; }
.post-fig img { width: 100%; border-radius: 16px; display: block; border: 1px solid var(--line); }
@media (max-width: 960px) { .post-fig { margin: 0 0 24px; } }
.prose { font-size: 1.08rem; line-height: 1.8; }
.prose h2 { font-size: 1.6rem; margin: 1.8em 0 .5em; color: #fff; } .prose h3 { font-size: 1.25rem; color: #fff; }
.prose p { margin: 0 0 1.2em; } .prose li { margin: .3em 0; }
.page .post-head, .page header { margin-bottom: 8px; }
.page h1 { font-size: clamp(2rem, 5vw, 2.8rem); margin: .2em 0 .6em; color: #fff; }
.more-news { max-width: 1120px; margin: 70px auto 0; padding-top: 40px; border-top: 1px solid var(--line); }
.more-news h2 { margin: 0; font-size: 1.5rem; }

/* landing extras */
.about-teaser { display: grid; max-width: 760px; }
.about-teaser h2 { margin-bottom: 14px; }
.about-teaser p { color: #d9c9cc; font-size: 1.08rem; margin: 0 0 20px; }
.tile { border: 1px solid var(--line); border-left: 1px solid var(--line); border-radius: 16px; padding: 26px; gap: 8px; transition: transform .2s, border-color .2s; }
.tile:hover { transform: translateY(-3px); border-color: var(--accent); }
.tile-ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: rgba(var(--accent-rgb), .16); color: var(--accent); margin-bottom: 8px; }
.tile-ico .ico { width: 22px; height: 22px; }

/* footer */
.site-footer { margin-top: 70px; padding: 40px 0; border-top: 1px solid var(--line); background: #0b0607; color: var(--muted); }
.foot { display: flex; justify-content: space-between; gap: 30px; flex-wrap: wrap; align-items: flex-start; }
.foot-logo { height: 11px; width: auto; opacity: .9; display: block; }
.foot p { margin: 12px 0 0; font-size: .88rem; max-width: 46ch; }
.foot-links { display: flex; gap: 22px; flex-wrap: wrap; align-items: center; font-size: .9rem; }
.foot-links a { color: #d9c9cc; }
.foot-links span { color: var(--muted); }

/* statistics page */
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; margin: 26px 0; }
.kpi { display: flex; align-items: center; gap: 16px; padding: 20px; background: linear-gradient(180deg, var(--surface-b), #171012); border: 1px solid var(--line); border-radius: 16px; }
.kpi-ico { display: grid; place-items: center; flex: none; width: 48px; height: 48px; border-radius: 14px; background: rgba(var(--accent-rgb), .16); color: var(--accent); }
.kpi-ico .ico { width: 24px; height: 24px; }
.kpi strong { display: block; font-size: 1.9rem; line-height: 1.1; color: #fff; font-variant-numeric: tabular-nums; }
.kpi span { color: var(--muted); font-size: .85rem; }
.grid-2 { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 20px; align-items: start; }
@media (max-width: 960px) { .grid-2 { grid-template-columns: minmax(0, 1fr); } }
.panel { background: linear-gradient(180deg, #1b1214, #151012); border: 1px solid var(--line); border-radius: 16px; margin: 0 0 20px; overflow: hidden; }
.panel-head { padding: 18px 22px 12px; }
.panel-head h2 { margin: 0; font-size: 1.1rem; border: 0; padding: 0; }
.panel .table-wrap { border: 0; border-radius: 0; background: none; border-top: 1px solid var(--line); }
.panel table.data thead th { background: transparent; border-bottom: 1px solid var(--line); color: var(--muted); }
.panel table.data tbody tr:nth-child(even) { background: rgba(255, 255, 255, .02); }
.panel table.data td { padding: 11px 14px; }
.panel .empty { margin: 0 22px 20px; }
.ranking { list-style: none; margin: 0; padding: 4px 0 10px; border-top: 1px solid var(--line); }
.ranking li { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 12px; padding: 11px 22px; }
.ranking .pos { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: var(--surface-2); color: var(--muted); font-size: .8rem; font-weight: 700; }
.ranking li:nth-child(1) .pos { background: var(--accent); color: #fff; }
.ranking li:nth-child(2) .pos, .ranking li:nth-child(3) .pos { background: rgba(var(--accent-rgb), .3); color: #fff; }
.rk-main { display: grid; gap: 6px; min-width: 0; }
.rk-main a { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rk-n { font-variant-numeric: tabular-nums; color: #fff; font-weight: 700; }
.meter { display: block; height: 5px; border-radius: 99px; background: var(--surface-2); overflow: hidden; }
.meter i { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }
.stamp { margin-top: 10px; }
.thumb { border-radius: 6px; }
.w-0 { width: 0%; }
.w-5 { width: 5%; }
.w-10 { width: 10%; }
.w-15 { width: 15%; }
.w-20 { width: 20%; }
.w-25 { width: 25%; }
.w-30 { width: 30%; }
.w-35 { width: 35%; }
.w-40 { width: 40%; }
.w-45 { width: 45%; }
.w-50 { width: 50%; }
.w-55 { width: 55%; }
.w-60 { width: 60%; }
.w-65 { width: 65%; }
.w-70 { width: 70%; }
.w-75 { width: 75%; }
.w-80 { width: 80%; }
.w-85 { width: 85%; }
.w-90 { width: 90%; }
.w-95 { width: 95%; }
.w-100 { width: 100%; }

/* Tournaments */
.t-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; padding: 4px 22px 22px; }
.t-card { display: flex; flex-direction: column; gap: 5px; padding: 14px 16px; border-radius: 12px; background: rgba(255, 255, 255, .04); border: 1px solid var(--line); color: inherit; text-decoration: none; }
.t-card:hover { background: rgba(255, 255, 255, .08); }
.t-badge { align-self: flex-start; display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; background: rgba(255, 255, 255, .1); }
.t-badge.live { background: #b3202f; color: #fff; }
.t-badge.done { background: rgba(255, 255, 255, .06); color: #b9a9ab; }
.page-head .t-badge { margin-bottom: 8px; }
.entries { list-style: none; margin: 0; padding: 4px 22px 20px; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px 16px; }
.entries li small { display: block; }
.panel > .plain, .panel > .prose, .panel > .table-wrap, .panel > p, .panel > .empty { margin-left: 22px; margin-right: 22px; }
.panel > .table-wrap { margin-bottom: 18px; }
.panel .plain { padding-left: 18px; }
.bracket-wrap { overflow-x: auto; padding: 4px 22px 22px; }
.bracket { display: flex; gap: 28px; min-width: min-content; }
.b-round { display: flex; flex-direction: column; justify-content: space-around; gap: 14px; min-width: 230px; }
.b-round h3 { margin: 0 0 4px; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: #b9a9ab; }
.b-match { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: rgba(255, 255, 255, .03); }
.b-side { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; font-size: .9rem; }
.b-side + .b-side { border-top: 1px solid var(--line); }
.b-side.win { background: rgba(179, 32, 47, .22); font-weight: 700; }
.b-score { color: #b9a9ab; font-variant-numeric: tabular-nums; white-space: nowrap; }
.best { margin: 0 0 18px; font-size: 1.05rem; }

/* ===== v3: fixed footer, page backgrounds, notices, news ===== */
.site-footer { position: fixed; left: 0; right: 0; bottom: 0; z-index: 15; margin: 0; padding: 9px 0; border-top: 1px solid rgba(255, 255, 255, .08); background: rgba(11, 6, 7, .9); backdrop-filter: blur(12px) saturate(140%); -webkit-backdrop-filter: blur(12px) saturate(140%); }
.site-footer .foot { display: flex; align-items: center; flex-wrap: nowrap; gap: 18px; }
.site-footer .foot p { margin: 0; font-size: .8rem; max-width: none; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.site-footer .foot-links { flex: none; gap: 16px; font-size: .82rem; }
.site-footer .foot-logo { flex: none; height: 10px; }
body.pub { padding-bottom: 52px; }
body.home .landing { padding-bottom: 120px; }
@media (max-width: 720px) { .site-footer .foot p, .site-footer .foot-logo { display: none; } .site-footer .foot { justify-content: center; } body.pub { padding-bottom: 46px; } }

body.inner { background: var(--bg); }
body.inner::before { content: ""; position: fixed; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(var(--bg-rgb), .72) 0%, rgba(var(--bg-rgb), .9) 45%, rgba(var(--bg-rgb), .97) 100%), var(--page-bg, var(--hero-img)) center / cover no-repeat; }
.page-head { position: relative; }
.head-action { margin-top: 14px; }
@media (min-width: 900px) { .head-action { position: absolute; right: 0; top: 18px; margin: 0; } .page-head:has(.head-action) { max-width: none; } .page-head:has(.head-action) .lead { max-width: 70ch; } }

.notice { padding: 16px 18px; border-radius: 12px; border: 1px solid var(--line); background: rgba(255, 255, 255, .05); margin: 0 0 18px; }
.notice.ok { border-color: rgba(63, 185, 80, .5); background: rgba(63, 185, 80, .12); }
.notice.err { border-color: rgba(var(--accent-rgb), .6); background: rgba(var(--accent-rgb), .14); }
.signup-form { display: grid; gap: 8px; max-width: 560px; padding: 24px; }
.signup-form label { font-weight: 600; margin-top: 8px; }
.signup-form input, .signup-form textarea { padding: 11px 12px; border-radius: 10px; border: 1px solid var(--line); background: #120b0d; color: var(--text); font: inherit; }
.signup-form button { justify-self: start; margin-top: 10px; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.reg-box { padding-bottom: 8px; }
.reg-box > p { margin: 0 22px 14px; }

/* live notices */
.live-root { position: fixed; right: 18px; bottom: 66px; z-index: 40; display: grid; gap: 10px; pointer-events: none; }
.live-toast { pointer-events: auto; position: relative; display: flex; align-items: center; gap: 12px; width: min(360px, calc(100vw - 36px)); padding: 12px 38px 12px 12px; border-radius: 14px; color: #fff; font-size: .92rem; line-height: 1.35; background: linear-gradient(135deg, rgba(40, 20, 24, .96), rgba(22, 12, 14, .96)); border: 1px solid rgba(255, 122, 69, .6); box-shadow: 0 14px 40px rgba(0, 0, 0, .55), 0 0 28px rgba(255, 122, 69, .2); transform: translateX(120%); opacity: 0; transition: transform .5s cubic-bezier(.2, .9, .25, 1.15), opacity .4s; text-decoration: none; }
.live-toast.legend { border-color: rgba(247, 120, 186, .75); box-shadow: 0 14px 40px rgba(0, 0, 0, .55), 0 0 30px rgba(247, 120, 186, .3); }
.live-toast.in { transform: none; opacity: 1; }
.live-toast:hover { text-decoration: none; }
.live-toast img { width: 44px; height: 44px; object-fit: contain; border-radius: 10px; background: rgba(255, 255, 255, .06); flex: none; }
.live-x { position: absolute; top: 6px; right: 8px; background: none; border: 0; color: #cdb9bd; font-size: 1.2rem; line-height: 1; cursor: pointer; padding: 2px 5px; }
@media (prefers-reduced-motion: reduce) { .live-toast { transition: opacity .2s; transform: none; } }

/* news: list */
.news-card { position: relative; }
.news-card .news-body h3 { font-size: 1.2rem; }
.news-card.is-big { border-color: rgba(var(--accent-rgb), .5); box-shadow: 0 20px 60px rgba(0, 0, 0, .35); }
.news-new { display: inline-block; padding: 2px 9px; border-radius: 999px; background: var(--accent); color: #fff; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.news-card:not(.is-big) .news-body p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.news-body .more { display: inline-flex; gap: 6px; align-items: center; color: var(--accent-2); }

/* news: detail */
.post-hero { position: relative; margin: 0 0 30px; border-radius: 20px; overflow: hidden; min-height: 280px; display: flex; align-items: flex-end; border: 1px solid var(--line); background: radial-gradient(100% 120% at 20% 0%, rgba(var(--accent-rgb), .45), transparent 60%), linear-gradient(135deg, var(--surface-2), var(--surface-d)); }
.post-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.post-hero::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(var(--bg-rgb), .1), rgba(var(--bg-rgb), .92)); }
.post-hero .post-head { position: relative; z-index: 2; padding: 90px 36px 30px; width: 100%; }
.post-hero .post-head h1 { margin: .15em 0 .2em; }
.post-hero .post-lead { margin: 0; }
.post-wrap { max-width: 920px; margin: 0 auto; }
.post-body { max-width: 760px; margin: 0 auto; padding: 8px 4px 20px; }
.post-body .prose > :first-child { margin-top: 0; }
.post-foot { max-width: 760px; margin: 10px auto 0; padding-top: 22px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
@media (max-width: 700px) { .post-hero .post-head { padding: 70px 20px 22px; } .post-hero { min-height: 220px; } }
.page-head { margin-bottom: 22px; }

/* v4: bigger fish cards, load more, news article polish, registration badge */
.cards-big { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.cards-big a { padding: 22px 14px 18px; gap: 4px; background: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(255, 255, 255, 0)), var(--surface); transition: transform .15s, border-color .15s; }
.cards-big a:hover { transform: translateY(-3px); }
.cards-big .fish-img { width: 160px; height: 160px; margin-bottom: 6px; filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .45)); }
.cards-big strong { font-size: 1.1rem; }
.load-more { display: block; margin: 22px auto; padding: 12px 34px; }
.t-badge.reg { background: rgba(63, 185, 80, .18); color: #7ee08c; border-color: rgba(63, 185, 80, .5); }
.post-body .prose blockquote { margin: 1.6em 0; padding: 14px 22px; border-left: 4px solid var(--accent); background: rgba(255, 255, 255, .04); border-radius: 0 12px 12px 0; font-size: 1.15rem; color: #fff; }
.post-body .prose img { max-width: 100%; border-radius: 14px; }
.post-body .prose a { color: var(--accent-2); }
.post-body { background: rgba(var(--bg-rgb), .72); border: 1px solid var(--line); border-radius: 18px; padding: 34px 40px; max-width: 800px; margin-top: -10px; position: relative; backdrop-filter: blur(6px); }
@media (max-width: 700px) { .post-body { padding: 22px 18px; } }
.post-hero .news-meta { display: flex; gap: 14px; flex-wrap: wrap; color: #f1d9dc; font-size: .9rem; }

/* v5: news in one card, tournament hero + banner */
.post-wrap { max-width: 860px; margin: 0 auto; }
.post-card { background: rgba(var(--bg-rgb), .78); border: 1px solid var(--line); border-radius: 20px; overflow: hidden; backdrop-filter: blur(6px); }
.post-banner { aspect-ratio: 21 / 9; background: var(--surface-d); }
.post-banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.post-inner { padding: 30px 40px 34px; }
.post-inner h1 { font-size: clamp(1.9rem, 4.5vw, 2.7rem); line-height: 1.12; letter-spacing: -.02em; margin: .2em 0 .4em; color: #fff; }
.post-inner .news-meta { display: flex; gap: 14px; flex-wrap: wrap; color: var(--muted); font-size: .9rem; }
.post-inner .post-lead { font-size: 1.2rem; color: #d9c9cc; margin: 0 0 22px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.post-inner .post-foot { max-width: none; }
@media (max-width: 700px) { .post-inner { padding: 22px 18px 26px; } .post-banner { aspect-ratio: 16 / 9; } }
.t-hero { position: relative; margin: 0 0 24px; padding: 34px 36px; border-radius: 20px; border: 1px solid var(--line); background: radial-gradient(90% 140% at 0% 0%, rgba(var(--accent-rgb), .35), transparent 60%), linear-gradient(135deg, rgba(42, 20, 24, .92), rgba(20, 11, 13, .92)); }
.t-hero h1 { font-size: clamp(2rem, 5vw, 3.2rem); line-height: 1.05; letter-spacing: -.02em; margin: .25em 0 .2em; color: #fff; }
.t-hero .t-badge { margin-right: 6px; }
.t-sub { color: #d9c9cc; margin: 0 0 20px; }
.t-when { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 20px; }
.t-when > div { background: rgba(0, 0, 0, .32); border: 1px solid var(--line); border-radius: 14px; padding: 12px 18px; min-width: 190px; }
.t-when span { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .07em; color: var(--muted); }
.t-when strong { font-size: 1.35rem; color: #fff; }
.t-cta { margin: 0; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.t-cta small { color: #d9c9cc; }
.t-desc { margin-bottom: 24px; }
.prize-box { border-color: rgba(255, 122, 69, .45); background: linear-gradient(180deg, rgba(255, 122, 69, .08), transparent); }
.t-date { font-size: 1.1rem; font-weight: 700; color: #fff; }
.t-go { align-self: flex-start; margin-top: 8px; pointer-events: none; }
.t-banner { position: relative; border-radius: 22px; border: 1px solid rgba(var(--accent-rgb), .45); overflow: hidden; padding: 40px 44px; background: radial-gradient(80% 160% at 100% 0%, rgba(255, 122, 69, .28), transparent 60%), radial-gradient(70% 140% at 0% 100%, rgba(var(--accent-rgb), .35), transparent 60%), linear-gradient(135deg, var(--surface-2), var(--surface-d)); }
.t-banner h2 { font-size: clamp(1.8rem, 4.5vw, 2.8rem); margin: .1em 0 .3em; color: #fff; }
.t-banner-meta { color: #e6d9db; margin: 0 0 8px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.t-banner-prize { color: var(--accent-2); margin: 0 0 18px; }
.t-banner-cta { margin: 18px 0 0; display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 700px) { .t-banner, .t-hero { padding: 24px 20px; } }
.cards-big { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.cards-big .fish-img { width: 220px; height: 220px; }

/* tournament images */
.t-hero.has-img, .t-banner.has-img { overflow: hidden; }
.t-hero-img, .t-banner-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.t-hero.has-img::before, .t-banner.has-img::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(var(--bg-rgb), .92) 0%, rgba(var(--bg-rgb), .6) 55%, rgba(var(--bg-rgb), .25) 100%); }
.t-hero.has-img > *:not(img), .t-banner.has-img > *:not(img) { position: relative; z-index: 2; }
.t-thumb { width: calc(100% + 32px); margin: -14px -16px 8px; height: 110px; object-fit: cover; border-radius: 12px 12px 0 0; display: block; max-width: none; }

/* accounts and profile */
.profile-head { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.profile-head > div { flex: 1; min-width: 200px; }
.avatar { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; border: 2px solid var(--line); background: var(--surface-2); display: inline-flex; align-items: center; justify-content: center; font-size: 2.4rem; font-weight: 700; color: var(--accent-2); }
.stats-in { padding: 4px 22px 8px; }
.plain-note { margin: 0 22px 16px; }
.panel.signup-form h2 { margin: 0 0 6px; }
.stats-in .stat strong { font-size: 1.3rem; overflow-wrap: anywhere; }

/* profile tabs, club, premium */
.tabs { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 20px; border-bottom: 1px solid var(--line); }
.tabs a { padding: 10px 16px; border-radius: 10px 10px 0 0; color: var(--muted); text-decoration: none; border: 1px solid transparent; border-bottom: 0; }
.tabs a:hover { color: var(--text); }
.tabs a[aria-current=page] { color: #fff; background: rgba(255, 255, 255, .06); border-color: var(--line); }
.tabs .tab-right { margin-left: auto; color: var(--accent-2); }
.club-head { display: flex; align-items: center; gap: 18px; padding: 18px 22px; }
.club-head h2 { margin: 0; }
.club-logo { width: 84px; height: 84px; border-radius: 16px; object-fit: cover; border: 1px solid var(--line); background: var(--surface-2); display: inline-flex; align-items: center; justify-content: center; font-size: 2.2rem; font-weight: 700; color: var(--accent-2); }
.notice.pinned { border-color: var(--accent-2); }
.pinned { border-left: 3px solid var(--accent-2); padding-left: 12px; }
.club-chat .chat-list { list-style: none; padding: 0; margin: 0 0 12px; max-height: 380px; overflow: auto; display: grid; gap: 8px; }
.chat-list li { background: rgba(255, 255, 255, .04); border: 1px solid var(--line); border-radius: 12px; padding: 8px 12px; }
.chat-list li.mine { background: rgba(var(--accent-rgb), .12); border-color: rgba(var(--accent-rgb), .35); }
.chat-list .who { font-weight: 700; color: #fff; }
.chat-list time { color: var(--muted); font-size: .8rem; margin-left: 6px; }
.chat-list p { margin: 2px 0 0; overflow-wrap: anywhere; }
.chat-form { display: flex; gap: 8px; }
.chat-form input { flex: 1; }
.member-list li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 6px 0; }
.member-list .inline-form { margin-left: auto; }
.chip-sm { display: inline-block; background: rgba(255, 255, 255, .06); border-radius: 999px; padding: 2px 10px; font-size: .82rem; margin: 2px 4px 2px 0; }
.premium-box .code { font-size: 1.6rem; font-weight: 700; letter-spacing: .08em; color: var(--accent-2); background: rgba(0, 0, 0, .3); border: 1px dashed var(--accent-2); border-radius: 12px; padding: 12px 18px; display: inline-block; user-select: all; }
.player-head { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 8px; }
.player-head h1 { margin: 0 0 4px; }
.claim-form { margin-top: 14px; max-width: 520px; }

/* v9 premium: statistics, charts, goals, club package */
.profile-banner { display: block; width: 100%; height: auto; aspect-ratio: 49 / 10; object-fit: cover; object-position: 50% 50%; border-radius: 16px; border: 1px solid var(--line); margin: 0 0 16px; }
.chart { display: block; width: 100%; height: auto; }
.ch-axis { stroke: var(--line); stroke-width: 1; }
.ch-bar { fill: var(--accent); }
.ch-bar.max { fill: var(--accent-2); }
.ch-t { fill: var(--muted); font-size: 11px; }
.ch-t.lbl { fill: var(--text); font-size: 12px; }
.ch-val { fill: var(--text); font-size: 11px; font-weight: 600; }
.ch-h { fill: rgba(255, 255, 255, .05); }
.ch-h.h1 { fill: rgba(var(--accent-rgb), .25); }
.ch-h.h2 { fill: rgba(var(--accent-rgb), .45); }
.ch-h.h3 { fill: rgba(var(--accent-rgb), .65); }
.ch-h.h4 { fill: rgba(255, 122, 69, .8); }
.ch-h.h5 { fill: var(--accent-2); }
.chart-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 480px), 1fr)); gap: 16px; align-items: start; }
.chart-grid > * { min-width: 0; }
.range { display: flex; gap: 6px; flex-wrap: wrap; }
.range a { padding: 4px 12px; border-radius: 999px; border: 1px solid var(--line); color: var(--muted); text-decoration: none; font-size: .9rem; }
.range a[aria-current=page] { color: #fff; background: rgba(var(--accent-rgb), .25); border-color: var(--accent); }
.progress { display: block; width: 100%; height: 10px; margin-top: 6px; }
.pg-bg { fill: rgba(255, 255, 255, .08); }
.pg-fill { fill: var(--accent); }
.pg-fill.done { fill: #3fb67a; }
.goal-list { list-style: none; padding: 0; display: grid; gap: 14px; }
.goal-top { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; }
.goal-top .inline-form { margin-left: auto; }
.goal-form { display: flex; gap: 8px 12px; flex-wrap: wrap; align-items: end; }
.goal-form label { display: block; font-size: .85rem; color: var(--muted); }
.showcase-list { list-style: none; margin: 0; padding: 0 22px 18px; display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.showcase-list li { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 14px; border-radius: 14px; border: 1px solid var(--line); background: rgba(255, 255, 255, .04); text-align: center; }
.showcase-list li.rank1 { border-color: var(--accent-2); }
.thumb-lg { width: 64px; height: 64px; object-fit: contain; }
.club-event h3 { margin: 0 0 4px; font-size: 1.05rem; }
.premium-features { padding-left: 20px; }
.premium-features li { margin: 6px 0; }

/* v9b: compact club tab, folds, notices inside panels */
.panel > .notice { margin: 0 22px 16px; }
.club-secs { margin: 0 0 16px; }
.fold { padding: 0; background: transparent; border: 0; box-shadow: none; margin: 0 0 12px; }
.fold > summary { list-style: none; cursor: pointer; display: inline-block; }
.fold > summary::-webkit-details-marker { display: none; }
.fold[open] > summary { margin-bottom: 12px; }
.fold > form, .fold > .filter, .fold > ul { background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; max-width: 560px; }
.fold-list { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: flex-start; }
.fold-list .fold[open] { flex-basis: 100%; }
.fold-list > .panel:last-child { flex-basis: 100%; }
.member-list { max-height: 460px; overflow: auto; }
.reco { border-left: 4px solid var(--accent-2); padding: 14px 18px; background: rgba(255, 122, 69, .08); border-radius: 0 12px 12px 0; margin: 0 22px 18px; }
.reco h3 { margin: 0 0 8px; }
.reco li { margin: 4px 0; }
.fish-find { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 22px 14px; }
.fish-hits { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 22px 18px; padding: 0; list-style: none; }
.fish-hits a { display: inline-block; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; }
.pager-line { display: flex; gap: 10px; align-items: center; margin: 12px 22px; }

/* v9c: modern charts, roomier forms */
.chart-sq { max-width: 380px; margin: 0 auto; }
.ch-ring { fill: none; stroke: var(--line); stroke-width: 1; }
.ch-wedge { fill: rgba(var(--accent-rgb), .55); }
.ch-wedge:hover { fill: var(--accent); }
.ch-wedge.sel { fill: var(--accent-2); }
.ch-center { fill: var(--text); font-size: 20px; font-weight: 700; }
.ch-arc, .ch-sl { stroke: var(--accent); }
.ch-s0 { stroke: var(--accent); fill: var(--accent); }
.ch-s1 { stroke: #ff7a45; fill: #ff7a45; }
.ch-s2 { stroke: #f2b84b; fill: #f2b84b; }
.ch-s3 { stroke: #3fb67a; fill: #3fb67a; }
.ch-s4 { stroke: #4aa3d8; fill: #4aa3d8; }
.ch-s5 { stroke: #8a7fa8; fill: #8a7fa8; }
.ch-arc.ch-s0, .ch-arc.ch-s1, .ch-arc.ch-s2, .ch-arc.ch-s3, .ch-arc.ch-s4, .ch-arc.ch-s5, .ch-sl { fill: none; }
.ch-sw { stroke: none; }
.ch-line { stroke: var(--accent-2); stroke-width: 2.4; stroke-linejoin: round; }
.ch-area { fill: rgba(var(--accent-rgb), .22); }
.ch-dot { fill: var(--accent-2); }
.ch-grid { stroke: var(--line); stroke-width: 1; stroke-dasharray: 3 4; }
.ch-pt { fill: rgba(255, 255, 255, .5); }
.ch-pt.s1 { fill: #3fb67a; }
.ch-pt.s2 { fill: #4aa3d8; }
.ch-pt.s3 { fill: #ff7a45; }
.ch-pt.s4 { fill: var(--accent); }
.fold > form.signup-form { padding: 22px 24px; gap: 10px; max-width: 600px; }
.fold > form.signup-form .dtp { display: block; }
.fold > form.signup-form .dtp-btn { width: 100%; box-sizing: border-box; }
.fold > form.signup-form .pick { gap: 8px; }
.fold > form.signup-form label { margin-top: 12px; }
.fold > form.signup-form small { margin-top: -2px; }
.fold > form.signup-form .btn { margin-top: 16px; }
.panel > .plain-note:first-child, .panel > p.plain-note:only-child { margin-top: 18px; margin-bottom: 18px; }
.club-secs { margin: 4px 0 20px; }
.club-secs + .fold, .club-secs + .panel, .club-secs + .fold-list { margin-top: 4px; }
.fold-list { margin-bottom: 20px; }
.fold > summary.btn { margin-bottom: 4px; }
.chart-grid, .panel { margin-bottom: 22px; }
.chart-matrix { max-width: 100%; }

.explain p { margin: 0 0 10px; }
.explain-box { margin-top: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.03); }
.explain-box p { margin: 8px 0 0; }

/* centered account/sign-up pages */
.center-col { max-width: 560px; margin: 0 auto; }
.center-col .page-head { text-align: center; max-width: none; }
.center-col .signup-form { max-width: none; margin-left: auto; margin-right: auto; }

/* hero effect */
.landing-fx { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.landing-inner, .scroll-hint { position: relative; z-index: 1; }
.scroll-hint { position: absolute; }

/* mobile polish (public pages) */
@media (max-width: 640px) {
  .inner-main { padding-top: 112px; }
  .wrap { padding-left: 14px; padding-right: 14px; }
  .page-head h1 { font-size: 1.7rem; }
  .page-head .lead { font-size: .98rem; }
  .prose, .prose p, .prose li { font-size: 1rem; line-height: 1.65; }
  .prose h2 { font-size: 1.25rem; margin: 1.3em 0 .4em; } .prose h3 { font-size: 1.08rem; }
  .band { padding: 40px 0; }
  .kpis { grid-template-columns: 1fr 1fr; gap: 10px; margin: 18px 0; }
  .kpi { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; }
  .kpi-ico { width: 38px; height: 38px; border-radius: 11px; } .kpi-ico .ico { width: 20px; height: 20px; }
  .kpi strong { font-size: 1.5rem; }
  .landing { padding: 100px 16px 70px; }
  .landing-lead { font-size: 1rem; }
  .landing-cta { width: 100%; } .landing-cta .btn { flex: 1 1 100%; justify-content: center; text-align: center; }
  body.pub table.data tr { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 10px; padding: 8px 12px; }
  body.pub table.data td { display: block; padding: 2px 0; text-align: left; width: auto; min-width: 0; overflow-wrap: anywhere; }
  body.pub table.data td::before { display: block; margin-bottom: 1px; font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; }
  body.pub table.data td:first-child:last-child { grid-column: 1 / -1; }
  .panel > .plain, .panel > .prose, .panel > .table-wrap, .panel > p, .panel > .empty { margin-left: 14px; margin-right: 14px; }
  .btn, button, summary.fold { min-height: 42px; }
  .filter select, .filter input { flex: 1 1 140px; min-width: 0; }
  input, select, textarea { font-size: 16px; }
  .tabs, .ptabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .tabs a, .ptabs a { white-space: nowrap; padding: 10px 12px; font-size: .94rem; }
  .panel form input[type=search], .panel form input[type=text] { max-width: 100%; }
  body.pub table.data td:empty { display: none; }
}

/* catch of the week */
.champ-band { padding: 64px 0 72px; margin-top: 40px; border-top: 1px solid rgba(232, 184, 74, .18); background: linear-gradient(180deg, rgba(232, 184, 74, .04), transparent 70%); }
.champ-band h2 { margin-bottom: 22px; }
.champ { position: relative; display: flex; align-items: center; gap: 40px; width: 100%; padding: 30px 44px; border-radius: 20px; border: 1px solid rgba(232, 184, 74, .5); background: radial-gradient(90% 160% at 12% 50%, rgba(232, 184, 74, .18), transparent 62%), linear-gradient(180deg, var(--surface-b), var(--surface-a)); box-shadow: 0 12px 40px rgba(0, 0, 0, .4), 0 0 34px rgba(232, 184, 74, .1); overflow: hidden; isolation: isolate; }
.champ::after { content: ""; position: absolute; top: 0; bottom: 0; left: -40%; width: 30%; background: linear-gradient(100deg, transparent, rgba(255, 224, 150, .13), transparent); transform: skewX(-18deg); pointer-events: none; z-index: -1; }
.champ-crown { position: absolute; top: 16px; right: 20px; width: 38px; height: 38px; fill: #e8b84a; }
.champ-fish { flex: none; width: 230px; height: 150px; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .55)); }
.champ-text { display: grid; gap: 4px; min-width: 0; }
.champ-eyebrow { color: #e8b84a; text-transform: uppercase; letter-spacing: .2em; font-size: .78rem; font-weight: 800; }
.champ-weight { font-size: clamp(2.6rem, 6vw, 4rem); line-height: 1.05; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; text-shadow: 0 0 28px rgba(232, 184, 74, .3); }
.champ-fishname { color: #e6d6d9; font-weight: 700; font-size: 1.2rem; }
.champ-by { color: var(--muted); font-size: 1rem; margin-top: 6px; }
.champ-by a { color: #ffd77a; font-weight: 700; }
@media (max-width: 700px) { .champ { flex-direction: column; text-align: center; gap: 14px; padding: 24px 18px; } .champ-fish { width: 190px; height: 120px; } .champ-crown { top: 12px; right: 14px; width: 30px; height: 30px; } }
@media (prefers-reduced-motion: no-preference) {
  .champ { animation: champ-in .8s ease-out both; }
  .champ-fish { animation: champ-float 4.5s ease-in-out infinite; }
  .champ-crown { animation: champ-crown 2.6s ease-in-out infinite; transform-origin: 50% 100%; }
  .champ::after { animation: champ-shine 5.5s ease-in-out 1.2s infinite; }
  .champ-weight { animation: champ-glow 3.2s ease-in-out infinite; }
}
@keyframes champ-in { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes champ-float { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-9px) rotate(2deg); } }
@keyframes champ-crown { 0%, 100% { transform: rotate(-6deg) scale(1); } 50% { transform: rotate(6deg) scale(1.12); } }
@keyframes champ-shine { 0% { left: -40%; } 45%, 100% { left: 130%; } }
@keyframes champ-glow { 0%, 100% { text-shadow: 0 0 18px rgba(232, 184, 74, .2); } 50% { text-shadow: 0 0 36px rgba(232, 184, 74, .55); } }

/* player comparison */
.cmp { display: grid; gap: 2px; padding: 0 18px 14px; }
.cmp-h, .cmp-r { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 10px; align-items: baseline; padding: 9px 0; border-bottom: 1px solid var(--line); min-width: 0; overflow-wrap: anywhere; }
.cmp-r span { color: var(--muted); font-size: .85rem; }
.cmp-r b { font-weight: 700; font-variant-numeric: tabular-nums; }
.cmp-r b.win { color: var(--accent-2); }
@media (max-width: 640px) { .cmp { padding: 0 12px 12px; } .cmp-h, .cmp-r { grid-template-columns: .9fr 1fr 1fr; gap: 6px; } }

/* fish of the week event */
.fe-band { border-top: 1px solid var(--line); }
.fe-card { display: flex; align-items: center; gap: 36px; padding: 28px 36px; border-radius: 20px; border: 1px solid rgba(var(--accent-rgb), .45); background: radial-gradient(90% 160% at 10% 50%, rgba(var(--accent-rgb), .16), transparent 62%), linear-gradient(180deg, var(--surface-b), var(--surface-a)); box-shadow: 0 12px 40px rgba(0, 0, 0, .4); }
.fe-fish { flex: none; width: 230px; height: 150px; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(0, 0, 0, .55)); }
.fe-text { display: grid; gap: 6px; min-width: 0; }
.fe-state { justify-self: start; padding: 4px 12px; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; background: rgba(255, 255, 255, .08); color: #e7d6d9; }
.fe-state.live { background: rgba(var(--accent-rgb), .25); color: #ff8a8e; }
.fe-goal { font-size: clamp(1.4rem, 3vw, 2.1rem); color: #fff; line-height: 1.2; }
.fe-range { color: #d9c9cc; font-weight: 600; }
.fe-how { color: var(--muted); font-size: .92rem; }
.fe-prizes { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 22px; }
.fe-prizes li { display: flex; align-items: center; gap: 10px; }
.fe-prize-img { width: 40px; height: 40px; object-fit: contain; }
.fe-sub { margin: -10px 0 22px; color: var(--muted); }
.podium { display: flex; align-items: flex-end; justify-content: center; gap: 14px; max-width: 760px; margin: 0 auto; padding-top: 30px; }
.podium.is-one { max-width: 420px; }
.pod { position: relative; flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: stretch; }
.pod-crown { align-self: center; width: 34px; height: 34px; fill: #e8b84a; margin-bottom: 6px; }
.pod-card { display: grid; gap: 4px; justify-items: center; text-align: center; padding: 18px 12px; border-radius: 16px 16px 0 0; border: 1px solid var(--line); background: linear-gradient(180deg, #1f1517, var(--surface-a)); min-width: 0; }
.podium.is-one .pod-card { border-radius: 16px; padding: 26px 18px; }
.pod-place { font-size: .7rem; text-transform: uppercase; letter-spacing: .16em; font-weight: 800; color: var(--muted); }
.pod-name { color: #fff; font-size: 1.1rem; overflow-wrap: anywhere; }
.pod-weight { font-size: 1.5rem; font-weight: 900; font-variant-numeric: tabular-nums; color: #fff; }
.pod-prize { display: grid; justify-items: center; gap: 2px; margin-top: 6px; color: var(--muted); }
.pod-prize small { overflow-wrap: anywhere; }
.pod-step { display: grid; place-items: center; font-size: 1.6rem; font-weight: 900; color: rgba(255, 255, 255, .85); border: 1px solid var(--line); border-top: 0; background: linear-gradient(180deg, #2a1a1d, #1a1214); }
.pod-1 .pod-card { border-color: rgba(232, 184, 74, .6); background: radial-gradient(100% 120% at 50% 0%, rgba(232, 184, 74, .2), transparent 70%), linear-gradient(180deg, var(--surface-b), var(--surface-a)); box-shadow: 0 0 28px rgba(232, 184, 74, .12); }
.pod-1 .pod-place { color: #e8b84a; }
.pod-1 .pod-step { height: 110px; border-color: rgba(232, 184, 74, .5); color: #e8b84a; }
.pod-2 .pod-card { border-color: rgba(200, 208, 220, .45); } .pod-2 .pod-place { color: #c8d0dc; } .pod-2 .pod-step { height: 72px; color: #c8d0dc; }
.pod-3 .pod-card { border-color: rgba(205, 127, 70, .5); } .pod-3 .pod-place { color: #cd7f46; } .pod-3 .pod-step { height: 44px; color: #cd7f46; }
@media (max-width: 700px) { .fe-card { flex-direction: column; text-align: center; padding: 22px 16px; gap: 12px; } .fe-state { justify-self: center; } .fe-fish { width: 190px; height: 120px; } .fe-prizes { justify-content: center; } .podium { gap: 6px; } .pod-card { padding: 14px 6px; } .pod-name { font-size: .92rem; } .pod-weight { font-size: 1.1rem; } }
@media (prefers-reduced-motion: no-preference) { .fe-fish { animation: champ-float 4.5s ease-in-out infinite; } .pod { animation: champ-in .7s ease-out both; } .pod-1 { animation-delay: .25s; } .pod-3 { animation-delay: .1s; } .pod-crown { animation: champ-crown 2.6s ease-in-out infinite; transform-origin: 50% 100%; } }
.post-inline-img { text-align: center; } .post-inline-img img { max-width: min(320px, 100%); height: auto; }

/* support button in the top bar */
.support-btn { display: inline-flex; align-items: center; gap: 7px; padding: 7px 14px; border-radius: 10px; font-size: .82rem; font-weight: 800; letter-spacing: .02em; color: #fff; background: linear-gradient(135deg, var(--accent), #ff6a4d); border: 1px solid rgba(255, 255, 255, .25); box-shadow: 0 6px 20px rgba(var(--accent-rgb), .4); white-space: nowrap; }
.support-btn:hover { text-decoration: none; filter: brightness(1.1); }
.support-btn .ico { width: 1.05em; height: 1.05em; }
.support-s { display: none; }
@media (prefers-reduced-motion: no-preference) { .support-btn .ico { animation: support-beat 2.4s ease-in-out infinite; } }
@keyframes support-beat { 0%, 60%, 100% { transform: scale(1); } 70% { transform: scale(1.22); } 80% { transform: scale(1); } 90% { transform: scale(1.15); } }
@media (max-width: 520px) { .support-t { display: none; } .support-s { display: inline; } .support-btn { padding: 7px 10px; } }

/* already signed up */
.t-already { display: inline-block; padding: 10px 18px; border-radius: 10px; font-weight: 700; color: #7ee08a; background: rgba(63, 185, 80, .12); border: 1px solid rgba(63, 185, 80, .4); }
.t-already.full { color: #ff9a9d; background: rgba(var(--accent-rgb), .12); border-color: rgba(var(--accent-rgb), .4); }
.t-already-btn { color: #7ee08a; border-color: rgba(63, 185, 80, .4); cursor: default; }

/* support page and labels */
.sup-opts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 18px 22px; }
.sup-card { display: grid; gap: 8px; align-content: start; justify-items: center; text-align: center; padding: 20px 14px; border-radius: 16px; border: 1px solid var(--line); background: linear-gradient(180deg, var(--surface-b), var(--surface-a)); }
.sup-card.honor { border-color: rgba(232, 184, 74, .6); background: radial-gradient(100% 120% at 50% 0%, rgba(232, 184, 74, .18), transparent 70%), linear-gradient(180deg, var(--surface-b), var(--surface-a)); box-shadow: 0 0 26px rgba(232, 184, 74, .12); }
.sup-label { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.sup-label .ico { width: 1.1em; height: 1.1em; }
.sup-l1 { color: #ff8a8e; } .sup-l2 { color: #e8b84a; }
.sup-amount { font-size: 2rem; color: #fff; line-height: 1.1; }
.sup-card small { color: var(--muted); overflow-wrap: anywhere; }
.sup-card form, .sup-card .btn { max-width: 100%; }
.sup-input { width: 100%; max-width: 8em; box-sizing: border-box; min-width: 0; text-align: center; font-size: 1.4rem; font-weight: 800; }
.support-page .panel { padding-bottom: 8px; }
.sup-badge { display: inline-flex; align-items: center; padding: 3px 12px; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.sup-badge.plain { color: #ffb0b3; background: rgba(var(--accent-rgb), .2); border: 1px solid rgba(var(--accent-rgb), .55); }
.sup-badge.honor { color: #2b1d05; background: linear-gradient(135deg, #f3cd6a, #e8b84a 50%, #ffe39a); border: 1px solid #ffe39a; box-shadow: 0 0 16px rgba(232, 184, 74, .5); }
@media (prefers-reduced-motion: no-preference) { .sup-badge.honor { background-size: 200% 100%; animation: sup-shine 4s linear infinite; } }
@keyframes sup-shine { 0% { background-position: 0% 0; } 100% { background-position: 200% 0; } }
@media (max-width: 700px) { .sup-opts { grid-template-columns: 1fr; margin: 14px; } }

@media (min-width: 641px) and (max-width: 1160px) { .inner-main { padding-top: 140px; } }

/* v13b */
.entries { grid-template-columns: none; grid-auto-flow: column; grid-template-rows: repeat(15, auto); grid-auto-columns: minmax(0, 1fr); gap: 0 22px; }
.entries li { padding: 7px 2px; border-bottom: 1px solid var(--line); min-width: 0; overflow-wrap: anywhere; }
.entries-pager { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 22px 18px; }
@media (max-width: 900px) { .entries { grid-auto-flow: row; grid-template-rows: none; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .entries { grid-template-columns: 1fr; } }
.bank-box { margin: 8px 22px 18px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255, 255, 255, .03); }
.bank-box h3 { margin: 0 0 6px; }
.bank-data { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 10px 0 0; }
.bank-data dt { color: var(--muted); } .bank-data dd { margin: 0; overflow-wrap: anywhere; user-select: all; }
.profile-head.is-honor, .player-head.is-honor { position: relative; padding: 18px 22px; border-radius: 18px; border: 1px solid rgba(232, 184, 74, .55); background: radial-gradient(90% 140% at 0% 0%, rgba(232, 184, 74, .2), transparent 65%), linear-gradient(180deg, var(--surface-b), var(--surface-a)); box-shadow: 0 0 34px rgba(232, 184, 74, .16), inset 0 0 0 1px rgba(255, 227, 154, .08); }
.is-honor .avatar { border: 2px solid #e8b84a; box-shadow: 0 0 18px rgba(232, 184, 74, .55); }
.is-honor h1 { background: linear-gradient(90deg, #fff, #ffe39a 60%, #e8b84a); -webkit-background-clip: text; background-clip: text; color: transparent; }

@media (min-width: 1461px) { .pill-nav { position: absolute; left: 50%; transform: translateX(-50%); margin: 0; } .topright { margin-left: auto; } }
.landing-cta .support-cta { background: linear-gradient(135deg, var(--accent), #ff6a4d); border: 1px solid rgba(255, 255, 255, .25); box-shadow: 0 8px 26px rgba(var(--accent-rgb), .45); color: #fff; }
.landing-cta .support-cta .ico { width: 1.05em; height: 1.05em; margin-right: 6px; vertical-align: -2px; }
@media (prefers-reduced-motion: no-preference) { .landing-cta .support-cta .ico { animation: support-beat 2.4s ease-in-out infinite; } }
.foot-links a.foot-support { color: #ff8a8e; }

/* Ehrenhafter Supporter: gold accents + animated outer glow */
@property --ang { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
body:has(.is-honor) main { --accent: #e8b84a; --accent-2: #ffe39a; --accent-ink: #2b1d05; --line: #4a3a1f; }
body:has(.is-honor) main .eyebrow, body:has(.is-honor) main a:not(.btn) { color: #f0c660; }
body:has(.is-honor) main .btn.primary { background: linear-gradient(135deg, #e8b84a, #ffe39a); color: #2b1d05; border-color: #ffe39a; box-shadow: 0 6px 20px rgba(232, 184, 74, .35); }
body:has(.is-honor) main .tabs a[aria-current] { border-color: #e8b84a; }
.profile-head.is-honor, .player-head.is-honor { isolation: auto; z-index: auto; border: 0; border-radius: 20px; background: radial-gradient(90% 140% at 0% 0%, rgba(232, 184, 74, .2), transparent 65%), linear-gradient(180deg, var(--surface-b), var(--surface-a)); box-shadow: none; }
.is-honor::before, .is-honor::after { content: ''; position: absolute; inset: -2px; border-radius: 22px; background: conic-gradient(from var(--ang), #b8862a, #ffe39a, #e8b84a, #fff6d6, #b8862a); z-index: -1; pointer-events: none; }
.is-honor::before { padding: 0; filter: blur(16px); opacity: .55; inset: -6px; }
.is-honor::after { inset: -2px; }
@media (prefers-reduced-motion: no-preference) { .is-honor::before, .is-honor::after { animation: honor-spin 6s linear infinite; } }
@keyframes honor-spin { to { --ang: 360deg; } }
.is-honor h1 { background: linear-gradient(90deg, #fff, #ffe39a 60%, #e8b84a); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* supporter names in lists */
a.nm .nm-ico { width: 1em; height: 1em; margin-left: 5px; vertical-align: -2px; }
a.nm-honor { color: #f0c660; font-weight: 700; text-shadow: 0 0 12px rgba(232, 184, 74, .35); }
a.nm-honor:hover { color: #ffe39a; }
a.nm-sup { color: #ffb0b3; }
a.nm-sup .nm-ico { color: #ff7a80; }

/* Admin/owner label: glowing red-orange profile */
body:has(.is-owner) main { --accent: var(--own); --accent-2: var(--own-3); --accent-ink: #fff; --line: var(--own-line); }
body:has(.is-owner) main .eyebrow, body:has(.is-owner) main a:not(.btn) { color: var(--own-2); }
body:has(.is-owner) main .btn.primary { background: linear-gradient(135deg, var(--own-0), var(--own-2)); color: #fff; border-color: var(--own-3); box-shadow: 0 6px 20px rgba(var(--own-rgb), .4); }
body:has(.is-owner) main .tabs a[aria-current] { border-color: var(--own); }
.profile-head.is-owner, .player-head.is-owner { position: relative; isolation: auto; z-index: auto; padding: 18px 22px; border: 0; border-radius: 20px; background: radial-gradient(90% 140% at 0% 0%, rgba(var(--own-rgb), .25), transparent 65%), linear-gradient(180deg, var(--own-bg1), var(--own-bg2)); box-shadow: none; }
.is-owner::before, .is-owner::after { content: ''; position: absolute; inset: -2px; border-radius: 22px; background: conic-gradient(from var(--ang), var(--own-0), var(--own-2), var(--own-3), #ff5a36, var(--own-0)); z-index: -1; pointer-events: none; }
.is-owner::before { filter: blur(18px); opacity: .65; inset: -6px; }
@media (prefers-reduced-motion: no-preference) { .is-owner::before, .is-owner::after { animation: honor-spin 5s linear infinite; } }
.is-owner .avatar { border: 2px solid var(--own); box-shadow: 0 0 20px rgba(var(--own-rgb), .6); }
.is-owner h1 { background: linear-gradient(90deg, #fff, var(--own-3) 55%, var(--own)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.sup-badge.owner { color: #fff; background: linear-gradient(135deg, var(--own-0), var(--own-2) 55%, var(--own-3)); border: 1px solid var(--own-3); box-shadow: 0 0 18px rgba(var(--own-rgb), .6); }
@media (prefers-reduced-motion: no-preference) { .sup-badge.owner { background-size: 200% 100%; animation: sup-shine 4s linear infinite; } }
a.nm-owner { color: var(--own-2); font-weight: 700; text-shadow: 0 0 12px rgba(var(--own-rgb), .45); }

/* profile likes */
.like-box { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 10px; }
.like-count { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-weight: 600; }
.like-ico { width: 1.1em; height: 1.1em; }
.like-box .btn .like-ico { margin-right: 6px; vertical-align: -2px; }

/* likes: small, right aligned */
.player-head .like-box { margin: 0 0 0 auto; align-self: flex-start; flex-direction: column; align-items: flex-end; gap: 4px; font-size: .78rem; }
.like-count { font-weight: 500; font-size: .78rem; }
.like-count .like-ico { width: .95em; height: .95em; }
.like-btn { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font: inherit; font-size: .75rem; font-weight: 500; color: var(--muted); background: transparent; border: 1px solid var(--line); cursor: pointer; }
.like-btn:hover { color: #fff; text-decoration: none; border-color: var(--accent); }
.like-btn .like-ico { width: .95em; height: .95em; margin: 0; }
.like-box form { margin: 0; }
@media (max-width: 520px) { .player-head .like-box { margin-left: 0; align-items: flex-start; } }

/* likes: pinned to the far right of the head, above the last stat card */
.player-head { position: relative; padding-right: 0; }
.player-head .like-box { position: absolute; right: 0; top: 0; margin: 0; align-self: auto; }
@media (max-width: 700px) { .player-head { padding-top: 0; } .player-head .like-box { position: static; margin-top: 6px; width: 100%; align-items: flex-start; } }
.player-head.is-honor .like-box, .player-head.is-owner .like-box { right: 22px; top: 14px; }

/* map cards */
.map-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; padding: 4px 22px 18px; }
.map-card { position: relative; display: block; aspect-ratio: 16 / 10; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); background: var(--surface-a); color: #fff; transition: transform .15s, border-color .15s, box-shadow .15s; }
a.map-card:hover { transform: translateY(-3px); border-color: var(--accent); box-shadow: 0 12px 30px rgba(0, 0, 0, .45); text-decoration: none; }
.map-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.map-ph { background: radial-gradient(120% 120% at 20% 0%, rgba(var(--accent-rgb), .35), transparent 60%), linear-gradient(160deg, #2a1618, #120c0d); }
.map-card::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .25) 0%, transparent 35%, rgba(0, 0, 0, .8) 100%); pointer-events: none; }
.map-flag { position: absolute; top: 10px; left: 10px; z-index: 2; display: inline-flex; padding: 3px; border-radius: 8px; background: rgba(0, 0, 0, .55); backdrop-filter: blur(4px); }
.map-flag .flag { width: 28px; height: auto; display: block; border-radius: 3px; }
.map-name { position: absolute; left: 14px; right: 14px; bottom: 12px; z-index: 2; display: grid; gap: 2px; text-shadow: 0 2px 8px rgba(0, 0, 0, .8); }
.map-name strong { font-size: 1.05rem; }
.map-name small { color: #e6d6d8; font-size: .78rem; }
.map-hero-wrap { margin-bottom: 16px; }
.map-hero { aspect-ratio: 21 / 6; min-height: 150px; border-radius: 18px; }
.map-hero .map-name strong { font-size: 1.6rem; }
.forecast .fc-rate { font-size: 1.15rem; font-weight: 700; margin: 8px 0; }
.fc-great { color: #5fd87a; } .fc-good { color: #9bd35f; } .fc-avg { color: #e8b84a; } .fc-low { color: #ff8a5c; }
select#map-fish { min-width: 240px; }

.map-badge { position: absolute; top: 10px; right: 10px; z-index: 2; padding: 3px 10px; border-radius: 999px; font-size: .7rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fff; backdrop-filter: blur(4px); }
.map-badge-dlc { background: rgba(70, 120, 255, .85); border: 1px solid rgba(160, 190, 255, .8); }
.map-badge-event { background: rgba(255, 106, 61, .88); border: 1px solid rgba(255, 190, 150, .8); }

/* map cards v2 */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.map-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.mc { display: flex; flex-direction: column; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); background: linear-gradient(180deg, var(--surface-b), #140d0f); color: #fff; transition: transform .15s, border-color .15s, box-shadow .15s; }
.mc:hover { transform: translateY(-3px); border-color: var(--accent); box-shadow: 0 12px 30px rgba(0, 0, 0, .45); text-decoration: none; }
.mc-media { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--surface-a); }
.mc-media::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0, 0, 0, .3), transparent 40%); pointer-events: none; }
.mc-body { display: grid; gap: 2px; padding: 12px 14px 14px; border-top: 2px solid var(--accent); }
.mc-body strong { font-size: 1.02rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-body small { color: #b9a9ab; font-size: .78rem; }
.mc-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-top: 10px; }
.mc-st { display: grid; grid-template-columns: 18px auto; grid-template-rows: auto auto; column-gap: 8px; align-items: center; padding: 6px 9px; border-radius: 10px; background: rgba(255, 255, 255, .05); }
.mc-st .ico { grid-row: 1 / 3; width: 18px; height: 18px; color: var(--accent); }
.mc-st b { font-size: .95rem; line-height: 1.1; }
.mc-st em { font-style: normal; color: #b9a9ab; font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; }
.map-lines { position: absolute; right: 10px; bottom: 10px; z-index: 2; display: inline-flex; gap: 3px; padding: 3px 6px; border-radius: 999px; background: rgba(0, 0, 0, .6); backdrop-filter: blur(4px); }
.map-card .map-lines { top: 10px; right: auto; left: 54px; bottom: auto; }
.mc-media .map-lines { right: 10px; bottom: 10px; }
.spool { display: inline-flex; width: 18px; height: 18px; }
.spool svg { width: 18px; height: 18px; }
.spool .sp-fl { fill: #8d7b7e; }
.spool .sp-body { fill: var(--sp, #fff); stroke: rgba(255, 255, 255, .55); stroke-width: .8; }
.spool .sp-ln { stroke: rgba(0, 0, 0, .28); stroke-width: .8; fill: none; }
.sp-white { --sp: #f4f4f4; } .sp-yellow { --sp: #f3dc2a; } .sp-green { --sp: #3fbf4f; } .sp-brown { --sp: #8a5a2b; } .sp-blue { --sp: #5aa2ff; }
.sp-navy { --sp: #1f3f9a; } .sp-black { --sp: #151515; } .sp-red { --sp: var(--accent); } .sp-orange { --sp: #ff8a2a; } .sp-gray { --sp: #9a9a9a; }
.map-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.map-pill { display: inline-flex; align-items: center; gap: 5px; padding: 2px 10px; border-radius: 999px; background: rgba(0, 0, 0, .55); font-size: .78rem; }
.map-pill .ico { width: 14px; height: 14px; color: #ffb43a; }
.thumb.thumb-fish { width: 72px; height: 40px; border-radius: 0; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .5)); }
table.data td .ent { gap: 10px; }
@media (max-width: 700px) { .thumb.thumb-fish { width: 56px; height: 32px; } }

/* tournament states */
.t-badge .t-lock { width: 12px; height: 12px; margin-right: 5px; vertical-align: -1px; }
.t-badge.st-running { background: #b3202f; color: #fff; }
.t-badge.st-ending { background: #ff8a2a; color: #1a0d05; animation: t-pulse 1.4s ease-in-out infinite; }
.t-badge.st-evaluating { background: #e8b84a; color: #1a1205; animation: t-pulse 1.4s ease-in-out infinite; }
.t-badge.st-finished { background: rgba(255, 255, 255, .06); color: #b9a9ab; }
@keyframes t-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
@media (prefers-reduced-motion: reduce) { .t-badge.st-ending, .t-badge.st-evaluating { animation: none; } }
.t-eval-note { margin: 10px 0 0; padding: 8px 12px; border-radius: 10px; background: rgba(232, 184, 74, .12); border: 1px solid rgba(232, 184, 74, .4); color: #f3dc9a; }
.t-tabs { margin: 14px 22px 4px; }
.t-card:has(.st-finished) { opacity: .92; }
.winner-box { border-color: rgba(240, 200, 90, .55); box-shadow: 0 0 22px rgba(240, 200, 90, .15); }
.winner-list { list-style: none; margin: 0; padding: 4px 22px 18px; display: grid; gap: 8px; font-size: 1.15rem; font-weight: 700; }
.winner-list .ico { width: 22px; height: 22px; color: #f0c85a; vertical-align: -4px; }

/* guest preview gate: the blurred rows are placeholders, no real data is behind them */
.gate { position: relative; display: flex; margin: 10px 0 20px; border-radius: 14px; overflow: hidden; border: 1px solid var(--line); background: rgba(255, 255, 255, .03); }
.panel > .gate { margin-left: 22px; margin-right: 22px; }
.gate-fake { position: absolute; inset: 0; display: grid; align-content: center; gap: 12px; padding: 14px 18px; filter: blur(5px); opacity: .55; user-select: none; pointer-events: none; }
.gate-row { display: grid; grid-template-columns: 1.2fr 1.6fr .8fr; gap: 14px; }
.gate-row i { display: block; height: 14px; border-radius: 7px; background: rgba(255, 255, 255, .25); }
.gate-row .g-b { background: rgba(255, 255, 255, .18); }
.gate-cta { position: relative; width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 6px; padding: 28px 18px; background: linear-gradient(180deg, rgba(var(--bg-rgb), .35), rgba(var(--bg-rgb), .85)); }
.gate-cta .ico { width: 26px; height: 26px; color: var(--accent); }
.gate-cta strong { font-size: 1.05rem; }
.gate-cta p { margin: 0; max-width: 52ch; color: #d8c8ca; font-size: .9rem; }
.gate-btns { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 8px !important; }

.profile-banner.by-0 { object-position: 50% 0%; }
.profile-banner.by-5 { object-position: 50% 5%; }
.profile-banner.by-10 { object-position: 50% 10%; }
.profile-banner.by-15 { object-position: 50% 15%; }
.profile-banner.by-20 { object-position: 50% 20%; }
.profile-banner.by-25 { object-position: 50% 25%; }
.profile-banner.by-30 { object-position: 50% 30%; }
.profile-banner.by-35 { object-position: 50% 35%; }
.profile-banner.by-40 { object-position: 50% 40%; }
.profile-banner.by-45 { object-position: 50% 45%; }
.profile-banner.by-50 { object-position: 50% 50%; }
.profile-banner.by-55 { object-position: 50% 55%; }
.profile-banner.by-60 { object-position: 50% 60%; }
.profile-banner.by-65 { object-position: 50% 65%; }
.profile-banner.by-70 { object-position: 50% 70%; }
.profile-banner.by-75 { object-position: 50% 75%; }
.profile-banner.by-80 { object-position: 50% 80%; }
.profile-banner.by-85 { object-position: 50% 85%; }
.profile-banner.by-90 { object-position: 50% 90%; }
.profile-banner.by-95 { object-position: 50% 95%; }
.profile-banner.by-100 { object-position: 50% 100%; }
.banner-edit { margin: 8px 0; } .banner-edit .profile-banner { cursor: ns-resize; touch-action: none; user-select: none; margin-bottom: 6px; }

/* fish of the week + catch of the week side by side */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: stretch; }
.duo-col { display: flex; flex-direction: column; min-width: 0; }
.duo-col h2 { margin-bottom: 16px; font-size: 1.5rem; }
.duo .fe-card, .duo .champ { flex: 1; flex-direction: column; text-align: center; padding: 22px 20px; gap: 10px; justify-content: center; }
.duo .fe-fish, .duo .champ-fish { width: 190px; height: 120px; }
.duo .fe-text, .duo .champ-text { justify-items: center; }
.duo .fe-state { justify-self: center; }
.duo .fe-goal { font-size: 1.3rem; }
.duo .fe-prizes { justify-content: center; }
.duo .champ-weight { font-size: 2.4rem; }
.fe-prize-head { margin-top: 6px; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 800px) { .duo { grid-template-columns: 1fr; } }

/* weekly cards (reference design) */
.wk-band { padding: 56px 0 64px; border-top: 1px solid var(--line); }
.wk-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.wk-grid.wk-one { grid-template-columns: minmax(0, 720px); }
.wk { --c: 255, 70, 76; --c2: #ff8a8e; position: relative; display: flex; flex-direction: column; min-width: 0; padding: 62px 0 0; border-radius: 22px; border: 2px solid rgba(var(--c), .75); background: radial-gradient(80% 70% at 30% 55%, rgba(var(--c), .16), transparent 70%), linear-gradient(180deg, #170a0c, #0c0708); box-shadow: 0 0 28px rgba(var(--c), .3), 0 14px 40px rgba(0, 0, 0, .5); overflow: hidden; }
.wk-gold { --c: 232, 184, 74; --c2: #ffd77a; background: radial-gradient(80% 70% at 50% 60%, rgba(70, 110, 60, .28), transparent 70%), linear-gradient(180deg, #14130a, #0b0a06); }
.wk-tab { position: absolute; top: 0; left: 0; display: inline-flex; align-items: center; gap: 10px; padding: 12px 34px 12px 18px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; font-size: .95rem; color: #fff; background: linear-gradient(180deg, #d32a30, #8f1419); clip-path: polygon(0 0, 100% 0, calc(100% - 18px) 100%, 0 100%); }
.wk-gold .wk-tab { color: #2a1c00; background: linear-gradient(180deg, #f6cf6a, #c8921f); }
.wk-ico { width: 22px; height: 22px; fill: currentColor; flex: none; }
.wk-title { margin: 0; padding: 0 24px; font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.15; color: #fff; }
.wk-title::after { content: ""; display: block; width: 44px; height: 3px; margin-top: 10px; background: rgb(var(--c)); border-radius: 2px; }
.wk-body { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 8px 12px; padding: 8px 24px 18px; flex: 1; }
.wk-body-c { grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 4px; }
.wk-fish { width: 100%; max-width: 300px; height: auto; max-height: 190px; object-fit: contain; filter: drop-shadow(0 12px 18px rgba(0, 0, 0, .6)); }
.wk-side { display: grid; justify-items: center; text-align: center; gap: 8px; min-width: 0; }
.wk-pill { padding: 8px 20px; border-radius: 999px; font-size: .82rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; background: rgba(255, 255, 255, .1); color: #eadadc; }
.wk-pill.live { background: linear-gradient(180deg, #d32a30, #8f1419); color: #fff; box-shadow: 0 0 16px rgba(var(--c), .45); }
.wk-cd-label { margin-top: 6px; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.wk-cd { font-size: 1.05rem; letter-spacing: .04em; text-transform: uppercase; color: #fff; font-variant-numeric: tabular-nums; }
.wk-rule { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 10px; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.wk-rule::before, .wk-rule::after { content: ""; flex: 1; height: 1px; background: rgba(255, 255, 255, .25); }
.wk-rule-gold { color: #f3c34f; font-weight: 800; font-size: .95rem; margin-top: 6px; }
.wk-rule-gold::before, .wk-rule-gold::after { background: rgba(232, 184, 74, .6); }
.wk-prizes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; }
.wk-prizes li { display: flex; align-items: center; gap: 10px; text-align: left; }
.wk-prizes span { display: grid; }
.wk-prizes small { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.wk-prize-img { width: 56px; height: 56px; object-fit: contain; }
.wk-weight { font-size: clamp(2.2rem, 5vw, 3.2rem); line-height: 1.05; font-weight: 900; color: #fff; font-variant-numeric: tabular-nums; text-shadow: 0 0 24px rgba(var(--c), .4); }
.wk-fishname { font-size: 1.15rem; font-weight: 800; color: #fff; }
.wk-laurel { position: absolute; top: 18px; right: 22px; width: 54px; height: 54px; fill: #e8b84a; filter: drop-shadow(0 0 12px rgba(232, 184, 74, .6)); }
.wk-foot { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 14px 20px; border-top: 1px solid rgba(var(--c), .6); background: rgba(0, 0, 0, .35); font-size: .9rem; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.wk-foot b { color: var(--c2); }
.wk-foot .wk-ico { width: 26px; height: 26px; }
.wk-foot-gold { border-top-color: rgba(232, 184, 74, .35); background: transparent; padding-top: 4px; }
.wk-by a { color: #fff; font-weight: 800; text-transform: none; font-size: 1.05rem; }
@media (max-width: 800px) { .wk-grid, .wk-grid.wk-one { grid-template-columns: 1fr; } .wk-body { grid-template-columns: 1fr; justify-items: center; } }

/* weekly cards: backgrounds and animated borders */
@property --wk-a { syntax: "<angle>"; initial-value: 0deg; inherits: false; }
.wk-red { background: linear-gradient(180deg, rgba(10, 4, 5, .35), rgba(10, 4, 5, .55)), url("img/wk-red.jpg") center / cover no-repeat, #0c0708; }
.wk-gold { background: linear-gradient(180deg, rgba(10, 9, 4, .3), rgba(10, 9, 4, .6)), url("img/wk-gold.jpg") center / cover no-repeat, #0b0a06; }
.wk > * { position: relative; z-index: 1; }
.wk > .wk-tab, .wk > .wk-laurel { position: absolute; }
.wk::after { content: ""; position: absolute; inset: 0; z-index: 2; border-radius: inherit; padding: 2px; pointer-events: none; background: conic-gradient(from var(--wk-a), transparent 0 62%, rgba(var(--c), .0) 70%, rgba(var(--c), 1) 88%, #fff 93%, transparent 100%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0); }
.wk::before { content: ""; position: absolute; top: 0; bottom: 0; left: -45%; width: 30%; z-index: 2; pointer-events: none; background: linear-gradient(100deg, transparent, rgba(255, 235, 190, .16), transparent); transform: skewX(-18deg); opacity: 0; }
@keyframes wk-spin { to { --wk-a: 360deg; } }
@keyframes wk-sheen { 0%, 70% { left: -45%; opacity: 0; } 72% { opacity: 1; } 92% { left: 130%; opacity: 1; } 100% { left: 130%; opacity: 0; } }
@keyframes wk-pulse { 0%, 100% { box-shadow: 0 0 22px rgba(var(--c), .25), 0 14px 40px rgba(0, 0, 0, .5); } 50% { box-shadow: 0 0 40px rgba(var(--c), .55), 0 14px 40px rgba(0, 0, 0, .5); } }
@media (prefers-reduced-motion: no-preference) {
  .wk::after { animation: wk-spin 6s linear infinite; }
  .wk-gold::after { animation-duration: 8s; }
  .wk::before { animation: wk-sheen 7s ease-in-out infinite; }
  .wk-gold::before { animation-delay: 3s; }
  .wk { animation: wk-pulse 4.5s ease-in-out infinite; }
}

.wk-rank { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; width: 100%; }
.wk-rank li { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 10px; background: rgba(0, 0, 0, .35); text-align: left; }
.wk-rank li:first-child { border: 1px solid rgba(232, 184, 74, .55); }
.wk-pl { font-weight: 900; color: #f3c34f; }
.wk-nm { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; color: #fff; }
.wk-kg { font-variant-numeric: tabular-nums; color: #eadadc; font-size: .9rem; }
.wk-pz { grid-column: 2 / 4; display: flex; align-items: center; gap: 6px; color: var(--muted); }
.wk-note { color: var(--muted); font-size: .9rem; }

/* streamer overlay settings */
.ov-url { display: grid; gap: 6px; margin: 14px 0; }
.ov-url input[readonly] { width: 100%; font-family: ui-monospace, monospace; font-size: .85rem; }
.ov-edit { display: grid; grid-template-columns: minmax(280px, 1fr) 1.2fr; gap: 24px; align-items: start; }
.ov-form fieldset { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin: 0 0 14px; display: grid; gap: 8px; }
.ov-form legend { padding: 0 6px; font-weight: 700; }
.ov-frame { width: 100%; height: 520px; border: 1px dashed var(--line); border-radius: 12px; background: repeating-conic-gradient(#1a1a1a 0 25%, #222 0 50%) 0 0 / 20px 20px; }
@media (max-width: 900px) { .ov-edit { grid-template-columns: 1fr; } }

.profile-logout { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.profile-head > .profile-logout { flex: none; min-width: 0; }

/* streamer page layout */
.ov-wrap { padding: 4px 28px 28px; display: grid; gap: 22px; }
.ov-intro { margin: 0; max-width: 70ch; }
.ov-url { display: grid; gap: 8px; padding: 18px 20px; border-radius: 14px; border: 1px solid rgba(var(--accent-rgb), .4); background: linear-gradient(180deg, rgba(var(--accent-rgb), .08), transparent); }
.ov-url label { font-weight: 800; }
.ov-url-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.ov-url-row input[readonly] { flex: 1 1 280px; width: auto; max-width: 560px; }
.ov-edit { gap: 28px; }
.ov-form fieldset { background: rgba(255, 255, 255, .02); padding: 16px 18px; }
.ov-prev { position: sticky; top: 16px; padding: 16px 18px; border-radius: 14px; border: 1px solid var(--line); background: rgba(255, 255, 255, .02); }
.ov-prev h3 { margin: 0 0 12px; }
@media (max-width: 900px) { .ov-wrap { padding: 4px 14px 20px; } .ov-prev { position: static; } }

/* club list */
.clubs-band { padding-top: 40px; }
.clubs-hero { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.clubs-hero h1 { margin: 4px 0 8px; font-size: clamp(1.8rem, 4.5vw, 2.6rem); }
.clubs-hero p { margin: 0; max-width: 60ch; }
.club-search { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.club-search input[type=search] { min-width: 220px; }
.club-total { margin: 0 0 8px; }
.club-cell { display: inline-flex; align-items: center; gap: 12px; }
.club-cell strong { color: #fff; }
.club-logo.sm { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; background: #000; flex: none; }
.club-logo.sm.ph { display: grid; place-items: center; font-weight: 900; color: var(--accent-2, #ff8a5c); background: #24100f; }
.club-table td.num, .club-table th.num { text-align: right; font-variant-numeric: tabular-nums; }
.club-table tr.is-mine td { background: rgba(var(--accent-rgb), .08); }
.club-act { text-align: right; white-space: nowrap; }
.club-pending { display: inline-block; margin-right: 8px; padding: 4px 12px; border-radius: 999px; font-size: .78rem; font-weight: 700; background: rgba(var(--accent-rgb), .18); color: #ff9a9e; }
.club-apply summary { list-style: none; cursor: pointer; display: inline-block; }
.club-apply summary::-webkit-details-marker { display: none; }
.club-apply[open] summary { display: none; }
.club-apply-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: flex-end; }
.club-apply-form label { width: 100%; font-size: .75rem; color: var(--muted); text-align: right; }
.club-apply-form input { min-width: 200px; }
.rec-fish { width: 56px; height: 36px; object-fit: contain; flex: none; }
.share-box { display: grid; gap: 14px; padding: 4px 4px 8px; }
.share-img { width: 100%; max-width: 760px; border-radius: 14px; border: 1px solid var(--line); background: #0c0708; }
.share-links { display: flex; flex-wrap: wrap; gap: 8px; }
.share-links a[aria-current] { border-color: rgba(var(--accent-rgb), .7); background: rgba(var(--accent-rgb), .18); }

/* rank list, share card, month tabs */
.inner-pad { padding: 4px 24px 24px; }
.rec-months { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }
.rec-months a[aria-current] { border-color: rgba(var(--accent-rgb), .7); background: rgba(var(--accent-rgb), .18); }
.rank-list { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; }
.rank-row { display: grid; grid-template-columns: 52px 1fr auto; align-items: center; gap: 14px; padding: 10px 16px 10px 12px; border-radius: 14px; border: 1px solid var(--line); background: rgba(255, 255, 255, .02); }
.rank-badge { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; font-size: 1.15rem; font-weight: 900; color: #fff; border: 2px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .06); }
.rank-main { display: grid; gap: 2px; min-width: 0; }
.rank-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rank-main small, .rank-side small { color: var(--muted); }
.rank-side { display: grid; justify-items: end; gap: 2px; font-weight: 700; text-align: right; }
.rank-row.tier-1 { border-color: rgba(232, 184, 74, .7); background: linear-gradient(90deg, rgba(232, 184, 74, .16), transparent 70%); box-shadow: 0 0 18px rgba(232, 184, 74, .15); }
.rank-row.tier-1 .rank-badge { color: #2a1c00; background: linear-gradient(180deg, #f6cf6a, #c8921f); border-color: #ffe39a; box-shadow: 0 0 14px rgba(232, 184, 74, .55); }
.rank-row.tier-2 .rank-badge { color: #1d2430; background: linear-gradient(180deg, #e3e8ef, #9aa6b6); border-color: #fff; }
.rank-row.tier-3 .rank-badge { color: #2a1405; background: linear-gradient(180deg, #e8a86a, #a4622d); border-color: #ffd0a4; }
.rank-row.tier-n .rank-badge { border-color: rgba(var(--accent-rgb), .55); background: rgba(var(--accent-rgb), .14); }
.rank-crown { font-style: normal; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: #f3c34f; }
.rank-more { margin-top: 10px; }
.share-box { display: grid; gap: 16px; }
.share-stage { padding: 18px; border-radius: 14px; border: 1px dashed var(--line); background: repeating-conic-gradient(#171112 0 25%, #1d1617 0 50%) 0 0 / 18px 18px; overflow-x: auto; }
.share-img { display: block; max-width: 100%; height: auto; }
.share-dl { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
@media (max-width: 600px) { .rank-row { grid-template-columns: 44px 1fr; } .rank-side { grid-column: 1 / -1; justify-items: start; text-align: left; } .inner-pad { padding: 4px 14px 18px; } }
.sig-box{margin-top:22px;padding-top:18px;border-top:1px solid var(--line,rgba(255,255,255,.1))}
.sig-box h3{margin:0 0 6px;font-size:1.05rem}
.sig-row{margin:10px 0}
.sig-row label{display:block;font-size:.85rem;margin-bottom:4px;opacity:.8}
