:root{--bg:#0c2b21;--bg-2:#0a241b;--card:#0c2b2199;--ink:#f3ecdc;--muted:#9db3a7;--gold:#d4b061;--gold-hi:#e8c878;--gold-pale:#f1dfa6;--line:#d4b06173;--line-soft:#d4b06140;--danger:#e0a08a;--font-body:"Instrument Sans", "Noto Sans TC", system-ui, -apple-system, sans-serif;--font-display:"Bodoni Moda", "Didot", "Bodoni MT", Georgia, serif;--radius:6px;--max:560px}*{box-sizing:border-box}html{background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-body);color:var(--ink);background-color:var(--bg);-webkit-font-smoothing:antialiased;background-image:radial-gradient(120% 55% at 50% -12%,#d4b06133,#0000 62%);background-repeat:no-repeat;margin:0;font-size:16px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--gold-hi)}:focus-visible{outline:2px solid var(--gold-pale);outline-offset:2px}.app{max-width:var(--max);flex-direction:column;min-height:100dvh;margin:0 auto;padding-bottom:96px;display:flex}.main{flex-direction:column;gap:10px;padding:0 18px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:12px;padding:20px 22px 0;display:flex}.brand{align-items:baseline;gap:10px;min-width:0;display:flex}.brand__primary{font-family:var(--font-display);color:var(--gold-hi);white-space:nowrap;font-size:22px;font-style:italic;font-weight:500}.brand__alt{color:var(--muted);letter-spacing:.1em;white-space:nowrap;font-size:12px}html[lang=zh-Hant] .brand__primary{font-family:var(--font-body);letter-spacing:.08em;font-size:20px;font-style:normal;font-weight:600}.lang{letter-spacing:.12em;border:1px solid #d4b06199;border-radius:999px;flex:none;font-size:11px;font-weight:600;display:flex;overflow:hidden}.lang__opt{min-height:32px;color:var(--gold-hi);cursor:pointer;background:0 0;border:0;padding:7px 11px}.lang__opt.is-on{background:var(--gold);color:var(--bg)}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);align-items:center;gap:10px;font-size:11px;display:inline-flex}.eyebrow--sm{letter-spacing:.2em;font-size:10px}.display{font-family:var(--font-display);font-weight:600}html[lang=zh-Hant] .display{font-family:var(--font-body);font-weight:600}.h1{margin:0;font-size:40px;line-height:1}.h2{margin:0;font-size:24px;line-height:1.1}.lede{margin:0;font-size:18px;line-height:1.4}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.num{font-variant-numeric:tabular-nums}.is-you{color:var(--gold-hi);font-weight:600}.round-head{flex-direction:column;gap:6px;padding:24px 4px 8px;display:flex}.round-head__row{justify-content:space-between;align-items:center;gap:10px;margin-top:6px;font-size:14px;display:flex}.who{cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;min-height:36px;padding:4px 0;font-size:13px;display:flex}.who__change{color:var(--muted);font-size:11px;text-decoration:underline}.avatar{border:1px solid var(--gold);width:26px;height:26px;font-family:var(--font-display);color:var(--gold-hi);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.foil{border:1px solid var(--gold);border-radius:var(--radius);background:linear-gradient(135deg,#ffffff1f 0%,#ffffff05 28%,#d4b06129 52%,#ffffff08 78%,#d4b0611a 100%);padding:5px;animation:.5s both rise;box-shadow:0 12px 30px #00000061}.foil--dim{opacity:.72}.foil__inner{border:1px solid var(--line);background:var(--card);border-radius:4px;flex-direction:column;gap:10px;padding:12px 14px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fixture__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tag{letter-spacing:.14em;text-transform:uppercase;color:var(--gold-hi);align-items:center;gap:5px;font-size:10px;display:inline-flex}.teams{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.team{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.team__name{text-align:center;text-wrap:balance;font-size:13px;font-weight:600}.crest{border:1.5px solid var(--gold);width:44px;height:44px;font-family:var(--font-display);color:var(--gold-hi);background:radial-gradient(circle at 35% 30%,#e8c87847,#0000 62%);border-radius:50%;justify-content:center;align-items:center;font-size:21px;display:flex}.vs{text-align:center;color:var(--gold);font-size:22px;font-style:italic;font-weight:500}.score{color:var(--ink);letter-spacing:.04em;font-size:26px;font-style:normal}.picks{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.pick{height:44px;color:var(--gold-hi);letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid #d4b06180;border-radius:999px;font-size:13px;font-weight:600;transition:background .15s,color .15s}.pick.is-on{background:var(--gold);border-color:var(--gold);color:var(--bg)}.pick--dim{color:var(--muted);border-color:#9db3a759}.pick--dim.is-on{color:var(--ink);background:#9db3a759;border-color:#0000}.pick:disabled{cursor:default}.details{flex-direction:column;gap:8px;display:flex}.details__body{flex-direction:column;gap:10px;display:flex}.linkbtn{min-height:32px;color:var(--gold-hi);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:12px}.linkbtn--danger{color:var(--danger)}.scores{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.scores--left{justify-content:flex-start}.dash{color:var(--gold);font-size:20px}.status{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.status__left{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.status__right{color:var(--gold-hi);text-align:right;flex:1}.stamp{color:var(--gold-hi);animation:.35s cubic-bezier(.2,.9,.3,1.4) both thump}@keyframes thump{0%{opacity:0;transform:scale(1.35)}60%{opacity:1;transform:scale(.96)}to{transform:scale(1)}}.note{color:var(--muted);margin:0;font-size:13px;font-style:italic}.input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--ink);background:#00000040;border-radius:4px;padding:10px 12px}.input--num{text-align:center;font-variant-numeric:tabular-nums;width:64px;font-size:20px}.input--password{letter-spacing:.18em;font-size:20px}.input--color{flex:none;width:56px;padding:4px}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px;padding-right:36px}.field{flex-direction:column;gap:6px;display:flex}.field__label{color:var(--muted);font-size:12px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);min-height:36px;color:var(--gold-hi);cursor:pointer;background:0 0;border-radius:999px;padding:6px 12px;font-size:12px}.chip.is-on{background:var(--gold);color:var(--bg)}.btn{border:1px solid var(--gold);min-height:44px;color:var(--gold-hi);letter-spacing:.04em;cursor:pointer;background:0 0;border-radius:999px;padding:10px 18px;font-size:13px;font-weight:600}.btn--primary{background:var(--gold);color:var(--bg)}.btn--ghost{border-color:var(--line)}.btn--sm{min-height:36px;padding:6px 14px;font-size:12px}.btn--block{width:100%}.btn:disabled{opacity:.6;cursor:default}.stack{flex-direction:column;gap:10px;display:flex}.form-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.inline-form{gap:8px;display:flex}.check{color:var(--muted);align-items:center;gap:6px;min-height:36px;font-size:12px;display:inline-flex}.check input{accent-color:var(--gold);width:18px;height:18px}.list{flex-direction:column;display:flex}.row{border-bottom:1px dotted var(--line-soft);align-items:center;gap:10px;padding:9px 0;font-size:14px;display:flex}.row:last-child{border-bottom:0}.row--head{padding-bottom:4px}.row--separated{border-top:1px dotted var(--gold);margin-top:6px;padding-top:12px}.row__name{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.dot{border-radius:50%;flex:none;width:10px;height:10px}.badge{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);border:1px solid var(--line);white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:9px}.rank{width:1.6em;color:var(--muted);flex:none}.col{text-align:right;width:3.2em;color:var(--muted);flex:none}.pts{font-family:var(--font-display);color:var(--gold-hi);text-align:right;flex:none;min-width:2.4em;font-size:20px}.pts--head{font-family:var(--font-body);color:var(--muted);font-size:12px}.pts--sm{min-width:2em;font-size:16px}.pts--zero{color:var(--muted)}.cell{align-items:center;gap:10px;display:inline-flex}.cell__pick,.call__pick{color:var(--muted);align-items:center;gap:4px;display:inline-flex}.cell__pick.is-right,.call__pick.is-right{color:var(--gold-hi)}.scoreline{grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;font-size:15px;font-weight:600;display:grid}.scoreline__team--away{text-align:right}.scoreline__score{color:var(--gold-hi);font-size:24px;font-style:italic;font-weight:500}.strip{text-align:center;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.strip__side{flex-direction:column;align-items:center;gap:2px;display:flex}.strip__num{font-family:var(--font-display);color:var(--gold-hi);font-size:32px;line-height:1}.bars{flex-direction:column;gap:8px;display:flex}.bar{grid-template-columns:minmax(0,1.2fr) minmax(0,2fr) auto;align-items:center;gap:10px;font-size:13px;display:grid}.bar__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bar__track{background:#0000004d;border-radius:999px;height:8px;display:block;overflow:hidden}.bar__fill{background:linear-gradient(90deg, var(--gold), var(--gold-hi));height:100%;display:block}.call{border-bottom:1px dotted var(--line-soft);flex-direction:column;gap:3px;padding:10px 0;display:flex}.call:last-child{border-bottom:0}.call__top{justify-content:space-between;align-items:center;display:flex}.call__match{font-size:14px;font-weight:600}.picker{flex-direction:column;gap:8px;display:flex}.picker__btn{border:1px solid var(--line);min-height:52px;color:var(--ink);cursor:pointer;text-align:left;background:#0003;border-radius:4px;align-items:center;gap:12px;padding:8px 12px;font-size:15px;display:flex}.picker__name{flex:1}.admin-row{border-bottom:1px dotted var(--line-soft);flex-direction:column;gap:6px;padding:10px 0;display:flex}.admin-row__main{gap:8px;display:flex}.admin-row__opts{flex-wrap:wrap;align-items:center;gap:4px 14px;display:flex}.admin-fixture{border-bottom:1px dotted var(--line-soft);flex-direction:column;gap:8px;padding:12px 0;display:flex}.nav{max-width:var(--max);background:var(--bg-2);padding:8px 8px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #d4b06159;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.nav__item{letter-spacing:.06em;min-height:44px;color:var(--muted);flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-size:11px;text-decoration:none;display:flex}.nav__item.is-on{color:var(--gold-hi)}.foot{color:var(--muted);justify-content:center;align-items:center;gap:12px;padding:18px;font-size:12px;display:flex}.foot a,.foot button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.gate{min-height:100dvh;max-width:var(--max);flex-direction:column;margin:0 auto;display:flex}.gate__wrap{flex:1;justify-content:center;align-items:center;padding:24px 18px 48px;display:flex}.gate__card{border:1px solid var(--gold);background:var(--card);border-radius:4px;flex-direction:column;gap:14px;width:100%;max-width:520px;padding:28px 24px 22px;animation:.5s both rise;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 30px #00000061}.gate__bar{background:linear-gradient(90deg, #c08a4a, var(--gold-hi));height:4px;position:absolute;top:0;left:0;right:0}.gate__title{margin:4px 0 0;font-size:30px;line-height:1.1}.gate__msg{min-height:1.4em;color:var(--gold-hi);margin:0;font-size:14px}.splash{flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:40vh;padding:24px;display:flex}@media (prefers-reduced-motion:reduce){.foil,.gate__card,.stamp{animation:none}.pick{transition:none}}.crest--img{box-sizing:border-box;object-fit:contain;border:1.5px solid var(--gold);background:#f3ecdc;border-radius:50%;padding:5px;display:block}.nav--5{grid-template-columns:repeat(5,minmax(0,1fr))}.nav--5 .nav__item{letter-spacing:.04em;font-size:10px}.round-nav{align-items:center;gap:8px;display:flex}.round-nav .eyebrow{text-align:center;letter-spacing:.16em;flex:1;justify-content:center;font-size:10px}.round-nav__btn{border:1px solid var(--line);width:36px;height:36px;color:var(--gold-hi);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.round-nav__btn:disabled{opacity:.3;cursor:default}.sched{flex-direction:column;display:flex}.sched__row{border-bottom:1px dotted var(--line-soft);flex-direction:column;gap:4px;padding:9px 0;display:flex}.sched__row:last-child{border-bottom:0}.sched__match{grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid}.sched__team{align-items:center;gap:8px;min-width:0;display:flex}.sched__team--home{text-align:right;justify-content:flex-end}.sched__name{text-wrap:balance;font-size:13px;font-weight:600}.sched__mid{font-family:var(--font-display);color:var(--gold);text-align:center;min-width:2.2em;font-size:18px;font-style:italic}.sched__mid.num{color:var(--ink);font-style:normal}.btn--center{align-self:center;align-items:center;text-decoration:none;display:inline-flex}.scoreline__team{align-items:center;gap:8px;min-width:0;display:flex}.scoreline__team--away{justify-content:flex-end}.call__match{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.section{flex-direction:column;gap:10px;margin-top:8px;display:flex}.section__title{font-family:var(--font-display);color:var(--gold-hi);margin:6px 4px 0;font-size:22px;font-weight:600}html[lang=zh-Hant] .section__title{font-family:var(--font-body)}.section__title--hot{color:var(--gold-pale);font-size:26px}.section__title--quiet{color:var(--muted);font-size:18px}.section--faded{opacity:.8}.section--faded .foil{box-shadow:none}.match--featured{border-width:2px;box-shadow:0 0 0 1px #e8c87840,0 14px 36px #00000073}.match--compact .foil__inner{gap:8px;padding:10px 12px}.match__rel{color:var(--gold-hi)}.tag--live{color:#f1dfa6;border:1px solid #f1dfa680;border-radius:999px;padding:1px 7px}.teams--compact .team__name{font-size:12px}.teams--compact .score{font-size:22px}.fold{border:1px solid var(--line-soft);border-radius:var(--radius);background:#00000026}.fold__head{width:100%;min-height:48px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:12px 14px;display:flex}.fold__title{flex:1;font-size:14px;font-weight:600}.fold__cta{color:var(--gold-hi);white-space:nowrap;font-size:12px}.fold__body{flex-direction:column;gap:10px;padding:0 8px 10px;display:flex}.entries{flex-direction:column;gap:8px;display:flex}.entry{border-top:1px dotted var(--line-soft);flex-direction:column;gap:6px;padding:8px 0 0;display:flex}.entry--mine{gap:10px}.entry__row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.entry__who{align-items:center;gap:8px;min-width:5em;font-weight:600;display:inline-flex}.entry__summary{text-align:right;color:var(--gold-hi);flex:1}.mchips{flex-wrap:wrap;gap:6px;display:flex}.mchip{border:1px solid var(--line-soft);letter-spacing:.04em;color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:inline-flex}.mchip.is-hit{color:#0c2b21;background:var(--gold);border-color:var(--gold)}.mchip.is-miss{color:var(--danger);border-color:#e0a08a73}.mchip--profit{font-variant-numeric:tabular-nums}.mchips--implied .mchip{color:var(--gold-hi)}.input--odds{font-variant-numeric:tabular-nums;width:120px}.is-hit{color:var(--gold-hi)}.is-miss{color:var(--danger)}.h2h{text-align:center;gap:12px;display:grid}.h2h__col{flex-direction:column;align-items:center;gap:2px;display:flex}.h2h__line{color:var(--muted);margin-top:4px;font-size:12px}.mtable{border-collapse:collapse;width:100%;font-size:13px}.mtable th{text-align:left;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:0 0 6px;font-size:11px;font-weight:500}.mtable th.num,.mtable td.num{text-align:right}.mtable td{border-top:1px dotted var(--line-soft);padding:7px 0}.mtable__rate{justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.mtable__rate .bar__track{width:64px}.kv{color:var(--muted);flex-wrap:wrap;gap:6px 18px;font-size:13px;display:flex}.kv b{color:var(--ink);font-weight:600}.call__entry{justify-content:space-between;align-items:center;gap:10px;padding-top:4px;font-size:13px;display:flex}.call__entry .entry__who{min-width:5.5em}.call__entry .call__pick{flex-wrap:wrap;flex:1}.mini.is-hit{color:var(--gold-hi)}.mini.is-miss{color:var(--muted)}.admin-hint{border:1px dashed var(--line);color:var(--gold-hi);border-radius:4px;margin:8px 0 0;padding:8px 12px;font-size:13px}.gate{position:relative}.gate>.topbar,.gate>.gate__wrap{z-index:1;position:relative}.gate .gate__card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#081e16e6}.stadium{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.stadium__sky{background:linear-gradient(#03100b 0%,#07201a 40%,#0c2b21 72%);position:absolute;inset:0}.stadium__light{filter:blur(12px);background:radial-gradient(closest-side,#f1dfa652,#0000 72%);width:75vw;height:75vh;animation:7s ease-in-out infinite alternate glow;position:absolute;top:-22vh}.stadium__light--l{left:-25vw}.stadium__light--r{animation-delay:-3.5s;right:-25vw}@keyframes glow{0%{opacity:.55}to{opacity:1}}.stadium__stand{flex-direction:column;justify-content:flex-end;gap:clamp(3px,1.1vh,10px);padding-top:6vh;display:flex;position:absolute;bottom:24%;left:-4%;right:-4%}.stadium__tiers{background:repeating-linear-gradient(#00000047 0 45%,#ffffff08 45% 50%) 0 0/100% clamp(18px,5vh,40px);position:absolute;inset:0}.stadium__row{padding:0 calc(var(--r) * 1%);transform:scale(calc(.7 + var(--r) * .055));transform-origin:bottom;opacity:calc(.45 + var(--r) * .07);justify-content:space-between;display:flex}.fan{--size:clamp(7px, 1.9vw, 17px);--delay:calc((var(--c) * 65ms + var(--r) * .11s + var(--j) * .12s) * -1);width:var(--size);height:calc(var(--size) * 1.9);background:var(--fan-color);animation:3.2s ease-in-out infinite cheer;animation-delay:var(--delay);border-radius:45% 45% 25% 25%;flex:none;position:relative}.fan:before{content:"";background:inherit;border-radius:50%;width:72%;height:72%;position:absolute;top:-48%;left:14%}.fan:after{content:"";background:inherit;opacity:0;width:164%;height:16%;animation:3.2s ease-in-out infinite arms;animation-delay:var(--delay);border-radius:999px;position:absolute;top:-42%;left:-32%;transform:translateY(0)scaleX(.4)}.fan--flag{background:#e8c878}.fan--flag:after{border-radius:2px;height:28%}@keyframes cheer{0%,62%,to{transform:translateY(0)}18%{transform:translateY(calc(var(--size) * -.9))}34%{transform:translateY(0)}}@keyframes arms{0%,6%,44%,to{opacity:0;transform:translateY(0)scaleX(.4)}18%{opacity:1;transform:translateY(calc(var(--size) * -.55)) scaleX(1)}}.flash{opacity:0;background:#fff;border-radius:50%;width:4px;height:4px;animation:5s linear infinite flash;position:absolute;box-shadow:0 0 10px 3px #ffffffb3}@keyframes flash{0%,to{opacity:0}2%{opacity:.95}6%{opacity:0}}.stadium__pitch{transform-origin:bottom;background:repeating-linear-gradient(90deg,#1c5f3a 0 7%,#175330 7% 14%);height:34%;position:absolute;bottom:-6%;left:-35%;right:-35%;transform:perspective(700px)rotateX(58deg);box-shadow:inset 0 60px 80px #0000008c}.stadium__lines{fill:none;stroke:#ffffff8c;stroke-width:.4px;vector-effect:non-scaling-stroke;width:100%;height:100%;position:absolute;inset:0}.stadium__scrim{background:radial-gradient(48% 42% at 50% 52%,#03100b73,#0000 72%),linear-gradient(#03100b59,#0000 30% 70%,#03100b80);position:absolute;inset:0}@media (width<=600px){.gate>.gate__wrap{align-items:flex-start;padding-top:3vh}.fan:nth-child(2n){display:none}.fan{--size:clamp(10px, 3.6vw, 17px)}.stadium__stand{gap:clamp(5px,1.4vh,12px);bottom:22%}}@media (prefers-reduced-motion:reduce){.fan,.fan:after,.flash,.stadium__light{animation:none}.fan:after{opacity:.6;transform:translateY(calc(var(--size) * -.4)) scaleX(1)}}
