:root{
  --turf:#0c3a2c; --panel:#0f2018; --panel-2:#0a1712; --steel:#0b0f0c; --steel-2:#11170f;
  --chalk:#f2f6f2; --chalk-dim:#9fb8ac; --line:rgba(210,240,225,.12);
  --bpsa-green:#3ee06a; --bpsa-red:#e83b2f; --flag:#3ee06a; --gold:#f5c451; --blue:#4aa6ff;
  --shadow:0 14px 34px rgba(0,0,0,.42);
  --motion-fast:120ms; --motion-base:180ms; --motion-slow:280ms;
  --ease-standard:cubic-bezier(.2,.7,.2,1); --mobile-dock-height:68px;
}
html[data-bpsa-theme="light"]{
  --turf:#dce9df;--panel:#f8fbf8;--panel-2:#edf4ef;--steel:#e6eee8;--steel-2:#d8e4db;
  --chalk:#14231a;--chalk-dim:#526b5d;--line:rgba(24,66,42,.18);--shadow:0 14px 34px rgba(20,48,31,.16);
}
*{box-sizing:border-box}
/* The `hidden` attribute only hides via a UA rule of the form `[hidden]{display:none}`, which any
   class setting `display` outranks. Three elements had already been patched one at a time
   (.score-strip, .nfl-ticker, .command-ticker) and the trap kept being rediscovered — meetings.html
   showed every non-DM a dead "Save meeting notes" button for exactly this reason. One rule, so
   `hidden` means hidden everywhere. Guarded by scripts/check-all.mjs. */
