:root{--ink:#f1efe7;--muted:#a6b6c8;--line:#a3b9d533;--accent:#ffbc66;--accent-2:#ff9f2e;--navy:#07101c;--card:#0e1b2ce8;--field:#081321;--bad:#ff9d8a;--good:#8fd6ad;--display:'Big Shoulders Display',Impact,'Arial Narrow',sans-serif;--ui:Inter,system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;min-height:100%}
body{background:var(--navy);color:var(--ink);font:15px/1.5 var(--ui);min-height:100vh;min-height:100dvh}
.bg{position:fixed;inset:0;z-index:0;background:radial-gradient(ellipse at 50% 0%,#1b3a6a66,transparent 60%),linear-gradient(180deg,#07101cc4 0%,#07101ce0 55%,#07101cf7 100%),url('/login/office.webp') center/cover no-repeat;}
.bg:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#07101c99,transparent 30%,transparent 70%,#07101c99)}
.wrap{position:relative;z-index:1;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px calc(24px + env(safe-area-inset-bottom));gap:18px}
.brand{margin:0;width:min(560px,100%);line-height:0}
.compact .brand{width:min(400px,100%)}
.brand img{width:100%;height:auto;display:block;filter:drop-shadow(0 14px 34px #000c);-webkit-mask-image:linear-gradient(90deg,transparent 24.5%,#000 27.5%,#000 73.5%,transparent 76.5%),linear-gradient(180deg,#000 83%,transparent 96.5%);mask-image:linear-gradient(90deg,transparent 24.5%,#000 27.5%,#000 73.5%,transparent 76.5%),linear-gradient(180deg,#000 83%,transparent 96.5%);-webkit-mask-composite:source-over;mask-composite:add;-webkit-mask-size:100% 93%,100% 100%;mask-size:100% 93%,100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:top;mask-position:top}
.card{width:min(440px,100%);background:var(--card);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:8px;padding:26px 26px 22px;box-shadow:0 24px 60px #000a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.card-head{margin-bottom:18px}
.eyebrow{display:block;font-size:10px;letter-spacing:.18em;font-weight:700;color:var(--accent)}
h2{font-family:var(--display);font-weight:800;font-size:34px;line-height:1.02;margin:6px 0 0;letter-spacing:.01em;text-transform:uppercase}
h3{font-family:var(--display);font-weight:800;font-size:26px;line-height:1.05;margin:0 0 8px;text-transform:uppercase;letter-spacing:.01em}
.tabs{display:grid;grid-template-columns:1fr 1fr;background:#06101d;border:1px solid var(--line);border-radius:6px;padding:4px;margin-bottom:18px}
.tabs button{appearance:none;border:0;background:none;color:var(--muted);font:600 14px var(--ui);padding:10px 8px;border-radius:4px;cursor:pointer;min-height:42px}
.tabs button[aria-selected=true]{background:#1a2d47;color:var(--ink);box-shadow:inset 0 -2px 0 var(--accent)}
.tabs button:hover:not([aria-selected=true]){color:var(--ink)}
.panel[hidden],[hidden]{display:none!important}
.field{margin-bottom:14px}
label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:#dfe6ef}
.opt{font-weight:500;color:var(--muted);font-size:12px;margin-left:4px}
.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
input{width:100%;font:16px var(--ui);color:var(--ink);background:var(--field);border:1px solid #aac3e040;border-radius:5px;padding:11px 12px;min-height:46px;outline:none;transition:border-color .15s,box-shadow .15s}
input::placeholder{color:#7487a0}
input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ffbc6633}
input[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 3px #ff9d8a22}
#su-invite{text-transform:uppercase;letter-spacing:.08em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
#su-invite::placeholder{letter-spacing:.04em}
.pw{position:relative}
.pw input{padding-right:70px}
.reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);appearance:none;border:0;background:#ffffff0d;color:var(--muted);font:600 12px var(--ui);padding:7px 10px;border-radius:4px;cursor:pointer}
.reveal:hover{color:var(--ink)}
.hint{margin:6px 0 0;font-size:12px;color:var(--muted)}
.err{margin:6px 0 0;font-size:13px;color:var(--bad);min-height:0}
.err:empty{display:none}
.form-err{background:#ff9d8a14;border:1px solid #ff9d8a55;border-radius:5px;padding:9px 11px;margin:0 0 14px}
.meter{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:5px;align-items:center;margin-top:8px}
.meter i{height:4px;border-radius:2px;background:#ffffff1a;transition:background .2s}
.meter span{font-size:12px;color:var(--muted);margin-left:6px;white-space:nowrap}
.meter[data-s='1'] i:nth-child(-n+1){background:#ff8a6b}
.meter[data-s='2'] i:nth-child(-n+2){background:#ffbc66}
.meter[data-s='3'] i:nth-child(-n+3){background:#c9d96a}
.meter[data-s='4'] i{background:var(--good)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;border-radius:5px;border:1px solid transparent;font:700 15px var(--ui);text-decoration:none;cursor:pointer;color:var(--ink)}
.btn.primary{background:linear-gradient(180deg,#ffc77d,var(--accent));color:#1f160a;border-color:#ffd59b}
.btn.primary:hover:not(:disabled){background:linear-gradient(180deg,#ffd394,#ffc475)}
.btn.ghost{background:#ffffff0a;border-color:var(--line)}
.btn.block{width:100%}
.btn:disabled{opacity:.7;cursor:progress}
.btn.busy span:before{content:'';display:inline-block;width:14px;height:14px;margin-right:9px;vertical-align:-2px;border:2px solid #1f160a55;border-top-color:#1f160a;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.link{appearance:none;border:0;background:none;padding:0;color:var(--accent);font:600 13px var(--ui);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.link:hover{color:#ffd59b}
.back{display:block;margin:14px auto 0}
.muted{color:var(--muted);font-size:14px;margin:0 0 16px}
.fine{margin:12px 0 0;text-align:center;font-size:12px;color:var(--muted)}
.note{margin:0 0 16px;padding:11px 13px;border-radius:5px;background:#8fd6ad14;border:1px solid #8fd6ad55;font-size:14px}
.note p{margin:0 0 10px}
.note .row{display:flex;gap:8px;flex-wrap:wrap}
.note .btn{min-height:40px;font-size:14px;padding:9px 14px}
.foot{margin:0;font-size:12px;color:#8a9bb2;text-align:center}
button:focus-visible,a:focus-visible{outline:2px solid #ffc67b;outline-offset:3px}
.nojs{position:fixed;bottom:0;left:0;right:0;margin:0;padding:12px;background:#3a1d17;text-align:center;z-index:2}
@media (max-width:480px){
  .wrap{justify-content:flex-start;padding-top:20px;gap:14px}
  .card{padding:20px 16px 18px;border-radius:7px}
  h2{font-size:29px}
  .compact .brand{width:min(300px,100%)}
}
@media (max-height:760px) and (min-width:481px){.brand{width:min(420px,100%)}.wrap{justify-content:flex-start}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ---- sport picker (four GM Mode lockups; football is live) ---- */
body[data-sport=basketball]{--accent:#f3c64f;--accent-2:#e0a91f;--sport-deep:#3a1650}
body[data-sport=hockey]{--accent:#8fd3ff;--accent-2:#4fb3ec;--sport-deep:#0b2342}
body[data-sport=baseball]{--accent:#d9bd73;--accent-2:#b99a45;--sport-deep:#0f3a25}
body[data-sport=football]{--sport-deep:#0b1f3a}
.bg{transition:background .35s}
body:not([data-sport=football]) .bg{background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--sport-deep) 80%,transparent),transparent 62%),linear-gradient(180deg,#07101cc4 0%,#07101ce0 55%,#07101cf7 100%),url('/login/office.webp') center/cover no-repeat}
.brand img{transition:opacity .18s}
.brand img.swap{opacity:0}
.sports{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;width:min(560px,100%)}
.sport{appearance:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 9px;border-radius:8px;border:1px solid var(--line);background:#0b1726cc;color:var(--muted);font:600 13px/1.2 var(--ui);transition:border-color .15s,background .15s,transform .15s}
.sport img{width:100%;max-width:104px;height:auto;aspect-ratio:160/64;object-fit:contain;filter:saturate(.7) brightness(.85);transition:filter .15s}
.sport:hover{transform:translateY(-1px);border-color:#a3b9d566}
.sport:hover img,.sport[aria-checked=true] img{filter:none}
.sport[aria-checked=true]{border-color:var(--accent);background:#0e1d31;color:var(--ink);box-shadow:0 0 0 1px var(--accent) inset,0 8px 24px #0008}
.sport:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.sname{letter-spacing:.02em}
.badge{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding:2px 6px;border-radius:999px}
.badge.live{color:#062012;background:#8fd6ad}
.badge.soon{color:var(--muted);border:1px solid var(--line)}
.sport-note{width:min(440px,100%);margin:-6px 0 0;text-align:center;color:var(--muted);font-size:13px}
.sport-note b{color:var(--accent)}
@media (max-width:480px){.sports{gap:6px}.sport{padding:8px 3px 7px;font-size:12px}.badge{font-size:8.5px;padding:2px 4px;letter-spacing:.06em}}
@media (max-width:480px){.badge .cs{display:none}}

/* sport tiles: photoreal ball/puck instead of the wordmark */
.sport img.ball{width:58px;height:58px;max-width:none;aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 6px 10px #000a) saturate(.75) brightness(.9);transition:filter .15s,transform .2s}
.sport[aria-checked=true] img.ball,.sport:hover img.ball{filter:drop-shadow(0 8px 14px #000c);transform:translateY(-2px) rotate(-6deg)}
.sport[data-sport=hockey] img.ball{filter:drop-shadow(0 0 1px #c9e7ffaa) drop-shadow(0 0 8px #8fd3ff40) drop-shadow(0 6px 10px #000a) brightness(1.15)}
.sport[data-sport=hockey][aria-checked=true] img.ball,.sport[data-sport=hockey]:hover img.ball{filter:drop-shadow(0 0 1px #e2f3ff) drop-shadow(0 0 12px #8fd3ff66) drop-shadow(0 8px 14px #000c) brightness(1.25)}
@media (max-width:480px){.sport img.ball{width:46px;height:46px}}
