:root{--bg: #0c0c14;--surface: rgba(255, 255, 255, .035);--surface-2: rgba(255, 255, 255, .07);--line: rgba(255, 255, 255, .09);--line-2: rgba(255, 255, 255, .16);--fg: #f4f4f5;--soft: #d4d4d8;--muted: #a1a1aa;--violet: #a78bfa;--emerald: #34d399;--violet-dim: rgba(167, 139, 250, .14);--emerald-dim: rgba(52, 211, 153, .12);--grad: linear-gradient(135deg, var(--violet) 0%, var(--emerald) 100%);--font: "Outfit", "Noto Sans SC", -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--maxw: 1120px;color-scheme:dark}*{box-sizing:border-box}body{background:radial-gradient(60% 50% at 15% 10%,rgba(99,102,241,.1),transparent 70%),radial-gradient(50% 45% at 90% 85%,rgba(16,185,129,.08),transparent 70%),var(--bg);background-attachment:fixed;color:var(--fg);font-family:var(--font);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}#sky{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.nav,main,footer{position:relative;z-index:1}a{color:inherit}h1,h2,h3{text-wrap:balance;margin:0;line-height:1.25}p{margin:0}.wrap{max-width:var(--maxw);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}:focus-visible{outline:2px solid var(--violet);outline-offset:3px;border-radius:6px}.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}.nav{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:#0c0c14c7;backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav .wrap{display:flex;align-items:center;gap:12px 24px;padding-block:12px;flex-wrap:wrap}.brand{display:flex;align-items:baseline;gap:8px;text-decoration:none;font-weight:800;font-size:19px;letter-spacing:.02em}.brand small{font-size:12px;font-weight:700;letter-spacing:.14em}.links{display:flex;gap:2px;margin-left:auto;flex-wrap:wrap;align-items:center}.links a{text-decoration:none;color:var(--muted);padding:6px 12px;border-radius:8px;font-size:14px;font-weight:500}.links a:hover{color:var(--fg)}.links a[aria-current=page]{color:var(--fg);background:var(--surface-2)}.links .btn{margin-left:8px}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border-radius:10px;text-decoration:none;font-weight:600;font-size:15px;border:1px solid var(--line-2);background:transparent;color:var(--fg);cursor:pointer;font-family:inherit}.btn:hover{border-color:var(--violet)}.btn.primary{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 8px 28px -10px #a78bfa99}.btn.white{background:var(--fg);color:var(--bg);border-color:transparent;padding:7px 16px;font-size:14px;border-radius:8px}.btn.pending{opacity:.8;cursor:not-allowed}.ctas{display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center}.textlink{color:var(--violet);text-decoration:none;font-size:14px;font-weight:500}.textlink:hover{text-decoration:underline}.tbd{display:inline-block;font-size:11px;color:var(--emerald);border:1px dashed currentColor;border-radius:4px;padding:0 6px;margin-left:6px;vertical-align:2px;font-weight:500;letter-spacing:0;line-height:1.6}.view{padding-block:40px 96px}.section{display:grid;gap:32px;padding-block:72px}.head{display:grid;gap:12px;justify-items:center;text-align:center}.eyebrow{font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.head h2{font-size:clamp(28px,4vw,41px);font-weight:700}.head .lead{max-width:60ch}.lead{color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:16px}.hero{display:grid;gap:28px;justify-items:center;text-align:center;padding-block:72px 40px}.pill{display:inline-flex;gap:8px;align-items:center;font-size:13px;font-weight:500;color:var(--soft);padding:6px 16px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface)}.hero h1{font-size:clamp(32px,7vw,64px);font-weight:800;line-height:1.18;letter-spacing:-.01em}.hero .lead{font-size:17px;max-width:46ch}.stats{display:flex;gap:48px;justify-content:center;flex-wrap:wrap}.stat{display:grid;gap:2px;justify-items:center}.stat b{font-size:40px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.stat span{font-size:13px;color:var(--muted)}.who{display:flex;gap:12px;align-items:center;min-width:0}.avatar{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:17px;color:#0c0c14}.who-text{min-width:0}.who-text b{display:block;font-size:17px;font-weight:600}.who-text span{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.slot{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:14px;align-content:start;min-width:0;text-decoration:none}a.slot:hover{border-color:var(--violet)}.slot .wk{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted);flex-wrap:wrap}.slot .wk b{color:var(--fg);font-weight:600}.slot.waiting{border-style:dashed;background:transparent}.slot .state{font-size:14px;color:var(--muted);display:flex;align-items:center;gap:8px}.slot .state i{width:8px;height:8px;border-radius:50%;background:var(--emerald);box-shadow:0 0 0 4px var(--emerald-dim)}.final-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 22px;border-radius:14px;background:linear-gradient(90deg,var(--violet-dim),var(--emerald-dim));border:1px solid var(--line)}.final-bar b{font-size:17px;font-weight:600}.final-bar span{color:var(--muted);font-size:14px}.rewards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.reward{padding:28px;display:grid;gap:18px;align-content:start;min-width:0}.reward.top{border-color:#a78bfa66;background:radial-gradient(120% 90% at 100% 0%,var(--violet-dim),transparent 60%),var(--surface)}.reward .ico{font-size:28px;line-height:1}.reward h3{font-size:22px;font-weight:700}.reward h3 small{display:block;font-size:14px;font-weight:500;color:var(--muted);margin-top:4px}.reward ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.reward li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;color:var(--soft)}.reward li:before{content:"✓";color:var(--emerald);font-weight:700}.reward li b{color:var(--fg);font-weight:600}.from{font-size:12px;color:var(--muted);margin-left:6px}.material{border:1px solid var(--line);border-radius:12px;padding:16px;display:grid;gap:10px;background:#0003}.material .title{font-weight:600}.modules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.modules span{font-size:13px;color:var(--soft);background:var(--surface-2);border-radius:8px;padding:8px 10px;text-align:center}.judges{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.judge{padding:22px 14px;display:grid;gap:12px;justify-items:center;text-align:center;text-decoration:none;min-width:0}.judge:hover{border-color:var(--violet)}.judge .avatar{width:56px;height:56px;font-size:20px;background:var(--grad)}.judge b{font-size:15px;font-weight:600;overflow-wrap:anywhere}.judge span{font-size:12px;color:var(--muted)}.sponsors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sponsor{padding:28px 22px;display:grid;gap:6px;justify-items:center;text-align:center;min-width:0}.sponsor span{color:var(--muted);font-size:14px}.strip{display:flex;align-items:center;justify-content:center;gap:12px 32px;flex-wrap:wrap;padding:20px 22px}.strip .label{font-size:12px;font-weight:600;letter-spacing:.2em;color:var(--muted)}.twocol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.twocol>div{padding:26px;display:grid;gap:12px;align-content:start;min-width:0}.twocol h3{font-size:19px;font-weight:700}.twocol ul{margin:0;padding-left:1.1em;color:var(--soft);display:grid;gap:6px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.feature{padding:28px;display:grid;gap:12px;align-content:start;min-width:0}.feature .ico{font-size:28px;line-height:1}.feature h3{font-size:21px;font-weight:700}.feature h3 small{display:block;font-size:13px;font-weight:500;color:var(--muted);margin-top:2px}.feature p{color:var(--muted)}.fit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.fit>div{padding:26px;display:grid;gap:12px;align-content:start;min-width:0}.fit h3{font-size:17px;font-weight:600}.fit ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:var(--soft)}.fit li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px}.fit .yes li:before{content:"✓";color:var(--emerald);font-weight:700}.fit .no li:before{content:"✗";color:#f87171;font-weight:700}.fit .yes h3{color:var(--emerald)}.fit .no h3{color:#f87171}.issue-head{display:grid;gap:12px;justify-items:center;text-align:center;padding-block:48px 24px}.issue-no{font-weight:800;font-size:clamp(48px,9vw,96px);line-height:1;letter-spacing:-.02em}.issue-head h1{font-size:clamp(22px,3vw,30px);font-weight:700}.issue-head .dates{color:var(--muted);font-size:14px}.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.place{padding:24px;display:grid;gap:14px;align-content:start;min-width:0}.place.first{border-color:#a78bfa73;background:radial-gradient(120% 90% at 50% 0%,var(--violet-dim),transparent 70%),var(--surface)}.place .pos{display:flex;align-items:baseline;gap:10px}.place .pos b{font-size:40px;font-weight:800;line-height:1}.place .pos span{font-weight:600}.place p{color:var(--soft);font-size:14px}.entries{display:grid;gap:12px}.entry{display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;padding:26px}.entry .side{display:grid;gap:4px;align-content:start}.entry .side b{font-size:17px;font-weight:600}.entry .side span{color:var(--muted);font-size:13px}.entry .body{display:grid;gap:14px;min-width:0}.entry .body h3{font-size:14px;color:var(--muted);font-weight:500}.entry .body blockquote{margin:0;padding:14px 16px;background:#00000040;border-radius:10px;color:var(--soft);font-size:15px}.entry .body blockquote cite{display:block;font-style:normal;margin-top:6px;font-size:13px;color:var(--muted)}.entry.waiting{background:transparent;border-style:dashed}.entry.waiting .body p{color:var(--muted)}.issue-foot{display:flex;justify-content:space-between;gap:12px;padding-top:32px;flex-wrap:wrap}.archive{display:grid;gap:12px}.archive a{display:grid;grid-template-columns:110px 130px minmax(0,1fr) auto;gap:20px;align-items:center;padding:20px 24px;text-decoration:none}.archive a:hover{border-color:var(--violet)}.archive .no{font-weight:800;font-size:22px}.archive .month{font-weight:600}.archive .names{min-width:0;overflow-wrap:anywhere;color:var(--muted)}.status{font-size:12px;font-weight:600;padding:2px 10px;border-radius:999px;white-space:nowrap}.status.now{color:#0c0c14;background:var(--emerald)}.status.done{color:var(--muted);border:1px solid var(--line-2)}.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font:inherit;font-size:14px;padding:6px 14px;border-radius:8px;border:1px solid var(--line-2);background:transparent;color:var(--muted);cursor:pointer}.chip[aria-pressed=true]{color:var(--bg);background:var(--fg);border-color:var(--fg)}.search{margin-left:auto;flex:0 1 260px;min-width:0;font:inherit;font-size:14px;padding:8px 14px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg)}.hall{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.hall button{font:inherit;color:inherit;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:grid;gap:12px;min-width:0}.hall button:hover{border-color:var(--violet)}.hall button.ranked{border-color:#a78bfa66}.hall .badge{font-size:12px;color:var(--muted)}.hall .badge b{font-weight:600}.empty{color:var(--muted);padding:32px 0}dialog{background:transparent;border:0;padding:16px;max-width:480px;width:100%;color:var(--fg)}dialog::backdrop{background:#04040ac7}.cert{background:radial-gradient(120% 80% at 50% 0%,var(--violet-dim),transparent 70%),#14141f;border:1px solid rgba(167,139,250,.5);border-radius:18px;padding:32px 28px;display:grid;gap:18px;text-align:center}.cert .seal{font-weight:700;font-size:12px;letter-spacing:.24em}.cert h2{font-size:26px;font-weight:800}.cert .who{justify-content:center}.cert .line{color:var(--soft);font-size:15px}.copybox{display:flex;gap:8px;align-items:center;background:var(--bg);border:1px solid var(--line-2);border-radius:10px;padding:8px 8px 8px 14px;text-align:left}.copybox code{flex:1;min-width:0;font-family:inherit;font-size:15px;overflow-wrap:anywhere}.copybox .btn{padding:7px 14px;font-size:13px}.cert .hint{font-size:13px;color:var(--muted)}.cert .close{justify-self:center}.flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.step{padding:22px;display:grid;gap:8px;align-content:start;min-width:0}.step .n{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;background:var(--grad);color:#fff}.step .when{font-size:13px;color:var(--emerald);font-weight:500}.step b{font-size:17px;font-weight:600}.step span{color:var(--muted);font-size:14px}.criteria{display:grid;gap:14px;max-width:760px;width:100%;margin:0 auto;padding:28px}.crit{display:grid;grid-template-columns:110px minmax(0,1fr) 48px;gap:16px;align-items:center}.crit b{font-weight:600}.crit .bar{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.crit .bar i{display:block;height:100%;background:var(--grad);border-radius:999px}.crit .pct{font-variant-numeric:tabular-nums;text-align:right;color:var(--muted)}.crit-desc{grid-column:2 / 4;color:var(--muted);font-size:14px;margin-top:-8px}.faq{display:grid;max-width:760px;width:100%;margin:0 auto}.faq details{border-bottom:1px solid var(--line);padding-block:16px}.faq summary{cursor:pointer;font-weight:600}.faq details p{color:var(--muted);margin-top:8px}.cta-band{padding:48px 24px;display:grid;gap:16px;justify-items:center;text-align:center;background:radial-gradient(80% 120% at 50% 0%,var(--violet-dim),transparent 70%),var(--surface)}.cta-band h2{font-size:clamp(26px,3.5vw,36px);font-weight:700}.cta-band small{color:var(--muted);font-size:13px}footer{border-top:1px solid var(--line);color:var(--muted);font-size:14px}footer .wrap{padding-block:32px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}footer b{color:var(--fg)}@media(max-width:900px){.board,.flow{grid-template-columns:repeat(2,minmax(0,1fr))}.judges{grid-template-columns:repeat(3,minmax(0,1fr))}.rewards,.grid2,.grid3,.twocol,.podium,.fit{grid-template-columns:minmax(0,1fr)}.sponsors{grid-template-columns:repeat(2,minmax(0,1fr))}.entry{grid-template-columns:minmax(0,1fr);gap:12px}.archive a{grid-template-columns:90px minmax(0,1fr) auto}.archive .names{grid-column:1 / -1}}@media(max-width:520px){.links{margin-left:0}.board,.flow,.sponsors{grid-template-columns:minmax(0,1fr)}.judges{grid-template-columns:repeat(2,minmax(0,1fr))}.modules{grid-template-columns:minmax(0,1fr)}.stats{gap:28px}.crit{grid-template-columns:80px minmax(0,1fr) 40px}.search{margin-left:0;flex-basis:100%}.section{padding-block:52px}}.logo{display:block;width:auto;max-width:100%;filter:brightness(0) invert(1)}.strip .logo{height:22px}.sponsor .logo{height:32px;margin-block:6px 10px}.course-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;color:var(--soft)}.course-list li{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px}.course-list li:before{content:"✓";color:var(--emerald);font-weight:700}img.avatar{object-fit:cover;background:var(--surface-2)}.who-text a{font-size:13px;color:var(--muted);text-decoration:none;overflow-wrap:anywhere}.who-text a:hover{color:var(--violet)}.entry .body blockquote a{color:var(--soft);text-decoration:none}.entry .body blockquote a:hover{color:var(--violet)}.judge .avatar{background:var(--grad)}.judge .handle{font-size:12px;color:var(--muted)}.empty-state{padding:40px 24px;display:grid;gap:10px;justify-items:center;text-align:center;color:var(--muted)}.empty-state b{color:var(--fg);font-size:18px;font-weight:600}