[hidden]{display:none !important}
html{scroll-behavior:smooth}
body{
  margin:0; font-family:Inter,system-ui,Arial,sans-serif; color:var(--chalk);
  background:
    linear-gradient(180deg,rgba(5,8,7,.25),rgba(5,8,7,.76)),
    repeating-linear-gradient(90deg,transparent 0 78px,var(--line) 78px 79px),
    radial-gradient(1000px 520px at 15% -8%,rgba(232,59,47,.24),transparent 52%),
    radial-gradient(1100px 620px at 80% -10%,rgba(62,224,106,.22),transparent 54%),
    radial-gradient(1200px 600px at 50% -8%,#123324 0%,#0b1a12 45%,#060907 100%);
  background-attachment:fixed; min-height:100vh; -webkit-font-smoothing:antialiased;
  /* iOS 26 tints an installed app's status bar from the *background-color* of
     the body — not theme-color, and not apple-mobile-web-app-status-bar-style.
     The `background` shorthand above resets background-color to transparent,
     and iOS renders transparent as an opaque WHITE bar. This one declaration
     is what fixes that; it is invisible everywhere else, because the last
     gradient layer is fully opaque and paints over it. Must stay AFTER the
     shorthand or the shorthand wipes it out. See CLAUDE.md. */
  background-color:#293421;
}
html[data-bpsa-theme="light"] body{background:linear-gradient(180deg,rgba(255,255,255,.6),rgba(231,241,234,.88)),repeating-linear-gradient(90deg,transparent 0 78px,var(--line) 78px 79px),radial-gradient(1000px 520px at 15% -8%,rgba(232,59,47,.10),transparent 52%),radial-gradient(1100px 620px at 80% -10%,rgba(62,224,106,.15),transparent 54%),#e7f0e9;background-color:#e7f0e9}
html[data-bpsa-theme="light"] .account-panel,html[data-bpsa-theme="light"] .nav-sub{background:rgba(248,251,248,.99)}
html[data-bpsa-theme="light"] .account-head strong{color:var(--chalk)}
html[data-bpsa-theme="light"] h1,html[data-bpsa-theme="light"] :where(.feature-title,.metric .num,.control-tile .value){color:var(--chalk)}
html[data-bpsa-theme="light"] :where(.feature,.metric,.cd-cell,.control-tile,.ops-item,.draft-pick,.draft-clock,.draft-cell,.meeting-notes,.standings-tools,.division-head,.rank-badge,.account-panel select){background:#f4f8f5!important;color:var(--chalk)}
html[data-bpsa-theme="light"] :where(.nav-link,.nav-group-head,.account-trigger){background:rgba(248,251,248,.9)!important;color:var(--chalk)!important}
html[data-bpsa-theme="light"] .account-quick-actions a{background:#e6eee8;color:var(--chalk)}
html[data-bpsa-theme="light"] .account-office-link{background:var(--flag);color:#08210f}
html[data-bpsa-reduced-motion="true"] *,html[data-bpsa-reduced-motion="true"] *::before,html[data-bpsa-reduced-motion="true"] *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
html[data-bpsa-density="compact"] .wrap{padding-top:24px}
html[data-bpsa-density="compact"] :where(.card,.feature,.office-panel){padding-top:12px;padding-bottom:12px}
a{color:inherit}
body.gate-open{overflow:hidden}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.gate-return{display:inline-block;margin-top:12px;color:var(--chalk-dim,#9fb8ac);font:600 12px/1.4 Inter,system-ui,sans-serif;text-decoration:underline;text-underline-offset:3px}
.gate-return:hover,.gate-return:focus-visible{color:var(--chalk,#f2f6f2)}
.skip-link{position:fixed;top:calc(10px + env(safe-area-inset-top));left:calc(10px + env(safe-area-inset-left));z-index:3000;padding:10px 14px;border-radius:8px;background:var(--flag);color:#08210f;font-size:13px;font-weight:800;text-decoration:none;transform:translateY(-160%);transition:transform .15s ease}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--gold);outline-offset:3px}
#main-content:focus{outline:none}
.skip-target{position:absolute;width:1px;height:1px;overflow:hidden}
/* Safe-area padding pairs with `viewport-fit=cover` + the black-translucent iOS
   status bar: the page background paints all the way behind the clock/notch
   instead of leaving an opaque white band, and these insets keep the content
   itself out from under it. On non-notched devices every env() resolves to 0. */
.wrap{max-width:1120px; margin:0 auto;
  padding:calc(28px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) 90px calc(20px + env(safe-area-inset-left))}
.site-top{position:relative; z-index:100; display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:34px}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none}
.brand-mark{width:44px; height:52px; object-fit:contain; flex:none; filter:drop-shadow(0 5px 12px rgba(0,0,0,.55))}
.brand-word{font-family:'Bebas Neue',Impact,sans-serif; font-size:24px; letter-spacing:.04em; line-height:.9}
.brand-word span{color:var(--flag)}
.nav,.member-nav{display:flex; flex-wrap:wrap; gap:6px; justify-content:flex-end; align-items:center}
.nav a,.nav button,.member-nav a,.member-nav button{display:inline-flex;align-items:center;min-height:33px;font:700 10.5px/1 Inter,system-ui,sans-serif; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; color:var(--chalk-dim); background:rgba(15,32,24,.72); border:1px solid var(--line); border-radius:8px; padding:7px 11px; cursor:pointer; transition:color .12s, border-color .12s, background .12s}
.nav a:hover,.nav a.on,.nav button:hover,.member-nav a:hover,.member-nav a.on,.member-nav button:hover{color:var(--chalk); border-color:rgba(62,224,106,.55); background:rgba(12,58,44,.8)}
.nav a.on,.member-nav a.on{box-shadow:inset 0 -2px 0 var(--flag)}
.signin-id{font:700 10px/1 Inter,system-ui,sans-serif; letter-spacing:.04em; color:var(--chalk-dim); padding:0 2px; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.nav-toggle{display:none}

/* ---------- Shared interaction, loading, and feedback primitives ---------- */
:where(button,.card,.ops-item,.member-action-card,.mobile-dock-link){
  -webkit-tap-highlight-color:transparent;
}
:where(button,.card,.ops-item,.member-action-card,.mobile-dock-link):active{
  transform:scale(.985);
}
.ui-skeleton{position:relative;overflow:hidden;background:rgba(159,184,172,.08);border:1px solid var(--line);border-radius:10px}
.ui-skeleton::after{content:"";position:absolute;inset:0;transform:translateX(-105%);background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.08) 48%,transparent 72%);animation:ui-skeleton-sweep 1.35s ease-in-out infinite}
.ui-skeleton-line{display:block;height:10px;margin-top:9px;border-radius:999px;background:rgba(159,184,172,.13)}
.ui-skeleton-line:first-child{margin-top:0}.ui-skeleton-line.short{width:38%}.ui-skeleton-line.medium{width:68%}
.ui-skeleton-card{min-height:142px;padding:16px}.ui-skeleton-card .ui-skeleton-line:first-child{height:24px;width:34%}.ui-skeleton-card .ui-skeleton-line:nth-child(2){height:18px;width:74%;margin-top:22px}
.ui-skeleton-list{display:grid;gap:8px}.ui-skeleton-row{min-height:58px;padding:14px}
@keyframes ui-skeleton-sweep{to{transform:translateX(105%)}}
.ui-state{display:grid;justify-items:center;gap:8px;padding:26px 18px;text-align:center;color:var(--chalk-dim)}
.ui-state strong{color:var(--chalk);font-size:14px}.ui-state p{max-width:440px;margin:0;font-size:12.5px;line-height:1.55}
.ui-state-icon{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;color:var(--gold);font-weight:800}
.ui-state.error .ui-state-icon{color:var(--bpsa-red);border-color:rgba(232,59,47,.4)}
.ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 13px;border:1px solid var(--flag);border-radius:8px;background:var(--flag);color:#08210f;font:800 10.5px/1 Inter,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;cursor:pointer;transition:transform var(--motion-fast) var(--ease-standard),filter var(--motion-fast) ease}
.ui-button:hover{filter:brightness(1.08)}.ui-button.secondary{color:var(--chalk);background:#0a2c21;border-color:var(--line)}
.data-freshness{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-height:20px;color:#6f9083;font:700 9.5px/1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.data-freshness-dot{width:7px;height:7px;border-radius:50%;background:var(--flag);box-shadow:0 0 0 3px rgba(62,224,106,.1)}
.data-freshness.loading .data-freshness-dot{background:var(--gold);animation:data-pulse 1.2s ease-in-out infinite}.data-freshness.error .data-freshness-dot{background:var(--bpsa-red);box-shadow:none}
@keyframes data-pulse{50%{opacity:.35;transform:scale(.8)}}
.member-ready .wrap{animation:member-page-settle var(--motion-slow) var(--ease-standard) both}
/* Keep this animation opacity-only. A transform on .wrap makes it the containing block for
   fixed descendants in iOS Safari, stranding the mobile dock and menu sheet down the page. */
@keyframes member-page-settle{from{opacity:.82}to{opacity:1}}
.live-value{position:relative;font-variant-numeric:tabular-nums}
.live-value.is-rising{animation:live-rise .85s var(--ease-standard)}
.live-value.is-falling{animation:live-fall .85s var(--ease-standard)}
.live-value.is-changed{animation:live-change .85s var(--ease-standard)}
@keyframes live-rise{0%{color:#08180d;background:rgba(62,224,106,.92);box-shadow:0 0 0 5px rgba(62,224,106,.18)}100%{color:inherit;background:transparent;box-shadow:none}}
@keyframes live-fall{0%{color:#fff;background:rgba(232,59,47,.82);box-shadow:0 0 0 5px rgba(232,59,47,.14)}100%{color:inherit;background:transparent;box-shadow:none}}
@keyframes live-change{0%{background:rgba(245,196,81,.72);box-shadow:0 0 0 5px rgba(245,196,81,.12)}100%{background:transparent;box-shadow:none}}
.ui-toast{position:fixed;left:50%;bottom:calc(26px + env(safe-area-inset-bottom));z-index:4100;max-width:min(420px,calc(100vw - 30px));padding:11px 16px;transform:translate(-50%,14px);opacity:0;pointer-events:none;border:1px solid var(--line);border-left:3px solid var(--flag);border-radius:9px;background:rgba(8,18,13,.98);color:var(--chalk);box-shadow:var(--shadow);font:700 12.5px/1.4 Inter,system-ui,sans-serif;text-align:center;transition:opacity var(--motion-base),transform var(--motion-base)}
.ui-toast.show{opacity:1;transform:translate(-50%,0)}.ui-toast.error{border-left-color:var(--bpsa-red)}.ui-toast.info{border-left-color:var(--gold)}
.mobile-dock,.mobile-dock-preview,#site-nav .mobile-dock-preview{display:none}

/* ---------- Grouped dropdowns (Now / Season / The League / Rulebook) ---------- */
/* Each group head is a single pill button; the panel is anchored below it. */
.nav-group{position:relative; display:inline-flex}
.nav-group-head{
  display:inline-flex; align-items:center; gap:6px;
  background:rgba(15,32,24,.72); border:1px solid var(--line); border-radius:8px;
  transition:border-color .12s, background .12s, color .12s;
}
.nav-group-head:hover,
.nav-group.open .nav-group-head,
.nav-group.is-active .nav-group-head{color:var(--chalk); border-color:rgba(62,224,106,.55); background:rgba(12,58,44,.8)}
.nav-group.is-active .nav-group-head{box-shadow:inset 0 -2px 0 var(--flag)}
.nav-caret-icon{width:9px; height:6px; display:block; opacity:.65; transition:transform .15s, opacity .12s}
.nav-group-head:hover .nav-caret-icon,
.nav-group.open .nav-caret-icon{opacity:1}
.nav-group.open .nav-caret-icon{transform:rotate(180deg)}

.nav-sub{
  position:absolute; top:calc(100% + 7px); right:0; z-index:60;
  display:none; flex-direction:column; gap:3px; min-width:196px; padding:7px;
  background:rgba(8,18,13,.98); border:1px solid rgba(62,224,106,.28); border-radius:11px;
  box-shadow:0 18px 38px rgba(0,0,0,.6);
}
.nav-group.open .nav-sub{display:flex}
.nav-sub a{width:100%; text-align:left; white-space:nowrap; background:transparent; border-color:transparent}
.nav-sub a:hover{background:rgba(12,58,44,.9); border-color:rgba(62,224,106,.45)}
.nav-sub a.on{color:var(--chalk); background:rgba(12,58,44,.7); border-color:rgba(62,224,106,.4); box-shadow:none}
/* Invisible bridge so the cursor can cross the gap without the panel closing. */
.nav-group::after{content:""; position:absolute; top:100%; left:0; right:0; height:9px}

/* ---------- Account cluster ---------- */
/* The signed-in name opens one shared panel for identity, app install, launch
   preference, and sign-out. Identity stays read-only; only local preferences
   are editable here. */
.nav-account{
  position:relative; display:inline-flex; align-items:center;
  margin-left:4px; padding-left:10px; border-left:1px solid var(--line);
}
.preview-scope-label{
  display:inline-flex; align-items:center; min-height:30px; padding:5px 9px;
  color:var(--gold); border:1px solid rgba(245,196,81,.32); border-radius:999px;
  background:rgba(245,196,81,.07); font:800 9px/1 Inter,system-ui,sans-serif;
  letter-spacing:.09em; text-transform:uppercase; white-space:nowrap;
}
.nav-account .account-trigger{
  display:inline-flex; align-items:center; gap:6px; min-height:33px;
  color:var(--flag); background:rgba(62,224,106,.10);
  border:1px solid rgba(62,224,106,.28); border-radius:999px;
  padding:6px 9px; cursor:pointer;
}
.nav-account .account-trigger:hover,
.nav-account .account-trigger[aria-expanded="true"]{
  color:var(--chalk); border-color:rgba(62,224,106,.58); background:rgba(12,58,44,.88);
}
.nav-account .signin-id{
  font:700 9.5px/1 Inter,system-ui,sans-serif; letter-spacing:.04em;
  color:inherit; padding:0; max-width:150px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.account-caret{width:9px; height:6px; flex:none; opacity:.7; transition:transform .15s}
.account-trigger[aria-expanded="true"] .account-caret{transform:rotate(180deg)}
.account-panel{
  position:absolute; top:calc(100% + 8px); right:0; z-index:80;
  display:block; width:min(340px,calc(100vw - 40px)); max-height:min(78vh,720px); overflow:auto; padding:18px;
  text-align:left; background:rgba(8,18,13,.99);
  border:1px solid rgba(62,224,106,.28); border-radius:11px;
  box-shadow:0 18px 38px rgba(0,0,0,.6);
}
.account-head{display:flex; align-items:center; gap:11px; padding-bottom:14px; border-bottom:1px solid var(--line)}
.account-crest{width:42px; height:48px; object-fit:contain; flex:none; filter:drop-shadow(0 4px 9px rgba(0,0,0,.5))}
.account-head strong{display:block; color:#fff; font:400 24px/1 'Bebas Neue',Impact,sans-serif; letter-spacing:.04em}
.account-head span span{display:block; margin-top:4px; color:var(--chalk-dim); font:500 11px/1.35 Inter,system-ui,sans-serif}
.account-readonly{
  display:inline-block; margin-top:10px; padding:4px 8px;
  color:#7e9b8e; border:1px solid var(--line); border-radius:999px;
  font:800 9px/1 Inter,system-ui,sans-serif; letter-spacing:.1em; text-transform:uppercase;
}
.account-signin-method{
  display:inline-block; margin:10px 0 0 4px; padding:4px 8px;
  color:var(--chalk-dim); border:1px solid var(--line); border-radius:999px;
  font:700 9px/1 Inter,system-ui,sans-serif;
}
.account-linkage{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}
.account-linkage>span{display:grid;gap:4px;min-width:0;padding:8px;border:1px solid var(--line);border-radius:8px;background:rgba(12,58,44,.22)}
.account-linkage b{color:#6f9083;font:800 8px/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.account-linkage code{overflow:hidden;color:var(--chalk);font:600 10px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}
.nav-account .account-panel .account-linkage button{grid-column:1/-1;min-height:34px;margin-top:0;padding:7px;background:transparent;color:var(--chalk-dim);border-color:var(--line);font-size:10px}
.account-section-label{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  margin:16px 0 7px; color:var(--chalk-dim);
  font:800 9.5px/1 Inter,system-ui,sans-serif; letter-spacing:.1em; text-transform:uppercase;
}
.account-snapshot{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px}
.account-snapshot-item{
  display:grid; gap:3px; min-width:0; padding:9px; border:1px solid var(--line);
  border-radius:8px; background:rgba(12,58,44,.28);
}
.account-snapshot-item b{color:var(--chalk); font:700 12px/1.2 Inter,system-ui,sans-serif; overflow-wrap:anywhere}
.account-snapshot-item span{color:#6f9083; font:800 8px/1 Inter,system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase}
.account-snapshot-item.needs b{color:var(--gold)}
.account-snapshot-loading{grid-column:1/-1; color:#6f9083; font-size:11px; line-height:1.45}
.account-quick-actions{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; margin-top:8px}
.account-quick-actions a,.account-office-link{
  display:flex; align-items:center; justify-content:center; min-height:38px; padding:8px;
  color:var(--chalk-dim); background:rgba(15,32,24,.72); border:1px solid var(--line);
  border-radius:8px; text-align:center; text-decoration:none; font:700 10px/1.2 Inter,system-ui,sans-serif;
}
.account-quick-actions a:hover,.account-office-link:hover{color:var(--chalk); border-color:rgba(62,224,106,.55)}
.account-office-link{margin-top:9px; color:#08210f; background:var(--flag); border-color:var(--flag)}
.account-notice-count{display:inline-grid; place-items:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--bpsa-red); color:#fff; font-size:8px}
.account-notices{display:grid; gap:7px; max-height:180px; overflow:auto}
.account-notice{display:grid; gap:4px; padding:9px; border-left:3px solid var(--flag); background:rgba(12,58,44,.24); border-radius:0 8px 8px 0}
.account-notice[data-level="important"]{border-left-color:var(--gold)}
.account-notice[data-level="urgent"]{border-left-color:var(--bpsa-red)}
.account-notice b{color:var(--chalk); font-size:11px; line-height:1.3}
.account-notice span{color:var(--chalk-dim); font-size:10px; line-height:1.45}
.account-panel label{
  display:block; margin:16px 0 6px; color:var(--chalk-dim);
  font:800 9.5px/1 Inter,system-ui,sans-serif; letter-spacing:.1em; text-transform:uppercase;
}
.account-panel select{
  width:100%; min-height:42px; padding:9px 11px;
  color:var(--chalk); background:#09140f; border:1px solid var(--line); border-radius:8px;
  font:600 13px/1.2 Inter,system-ui,sans-serif;
}
.account-check,.account-categories label{display:flex!important;align-items:center;gap:8px;margin:8px 0!important;color:var(--chalk)!important;font:600 11px/1.35 Inter,system-ui,sans-serif!important;letter-spacing:0!important;text-transform:none!important}
.account-check input,.account-categories input{width:16px;height:16px;accent-color:var(--flag)}
.account-categories{margin:14px 0 0;padding:10px;border:1px solid var(--line);border-radius:8px}.account-categories legend{padding:0 5px;color:var(--chalk-dim);font:800 9.5px/1 Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.account-future-channels{display:block;margin-top:8px;color:#6f9083;font-size:9px;line-height:1.4}
.nav-account .account-panel button{width:100%; min-height:42px; justify-content:center; margin-top:9px; border-radius:8px}
.nav-account .account-panel button.primary{color:#08210f; background:var(--flag); border-color:var(--flag)}
.nav-account .account-panel #signout-link{
  background:transparent; border-color:transparent; color:#6f9083;
  text-align:center; text-decoration:underline; text-underline-offset:3px;
}
.nav-account .account-panel #signout-link:hover{
  background:transparent; border-color:transparent; color:var(--bpsa-red);
}
.account-status{display:block; color:var(--gold); font-size:11px; line-height:1.45; margin-top:8px}
.account-status:empty{display:none}
.account-version{
  display:block; margin-top:5px; color:#547064; text-align:center;
  font:700 9px/1 Inter,system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase;
}
.account-settings-actions{grid-template-columns:1fr}

/* Profile-only controls keep preferences and notices out of the navigation. */
.profile-identity h2{margin:8px 0 2px;color:#fff;font:400 30px/1 'Bebas Neue',Impact,sans-serif;letter-spacing:.04em}
.profile-identity>p{margin:0;color:var(--chalk-dim);font-size:12px}
.profile-id-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:15px 0 10px}
.profile-id-grid>div{display:grid;gap:5px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:rgba(12,58,44,.28)}
.profile-id-grid span,.profile-setting-panel>label:not(.profile-check){color:#6f9083;font:800 9px/1 Inter,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.profile-id-grid code{overflow:hidden;color:var(--chalk);font:600 11px/1.35 ui-monospace,SFMono-Regular,Menlo,monospace;text-overflow:ellipsis;white-space:nowrap}
.profile-settings-grid{align-items:stretch}
.profile-setting-panel{display:flex;flex-direction:column}
.profile-setting-panel h3{margin:10px 0 12px}
.profile-setting-panel>label:not(.profile-check){display:block;margin:4px 0 7px}
.profile-setting-panel select{width:100%;min-height:44px;padding:9px 11px;color:var(--chalk);background:#09140f;border:1px solid var(--line);border-radius:8px;font:600 13px/1.2 Inter,sans-serif}
.profile-check{display:flex;align-items:flex-start;gap:10px;margin-top:17px;padding:13px;border:1px solid var(--line);border-radius:8px;background:rgba(12,58,44,.22);cursor:pointer}
.profile-check input,.profile-categories input{width:17px;height:17px;flex:none;accent-color:var(--flag)}
.profile-check span{display:grid;gap:4px}.profile-check b{color:var(--chalk);font-size:12px}.profile-check small{color:var(--chalk-dim);font-size:10px;line-height:1.45}
.profile-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:auto;padding:12px;border:1px solid var(--line);border-radius:8px}
.profile-categories legend{padding:0 6px;color:#6f9083;font:800 9px/1 Inter,sans-serif;letter-spacing:.09em;text-transform:uppercase}
.profile-categories label{display:flex;align-items:flex-start;gap:8px;color:var(--chalk);font:600 11px/1.35 Inter,sans-serif}
.profile-categories label>span{display:grid;gap:3px}.profile-categories label b{font-size:11px}.profile-categories label small{color:var(--chalk-dim);font-size:9.5px;line-height:1.4}
.profile-save-status{margin:10px 2px 0}
.profile-notice-explainer{margin:-3px 0 12px}.profile-notices{display:grid;gap:8px}.profile-notices .account-notice{padding:12px}
.profile-linking-panel{grid-column:1/-1;scroll-margin-top:24px}
.profile-action{display:inline-flex;margin-top:16px;text-decoration:none}
.hero{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:28px; align-items:end; margin-bottom:28px}
.page-editorial-content{margin-top:22px}
.kicker{font-family:'Bebas Neue',Impact,sans-serif; letter-spacing:.28em; color:var(--flag); font-size:13px; text-transform:uppercase}
h1{font-family:'Bebas Neue',Impact,sans-serif; font-weight:400; letter-spacing:.02em; font-size:clamp(46px,9vw,86px); line-height:.86; margin:7px 0 10px; color:#fff}
h1 .b{color:var(--flag)}
.slogan{font-family:'Bebas Neue',Impact,sans-serif; color:var(--bpsa-red); font-size:clamp(22px,4vw,34px); letter-spacing:.06em; text-shadow:2px 2px 0 rgba(0,0,0,.5)}
.sub{color:var(--chalk-dim); font-size:14px; line-height:1.65; max-width:620px}
.search{width:100%; background:#0a2c21; border:1px solid var(--line); border-radius:10px; color:var(--chalk); font-size:14px; padding:10px 13px; margin:14px 0 0}
.search::placeholder{color:#6f9083}
.no-match{color:var(--chalk-dim); font-size:13px; padding:20px; text-align:center}
.hero-panel,.card,.feature,.table-shell,.shame-clock,.draft-panel{background:linear-gradient(180deg,rgba(15,32,24,.96),rgba(10,23,18,.96)); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow)}
.hero-panel{position:relative;overflow:hidden;padding:18px; border-top:3px solid var(--bpsa-red)}
.home-brand-showcase{
  position:relative; display:none; grid-template-columns:minmax(220px,.72fr) minmax(260px,390px) minmax(120px,.42fr);
  align-items:center; gap:22px; min-height:300px; margin:0 0 28px; padding:0 28px; overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 52% 50%,rgba(62,224,106,.11),transparent 38%),
    linear-gradient(90deg,rgba(5,11,7,.96),rgba(9,27,18,.72) 30%,rgba(5,11,7,.38) 56%,rgba(5,11,7,.92)),
    #050b07;
  border-top:1px solid rgba(62,224,106,.35); border-bottom:1px solid rgba(173,35,35,.4);
  box-shadow:inset 0 1px 0 rgba(246,239,211,.05),0 18px 42px rgba(0,0,0,.22);
}
html[data-bpsa-brand="v2"] .home-brand-showcase{display:grid}
/* Ambient background: a giant, heavily-blurred copy of the same shield image
   fills the whole pane so the grass/field texture and black sky extend edge to
   edge. The sharp logo then blends into a background made from its own pixels,
   so the rectangular seam disappears completely. */
.home-brand-showcase:before{
  content:""; position:absolute; inset:-30%; z-index:0;
  background:url("../assets/r/d9111a6a.png") center/cover no-repeat;
  filter:blur(70px) saturate(.95) brightness(.58) hue-rotate(-5deg);
  opacity:.92;
  pointer-events:none;
}
/* Vignette on top of the ambient layer so the edges of the pane fade to black
   and don't compete with page content. */
.home-brand-showcase:after{
  content:""; position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse 92% 92% at 50% 50%,transparent 35%,rgba(5,11,7,.58) 76%,rgba(5,11,7,.92) 100%),
    linear-gradient(90deg,rgba(5,11,7,.72),transparent 25%,transparent 72%,rgba(5,11,7,.82)),
    linear-gradient(180deg,rgba(5,11,7,.48),transparent 28%,transparent 68%,rgba(5,11,7,.62));
  pointer-events:none;
}
.home-brand-showcase img{
  position:relative;z-index:2;display:block;width:100%;height:296px;
  object-fit:contain;opacity:.94;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.68)) saturate(1.02);
  /* The full logo artwork is square; fading all outer edges lets its black sky
     and grass dissolve into the pane instead of reading as a pasted tile. */
  -webkit-mask-image:radial-gradient(ellipse 78% 74% at 50% 52%,#000 56%,rgba(0,0,0,.88) 68%,transparent 100%);
          mask-image:radial-gradient(ellipse 78% 74% at 50% 52%,#000 56%,rgba(0,0,0,.88) 68%,transparent 100%);
}
.home-brand-copy, .home-brand-showcase figcaption{z-index:2}
.home-brand-copy{position:relative;z-index:1;display:grid;gap:10px;justify-items:start}
.home-brand-copy .kicker{color:rgba(62,224,106,.85);letter-spacing:.18em}
.home-brand-copy strong{color:#fff;font:400 clamp(48px,7vw,88px)/.95 'Bebas Neue',Impact,sans-serif;letter-spacing:.03em;text-transform:uppercase;text-shadow:0 2px 18px rgba(0,0,0,.62)}
.home-brand-subtitle{max-width:340px;color:var(--chalk-dim);font:500 13px/1.45 Inter,system-ui,sans-serif;letter-spacing:.02em}
.home-brand-showcase figcaption{position:relative;z-index:1;color:rgba(173,35,35,.78);font:400 27px/.95 'Bebas Neue',Impact,sans-serif;letter-spacing:.08em;text-align:right;text-transform:uppercase;text-shadow:0 2px 14px rgba(0,0,0,.5)}
.install-strip{
  position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center; gap:13px; margin:0 0 28px; padding:16px; overflow:hidden;
  background:linear-gradient(180deg,rgba(15,32,24,.98),rgba(10,23,18,.98));
  border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow);
}
.install-strip:before{
  content:""; position:absolute; inset:0 0 auto; height:3px;
  background:linear-gradient(90deg,var(--bpsa-red),var(--flag));
}
.install-strip-crest{width:42px; height:48px; filter:drop-shadow(0 4px 9px rgba(0,0,0,.5))}
.install-strip-copy{min-width:0}
.install-strip-copy strong{
  display:block; color:#fff; font:400 22px/1 'Bebas Neue',Impact,sans-serif; letter-spacing:.04em;
}
.install-strip-copy span{display:block; margin-top:4px; color:var(--chalk-dim); font-size:12px; line-height:1.4}
.install-strip-action{
  min-height:42px; padding:9px 14px; color:#08210f; background:var(--flag);
  border:1px solid var(--flag); border-radius:8px; cursor:pointer;
  font:800 10.5px/1 Inter,system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase;
}
.install-strip-dismiss{
  width:36px; height:36px; padding:0; color:#6f9083; background:transparent;
  border:1px solid transparent; border-radius:8px; cursor:pointer; font-size:23px; line-height:1;
}
.install-strip-dismiss:hover{color:var(--chalk); border-color:var(--line)}
.metric-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px}
.metric{background:#09140f; border:1px solid var(--line); border-radius:8px; padding:13px}
.metric .lbl,.tag,.eyebrow{font-size:10.5px; text-transform:uppercase; letter-spacing:.12em; color:var(--chalk-dim); font-weight:800}
.metric .num{font-family:'Bebas Neue',Impact,sans-serif; color:#fff; font-size:34px; line-height:.95; margin-top:5px}
.metric .num.green{color:var(--flag)} .metric .num.red{color:var(--bpsa-red)} .metric .num.gold{color:var(--gold)} .metric .num.orange{color:#ff8a3d}
.metric .num.compact{font-size:26px; letter-spacing:.02em}
.section{margin-top:34px}
.section-head{display:flex; align-items:baseline; gap:12px; margin-bottom:14px}
.section-head h2{font-family:'Bebas Neue',Impact,sans-serif; font-size:31px; font-weight:400; letter-spacing:.04em; margin:0}
.section-head .rule{height:1px; flex:1; background:repeating-linear-gradient(90deg,var(--line) 0 8px,transparent 8px 16px)}
.section-head .note{font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--chalk-dim); white-space:nowrap}
.feature-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px}
.feature{padding:16px; position:relative; overflow:hidden}
.feature:after,.card:after,.hero-panel:after{
  content:""; position:absolute; right:-26px; bottom:-34px; width:126px; aspect-ratio:1;
  background:url("../assets/r/d9111a6a.png") center/contain no-repeat;
  opacity:0; filter:saturate(.75) contrast(.9); mix-blend-mode:screen; pointer-events:none;
}
html[data-bpsa-brand="v2"] .feature:after{opacity:.085}
html[data-bpsa-brand="v2"] .card:after{opacity:.062}
html[data-bpsa-brand="v2"] .hero-panel:after{opacity:.075;width:152px;right:-34px;bottom:-42px}
.feature:before{content:""; position:absolute; inset:0 0 auto; height:3px; background:linear-gradient(90deg,var(--bpsa-red),var(--flag)); opacity:.88}
.feature-pill{display:inline-flex;align-items:center;margin-top:10px;border-radius:999px;padding:4px 9px;font-size:9.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;border:1px solid transparent}
.feature-pill.final{color:#062611;background:var(--flag)}
.feature-pill.incomplete{color:#fff;background:var(--bpsa-red)}
.feature-pill.open{color:#271400;background:#ff8a3d}
.feature h3,.card h3{font-size:16px; margin:0 0 7px; line-height:1.3}
.feature p,.card p{margin:0; color:var(--chalk-dim); font-size:13px; line-height:1.55}
.feature .big{font-family:'Bebas Neue',Impact,sans-serif; color:var(--flag); font-size:42px; line-height:.95; margin:8px 0 5px}
.grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(235px,1fr)); gap:14px}
.card{display:block; text-decoration:none; min-height:142px; padding:16px; transition:transform .16s ease,border-color .16s ease,background .16s ease; position:relative}
.card:hover{transform:translateY(-2px); border-color:rgba(62,224,106,.55); background:linear-gradient(180deg,#12281f,#0a1712)}
.card .meta{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:12px}
.tag{display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:6px; padding:4px 7px; background:#07130e; color:var(--flag)}
.tag.red{color:#fff; background:rgba(232,59,47,.24); border-color:rgba(232,59,47,.36)}
.tag.gold{color:#1a1400; background:var(--gold); border-color:var(--gold)}
.arrow{position:absolute; right:15px; bottom:13px; color:var(--flag); font-weight:800}
.countdown{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px}
.cd-cell{background:#09140f; border:1px solid var(--line); border-radius:8px; padding:13px; text-align:center}
.cd-cell .num{font-family:'Bebas Neue',Impact,sans-serif; font-size:36px; color:var(--flag); line-height:1}
.cd-cell .lbl{font-size:10px; letter-spacing:.12em; color:var(--chalk-dim); text-transform:uppercase}
/* Takes the countdown's place once the draft deadline passes (see site.js tickDraft). */
.cd-live{margin-top:14px; padding:14px; text-align:center; border:1px solid var(--line); border-radius:8px; background:#09140f; font-family:'Bebas Neue',Impact,sans-serif; font-size:26px; letter-spacing:.04em; color:var(--flag)}
.table-shell,.table-scroll{max-width:100%;overflow:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}
.table-scroll{border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,var(--panel),var(--panel-2));box-shadow:var(--shadow)}
.table-shell:focus-visible,.table-scroll:focus-visible{outline-offset:4px}
table{width:100%; border-collapse:collapse; min-width:760px; font-size:13px}
th{font-family:'Bebas Neue',Impact,sans-serif; font-size:15px; letter-spacing:.08em; text-align:left; color:var(--flag); background:#0a2c21; padding:12px 13px; font-weight:400}
td{padding:12px 13px; border-top:1px solid var(--line); color:var(--chalk-dim); vertical-align:top}
td b{color:var(--chalk)} .rank{text-align:center; font-weight:800; color:var(--chalk)} .manager{color:#78998b; margin-left:4px}
.diff-pos{color:var(--flag)} .diff-neg{color:var(--bpsa-red)}
.pager{display:flex; justify-content:center; align-items:center; gap:8px; margin-top:16px}
.pager button{background:#0a2c21; border:1px solid var(--line); color:var(--chalk); border-radius:8px; padding:9px 12px; cursor:pointer; font-weight:800}
.pager button:disabled{opacity:.42; cursor:default}
.pager .page-state{color:var(--chalk-dim); font-size:12px; letter-spacing:.08em; text-transform:uppercase}
.champions-grid,.shame-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:14px}
.champion-card,.shame-card{background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; padding:15px; box-shadow:var(--shadow)}
.champion-card{border-top:3px solid var(--flag)}
.champion-card.current{border-top-color:var(--bpsa-red); background:linear-gradient(180deg,#172a21,#0a1712)}
.year{font-family:'Bebas Neue',Impact,sans-serif; color:var(--flag); font-size:19px; letter-spacing:.08em}
.champion-card h3,.shame-card h3{font-size:15px; margin:5px 0 0; line-height:1.35}
.shame-card{border-left:4px solid var(--bpsa-red)}
.shame-card p{margin:7px 0 0; color:var(--chalk-dim); font-size:13px; line-height:1.55}
.shame-clock{padding:18px; border-color:rgba(232,59,47,.42); background:linear-gradient(180deg,#261311,#130b0a)}
.clock-row{display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap}
.clock-num{font-family:'Bebas Neue',Impact,sans-serif; color:#fff; font-size:clamp(54px,10vw,86px); line-height:.85}
.clock-label{color:var(--chalk-dim); font-size:14px; line-height:1.5}
.filterbar{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.filterbar button{border:1px solid var(--line); background:#0a2c21; color:var(--chalk-dim); border-radius:8px; padding:8px 11px; cursor:pointer; font-weight:800; font-size:11px; letter-spacing:.08em; text-transform:uppercase}
.filterbar button.on,.filterbar button:hover{color:#08210f; background:var(--flag); border-color:var(--flag)}
.draft-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px}
.draft-panel{padding:18px}
.draft-panel h3{margin:0 0 8px; font-size:17px}
.draft-panel ul{margin:10px 0 0; padding-left:18px; color:var(--chalk-dim); line-height:1.65; font-size:13.5px}
.command-grid{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:14px}
.command-panel{background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; padding:18px; box-shadow:var(--shadow)}
.command-panel.primary{border-top:3px solid var(--bpsa-red)}
.command-panel h3{margin:0 0 8px; font-size:18px}
.ops-list{display:grid; gap:10px; margin-top:14px}
.ops-item{display:grid; grid-template-columns:auto 1fr auto; gap:12px; align-items:center; background:#09140f; border:1px solid var(--line); border-radius:8px; padding:12px}
a.ops-item{text-decoration:none; transition:border-color .16s ease,background .16s ease}
a.ops-item:hover{border-color:rgba(62,224,106,.55); background:#0c1d15}
.ops-item .step{font-family:'Bebas Neue',Impact,sans-serif; color:var(--flag); font-size:20px; letter-spacing:.08em}
.ops-item b{display:block; font-size:13.5px}
.ops-item span{display:block; color:var(--chalk-dim); font-size:12px; line-height:1.45; margin-top:2px}
.ops-item .state{font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; border-radius:6px; padding:4px 7px; border:1px solid var(--line); color:var(--chalk-dim)}
.ops-item .state.hot{background:var(--bpsa-red); color:#fff; border-color:var(--bpsa-red)}
.ops-item .state.ready{background:var(--flag); color:#08210f; border-color:var(--flag)}
.ops-item .state.stacked{display:flex; flex-direction:column; align-items:flex-end; gap:3px; text-transform:none; letter-spacing:normal}
.ops-item .state.stacked .state-row{display:flex; align-items:center; gap:5px; font-size:12px; font-weight:800}
.ops-item .state.stacked .state-sub{font-size:9px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--chalk-dim)}
.ops-item.you-row{border-color:var(--gold); background:rgba(245,196,81,.1)}
.ops-item .you-badge{display:inline-block; margin-left:6px; padding:1px 6px; border-radius:10px; background:var(--gold); color:#1a1400; font:800 9px/1.6 Inter,system-ui,sans-serif; letter-spacing:.04em; text-transform:uppercase; vertical-align:middle}
.control-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:14px}
.control-tile{background:#09140f; border:1px solid var(--line); border-radius:8px; padding:13px}
.control-tile .value{font-family:'Bebas Neue',Impact,sans-serif; font-size:32px; line-height:1; color:#fff; margin-top:5px}
.control-tile .value.green{color:var(--flag)} .control-tile .value.red{color:var(--bpsa-red)} .control-tile .value.gold{color:var(--gold)}
.control-tile .value.compact{font-size:24px}
.command-actions{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px}
.action-link{display:inline-flex; align-items:center; justify-content:center; min-height:36px; border-radius:8px; border:1px solid var(--line); background:#0a2c21; color:var(--chalk); text-decoration:none; padding:9px 12px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase}
.action-link.primary{background:var(--flag); color:#08210f; border-color:var(--flag)}
.action-link:hover{border-color:rgba(62,224,106,.7)}
.meeting-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(285px,1fr)); gap:14px}
.meeting-card{background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; padding:17px; box-shadow:var(--shadow)}
.meeting-card h3{margin:8px 0 10px; font-size:17px}
.meeting-list{margin:0; padding-left:20px; color:var(--chalk-dim); font-size:13px; line-height:1.6}
.meeting-list li+li{margin-top:7px}
.draft-order{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:12px}
.draft-pick{display:grid; grid-template-columns:30px 1fr; align-items:center; background:#09140f; border:1px solid var(--line); border-radius:8px; overflow:hidden}
.draft-pick b{display:grid; place-items:center; align-self:stretch; min-height:42px; color:#08210f; background:var(--flag); font-family:'Bebas Neue',Impact,sans-serif; font-size:20px}
.draft-pick span{padding:9px 10px; font-size:13px; font-weight:800}
.draft-clock{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; background:#09140f; border:1px solid var(--gold); border-radius:8px; padding:14px 16px; margin-bottom:14px}
.draft-clock .lbl{font:800 10px/1 Inter,system-ui,sans-serif; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); margin-bottom:5px}
.draft-clock .team{font-size:16px; font-weight:800; color:var(--chalk)}
.draft-board-shell{overflow:auto; max-height:520px; border:1px solid var(--line); border-radius:8px; margin-bottom:16px}
.draft-board{border-collapse:collapse; width:100%; min-width:900px; font-size:12px}
.draft-board th{position:sticky; top:0; background:var(--panel-2); color:var(--chalk-dim); font:800 10px/1 Inter,system-ui,sans-serif; letter-spacing:.05em; text-transform:uppercase; padding:8px 6px; text-align:left; border-bottom:1px solid var(--line); z-index:1}
.draft-board td{padding:5px; border-top:1px solid var(--line); vertical-align:top; min-width:92px}
.draft-board td.rd{color:var(--chalk-dim); font-weight:800; min-width:26px; position:sticky; left:0; background:var(--panel-2); z-index:1; text-align:center}
.draft-cell{position:relative; display:block; background:#09140f; border-radius:6px; padding:5px 7px; min-height:32px}
.draft-cell .player{display:block; color:var(--chalk); font-weight:700}
.draft-cell .meta{display:block; color:var(--chalk-dim); font-size:10px; margin-top:1px}
.draft-cell.empty{background:transparent; color:var(--chalk-dim); text-align:center}
.draft-cell.on-clock{background:transparent; border:1px solid var(--gold); color:var(--gold); text-align:center; font:800 10px/1 Inter,system-ui,sans-serif; letter-spacing:.05em; text-transform:uppercase; display:grid; place-items:center}
.draft-cell.keeper-pick{border-left:2px solid var(--flag); background:rgba(62,224,106,.14)}
.draft-cell .keeper-badge{position:absolute; top:3px; right:3px; font:800 8px/1 Inter,system-ui,sans-serif; letter-spacing:.03em; color:#08210f; background:var(--flag); border-radius:3px; padding:1px 4px}
.meeting-notes{width:100%; min-height:150px; resize:vertical; color:var(--chalk); background:#07130e; border:1px solid var(--line); border-radius:8px; padding:12px; font:13px/1.55 Inter,system-ui,sans-serif}
.meeting-notes:focus{outline:2px solid rgba(62,224,106,.35); border-color:var(--flag)}
.meeting-record-select{display:block;width:100%;min-height:42px;margin:7px 0 14px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#07130e;color:var(--chalk);font:600 13px/1.4 Inter,system-ui,sans-serif}
.meeting-record-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.meeting-record-actions .sync-line{margin:0}
.sync-line{color:var(--chalk-dim); font-size:12px; margin-top:9px}
.sync-line.ok{color:var(--flag)}
.timeline{position:relative; display:grid; gap:12px; margin-top:6px}
.timeline:before{content:""; position:absolute; top:8px; bottom:8px; left:92px; width:2px; background:linear-gradient(180deg,var(--bpsa-red),var(--flag)); opacity:.8}
.timeline-item{position:relative; display:grid; grid-template-columns:76px 1fr; gap:32px; align-items:start}
.timeline-year{font-family:Inter,system-ui,sans-serif; display:inline-flex; align-items:center; justify-content:center; min-width:68px; height:34px; color:var(--flag); background:#08160f; border:1px solid rgba(62,224,106,.28); border-radius:8px; font-size:18px; font-weight:900; line-height:1; letter-spacing:0; text-align:center; margin-top:9px; font-variant-numeric:tabular-nums; white-space:nowrap}
.timeline-card{background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; padding:15px 16px; box-shadow:var(--shadow); position:relative}
.timeline-card:before{content:""; position:absolute; left:-29px; top:20px; width:12px; height:12px; border-radius:50%; background:var(--flag); box-shadow:0 0 0 4px #07130e,0 0 18px rgba(62,224,106,.5)}
.timeline-card.current{border-color:rgba(232,59,47,.55); background:linear-gradient(180deg,#172a21,#0a1712)}
.timeline-card.current:before{background:var(--bpsa-red); box-shadow:0 0 0 4px #07130e,0 0 18px rgba(232,59,47,.6)}
.timeline-card h3{margin:0; font-size:16px; line-height:1.35}
.timeline-card p{margin:7px 0 0; color:var(--chalk-dim); font-size:13px; line-height:1.55}
.timeline-card.origin{border-style:dashed; background:linear-gradient(180deg,#111b18,#080d0b)}
.timeline-card.alumni{opacity:.9}
.owner{color:var(--flag); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; margin-top:5px}
.title-board{background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); overflow:hidden}
.title-row{display:grid; grid-template-columns:1fr auto; gap:12px; align-items:center; padding:12px 14px; border-top:1px solid var(--line)}
.title-row:first-child{border-top:none}
.title-row.muted{background:rgba(255,255,255,.025)}
.title-row b{font-size:13.5px}
.title-row span{display:block; color:var(--chalk-dim); font-size:12px; margin-top:2px}
.title-count{font-family:'Bebas Neue',Impact,sans-serif; color:var(--flag); font-size:30px; line-height:1; min-width:42px; text-align:center; white-space:nowrap}
.standings-wrap{background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); overflow:hidden}
.standings-tools{display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; padding:12px 14px; border-bottom:1px solid var(--line); background:#09140f}
.standings-tools .legend{display:flex; gap:8px; flex-wrap:wrap}
.legend .tag{background:#0a2c21}
.legend .legend-champion{background:var(--gold); border-color:var(--gold); color:#1a1400}
.standings-view-toggle{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px}
.standings-view-toggle button{border:1px solid var(--line); background:#0a2c21; color:var(--chalk-dim); border-radius:8px; padding:9px 12px; cursor:pointer; font-weight:800; font-size:11px; letter-spacing:.08em; text-transform:uppercase}
.standings-view-toggle button.on{background:var(--flag); color:#08210f; border-color:var(--flag)}
.standings-table th button{appearance:none; min-width:44px; min-height:44px; border:0; background:transparent; color:inherit; font:inherit; letter-spacing:inherit; padding:8px 4px; cursor:pointer}
.standings-table th[aria-sort="ascending"] button:after{content:" ↑"}.standings-table th[aria-sort="descending"] button:after{content:" ↓"}
.standings-table{min-width:840px}
.standings-table tr.champion-row td{background:rgba(62,224,106,.055)}
.standings-table tr.punishment-row td{background:rgba(232,59,47,.09); border-top-color:rgba(232,59,47,.34)}
.standings-table tbody tr:hover td{background:rgba(255,255,255,.025)}
.punishment-banner{display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:linear-gradient(90deg,rgba(232,59,47,.22),rgba(38,19,17,.9)); border:1px solid rgba(232,59,47,.48); border-left:5px solid var(--bpsa-red); border-radius:8px; padding:14px 16px; box-shadow:var(--shadow)}
.punishment-banner strong{font-family:'Bebas Neue',Impact,sans-serif; color:#fff; font-size:22px; letter-spacing:.05em}
.punishment-banner span{color:#d8b6b2; font-size:13px; line-height:1.5; flex:1}.punishment-banner b{color:#fff}
.chair-banner{display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:linear-gradient(90deg,#132a35,#0f2430); border:1px dashed var(--flag); border-radius:8px; padding:14px 16px; box-shadow:var(--shadow)}
.chair-banner strong{font-family:'Bebas Neue',Impact,sans-serif; color:var(--flag); font-size:22px; letter-spacing:.06em}.chair-banner span{color:var(--chalk-dim); font-size:13px}
.deadline-banner{display:flex; align-items:center; gap:14px; flex-wrap:wrap; background:linear-gradient(90deg,rgba(245,196,81,.14),rgba(38,30,17,.9)); border:1px solid rgba(245,196,81,.4); border-left:5px solid var(--gold); border-radius:8px; padding:14px 16px; box-shadow:var(--shadow); margin-top:18px}
.deadline-banner strong{font-family:'Bebas Neue',Impact,sans-serif; color:var(--gold); font-size:18px; letter-spacing:.05em}
.deadline-banner span{color:var(--chalk-dim); font-size:13px; line-height:1.5}
.division-board{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px}
.division-card{background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; box-shadow:var(--shadow); overflow:hidden}
.division-head{display:flex; justify-content:space-between; align-items:center; gap:10px; background:#0a2c21; border-bottom:1px solid var(--line); padding:13px 14px}.division-head h3{font-family:'Bebas Neue',Impact,sans-serif; font-size:20px; font-weight:400; letter-spacing:.06em; margin:0}.division-head span{color:var(--flag); font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase}
.member-stack{display:grid}.member-row{display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; min-height:78px; padding:12px 14px; border-top:1px solid var(--line)}.member-row:first-child{border-top:0}.member-row div{min-width:0}.member-row b{display:block; font-size:13.5px; color:var(--chalk)}.member-row span:not(.dm-chip){display:block; color:var(--chalk-dim); font-size:12px; line-height:1.35; margin-top:4px; overflow-wrap:anywhere}.member-row>strong{font-family:'Bebas Neue',Impact,sans-serif; color:var(--flag); font-size:20px; letter-spacing:.05em}.dm-chip{display:inline-block; color:#08210f; background:var(--flag); border-radius:5px; padding:2px 5px; font-size:8px; letter-spacing:.08em; vertical-align:middle}
.team-cell{min-width:280px}
.record{font-weight:800; color:var(--chalk)}
.rank-badge{display:inline-grid; place-items:center; min-width:26px; height:26px; border-radius:7px; background:#08160f; border:1px solid var(--line); color:var(--chalk)}
.foot{color:#6f9083; font-size:11.5px; text-align:center; margin-top:44px; letter-spacing:.03em}
.team-link{color:inherit; text-decoration:none; border-bottom:1px dashed rgba(245,196,81,.45); cursor:pointer}
.team-link:hover,.team-link:focus{color:var(--gold); border-bottom-color:var(--gold)}
.roster-pop{position:absolute; z-index:40; width:230px; max-width:calc(100vw - 24px); max-height:min(560px,calc(100vh - 24px)); overflow-y:auto; overscroll-behavior:contain; background:linear-gradient(180deg,rgba(15,32,24,.98),rgba(8,20,15,.98)); border:1px solid var(--line); border-radius:8px; box-shadow:0 14px 30px rgba(0,0,0,.4); padding:10px 12px; font-size:12px;}
.roster-pop b{display:block; font-size:12.5px; margin-bottom:6px; color:var(--gold)}
.roster-pop-row{display:flex; align-items:center; gap:8px; padding:3px 0; color:var(--chalk-dim)}
.roster-pop-slot{flex:none; width:36px; font:800 10px/1 Inter,sans-serif; letter-spacing:.06em; color:var(--flag)}
.roster-pop-row span:not(.roster-pop-slot){flex:1; color:var(--chalk)}
.roster-pop-pts{flex:none!important; color:var(--chalk-dim)!important; font-variant-numeric:tabular-nums}
.roster-pop-empty{display:block; color:var(--chalk-dim); font-size:11.5px}
@media (max-width:640px){.roster-pop{display:none}}
.injury-tag{display:inline-block; font:800 9px/1 Inter,sans-serif; letter-spacing:.04em; color:#fff; background:var(--bpsa-red); border-radius:4px; padding:2px 4px; vertical-align:middle}
.team-logo{width:22px; height:22px; border-radius:50%; object-fit:cover; vertical-align:middle; margin-right:6px; background:#08160f; border:1px solid var(--line); flex:none}
.team-logo.lg{width:44px; height:44px; margin-right:10px}
.rank-move{font-size:10px; font-weight:800; margin-left:4px}
.rank-move.up{color:var(--flag)}
.rank-move.down{color:var(--bpsa-red)}
.rank-move.flat{color:var(--chalk-dim)}
.playoff-pct{display:flex; align-items:center; gap:8px; font-variant-numeric:tabular-nums}
.playoff-pct-bar{flex:none; display:inline-block; width:56px; height:6px; border-radius:3px; background:var(--panel-2); overflow:hidden}
.playoff-pct-bar span{display:block; height:100%; border-radius:3px}
.playoff-spark{display:inline-flex; flex:none; margin-left:4px; vertical-align:middle}
.matchup-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.matchup-board.is-empty{display:block}.scoreboard-state h3{margin:10px 0 0}
.matchup-panel{--matchup-accent:var(--gold);position:relative;height:218px;min-width:0;perspective:1200px;isolation:isolate}
.matchup-panel.state-live{--matchup-accent:var(--bpsa-red)}.matchup-panel.state-final{--matchup-accent:var(--flag)}.matchup-panel.state-set{--matchup-accent:#78998b}
.matchup-flipper{position:relative;width:100%;height:100%;transform-origin:center;will-change:transform}
.matchup-face{position:absolute;inset:0;overflow:hidden;border:1px solid rgba(210,240,225,.16);border-top:3px solid var(--matchup-accent);border-radius:4px;background:linear-gradient(145deg,rgba(15,36,26,.99),rgba(5,17,12,.99));box-shadow:0 13px 28px rgba(0,0,0,.36),inset 0 1px rgba(255,255,255,.035)}
.matchup-front{display:block}.matchup-back{display:none;background:linear-gradient(145deg,rgba(11,46,34,.99),rgba(5,19,13,.99))}
.matchup-panel.is-flipped .matchup-front{display:none}.matchup-panel.is-flipped .matchup-back{display:block}
.matchup-panel.is-flip-out .matchup-flipper{animation:matchup-flip-out .18s ease-in forwards}.matchup-panel.is-flip-in .matchup-flipper{animation:matchup-flip-in .18s ease-out forwards}
.matchup-flip-trigger{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;padding:0;border:0;border-radius:4px;background:transparent;cursor:pointer}
.matchup-flip-trigger:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
.matchup-statusline,.matchup-pair,.matchup-probability,.matchup-analytics,.matchup-flip-hint{position:relative;z-index:2;pointer-events:none}
.matchup-statusline{height:32px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 11px;border-bottom:1px solid var(--line);font:800 9px/1 Inter,sans-serif;letter-spacing:.11em;text-transform:uppercase;color:var(--chalk-dim)}
.matchup-statusline b{display:flex;align-items:center;gap:5px;color:var(--matchup-accent);font-size:9px}.matchup-statusline i{width:6px;height:6px;border-radius:50%;background:var(--bpsa-red);box-shadow:0 0 0 0 rgba(232,59,47,.55);animation:matchup-live-pulse 1.6s infinite}
.matchup-pair{display:grid;grid-template-columns:1fr 1fr;height:153px}
.matchup-side{display:flex;flex-direction:column;min-width:0;padding:13px 12px 10px}.matchup-side.home{align-items:flex-end;border-left:1px solid var(--line);text-align:right}
.matchup-team-head{display:flex;align-items:flex-start;gap:8px;width:100%;min-width:0}.matchup-side.home .matchup-team-head{flex-direction:row-reverse}
.matchup-panel .team-logo{width:30px;height:30px;margin:0;border-radius:7px}.matchup-info{min-width:0;flex:1}
.matchup-info .team-link,.matchup-team-name{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;border-bottom:0;font-size:13px;font-weight:800;line-height:1.22}.matchup-info .team-link{position:relative;z-index:3;pointer-events:auto}.matchup-info .team-link:hover,.matchup-info .team-link:focus{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.matchup-info span{display:block;margin-top:3px;overflow:hidden;color:var(--chalk-dim);font-size:10.5px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.matchup-score-block{display:flex;align-items:baseline;gap:7px;margin-top:auto}.matchup-side.away .matchup-score-block{align-self:flex-end}.matchup-side.home .matchup-score-block{align-self:flex-start;flex-direction:row-reverse}
.matchup-score{font-family:'Bebas Neue',Impact,sans-serif;font-size:39px;font-weight:400;line-height:.88;letter-spacing:.025em;color:var(--chalk);font-variant-numeric:tabular-nums}.matchup-score-note{color:var(--chalk-dim);font-size:9px;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.matchup-side.win .matchup-score,.matchup-side.win .team-link,.matchup-side.win .matchup-team-name{color:var(--flag)}
.matchup-vs{position:absolute;top:62%;left:50%;z-index:3;display:grid;place-items:center;width:26px;height:26px;border:1px solid var(--line);border-radius:50%;background:#07130e;color:var(--chalk-dim);font-family:'Bebas Neue',Impact,sans-serif;font-size:11px;letter-spacing:.05em;transform:translate(-50%,-50%)}
.matchup-flip-hint{height:30px;display:flex;align-items:center;justify-content:center;gap:6px;border-top:1px solid var(--line);color:var(--matchup-accent);font:800 9px/1 Inter,sans-serif;letter-spacing:.09em;text-transform:uppercase}.matchup-flip-hint span{font-size:13px}
.matchup-probability{height:43px;padding:7px 11px 6px}.matchup-probability-labels{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px;font-size:9px;color:var(--chalk-dim)}.matchup-probability-labels b{color:var(--chalk);font-size:9px}.matchup-probability-track{height:4px;overflow:hidden;border-radius:999px;background:rgba(62,224,106,.55)}.matchup-probability-track span{display:block;height:100%;background:var(--bpsa-red)}
.matchup-probability.is-pending{display:grid;place-items:center;border-bottom:1px solid var(--line);font:700 9px/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--chalk-dim)}
.matchup-analytics{display:grid;grid-template-columns:1fr 1fr;height:110px}.matchup-analytics-team{display:flex;flex-direction:column;min-width:0;padding:8px 11px}.matchup-analytics-team.home{align-items:flex-end;border-left:1px solid var(--line);text-align:right}.matchup-analytics-name{overflow:hidden;width:100%;font:800 9px/1 Inter,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--matchup-accent);text-overflow:ellipsis;white-space:nowrap}.matchup-analytics-team strong{margin-top:5px;font-family:'Bebas Neue',Impact,sans-serif;font-size:18px;font-weight:400;letter-spacing:.04em}.matchup-analytics-team>span{overflow:hidden;max-width:100%;margin-top:1px;color:var(--chalk-dim);font-size:9.5px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.matchup-analytics-team .matchup-highlight{color:var(--chalk);font-weight:700}
.matchup-roster-link{position:relative;z-index:3;margin-top:auto;color:var(--gold);font:800 9px/1 Inter,sans-serif;letter-spacing:.06em;text-decoration:none;text-transform:uppercase;pointer-events:auto}.matchup-roster-link:hover,.matchup-roster-link:focus{text-decoration:underline;text-underline-offset:3px}
@keyframes matchup-live-pulse{70%{box-shadow:0 0 0 6px rgba(232,59,47,0)}100%{box-shadow:0 0 0 0 rgba(232,59,47,0)}}
@keyframes matchup-flip-out{from{transform:rotateY(0deg) scale(1)}to{transform:rotateY(90deg) scale(.985)}}
@keyframes matchup-flip-in{from{transform:rotateY(-90deg) scale(.985)}to{transform:rotateY(0deg) scale(1)}}
@media (max-width:760px){.matchup-board{grid-template-columns:1fr}.matchup-panel{height:218px}}
@media (max-width:430px){.matchup-side{padding-left:10px;padding-right:10px}.matchup-panel .team-logo{width:27px;height:27px}.matchup-info .team-link,.matchup-team-name{font-size:12px}.matchup-score{font-size:34px}.matchup-score-note{font-size:8px}.matchup-analytics-team{padding-left:9px;padding-right:9px}}
@media (prefers-reduced-motion:reduce){.matchup-panel.is-flip-out .matchup-flipper,.matchup-panel.is-flip-in .matchup-flipper{animation:none}.matchup-statusline i{animation:none}}
.score-strip{height:38px; display:flex; align-items:center; margin:14px 0; overflow:hidden; white-space:nowrap; background:rgba(9,20,15,.92); border:1px solid var(--line); border-radius:8px; box-shadow:0 8px 22px rgba(0,0,0,.28); text-decoration:none; color:inherit}
.score-strip .ss-label{align-self:stretch; display:flex; align-items:center; gap:6px; padding:0 12px; background:var(--flag); color:#08210f; font-family:'Bebas Neue',Impact,sans-serif; font-size:12px; letter-spacing:.14em; text-transform:uppercase; z-index:2}
.score-strip .ss-view{flex:1; overflow:hidden; height:100%}
.score-strip .ss-track{display:inline-flex; align-items:center; width:max-content; height:100%; animation:ss-scroll 55s linear infinite}
.score-strip:hover .ss-track{animation-play-state:paused}
.ss-game{display:inline-flex; align-items:baseline; gap:7px; padding:0 18px; border-right:1px solid rgba(255,255,255,.06); font-size:12.5px}
.ss-team{font-weight:700}
.ss-score{color:#fff; font-variant-numeric:tabular-nums}
.ss-win{color:var(--flag)}
.ss-live{color:var(--bpsa-red); font-weight:800}
.ss-proj-tag{font:800 9px/1 Inter,sans-serif; letter-spacing:.04em; text-transform:uppercase; color:var(--chalk-dim); margin-right:2px}
.ss-vs{color:var(--chalk-dim); font-size:11px}
@keyframes ss-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.score-strip .ss-track{animation:none}.score-strip .ss-view{overflow-x:auto}}
/* background-color, not just the gradient: iOS 26 re-tints the status bar from
   whichever fixed element is on screen, and the gate covers the whole screen on
   every access check. Without it the bar flashes white while the gate is up. */
.gate{position:fixed; inset:0; z-index:2000; background:radial-gradient(1000px 500px at 50% -10%,#123324,#060907 60%); background-color:#0e241a; display:flex; align-items:center; justify-content:center;
  padding:calc(20px + env(safe-area-inset-top)) calc(20px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) calc(20px + env(safe-area-inset-left))}
.gate.hidden{display:none}
.gate.checking .gate-card{max-width:320px}
.gate-card{width:100%; max-width:380px; max-height:calc(100vh - 40px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow:auto; background:linear-gradient(180deg,var(--panel),var(--panel-2)); border:1px solid var(--line); border-radius:8px; padding:26px 22px; box-shadow:var(--shadow); text-align:center}
.gate-card h2{font-family:'Bebas Neue',Impact,sans-serif; letter-spacing:.04em; color:#fff; margin:6px 0 4px; font-size:28px; font-weight:400}
.gate-sub{color:var(--chalk-dim); font-size:13px; line-height:1.5; margin:0 0 16px}
.gate-card input{width:100%; min-height:44px; background:#0a2c21; border:1px solid var(--line); color:var(--chalk); border-radius:8px; padding:11px 12px; font-size:14px; margin-bottom:9px}
.gate-card input[aria-invalid="true"]{border-color:var(--bpsa-red)}
.gate-card button{width:100%; min-height:44px; border:none; border-radius:8px; padding:11px; font-family:'Bebas Neue',Impact,sans-serif; letter-spacing:.06em; font-size:16px; cursor:pointer; margin-bottom:9px; background:var(--flag); color:#08210f}
.gate-card button.gate-oauth{display:flex; align-items:center; justify-content:center; gap:9px; background:#fff; color:#1a1a1a; font-family:Inter,sans-serif; font-weight:600; font-size:14.5px}
.gate-or{display:flex; align-items:center; gap:10px; color:var(--chalk-dim); font-size:11px; text-transform:uppercase; letter-spacing:.14em; margin:6px 0 12px}
.gate-or:before,.gate-or:after{content:""; flex:1; height:1px; background:var(--line)}
.gate-password-exception{margin-top:13px; border-top:1px solid var(--line); padding-top:12px; text-align:left}
.gate-password-exception summary{color:var(--chalk-dim); cursor:pointer; font:600 12.5px/1.4 Inter,sans-serif; text-align:center}
.gate-password-exception summary:hover,.gate-password-exception summary:focus-visible{color:var(--chalk)}
.gate-password-exception .gate-exception-note{color:var(--chalk-dim); font-size:11.5px; line-height:1.45; margin:10px 0; text-align:center}
.gate-err{color:var(--bpsa-red); font-size:12.5px; min-height:16px}
.gate-tag{font-family:'Bebas Neue',Impact,sans-serif; letter-spacing:.2em; color:var(--bpsa-red); font-size:12px; text-transform:uppercase}
.gate-card button.ghost{background:transparent; border:1px solid var(--line); color:var(--chalk-dim); font-size:13px}
@media (max-width:760px){
  .wrap{padding:calc(20px + env(safe-area-inset-top)) calc(15px + env(safe-area-inset-right)) calc(var(--mobile-dock-height) + 34px + env(safe-area-inset-bottom)) calc(15px + env(safe-area-inset-left))}
  .site-top{align-items:flex-start; flex-wrap:wrap}
  .nav-toggle{display:block; font:700 10.5px/1 Inter,system-ui,sans-serif; letter-spacing:.06em; text-transform:uppercase; color:var(--chalk-dim); background:rgba(15,32,24,.72); border:1px solid var(--line); border-radius:8px; padding:8px 11px; cursor:pointer}
  .nav-toggle:hover{color:var(--chalk); border-color:rgba(62,224,106,.55)}
  .nav,.member-nav{display:none; justify-content:flex-start; flex-basis:100%; flex-direction:column; flex-wrap:nowrap; align-items:stretch; margin-top:10px}
  .nav.open,.member-nav.open{position:fixed;display:flex;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:calc(var(--mobile-dock-height) + 18px + env(safe-area-inset-bottom));z-index:950;max-height:min(68vh,560px);overflow-x:hidden;overflow-y:auto;margin:0;padding:10px;background:rgba(7,18,13,.98);border:1px solid rgba(159,184,172,.24);border-radius:16px;box-shadow:0 18px 52px rgba(0,0,0,.78);overscroll-behavior:contain;animation:mobile-sheet-in var(--motion-base) var(--ease-standard) both}
  @keyframes mobile-sheet-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
  .nav-toggle{min-width:44px;min-height:44px}
  .nav a,.nav button,.member-nav a,.member-nav button{width:100%; min-height:44px; text-align:left}
  /* Groups become tap-to-expand accordions in the drawer */
  .nav-group{display:block; width:100%}
  .nav-group-head{display:flex; width:100%; justify-content:space-between; border-radius:8px}
  .nav-caret-icon{width:11px; height:7px; flex:0 0 auto}
  .nav-group.open .nav-sub{display:flex}
  .nav-sub{position:static; min-width:0; width:100%; margin:5px 0 0; padding:3px 0 3px 12px;
    background:none; border:none; border-left:2px solid rgba(62,224,106,.35); border-radius:0; box-shadow:none}
  .nav-group::after{display:none}
  /* Account cluster stacks under the links */
  .nav-account{display:flex; width:100%; min-width:0; margin:8px 0 0; padding:10px 0 0;
    border-left:none; border-top:1px solid var(--line); flex-direction:column; align-items:stretch}
  .preview-scope-label{width:100%; justify-content:center; min-height:36px}
  .nav-account .account-trigger{display:flex; width:100%; min-height:44px; justify-content:space-between; border-radius:8px}
  .nav-account .signin-id{max-width:none; white-space:nowrap}
  .account-panel{position:static; width:100%; min-width:0; max-width:100%; max-height:none; overflow:visible; margin-top:7px; box-shadow:none}
  .member-nav a,.member-nav button,.mini-nav a,.mini-nav button{display:flex;align-items:center;min-height:44px}
  :where(.filterbar,.standings-view-toggle,.tabs,.status-grp,.vote-grp,.filter-chips,.command-actions) button,
  :where(.pager,.addbar,.editor .row) button,.action-link,.chk-del{min-height:44px}
  .signin-id{max-width:none; white-space:normal; padding:6px 2px}
  input,select,textarea{font-size:16px}
  .hero,.draft-grid{grid-template-columns:1fr}
  .home-brand-showcase{grid-template-columns:1fr;gap:2px;min-height:0;padding:22px;text-align:center}
  .home-brand-showcase img{grid-row:1;height:min(72vw,310px)}
  .home-brand-copy{grid-row:2;justify-items:center}
  .home-brand-copy>span:last-child{max-width:420px}
  .home-brand-showcase figcaption{grid-row:3;margin-top:12px;text-align:center}
  .command-grid{grid-template-columns:1fr}
  .control-strip{grid-template-columns:1fr}
  .timeline:before{left:72px}
  .timeline-item{grid-template-columns:62px 1fr; gap:22px}
  .timeline-year{min-width:58px; height:32px; font-size:15px}
  .timeline-card:before{left:-28px}
  .feature-grid{grid-template-columns:1fr}
  .metric-grid,.countdown{grid-template-columns:repeat(2,1fr)}
  .profile-id-grid,.profile-categories{grid-template-columns:1fr}
  .install-strip{grid-template-columns:auto minmax(0,1fr) auto}
  .install-strip-action{grid-column:1/3; width:100%}
  .install-strip-dismiss{grid-column:3; grid-row:1}
  .draft-order{grid-template-columns:repeat(2,minmax(0,1fr))}
  .division-board{grid-template-columns:1fr}
  .mobile-dock[hidden]{position:fixed;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));z-index:900;height:var(--mobile-dock-height);padding:6px;background:rgba(7,18,13,.94);border:1px solid rgba(159,184,172,.22);border-radius:16px;box-shadow:0 18px 42px rgba(0,0,0,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .mobile-dock-link{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;border:0;border-radius:11px;background:transparent;color:#78998b;text-decoration:none;font:800 8.5px/1 Inter,system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:color var(--motion-fast),background var(--motion-fast),transform var(--motion-fast)}
  .mobile-dock-preview{display:none}
  .mobile-dock-link svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .mobile-dock-link.on{color:var(--flag);background:rgba(62,224,106,.1)}
  .mobile-dock-link[aria-expanded="true"]{color:var(--chalk);background:rgba(159,184,172,.12)}
  .mobile-dock-badge{position:absolute;top:4px;left:calc(50% + 6px);display:grid;place-items:center;min-width:16px;height:16px;padding:0 4px;border:2px solid #07120d;border-radius:999px;background:var(--bpsa-red);color:#fff;font:800 8px/1 Inter,sans-serif}
  .mobile-dock-badge[hidden]{display:none}
  html[data-bpsa-page-scope="limited-preview"] .mobile-dock[hidden]{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))}
  html[data-bpsa-page-scope="limited-preview"] .mobile-dock-link:not(.mobile-dock-preview):not([data-mobile-nav="more"]){display:none}
  html[data-bpsa-page-scope="limited-preview"] .mobile-dock-preview{display:flex}
  .ui-toast{bottom:calc(var(--mobile-dock-height) + 22px + env(safe-area-inset-bottom))}
}
@media (max-width:520px){
  .section-head{align-items:flex-start;flex-wrap:wrap;gap:6px 10px}
  .section-head .rule{margin-top:16px}
  .section-head .note{flex-basis:100%;white-space:normal;line-height:1.4}
  .ops-item{grid-template-columns:auto minmax(0,1fr);align-items:start}
  .ops-item>div:nth-child(2){min-width:0}
  .ops-item .state{grid-column:2;justify-self:start}
  .admin-bar{align-items:flex-start;flex-wrap:wrap}
  .admin-bar button{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
/* ---------- Soft Era mode (Konami, see site.js) ----------
   Recolors through the design tokens rather than a `filter` on a container:
   the gate and the account panel are position:fixed, and a filtered ancestor
   would become their containing block and move them. Tokens have no such
   side effect, and the two hardcoded background washes are overridden below. */
:root.soft-era{
  --turf:#3a332c; --panel:#1e1a15; --panel-2:#161310; --steel:#141110; --steel-2:#1b1714;
  --chalk:#e9e3d6; --chalk-dim:#a89e8c; --line:rgba(235,225,200,.13);
  --bpsa-green:#9db089; --bpsa-red:#b68d79; --flag:#9db089; --gold:#c9b98c; --blue:#8fa3b5;
}
:root.soft-era body{
  background:
    linear-gradient(180deg,rgba(12,10,8,.28),rgba(12,10,8,.78)),
    repeating-linear-gradient(90deg,transparent 0 78px,var(--line) 78px 79px),
    radial-gradient(1000px 520px at 15% -8%,rgba(182,141,121,.18),transparent 52%),
    radial-gradient(1100px 620px at 80% -10%,rgba(157,176,137,.16),transparent 54%),
    radial-gradient(1200px 600px at 50% -8%,#2b251e 0%,#1a1611 45%,#0a0806 100%);
}
:root.soft-era .brand-mark,:root.soft-era .account-crest{filter:grayscale(.85) sepia(.35)}
/* The active palette arrives behind one continuous liquid veil. backdrop-filter
   lets the rendered page visibly change underneath the advancing wash; the SVG
   supplies a single broad wave instead of a row of separate drips. */
.soft-era-veil{
  --soft-veil:rgba(91,86,72,.7);
  position:fixed;left:0;top:0;width:100%;height:0;z-index:3900;pointer-events:none;
  background:rgba(46,40,32,.3);
  -webkit-backdrop-filter:grayscale(.58) sepia(.35) saturate(.72);
  backdrop-filter:grayscale(.58) sepia(.35) saturate(.72);
  will-change:height,opacity;
}
.soft-era-veil-edge{
  position:absolute;left:0;top:100%;width:100%;height:92px;
  color:var(--soft-veil);filter:drop-shadow(0 -8px 16px rgba(201,185,140,.16));
}
.soft-era-veil-edge path{fill:currentColor}
.soft-era-veil::after{
  content:"";position:absolute;left:0;right:0;bottom:-18px;height:36px;opacity:.42;
  background:linear-gradient(180deg,rgba(201,185,140,.24),transparent);
  filter:blur(7px);
}
.soft-era-veil.settled{opacity:0;transition:opacity .45s ease}
/* A moving full-screen backdrop filter is expensive and unreliable on mobile
   WebKit. The opaque wash preserves the same visual beat without forcing a
   filtered repaint on every animation frame. */
@media (hover:none) and (pointer:coarse){
  .soft-era-veil{
    background:rgba(46,40,32,.52);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
}
/* The press target for the touch entrance. Inherits everything from .foot so it
   is invisible until held; touch-action/callout/user-select stop iOS turning a
   long press into a text selection or share menu. */
.soft-era-key{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}
@media (hover:none) and (pointer:coarse){.soft-era-key{touch-action:none}}
.soft-era-key.holding{color:var(--flag);transition:color .5s ease}
.soft-era-toast{position:fixed;left:50%;bottom:calc(26px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:4000;margin:0;
  padding:11px 18px;border:1px solid var(--line);border-radius:10px;background:rgba(20,17,14,.95);
  color:var(--chalk);font-family:'Bebas Neue',Impact,sans-serif;letter-spacing:.16em;font-size:14px;
  text-transform:uppercase;box-shadow:var(--shadow);animation:softEraToastIn .3s ease both}
@keyframes softEraToastIn{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}

/* ---------- Repeat-champion gleam (champions.html) ----------
   The sweep is a background-position animation inside a card-sized ::after
   rather than a wide element sliding past. `overflow:hidden` would have been
   the obvious way to contain a sliding element, but .timeline-card::before is
   the connector dot at left:-29px — outside the card — so clipping the card
   would delete the dot. Hover/focus only, so it stays a desktop discovery; the
   global prefers-reduced-motion rule already neutralises the animation. */
.timeline-card.repeat::after{content:"";position:absolute;inset:0;border-radius:8px;pointer-events:none;opacity:0;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);
  background-size:250% 100%;background-position:-100% 0}
.timeline-card.repeat:hover::after,.timeline-card.repeat:focus-within::after{animation:champGleam .9s cubic-bezier(.5,0,.5,1) forwards}
@keyframes champGleam{0%{background-position:-100% 0;opacity:0}15%{opacity:1}85%{opacity:1}100%{background-position:200% 0;opacity:0}}

/* Persistent companion for the film-to-site tour. The state is tab-scoped,
   so every stop knows its place without changing member data or Firestore. */
.site-tour-companion{position:fixed;z-index:3500;left:max(14px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));width:min(430px,calc(100% - 28px));box-sizing:border-box;padding:15px;border:1px solid rgba(245,196,81,.48);border-radius:13px;background:linear-gradient(145deg,rgba(5,19,13,.98),rgba(15,45,31,.98));color:var(--chalk);box-shadow:0 20px 60px rgba(0,0,0,.62)}
.site-tour-companion-progress{margin-bottom:7px;color:var(--gold);font:800 10px/1 Inter,system-ui,sans-serif;letter-spacing:.11em;text-transform:uppercase}
.site-tour-companion strong{display:block;font:400 30px/1 'Bebas Neue',Impact,sans-serif;letter-spacing:.04em;text-transform:uppercase;color:var(--chalk)}
.site-tour-companion p{margin:5px 0 12px;color:var(--chalk-dim);font-size:12px;line-height:1.42}
.site-tour-companion-actions{display:flex;gap:7px;flex-wrap:wrap}
.site-tour-companion button{min-height:36px;border:1px solid rgba(159,184,172,.3);border-radius:8px;padding:8px 10px;background:rgba(2,7,5,.5);color:var(--chalk);font:800 9px/1 Inter,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
.site-tour-companion button.primary{border-color:rgba(62,224,106,.55);background:rgba(62,224,106,.16);color:var(--flag)}
.site-tour-companion button:hover,.site-tour-companion button:focus-visible{border-color:var(--gold)}
@media(max-width:760px){.site-tour-companion{bottom:calc(84px + env(safe-area-inset-bottom));padding:13px}.site-tour-companion-actions button{flex:1 1 120px}}

.member-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.member-action-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:10px;background:rgba(12,58,44,.34);text-decoration:none;color:var(--chalk);transition:border-color .15s ease,background .15s ease}.member-action-card:hover{border-color:rgba(62,224,106,.55);background:rgba(12,58,44,.62)}.action-step{font:800 11px/1 Inter,system-ui,sans-serif;color:var(--gold);letter-spacing:.08em}.action-copy{min-width:0}.action-copy span,.action-copy small{display:block;color:var(--chalk-dim);font-size:11px;line-height:1.35}.action-copy b{display:block;margin:2px 0;color:var(--chalk);font-size:14px;overflow-wrap:anywhere}.action-state{font:800 9px/1 Inter,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--chalk-dim)}.action-state.ready{color:var(--flag)}.action-state.hot{color:var(--bpsa-red)}.keeper-board{display:grid;gap:7px;margin-top:13px}.keeper-roster-note{margin:8px 0 0;color:var(--chalk-dim);font-size:10px}.keeper-roster-note.error{color:var(--gold)}.keeper-roster-note button{margin-left:4px;border:0;padding:0;color:var(--flag);background:transparent;font:800 10px/1 Inter,system-ui,sans-serif;text-decoration:underline;cursor:pointer}.keeper-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.keeper-row:first-child{border-top:0}.keeper-row>div:first-child{flex:1 1 180px;min-width:180px}.keeper-row b{display:block;font-size:12px;color:var(--chalk)}.keeper-row span{display:block;margin-top:2px;font-size:10px;color:var(--chalk-dim);overflow-wrap:anywhere}.keeper-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;flex:1 1 auto}.keeper-player-select{width:190px;max-width:100%;font:600 11px/1.2 Inter,system-ui,sans-serif;border:1px solid var(--line);border-radius:6px;padding:7px 8px;color:var(--chalk);background:rgba(6,21,14,.9)}.keeper-player-select:disabled{color:var(--chalk-dim);opacity:.75}.keeper-names-view{font-size:10px;color:var(--chalk-dim)}.keeper-names-view b{color:var(--gold);font:800 9px/1 Inter,sans-serif;letter-spacing:.05em;text-transform:uppercase;margin-right:4px}.keeper-select{font:800 10px/1 Inter,system-ui,sans-serif;letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line);border-radius:6px;padding:7px;color:var(--chalk);background:rgba(6,21,14,.9)}.keeper-status{font:800 10px/1 Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--table)}.keeper-status.submitted{color:var(--gold)}.keeper-status.confirmed{color:var(--flag)}@media (max-width:650px){.member-action-grid{grid-template-columns:1fr}.member-action-card{padding:12px}.action-copy b{font-size:13px}.keeper-controls{justify-content:flex-start;width:100%}.keeper-player-select{flex:1 1 180px;width:auto;min-width:0}}

/* Faded shield watermark behind every preview page — subtle brand presence
   without competing with content. Homepage already has the full showcase,
   so we skip it there. */
body:not(.home-brand-page)::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background:url("../assets/r/d9111a6a.png") center center/min(560px,55vw) no-repeat;
  opacity:.09;
  mix-blend-mode:screen;
  pointer-events:none;
}
main.wrap{position:relative; z-index:1}
