@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/sora-latin-ext-700-normal.DM0oy5s8.woff2)format("woff2"),url(/_astro/sora-latin-ext-700-normal.Oc7uZIYt.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/sora-latin-700-normal.9waGdLWo.woff2)format("woff2"),url(/_astro/sora-latin-700-normal.BKPfQAnC.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/sora-latin-ext-800-normal.YDFYE6t9.woff2)format("woff2"),url(/_astro/sora-latin-ext-800-normal.BvAfeed7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:800;src:url(/_astro/sora-latin-800-normal.2tKLL3qT.woff2)format("woff2"),url(/_astro/sora-latin-800-normal.c3Huklug.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#07060f;--surface:#120b26;--surface-2:#1a1136;--line:#c5b9ff2e;--line-strong:#c5b9ff5c;--text:#f4f1ff;--muted:#c5b9ff;--danger:#ff8fa3;--ok:#7ee8a2;--warn:#ffd166;--halo:radial-gradient(120% 70% at 80% 0%, #3b1d6e 0%, #120b26 45%, #07060f 100%);--grain:repeating-linear-gradient(115deg, #ffffff0a 0 2px, transparent 2px 9px);--foil-gold:linear-gradient(140deg, #fff6c9 0%, #f7c948 30%, #fff1b8 50%, #d99a06 75%, #fff6c9 100%);--foil-silver:linear-gradient(140deg, #f5f7fa 0%, #b8c1cc 35%, #fff 55%, #8f99a8 100%);--foil-rainbow:linear-gradient(140deg, #7df9ff 0%, #c084fc 35%, #ff7ad9 60%, #ffe07a 100%);--foil-common:linear-gradient(140deg, #f4f1ff 0%, #d9d2f5 100%);--foil-ink:#120b26;--font-body:"PingFang TC", "Noto Sans CJK TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Sora", "PingFang TC", "Noto Sans CJK TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, -apple-system, "Segoe UI", sans-serif;--radius:16px;--radius-sm:10px;--radius-pill:999px;--gap:16px;--max:760px;--ease-out:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:inherit}img{max-width:100%;height:auto}main{max-width:var(--max);margin:0 auto;padding:0 16px 72px}main.admin{padding-top:16px}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 8px;line-height:1.15}h1,h2{text-wrap:balance}h1{font-size:clamp(26px,6vw,34px);font-weight:800}h2{font-size:20px;font-weight:700}p{margin:0 0 10px}.num{font-family:var(--font-display);font-variant-numeric:tabular-nums}.stats strong[data-loading],.num[data-loading],[data-loading]{font-family:var(--font-body)}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--warn);outline-offset:2px}.env-banner{background:var(--danger);color:#1a0810;text-align:center;padding:8px 16px;font-size:14px;font-weight:700}.site-header{max-width:var(--max);min-height:72px;margin:0 auto;padding:16px 16px 0}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;min-height:56px;display:flex}header .brand{font-family:var(--font-display);white-space:nowrap;align-items:center;gap:8px;font-size:18px;font-weight:800;text-decoration:none;display:inline-flex}header .brand svg{width:28px;height:28px;display:block}.nav{gap:6px;display:flex}.nav-link{border-radius:var(--radius-pill);border:1px solid var(--line);white-space:nowrap;align-items:center;min-height:40px;padding:6px 12px;font-size:14px;text-decoration:none;display:inline-flex}.nav-link.is-current{background:var(--text);color:var(--bg);border-color:#0000;font-weight:700}@media (width<=400px){.nav-link{padding:6px 9px;font-size:13px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:var(--gap);padding:20px}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.button{border-radius:var(--radius-pill);border:1px solid var(--line-strong);min-height:44px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;background:#ffffff0f;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-weight:700;text-decoration:none;display:inline-flex}@media (prefers-reduced-motion:no-preference){.button{transition:transform .12s var(--ease-out), background-color .12s}}.button:hover{background:#ffffff1f}.button:active{transform:translateY(1px)scale(.98)}.button-primary{background:var(--foil-gold);color:var(--foil-ink);border-color:#0000}.button-primary:hover{background:var(--foil-gold);filter:brightness(1.05)}.button[aria-disabled=true],.button:disabled{opacity:.6;cursor:progress}.field{border-radius:var(--radius-sm);background:var(--bg);width:100%;min-height:44px;color:var(--text);font:inherit;border:1px solid #c5b9ff80;padding:10px 14px}.field::placeholder{color:#c5b9ffa6}.notice{border-radius:var(--radius-sm);background:var(--surface-2);margin-top:12px;padding:10px 12px}.status{min-height:1.5em;color:var(--muted);margin-top:10px}.status.is-error{color:var(--danger)}.status.is-success{color:var(--ok)}.pill{border-radius:var(--radius-pill);border:1px solid var(--line-strong);padding:4px 10px;font-size:13px;display:inline-block}.pill.is-active{border-color:var(--ok);color:var(--ok)}.pill.is-preview{border-color:var(--warn);color:var(--warn)}.code{font-family:var(--font-display);letter-spacing:.12em;font-size:28px;font-weight:800}.list{margin:12px 0 0;padding:0;list-style:none}.list li{border-top:1px solid var(--line);justify-content:space-between;gap:12px;padding:10px 0;display:flex}form.inline{display:inline}.foil-frame{border-radius:var(--radius);background:var(--foil-common);padding:2px;position:relative}.foil-frame>.foil-inner{background:var(--surface);border-radius:calc(var(--radius) - 2px);height:100%;padding:18px}.foil-gold{background:var(--foil-gold)}.foil-silver{background:var(--foil-silver)}.foil-rainbow{background:var(--foil-rainbow)}.foil-common{background:var(--foil-common)}.foil-none{background:var(--line)}.hero{background:var(--halo);border:1px solid var(--line);margin-top:var(--gap);border-radius:22px;padding:24px 20px 22px;position:relative;overflow:hidden}.hero:before{content:"";background:var(--grain);pointer-events:none;position:absolute;inset:0}.hero>*{position:relative}.hero h1{max-width:14em}.hero .lead{color:var(--muted);max-width:32em}.hero .actions{margin-top:14px}.podium{grid-template-columns:1fr 1.15fr 1fr;align-items:end;gap:10px;margin-top:16px;padding:0;list-style:none;display:grid}.rank-card{aspect-ratio:63/88;color:var(--foil-ink);backface-visibility:hidden;border-radius:12px;flex-direction:column;justify-content:space-between;padding:10px;text-decoration:none;display:flex;position:relative;overflow:hidden}.rank-card .rk{font-family:var(--font-display);font-size:13px;font-weight:800}.rank-card .nm{overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;font-weight:700;display:-webkit-box;overflow:hidden}.rank-card .ct{font-family:var(--font-display);text-align:right;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1}.rank-card .ct small{opacity:.8;font-size:11px;font-weight:700;display:block}.rank-card.rank-1{background:var(--foil-gold);grid-area:1/2;transform:translateY(-8px)rotate(-2deg);box-shadow:0 14px 34px #f7c94859}.rank-card.rank-2{background:var(--foil-silver);grid-area:1/1}.rank-card.rank-3{background:var(--foil-rainbow);grid-area:1/3}.rank-card.is-me:after{content:"你";border-radius:var(--radius-pill);background:var(--foil-ink);color:var(--text);padding:2px 6px;font-size:11px;font-weight:800;position:absolute;top:8px;right:8px}.rank-card .shine{pointer-events:none;background:linear-gradient(100deg,#0000 40%,#ffffff8c 50%,#0000 60%);position:absolute;inset:-40% -60%;transform:translate(-80%)}@media (prefers-reduced-motion:no-preference){.podium.is-dealing .rank-card{animation:deal .52s var(--ease-out) both}.podium.is-dealing .rank-card.rank-2{animation-delay:0s}.podium.is-dealing .rank-card.rank-1{animation-delay:.12s}.podium.is-dealing .rank-card.rank-3{animation-delay:.24s}.podium.is-dealing .rank-card .shine{animation:.9s ease-out .76s both shine}.podium.is-dealing .rank-card.rank-1{animation-name:deal-first}.rank-card.is-updated{animation:.4s ease-out fade-in}}@keyframes deal{0%{opacity:0;transform:perspective(800px)translateY(18px)rotateY(90deg)}to{opacity:1;transform:perspective(800px)}}@keyframes deal-first{0%{opacity:0;transform:perspective(800px)translateY(18px)rotateY(90deg)}to{opacity:1;transform:perspective(800px)translateY(-8px)rotate(-2deg)}}@keyframes shine{0%{transform:translate(-80%)}to{transform:translate(80%)}}.stats{flex-wrap:wrap;gap:28px;display:flex}.stats strong{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:1.1;display:block}.board{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:12px}.board th,.board td{text-align:left;border-top:1px solid var(--line);overflow-wrap:anywhere;padding:10px 8px}.board th{color:var(--muted);font-size:13px;font-weight:500}.board td.num{text-align:right;font-weight:800;font-family:var(--font-display)}.board .text-right,.board th.num{text-align:right}.board th[scope=row]{font-family:var(--font-display);font-weight:800}.board tr.is-me td,.board tr.is-me th{background:var(--surface-2)}@media (prefers-reduced-motion:no-preference){.board tbody tr.is-updated{animation:.4s ease-out fade-in}}@keyframes fade-in{0%{opacity:.4}to{opacity:1}}.banner{border-radius:14px;width:100%;height:auto;margin-top:14px;display:block}@media (width>=760px){.hero .banner{object-fit:cover;max-height:320px}}.prizes{grid-template-columns:repeat(2,1fr);gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.prizes li .foil-inner{flex-direction:column;gap:6px;padding:12px;display:flex}.prizes .rank{font-family:var(--font-display);color:var(--muted);font-size:13px;font-weight:800}.prizes img{aspect-ratio:1;object-fit:cover;border-radius:8px;width:100%;display:block}.prizes strong{font-size:15px}@media (width>=760px){.prizes{grid-template-columns:repeat(4,1fr)}}.pack{margin-top:var(--gap);background:var(--halo);border:1px solid var(--line);text-align:center;border-radius:22px;padding:28px 20px 24px;position:relative;overflow:hidden}.pack:before{content:"";background:var(--grain);pointer-events:none;position:absolute;inset:0}.pack:after{content:"";background:repeating-linear-gradient(90deg, var(--surface) 0 14px, transparent 14px 20px);clip-path:polygon(0 0,100% 0,100% 60%,0 100%);opacity:.9;height:26px;position:absolute;top:0;left:-10%;right:-10%}.pack>*{position:relative}.pack .from{color:var(--muted);margin-top:14px;font-size:14px}.pack h1{max-width:12em;margin:6px auto 10px}.pack .code-chip{border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:#ffffff14;margin:6px 0 14px;padding:6px 14px;display:inline-block}.pack .actions{justify-content:center}.pack.is-invalid{background:var(--surface)}.pack.is-invalid h1{color:var(--muted)}.steps{counter-reset:step;gap:14px;margin:12px 0 0;padding:0;list-style:none;display:grid}.steps li{counter-increment:step;grid-template-columns:28px 1fr;align-items:start;column-gap:12px;display:grid}.steps li:before{content:counter(step);background:var(--foil-common);width:28px;height:28px;color:var(--foil-ink);font-family:var(--font-display);border-radius:8px;grid-row:1/span 2;place-items:center;font-size:14px;font-weight:800;line-height:1;display:grid}.steps li:first-child:before{background:var(--foil-gold)}.steps li:nth-child(2):before{background:var(--foil-silver)}.steps li:nth-child(3):before{background:var(--foil-rainbow)}.steps li>*{grid-column:2}.steps strong{line-height:28px;display:block}.invite-card .foil-inner{gap:6px;display:grid}.invite-card .label{color:var(--muted);font-size:13px}.invite-card .code{word-break:break-all}.admin{max-width:960px}.admin h1{font-size:22px}.admin .notice.is-error{color:var(--danger);background:#3a1d2a}.admin label{margin-top:12px;display:block}.admin textarea.field{resize:vertical;min-height:90px}.admin .field-error{color:var(--danger);margin:4px 0 0}.admin .board td code{font-size:13px}.admin fieldset{border:1px solid var(--line);border-radius:var(--radius-sm);margin-top:16px;padding:12px 16px}.admin fieldset legend{color:var(--muted);padding:0 6px}.admin button.nav-link{cursor:pointer;color:inherit;font:inherit;background:0 0}.admin .thumb{border-radius:8px;max-width:160px;height:auto;margin-top:6px;display:block}.admin .button{border-radius:var(--radius-sm)}.grow{flex:1;min-width:0}.flex-2{flex:2;min-width:0}.between{justify-content:space-between}.m-0{margin:0}.mt-6{margin-top:6px}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-20{margin-top:20px}.num-lg{font-size:28px}.w-12em{width:12em}.w-4em{width:4em}.text-right{text-align:right}
