*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0d1730;--bg-2:#101c38;
  --panel:#152242;--panel-2:#18264a;
  --line:rgba(212,180,122,.18);--line-soft:rgba(212,180,122,.1);--line-strong:rgba(212,180,122,.42);
  --text:#eef3fb;--muted:#8fa0bd;
  --gold:#d4b47a;--gold-lt:#e8cf9e;--gold-dk:#b8995c;
  --purple:#a68bd4;--purple-lt:#c4aef0;
  --cyan:#7ef0d0;--cyan-lt:#9ff0e0;
  --white:#f5f7fa;
  --red:#ff7090;--red-lt:#ffb3c0;
}
html{scroll-behavior:smooth;scroll-padding-top:70px;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(52vw 52vw at 6% -12%,rgba(212,180,122,.10),transparent 64%),radial-gradient(48vw 48vw at 96% -6%,rgba(166,139,212,.16),transparent 64%),radial-gradient(70vw 60vw at 50% 112%,rgba(212,180,122,.05),transparent 72%)}
.wrap{width:min(1220px,94vw);margin-inline:auto;position:relative;z-index:1}
::selection{background:rgba(212,180,122,.34);color:#fff}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.02)}
::-webkit-scrollbar-thumb{background:rgba(212,180,122,.26);border-radius:6px;border:2px solid transparent;background-clip:padding-box}
:focus{outline:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}.reveal{opacity:1 !important;transform:none !important;transition:none !important}}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.9,.3,1),transform .8s cubic-bezier(.2,.9,.3,1);will-change:opacity,transform}
.reveal.is-visible{opacity:1;transform:none}
.reveal-stagger > *{opacity:0;transform:translateY(18px);transition:opacity .6s cubic-bezier(.2,.9,.3,1),transform .6s cubic-bezier(.2,.9,.3,1)}
.reveal-stagger.is-visible > *{opacity:1;transform:none}
.reveal-stagger.is-visible > *:nth-child(1){transition-delay:.05s}
.reveal-stagger.is-visible > *:nth-child(2){transition-delay:.15s}
.reveal-stagger.is-visible > *:nth-child(3){transition-delay:.25s}

.topbar{position:sticky;top:0;z-index:50;background:rgba(13,23,48,.88);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.topbar__inner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:11px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;cursor:pointer;border-radius:12px;padding:3px 6px;margin:-3px 6px -3px -6px;transition:background .2s}
.brand:hover{background:rgba(255,255,255,.03)}
.brand__marks{display:flex;align-items:center;gap:6px}
.brand__logo{width:40px;height:40px;border-radius:50%;object-fit:cover;display:block;border:1.5px solid rgba(212,180,122,.45);box-shadow:0 0 0 3px rgba(212,180,122,.07);background:#0d1730;transition:.25s}
.brand__logo--b{border-color:rgba(166,139,212,.5);box-shadow:0 0 0 3px rgba(166,139,212,.08)}
.brand:hover .brand__logo{transform:translateY(-1px)}
.brand__join{font-size:15px;font-weight:800;color:var(--gold);opacity:.8}
.brand__text{display:flex;flex-direction:column;gap:3px}
.brand__text b{font-size:15px;font-weight:900;letter-spacing:.4px;background:linear-gradient(100deg,var(--gold-lt),var(--white) 45%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent}
.brand__text em{font-style:normal;font-size:10px;color:var(--muted);letter-spacing:1.6px}

.topbar__actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.account-btn{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:10px;font:inherit;font-size:13.5px;font-weight:800;color:#fff;cursor:pointer;background:linear-gradient(135deg,rgba(212,180,122,.22),rgba(166,139,212,.22));border:1px solid var(--line-strong);transition:.22s;white-space:nowrap;-webkit-tap-highlight-color:transparent;max-width:220px}
.account-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px -12px rgba(212,180,122,.9);border-color:var(--gold)}
.account-btn__icon{font-size:14px;flex:0 0 auto}
.account-btn__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.account-btn__role{flex:0 0 auto;font-size:10px;font-weight:900;letter-spacing:1px;padding:2px 7px;border-radius:5px;background:rgba(212,180,122,.22);border:1px solid rgba(212,180,122,.5);color:var(--gold-lt)}
.account-btn__role[data-role="admin"]{background:rgba(212,180,122,.22);border-color:rgba(212,180,122,.5);color:var(--gold-lt)}
.account-btn__role[data-role="team"]{background:rgba(120,220,200,.18);border-color:rgba(120,220,200,.45);color:var(--cyan-lt)}
.account-btn__role[data-role="judge"]{background:rgba(166,139,212,.18);border-color:rgba(166,139,212,.45);color:var(--purple-lt)}
.account-btn__role[data-role="press"],.account-btn__role[data-role="fan"]{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15);color:var(--muted)}

.tabs{display:flex;gap:5px;background:rgba(255,255,255,.035);border:1px solid var(--line);padding:5px;border-radius:12px}
.tab{appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:14px;font-weight:700;padding:9px 22px;border-radius:8px;cursor:pointer;white-space:nowrap;transition:.22s;display:inline-flex;align-items:center;gap:6px}
.tab:hover{color:var(--gold-lt);background:rgba(255,255,255,.03)}
.tab.is-active{background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk));color:#0d1730;box-shadow:0 8px 22px -10px rgba(212,180,122,.9)}
.tab--locked{color:#5f6d8a}
.tab--locked:hover{color:#7d8ba3}
.tab__lock{font-size:11px;padding:1px 6px;border-radius:5px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);color:#7d8ba3;font-weight:800;letter-spacing:.5px}
.tab.is-active .tab__lock{background:rgba(13,23,48,.25);border-color:rgba(13,23,48,.3);color:#0d1730}

main{flex:1;position:relative;z-index:1}
.panel{display:none}
.panel.is-active{display:block;animation:fade .35s ease both}
@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

.page-head{padding:54px 0 26px}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:3px;color:var(--gold);margin-bottom:10px}
.page-head h2{font-size:clamp(24px,3.4vw,34px);font-weight:900;letter-spacing:-.5px}
.page-head .sub{margin-top:10px;color:var(--muted);font-size:14px}

.hero__actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 28px;border-radius:11px;font:inherit;font-size:15px;font-weight:800;cursor:pointer;border:1px solid transparent;text-decoration:none;transition:.22s;-webkit-tap-highlight-color:transparent}
.btn--primary{background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk));color:#0d1730;box-shadow:0 12px 32px -14px rgba(212,180,122,.95)}
.btn--primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px -14px rgba(212,180,122,1)}
.btn--ghost{background:rgba(255,255,255,.04);border-color:var(--line-strong);color:var(--gold-lt)}
.btn--ghost:hover{background:rgba(212,180,122,.1);transform:translateY(-2px)}
.btn--danger{background:linear-gradient(135deg,var(--red-lt),var(--red));color:#2a0a12;box-shadow:0 12px 32px -14px rgba(255,110,130,.9)}
.btn--danger:hover{transform:translateY(-2px)}
.btn--sm{padding:9px 18px;font-size:13px;border-radius:9px}
.btn--block{width:100%;justify-content:center;padding:11px 12px;font-size:14px}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important;box-shadow:none!important;pointer-events:auto}

.notice-bar{background:linear-gradient(90deg,rgba(212,180,122,.17),rgba(166,139,212,.15));border-bottom:1px solid var(--line);padding:10px 0}
.notice-bar__inner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13.5px;color:#ded4bd}
.notice-bar__inner b{color:var(--gold-lt)}
.notice-bar__more{margin-left:auto;cursor:pointer;font-weight:800;color:var(--gold);transition:.2s;white-space:nowrap;border-radius:6px;padding:2px 6px}
.notice-bar__more:hover{color:var(--gold-lt);background:rgba(212,180,122,.1)}

.hero-board{text-align:center;padding:44px 0 14px}
.hero-board__title{font-size:clamp(26px,4.2vw,38px);font-weight:900;letter-spacing:1px;background:linear-gradient(100deg,var(--gold-lt),var(--white) 45%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-board__sub{margin-top:10px;font-size:13px;color:var(--muted);letter-spacing:2px}

.stage{display:grid;grid-template-columns:360px minmax(0,1fr);gap:20px;padding:26px 0 10px;align-items:stretch}
.stage__left{display:flex;flex-direction:column}
.pane{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:20px;position:relative;overflow:hidden;display:flex;flex-direction:column}
.pane + .pane{margin-top:20px}
.pane__head{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:900;letter-spacing:1.5px;color:var(--gold-lt);margin-bottom:16px;padding-bottom:12px;border-bottom:1px dashed var(--line);flex:0 0 auto}
.pane__head::before{content:"";width:4px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--gold-lt),var(--gold-dk))}
.pane__head i{margin-left:auto;font-style:normal;font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:0}
.stage__left .pane:last-child{flex:1}
.stage__left .pane:last-child .signup{flex:1;justify-content:center}

.kickoff__time{text-align:center;font-size:12.5px;color:var(--muted);letter-spacing:1px;margin-bottom:14px}
.kickoff__time b{color:var(--gold-lt);font-size:14px;font-weight:900}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.cd{border-radius:10px;padding:11px 3px;text-align:center;background:linear-gradient(180deg,rgba(212,180,122,.11),rgba(212,180,122,.02));border:1px solid var(--line);position:relative}
.cd::before{content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:16px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.cd b{display:block;font-size:20px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.15;background:linear-gradient(135deg,#fff,var(--gold-lt));-webkit-background-clip:text;background-clip:text;color:transparent}
.cd span{font-size:10.5px;color:var(--muted);letter-spacing:0}
.kickoff__foot{display:flex;gap:8px;margin-top:14px}
.kickoff__foot .btn{flex:1;justify-content:center;padding:10px 12px;font-size:13px}

.signup{display:flex;flex-direction:column;align-items:center;gap:16px;padding:6px 0 2px;text-align:center}
.signup__badge{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:900;letter-spacing:2px;padding:9px 20px;border-radius:999px;background:linear-gradient(135deg,rgba(120,220,200,.18),rgba(166,139,212,.18));border:1px solid rgba(120,220,200,.45);color:#9ff0e0;box-shadow:0 0 22px -6px rgba(120,220,200,.5)}
.signup__pulse{width:8px;height:8px;border-radius:50%;background:#7ef0d0;box-shadow:0 0 12px #7ef0d0;animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.25;transform:scale(.75)}}
.signup__note{font-size:12.5px;line-height:1.85;color:var(--muted)}
.signup__note b{color:var(--gold-lt)}

.film{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line-strong);background:#060d1a;box-shadow:0 0 0 1px rgba(212,180,122,.1),0 26px 60px -34px rgba(212,180,122,.8);display:flex;flex-direction:column}
.film__media{position:relative;width:100%;aspect-ratio:16/9;min-height:0;display:grid;place-items:center;background:radial-gradient(60% 80% at 50% 40%,rgba(212,180,122,.16),transparent 70%),radial-gradient(50% 60% at 15% 90%,rgba(166,139,212,.2),transparent 70%),linear-gradient(160deg,#101c38,#060d1a);overflow:hidden}
.film__media::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,rgba(212,180,122,.04) 0 14px,transparent 14px 28px);pointer-events:none}
.film__media video,.film__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.film__media img{cursor:zoom-in}
.film__badge{position:absolute;top:16px;left:16px;z-index:2;font-size:11px;font-weight:900;letter-spacing:1.5px;padding:5px 12px;border-radius:7px;background:rgba(212,180,122,.18);border:1px solid rgba(212,180,122,.46);color:var(--gold-lt);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.film__bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 20px;background:linear-gradient(180deg,rgba(212,180,122,.08),transparent);border-top:1px solid var(--line);flex:0 0 auto}
.film__bar b{font-size:14px;font-weight:900;color:var(--gold-lt)}
.film__bar span{font-size:12.5px;color:var(--muted)}
.film__bar .btn{margin-left:auto}

.bulletins{padding:44px 0 10px}
.bulletins__grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.board{border-radius:16px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel-2),var(--panel));overflow:hidden;display:flex;flex-direction:column;transition:.25s}
.board:hover{border-color:var(--line-strong)}
.board__head{display:flex;align-items:center;gap:10px;padding:15px 20px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(212,180,122,.11),transparent)}
.board__dot{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px rgba(212,180,122,1)}
.board__title{font-size:14.5px;font-weight:900;color:#fff;letter-spacing:.5px}
.board__count{margin-left:auto;font-size:11.5px;color:var(--muted);padding:3px 9px;border-radius:6px;background:rgba(255,255,255,.05);border:1px solid var(--line)}
.board__list{list-style:none;padding:8px 8px 12px;display:flex;flex-direction:column;max-height:360px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(212,180,122,.38) transparent;overscroll-behavior:contain}
.board__list::-webkit-scrollbar{width:5px}
.board__list::-webkit-scrollbar-thumb{background:rgba(212,180,122,.38);border-radius:4px}
.board__list li{padding:12px 14px;border-radius:10px;transition:.2s}
.board__list li:hover{background:rgba(212,180,122,.08)}
.board__list li + li{border-top:1px dashed var(--line);border-radius:0}

.msg__top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.msg__tag{font-size:10.5px;font-weight:800;letter-spacing:.5px;padding:2px 8px;border-radius:5px}
.tag--notice{background:rgba(212,180,122,.18);border:1px solid rgba(212,180,122,.42);color:var(--gold-lt)}
.tag--event{background:rgba(166,139,212,.18);border:1px solid rgba(166,139,212,.42);color:var(--purple-lt)}
.tag--hot{background:rgba(255,110,130,.15);border:1px solid rgba(255,110,130,.38);color:#ffb3c0}
.tag--qa{background:rgba(120,220,200,.14);border:1px solid rgba(120,220,200,.34);color:#9ff0e0}
.tag--signup{background:rgba(120,220,200,.14);border:1px solid rgba(120,220,200,.34);color:#9ff0e0}
.msg__time{margin-left:auto;font-size:11.5px;color:var(--muted);white-space:nowrap}
.msg__text{font-size:13.5px;line-height:1.8;color:#c6d2e4}
.msg__text b{color:var(--gold-lt)}
.board__state{padding:36px 20px;text-align:center;font-size:13px;color:var(--muted);letter-spacing:.5px}
.board__state b{color:var(--gold-lt)}

.qa-list{padding:8px 8px 12px}
.qa-item{border-radius:10px;transition:background .2s}
.qa-item + .qa-item{border-top:1px dashed var(--line)}
.qa-item__q{width:100%;appearance:none;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:13px 14px;display:flex;align-items:flex-start;gap:10px;cursor:pointer;border-radius:10px;transition:background .2s}
.qa-item__q:hover{background:rgba(212,180,122,.08)}
.qa-item__q:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;border-radius:10px}
.qa-item__mark{flex:0 0 auto;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:900;letter-spacing:.5px;background:rgba(120,220,200,.16);border:1px solid rgba(120,220,200,.4);color:#9ff0e0;margin-top:1px}
.qa-item__text{flex:1;font-size:13.5px;line-height:1.75;color:#e2e9f5;font-weight:700}
.qa-item__arrow{flex:0 0 auto;font-size:11px;color:var(--muted);transition:transform .3s ease,color .2s;margin-top:4px}
.qa-item.is-open .qa-item__arrow{transform:rotate(180deg);color:var(--gold)}
.qa-item.is-open .qa-item__q{background:rgba(212,180,122,.06)}
.qa-item__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s cubic-bezier(.2,.9,.3,1)}
.qa-item.is-open .qa-item__a{grid-template-rows:1fr}
.qa-item__a-inner{overflow:hidden;padding:0 14px 0 46px;font-size:13px;line-height:1.85;color:#b8c5da}
.qa-item.is-open .qa-item__a-inner{padding-bottom:14px}
.qa-item__a-inner .qa-a-mark{display:inline-block;font-weight:900;color:#9ff0e0;margin-right:4px}

.about-section{padding:38px 0 10px}
.about-section__head{display:flex;align-items:center;gap:10px;margin-bottom:22px}
.about-section__head::before{content:"";width:4px;height:18px;border-radius:2px;background:linear-gradient(180deg,var(--gold-lt),var(--gold-dk))}
.about-section__head h3{font-size:clamp(18px,2.4vw,22px);font-weight:900;letter-spacing:1px;color:#fff}
.about-section__head em{font-style:normal;font-size:11px;color:var(--muted);letter-spacing:2px;margin-left:6px}
.about-lead{font-size:14.5px;line-height:2;color:#c6d2e4;max-width:900px;margin-bottom:24px}
.about-lead b{color:var(--gold-lt)}
.about-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fact-card{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:22px 20px;transition:.25s}
.fact-card:hover{transform:translateY(-4px);border-color:var(--line-strong);box-shadow:0 22px 44px -28px rgba(212,180,122,.7)}
.fact-card__icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:linear-gradient(135deg,rgba(212,180,122,.18),rgba(166,139,212,.22));border:1px solid var(--line);margin-bottom:14px}
.fact-card h4{font-size:15px;font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:.3px}
.fact-card p{font-size:13px;line-height:1.85;color:var(--muted)}
.fact-card p b{color:var(--gold-lt);font-weight:900;font-size:15px}

.timeline-h{position:relative;padding:20px 0 10px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(212,180,122,.38) transparent;-webkit-overflow-scrolling:touch}
.timeline-h::-webkit-scrollbar{height:8px}
.timeline-h::-webkit-scrollbar-track{background:rgba(255,255,255,.02);border-radius:4px}
.timeline-h::-webkit-scrollbar-thumb{background:rgba(212,180,122,.3);border-radius:4px}
.timeline-h__track{display:flex;align-items:flex-start;gap:0;position:relative;min-width:min-content;padding:0 20px}
.timeline-h__axis{position:absolute;top:32px;left:20px;right:20px;height:2px;background:linear-gradient(90deg,transparent,var(--line-strong) 12%,var(--line-strong) 88%,transparent);pointer-events:none;z-index:0}
.timeline-h__node{position:relative;flex:1 0 auto;min-width:280px;padding:0 16px;display:flex;flex-direction:column;align-items:center;text-align:center}
.timeline-h__dot{position:relative;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--gold);box-shadow:0 0 0 5px rgba(212,180,122,.14),0 0 18px rgba(212,180,122,.5);margin-top:24px;margin-bottom:18px;z-index:1;transition:.25s}
.timeline-h__dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk))}
.timeline-h__node:hover .timeline-h__dot{box-shadow:0 0 0 7px rgba(212,180,122,.2),0 0 26px rgba(212,180,122,.75);transform:scale(1.1)}
.timeline-h__event{font-size:13px;font-weight:900;letter-spacing:1.2px;color:var(--gold-lt);padding:4px 12px;border-radius:6px;background:rgba(212,180,122,.1);border:1px solid rgba(212,180,122,.3);margin-bottom:14px;white-space:nowrap}
.timeline-h__card{width:100%;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:16px;padding:22px 20px 20px;transition:.28s cubic-bezier(.2,.9,.3,1);display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden}
.timeline-h__card::before{content:"";position:absolute;top:0;left:18%;right:18%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.55}
.timeline-h__node:hover .timeline-h__card{border-color:var(--line-strong);box-shadow:0 24px 52px -28px rgba(212,180,122,.75);transform:translateY(-4px)}
.timeline-h__crown{display:flex;flex-direction:column;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px dashed var(--line-soft)}
.timeline-h__crown-logo-wrap{position:relative;width:96px;height:96px;display:grid;place-items:center}
.timeline-h__crown-logo-wrap::before{content:"";position:absolute;inset:-6px;border-radius:50%;background:radial-gradient(circle,rgba(212,180,122,.22),transparent 68%);pointer-events:none}
.timeline-h__crown-logo{position:relative;width:96px;height:96px;border-radius:50%;object-fit:contain;padding:10px;background:radial-gradient(circle at 50% 30%,rgba(212,180,122,.18),rgba(212,180,122,.03)),linear-gradient(180deg,#1c2d54,#152242);border:2px solid var(--line-strong);box-shadow:0 0 0 6px rgba(212,180,122,.08),0 18px 36px -20px rgba(212,180,122,.9);transition:.3s}
.timeline-h__node:hover .timeline-h__crown-logo{transform:scale(1.05)}
.timeline-h__crown-name{display:flex;flex-direction:column;align-items:center;gap:3px}
.timeline-h__crown-name em{font-style:normal;font-size:10px;font-weight:900;letter-spacing:2px;color:var(--gold-lt)}
.timeline-h__crown-name b{font-size:15.5px;font-weight:900;letter-spacing:.4px;background:linear-gradient(100deg,var(--gold-lt),var(--white) 60%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent}
.timeline-h__runner{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:linear-gradient(135deg,rgba(166,139,212,.09),rgba(166,139,212,.02));border:1px solid rgba(166,139,212,.24);transition:.22s}
.timeline-h__node:hover .timeline-h__runner{border-color:rgba(166,139,212,.42)}
.timeline-h__runner-logo{flex:0 0 auto;width:48px;height:48px;border-radius:50%;object-fit:contain;padding:6px;background:radial-gradient(circle at 50% 30%,rgba(166,139,212,.22),rgba(166,139,212,.03)),linear-gradient(180deg,#1c2d54,#152242);border:1.5px solid rgba(166,139,212,.45);box-shadow:0 8px 20px -12px rgba(166,139,212,.9);transition:.3s}
.timeline-h__node:hover .timeline-h__runner-logo{transform:scale(1.06)}
.timeline-h__runner-info{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:left}
.timeline-h__runner-info em{font-style:normal;font-size:10px;font-weight:900;letter-spacing:1.8px;color:var(--purple-lt)}
.timeline-h__runner-info b{font-size:14px;font-weight:900;color:#fff;letter-spacing:.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.timeline-h__node--upcoming .timeline-h__dot{border-style:dashed;border-color:var(--line-strong);box-shadow:0 0 0 5px rgba(212,180,122,.06);background:transparent}
.timeline-h__node--upcoming .timeline-h__dot::after{background:transparent;border:1px dashed rgba(212,180,122,.6);inset:3px;border-radius:50%}
.timeline-h__node--upcoming .timeline-h__event{background:rgba(255,255,255,.03);border-color:var(--line);color:var(--muted)}
.timeline-h__card--upcoming{border-style:dashed;border-color:var(--line);background:rgba(255,255,255,.02);display:grid;place-items:center;min-height:230px;padding:30px 20px;text-align:center}
.timeline-h__card--upcoming::before{display:none}
.timeline-h__upcoming-text{font-size:13px;font-weight:800;letter-spacing:1px;color:var(--muted);line-height:1.75}
.timeline-h__upcoming-text b{display:block;font-size:15px;color:var(--gold-lt);margin-bottom:8px;font-weight:900;letter-spacing:1.6px}

.thanks-intro{text-align:center;margin-bottom:34px;padding-top:8px}
.thanks-intro__eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:11px;font-weight:900;letter-spacing:4px;color:var(--gold-lt);margin-bottom:16px}
.thanks-intro__eyebrow::before,.thanks-intro__eyebrow::after{content:"";width:32px;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.thanks-intro__eyebrow::after{background:linear-gradient(90deg,var(--gold),transparent)}
.thanks-intro__title{font-size:clamp(26px,3.6vw,34px);font-weight:900;letter-spacing:6px;background:linear-gradient(100deg,var(--gold-lt),var(--white) 50%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:16px;padding-left:6px}
.thanks-intro__desc{font-size:13.5px;line-height:2;color:var(--muted);max-width:640px;margin-inline:auto;letter-spacing:.3px}
.thanks-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.thanks-card{position:relative;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:18px;padding:24px;transition:.3s cubic-bezier(.2,.9,.3,1);overflow:hidden}
.thanks-card::before{content:"";position:absolute;top:0;left:24px;right:24px;height:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.55;transition:.3s}
.thanks-card:hover{border-color:var(--line-strong);box-shadow:0 24px 50px -30px rgba(212,180,122,.75);transform:translateY(-4px)}
.thanks-card__head{display:flex;align-items:center;gap:14px;padding-bottom:18px;margin-bottom:16px;border-bottom:1px dashed var(--line);position:relative;z-index:1}
.thanks-card__icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:19px;background:linear-gradient(135deg,rgba(212,180,122,.24),rgba(166,139,212,.24));border:1px solid var(--line-strong);flex:0 0 auto}
.thanks-card__info{display:flex;flex-direction:column;gap:3px;min-width:0}
.thanks-card__head h4{font-size:15.5px;font-weight:900;color:#fff;letter-spacing:3px;line-height:1.2}
.thanks-card__sub{font-size:10px;font-weight:800;letter-spacing:2.4px;color:var(--gold-lt);opacity:.75}
.thanks-card__list{list-style:none;display:flex;flex-direction:column;gap:9px;position:relative;z-index:1}
.thanks-card__member{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:11px;background:rgba(255,255,255,.025);border:1px solid var(--line-soft);transition:.22s}
.thanks-card__member:hover{border-color:var(--line-strong);background:rgba(212,180,122,.07);transform:translateX(3px)}
.thanks-card__avatar{flex:0 0 auto;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:900;color:#0d1730;background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk));letter-spacing:.5px;line-height:1}
.thanks-card__name{font-size:13.5px;font-weight:800;color:#e2e9f5;letter-spacing:.3px;line-height:1.4;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.thanks-card[data-category="合作"] .thanks-card__icon{background:linear-gradient(135deg,rgba(120,220,200,.22),rgba(126,240,208,.16));border-color:rgba(120,220,200,.4)}
.thanks-card[data-category="合作"] .thanks-card__sub{color:var(--cyan-lt)}
.thanks-card[data-category="合作"] .thanks-card__avatar{background:linear-gradient(135deg,var(--cyan-lt),var(--cyan))}

.teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:18px;padding:12px 0 6px}
.team-card{position:relative;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:18px;padding:26px 18px 22px;text-align:center;transition:.28s cubic-bezier(.2,.9,.3,1);overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:14px}
.team-card::before{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.5;transition:.28s}
.team-card:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:0 26px 56px -30px rgba(212,180,122,.8)}
.team-card__logo-wrap{position:relative;width:104px;height:104px;display:grid;place-items:center}
.team-card__logo-wrap::before{content:"";position:absolute;inset:-6px;border-radius:50%;background:radial-gradient(circle,rgba(212,180,122,.18),transparent 68%);pointer-events:none}
.team-card__logo{position:relative;width:104px;height:104px;border-radius:50%;object-fit:contain;padding:10px;background:radial-gradient(circle at 50% 30%,rgba(212,180,122,.16),rgba(212,180,122,.03)),linear-gradient(180deg,#1c2d54,#152242);border:2px solid var(--line-strong);box-shadow:0 0 0 5px rgba(212,180,122,.07),0 18px 36px -20px rgba(212,180,122,.85);transition:.3s}
.team-card__name{font-size:16.5px;font-weight:900;letter-spacing:.5px;line-height:1.4;background:linear-gradient(100deg,var(--gold-lt),var(--white) 60%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent;padding:0 4px;word-break:break-word}
.team-card__short{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:900;letter-spacing:1.6px;padding:4px 12px;border-radius:999px;background:rgba(212,180,122,.1);border:1px solid rgba(212,180,122,.32);color:var(--gold-lt);text-transform:uppercase}
.team-card__short::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 6px var(--gold)}
.teams-grid .board__state{padding:60px 20px;text-align:center;font-size:13px;color:var(--muted);letter-spacing:.5px}

.hosts{padding:44px 0 10px}
.hosts__head{text-align:center;margin-bottom:26px}
.hosts__title{font-size:clamp(22px,3.2vw,30px);font-weight:900;letter-spacing:2px;background:linear-gradient(100deg,var(--gold-lt),var(--white) 50%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent}
.hosts__sub{margin-top:10px;font-size:12px;letter-spacing:3px;color:var(--muted)}
.hosts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}
.host-figure{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:radial-gradient(70% 60% at 50% 0%,rgba(212,180,122,.14),transparent 70%),linear-gradient(180deg,var(--panel-2),var(--panel));transition:.3s;min-height:290px;display:flex;flex-direction:column}
.host-figure:hover{transform:translateY(-5px);border-color:var(--line-strong);box-shadow:0 28px 56px -30px rgba(212,180,122,.8)}
.host-figure__media{flex:1;display:grid;place-items:center;padding:18px;position:relative;min-height:260px}
.host-figure__media img{max-width:100%;max-height:260px;object-fit:contain;display:block;filter:drop-shadow(0 16px 28px rgba(0,0,0,.6));transition:.35s;cursor:zoom-in}
.host-figure__ph{width:100%;height:230px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.03);border:1px dashed var(--line);color:var(--muted);font-size:12px;letter-spacing:1px}

.cta{padding:48px 0 70px}
.cta__inner{text-align:center;border:1px solid var(--line);border-radius:22px;padding:48px 26px;background:radial-gradient(60% 120% at 50% 0%,rgba(212,180,122,.14),transparent 70%),linear-gradient(180deg,var(--panel-2),var(--panel));position:relative;overflow:hidden}
.cta__title{font-size:clamp(21px,3vw,29px);font-weight:900;margin-bottom:10px;color:#fff}
.cta__desc{color:var(--muted);margin-bottom:26px;font-size:14.5px}

.locked{padding:90px 0 100px;text-align:center}
.locked__card{max-width:560px;margin:0 auto;border:1px solid var(--line);border-radius:22px;padding:56px 34px;background:linear-gradient(180deg,var(--panel-2),var(--panel));position:relative;overflow:hidden}
.locked__icon{width:78px;height:78px;border-radius:22px;display:grid;place-items:center;margin:0 auto 22px;font-size:34px;background:linear-gradient(135deg,rgba(212,180,122,.18),rgba(166,139,212,.22));border:1px solid var(--line-strong);color:var(--gold-lt)}
.locked__title{font-size:clamp(22px,3.2vw,30px);font-weight:900;letter-spacing:1px;background:linear-gradient(100deg,var(--gold-lt),var(--white) 50%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px}
.locked__desc{font-size:14px;line-height:1.95;color:var(--muted);margin-bottom:8px}
.locked__desc b{color:var(--gold-lt)}
.locked__hint{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:12.5px;font-weight:800;letter-spacing:1px;padding:8px 18px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid var(--line-strong);color:var(--gold-lt)}
.locked__actions{margin-top:28px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* 网页功能 */
.tools-intro{display:flex;align-items:center;gap:16px;padding:20px 22px;border-radius:16px;background:linear-gradient(135deg,rgba(212,180,122,.1),rgba(166,139,212,.08));border:1px solid var(--line-strong);margin-bottom:24px}
.tools-intro__avatar{flex:0 0 auto;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:900;color:#0d1730;background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk))}
.tools-intro__avatar--guest{background:linear-gradient(135deg,#3b4a6b,#2a3652);color:var(--muted)}
.tools-intro__text{display:flex;flex-direction:column;gap:5px;min-width:0}
.tools-intro__name{font-size:16px;font-weight:900;color:#fff;letter-spacing:.3px}
.tools-intro__role{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:900;letter-spacing:1.2px;padding:3px 10px;border-radius:6px;width:fit-content;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:var(--muted)}
.tools-intro__role[data-role="admin"]{background:rgba(212,180,122,.2);border-color:rgba(212,180,122,.5);color:var(--gold-lt)}
.tools-intro__role[data-role="team"]{background:rgba(120,220,200,.16);border-color:rgba(120,220,200,.42);color:var(--cyan-lt)}
.tools-intro__role[data-role="judge"]{background:rgba(166,139,212,.16);border-color:rgba(166,139,212,.42);color:var(--purple-lt)}
.tools-intro__hint{margin-left:auto;font-size:12px;color:var(--muted);text-align:right;line-height:1.7;max-width:340px}

.tools-section{margin-bottom:30px}
.tools-section__head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.tools-section__head::before{content:"";width:3px;height:14px;border-radius:2px;background:linear-gradient(180deg,var(--gold-lt),var(--gold-dk))}
.tools-section__head h3{font-size:15px;font-weight:900;letter-spacing:1.2px;color:#fff}
.tools-section__head em{font-style:normal;font-size:10.5px;color:var(--muted);letter-spacing:2px}
.tools-section__head .tools-section__badge{margin-left:auto;font-size:10px;font-weight:900;letter-spacing:1px;padding:3px 9px;border-radius:6px;background:rgba(212,180,122,.14);border:1px solid rgba(212,180,122,.4);color:var(--gold-lt)}

.tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.tool-card{position:relative;display:flex;align-items:flex-start;gap:14px;padding:18px;border-radius:14px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);text-align:left;cursor:pointer;transition:.24s cubic-bezier(.2,.9,.3,1);overflow:hidden;font:inherit;color:inherit;appearance:none}
.tool-card::before{content:"";position:absolute;top:0;left:22px;right:22px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.45;transition:.3s}
.tool-card:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:0 20px 44px -26px rgba(212,180,122,.7)}
.tool-card:hover::before{opacity:1}
.tool-card__icon{flex:0 0 auto;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:19px;background:linear-gradient(135deg,rgba(212,180,122,.2),rgba(166,139,212,.22));border:1px solid var(--line-strong)}
.tool-card__body{display:flex;flex-direction:column;gap:5px;min-width:0}
.tool-card__title{font-size:14.5px;font-weight:900;color:#fff;letter-spacing:.3px}
.tool-card__desc{font-size:12px;color:var(--muted);line-height:1.7}
.tool-card__arrow{position:absolute;top:16px;right:16px;font-size:12px;color:var(--muted);transition:.2s}
.tool-card:hover .tool-card__arrow{color:var(--gold);transform:translateX(3px)}
.tool-card--external .tool-card__icon{background:linear-gradient(135deg,#fb7299,#e04b76);border-color:rgba(255,255,255,.18)}

.tools-locked{padding:60px 20px;text-align:center;border-radius:16px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px dashed var(--line-strong)}
.tools-locked__icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin:0 auto 16px;font-size:28px;background:linear-gradient(135deg,rgba(212,180,122,.16),rgba(166,139,212,.2));border:1px solid var(--line-strong);color:var(--gold-lt)}
.tools-locked__title{font-size:17px;font-weight:900;color:#fff;margin-bottom:8px;letter-spacing:.5px}
.tools-locked__desc{font-size:13px;color:var(--muted);line-height:1.9;max-width:420px;margin-inline:auto}
.tools-locked__desc b{color:var(--gold-lt)}
.tools-locked__actions{margin-top:20px}

.tool-modal{width:min(720px,100%);max-height:88vh;overflow-y:auto;border:1px solid var(--line-strong);border-radius:20px;background:linear-gradient(180deg,var(--panel-2),var(--panel));padding:30px 28px 26px;position:relative;box-shadow:0 0 0 1px rgba(212,180,122,.14),0 44px 90px -40px rgba(0,0,0,.95);animation:popIn .3s cubic-bezier(.2,.9,.3,1.2)}
.tool-modal__title{font-size:20px;font-weight:900;color:#fff;letter-spacing:.5px;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.tool-modal__title em{font-style:normal;font-size:10px;font-weight:900;letter-spacing:1.4px;padding:3px 9px;border-radius:5px;background:rgba(212,180,122,.14);border:1px solid rgba(212,180,122,.38);color:var(--gold-lt)}
.tool-modal__sub{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:22px}
.tool-modal__section{padding:18px 0;border-top:1px dashed var(--line)}
.tool-modal__section:first-of-type{border-top:0;padding-top:0}
.tool-modal__section-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.tool-modal__section-head h4{font-size:13px;font-weight:900;letter-spacing:1.2px;color:var(--gold-lt)}
.tool-modal__section-head .tool-modal__count{margin-left:auto;font-size:11.5px;color:var(--muted);padding:3px 9px;border-radius:6px;background:rgba(255,255,255,.05);border:1px solid var(--line)}

.tool-form{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:8px}
.tool-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.tool-field{display:flex;flex-direction:column;gap:6px}
.tool-field label{font-size:11.5px;font-weight:900;letter-spacing:1px;color:var(--gold-lt)}
.tool-field input,.tool-field select,.tool-field textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:11px 13px;font:inherit;font-size:13.5px;color:var(--text);outline:none;transition:.2s;font-family:inherit;resize:vertical}
.tool-field textarea{min-height:70px;line-height:1.7}
.tool-field input::placeholder,.tool-field textarea::placeholder{color:#5a6a88}
.tool-field input:focus,.tool-field select:focus,.tool-field textarea:focus{border-color:var(--gold);background:rgba(212,180,122,.06);box-shadow:0 0 0 3px rgba(212,180,122,.1)}
.tool-field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d4b47a' stroke-width='2'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:16px;padding-right:34px}
.tool-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.tool-actions .btn{flex:0 0 auto}

.tool-list{list-style:none;display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;padding:2px}
.tool-list__item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:11px;background:rgba(255,255,255,.025);border:1px solid var(--line-soft);transition:.2s}
.tool-list__item:hover{border-color:var(--line-strong);background:rgba(212,180,122,.05)}
.tool-list__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.tool-list__title{font-size:13.5px;font-weight:800;color:#e2e9f5;line-height:1.5;word-break:break-word}
.tool-list__meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--muted)}
.tool-list__meta span{display:inline-flex;align-items:center;gap:4px}
.tool-list__remove{flex:0 0 auto;appearance:none;border:0;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:rgba(255,110,130,.1);border:1px solid rgba(255,110,130,.28);color:var(--red-lt);font-family:inherit;font-size:13px;cursor:pointer;transition:.2s}
.tool-list__remove:hover{background:rgba(255,110,130,.2);border-color:rgba(255,110,130,.5)}
.tool-list__empty{padding:24px 16px;text-align:center;font-size:12.5px;color:var(--muted);border-radius:10px;background:rgba(255,255,255,.02);border:1px dashed var(--line)}

.draw-result{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.draw-pair{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,rgba(212,180,122,.08),rgba(166,139,212,.06));border:1px solid var(--line)}
.draw-pair__side{flex:1;font-size:13.5px;font-weight:900;color:#fff;text-align:center;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.04);border:1px solid var(--line);word-break:break-word}
.draw-pair__vs{flex:0 0 auto;font-size:11px;font-weight:900;letter-spacing:1.5px;color:var(--gold)}
.draw-info{margin-top:14px;font-size:12px;color:var(--muted);line-height:1.7;padding:10px 14px;border-radius:10px;background:rgba(255,255,255,.02);border:1px dashed var(--line)}
.draw-info b{color:var(--gold-lt)}

.room-list{list-style:none;display:flex;flex-direction:column;gap:10px;max-height:340px;overflow-y:auto;padding:2px}
.room-card{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,rgba(166,139,212,.08),rgba(166,139,212,.02));border:1px solid rgba(166,139,212,.22);transition:.2s}
.room-card:hover{border-color:rgba(166,139,212,.42)}
.room-card__code{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:88px;padding:10px 12px;border-radius:10px;background:linear-gradient(135deg,rgba(212,180,122,.16),rgba(166,139,212,.14));border:1px solid var(--line-strong)}
.room-card__code em{font-style:normal;font-size:10px;font-weight:900;letter-spacing:1.4px;color:var(--gold-lt);margin-bottom:4px}
.room-card__code b{font-size:16px;font-weight:900;color:#fff;letter-spacing:1px;font-variant-numeric:tabular-nums}
.room-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.room-card__title{font-size:13.5px;font-weight:900;color:#fff;letter-spacing:.3px}
.room-card__meta{display:flex;flex-wrap:wrap;gap:10px;font-size:11.5px;color:var(--muted)}
.room-card__meta b{color:var(--gold-lt);font-weight:800}
.room-card__remove{flex:0 0 auto;appearance:none;border:0;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:rgba(255,110,130,.1);border:1px solid rgba(255,110,130,.28);color:var(--red-lt);font-family:inherit;font-size:13px;cursor:pointer;transition:.2s}
.room-card__remove:hover{background:rgba(255,110,130,.2)}

.modal-mask{position:fixed;inset:0;z-index:200;background:rgba(5,10,22,.88);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);display:none;align-items:center;justify-content:center;padding:20px;overscroll-behavior:contain}
.modal-mask.is-open{display:flex;animation:maskIn .25s ease}
@keyframes maskIn{from{opacity:0}to{opacity:1}}
.modal{width:min(520px,100%);max-height:88vh;overflow-y:auto;border:1px solid var(--line-strong);border-radius:20px;background:linear-gradient(180deg,var(--panel-2),var(--panel));padding:32px 30px 28px;position:relative;box-shadow:0 0 0 1px rgba(212,180,122,.14),0 44px 90px -40px rgba(0,0,0,.95);animation:popIn .3s cubic-bezier(.2,.9,.3,1.2)}
@keyframes popIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}
.modal--gallery{width:min(560px,100%);padding:0;background:var(--bg);overflow:hidden}
.modal__gallery{display:flex;flex-direction:column;max-height:88vh;overflow-y:auto}
.modal__gallery img{display:block;width:100%;height:auto;cursor:zoom-in}
.modal__close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(13,23,48,.78);backdrop-filter:blur(6px);color:#fff;font-size:17px;display:grid;place-items:center;cursor:pointer;transition:.2s;font-family:inherit;line-height:1;z-index:2}
.modal__close:hover{background:rgba(212,180,122,.9);border-color:rgba(212,180,122,.9);color:#0d1730}

.account-modal{width:min(460px,100%);padding:32px 30px 28px}
.account-modal__title{font-size:22px;font-weight:900;letter-spacing:1px;margin-bottom:6px;background:linear-gradient(100deg,var(--gold-lt),var(--white) 50%,var(--purple-lt));-webkit-background-clip:text;background-clip:text;color:transparent}
.account-modal__sub{font-size:12.5px;color:var(--muted);line-height:1.7;margin-bottom:22px}
.account-tabs{display:flex;gap:4px;background:rgba(255,255,255,.04);border:1px solid var(--line);padding:4px;border-radius:10px;margin-bottom:22px}
.account-tab{flex:1;appearance:none;border:0;background:transparent;color:var(--muted);font:inherit;font-size:13.5px;font-weight:800;padding:9px 12px;border-radius:7px;cursor:pointer;transition:.2s}
.account-tab:hover{color:var(--gold-lt)}
.account-tab.is-active{background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk));color:#0d1730}
.account-form{display:flex;flex-direction:column;gap:14px}
.account-form[hidden]{display:none}
.account-field{display:flex;flex-direction:column;gap:6px}
.account-field label{font-size:12px;font-weight:900;letter-spacing:1.2px;color:var(--gold-lt)}
.account-field input{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font:inherit;font-size:14px;color:var(--text);outline:none;transition:.2s}
.account-field input::placeholder{color:#5a6a88}
.account-field input:focus{border-color:var(--gold);background:rgba(212,180,122,.06);box-shadow:0 0 0 3px rgba(212,180,122,.1)}
.account-form__hint{font-size:11.5px;line-height:1.7;color:var(--muted);padding:8px 12px;border-radius:8px;background:rgba(212,180,122,.05);border:1px dashed rgba(212,180,122,.28)}
.account-form__hint b{color:var(--gold-lt)}
.account-form__error{font-size:12.5px;color:#ffb3c0;padding:10px 14px;border-radius:9px;background:rgba(255,110,130,.1);border:1px solid rgba(255,110,130,.32);display:none}
.account-form__error.is-show{display:block}
.account-form__submit{margin-top:4px;width:100%;justify-content:center;padding:13px 20px;font-size:14.5px}
.account-profile{display:flex;flex-direction:column;gap:16px}
.account-profile[hidden]{display:none}
.account-profile__head{display:flex;align-items:center;gap:14px;padding:18px;border-radius:14px;background:linear-gradient(135deg,rgba(212,180,122,.12),rgba(166,139,212,.1));border:1px solid var(--line-strong)}
.account-profile__avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:900;color:#0d1730;background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk));flex:0 0 auto}
.account-profile__info{display:flex;flex-direction:column;gap:4px;min-width:0}
.account-profile__name{font-size:16px;font-weight:900;color:#fff;letter-spacing:.3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-profile__phone{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.5px}
.account-profile__role{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:900;letter-spacing:1.2px;padding:3px 10px;border-radius:6px;width:fit-content;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);color:var(--muted)}
.account-profile__role[data-role="admin"]{background:rgba(212,180,122,.2);border-color:rgba(212,180,122,.5);color:var(--gold-lt)}
.account-profile__role[data-role="team"]{background:rgba(120,220,200,.16);border-color:rgba(120,220,200,.42);color:var(--cyan-lt)}
.account-profile__role[data-role="judge"]{background:rgba(166,139,212,.16);border-color:rgba(166,139,212,.42);color:var(--purple-lt)}
.account-profile__actions{display:flex;gap:10px}
.account-profile__actions .btn{flex:1;justify-content:center;padding:11px 14px;font-size:13px}

.lightbox{position:fixed;inset:0;z-index:300;background:rgba(3,7,16,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:24px;cursor:zoom-out;overscroll-behavior:contain}
.lightbox.is-open{display:flex;animation:maskIn .25s ease}
.lightbox__img{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:14px;box-shadow:0 0 0 1px rgba(212,180,122,.24),0 44px 90px -30px rgba(0,0,0,.95);animation:lbIn .3s cubic-bezier(.2,.9,.3,1.15);cursor:default}
@keyframes lbIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.lightbox__close{position:absolute;top:20px;right:20px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(13,23,48,.78);backdrop-filter:blur(6px);color:#fff;font-size:20px;display:grid;place-items:center;cursor:pointer;transition:.2s;font-family:inherit;line-height:1}
.lightbox__close:hover{background:rgba(212,180,122,.9);border-color:rgba(212,180,122,.9);color:#0d1730}
.lightbox__hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:1px;color:rgba(255,255,255,.45);pointer-events:none}

.footer{position:relative;z-index:1;border-top:1px solid var(--line);background:rgba(255,255,255,.015);padding:28px 0;margin-top:auto}
.footer__inner{display:flex;flex-direction:column;gap:14px;align-items:center;text-align:center}
.footer__brand{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:800}
.footer__logo{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(212,180,122,.4);background:#0d1730}
.footer__logo--b{border-color:rgba(166,139,212,.45)}
.footer__join{color:var(--gold);font-weight:900;font-size:14px}
.footer__links{display:flex;gap:24px;flex-wrap:wrap;justify-content:center}
.footer__links a{color:var(--muted);text-decoration:none;font-size:13.5px;transition:.2s;border-radius:6px;padding:2px 4px}
.footer__links a:hover{color:var(--gold)}
.footer__copy{font-size:12.5px;color:#5f6a80}

@media (max-width:1100px){
  .topbar__inner{gap:12px;padding:10px 0}
  .brand__text{display:none}
}
@media (max-width:980px){
  .stage{grid-template-columns:1fr}
  .bulletins__grid{grid-template-columns:1fr}
  .about-facts{grid-template-columns:1fr}
  .thanks-grid{grid-template-columns:1fr}
}
@media (max-width:860px){
  .topbar__inner{gap:10px;padding:10px 0}
  .topbar__actions{width:100%;justify-content:flex-end}
  .account-btn{padding:9px 14px;font-size:12.5px}
  .tabs{margin-left:0;width:100%;overflow-x:auto;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:1;padding:9px 12px;font-size:13px;text-align:center;justify-content:center}
}
@media (max-width:720px){
  .brand__logo{width:34px;height:34px}
  .hero-board{padding:32px 0 8px}
  .notice-bar__inner{font-size:12.5px}
  .notice-bar__more{margin-left:0;width:100%}
  .hosts__grid{grid-template-columns:1fr}
  .host-figure{min-height:auto}
  .host-figure__media{min-height:220px}
  .host-figure__media img{max-height:220px}
  .locked__card{padding:40px 22px}
  .modal{padding:26px 20px 22px}
  .cd b{font-size:18px}
  .qa-item__a-inner{padding-left:14px}
  .lightbox{padding:14px}
  .lightbox__close{top:12px;right:12px;width:38px;height:38px}
  .timeline-h__node{min-width:240px;padding:0 10px}
  .timeline-h__event{font-size:12px}
  .timeline-h__crown-logo-wrap{width:84px;height:84px}
  .timeline-h__crown-logo{width:84px;height:84px;padding:8px}
  .timeline-h__runner-logo{width:42px;height:42px;padding:5px}
  .teams-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
  .team-card{padding:20px 14px 18px;gap:12px}
  .team-card__logo-wrap,.team-card__logo{width:84px;height:84px}
  .team-card__logo{padding:8px}
  .team-card__name{font-size:14.5px}
  .thanks-card{padding:20px 18px 18px}
  .account-modal{padding:26px 20px 22px}
  .tools-intro{flex-direction:column;align-items:flex-start;text-align:left}
  .tools-intro__hint{margin-left:0;text-align:left;max-width:none}
  .tools-grid{grid-template-columns:1fr}
  .tool-modal{padding:24px 20px 22px}
  .tool-form__row{grid-template-columns:1fr}
  .room-card{flex-direction:column}
  .room-card__code{width:100%;flex-direction:row;gap:8px;justify-content:flex-start}
  .room-card__code em{margin-bottom:0}
}
@media (hover:none){
  .btn:hover{transform:none!important;box-shadow:none!important}
  .host-figure:hover,.fact-card:hover,.thanks-card:hover,.team-card:hover,.tool-card:hover{transform:none}
  .tab:hover{background:transparent}
  .brand:hover{background:transparent}
}
/* ============================================================
   队伍管理 · 图片上传
============================================================ */
.team-logo-preview{
  display:flex;
  align-items:center;
  gap:14px;
  padding:12px 14px;
  border-radius:12px;
  background:linear-gradient(135deg,rgba(212,180,122,.08),rgba(166,139,212,.06));
  border:1px solid var(--line);
  margin-top:8px;
}
.team-logo-preview__img{
  flex:0 0 auto;
  width:64px;height:64px;
  border-radius:50%;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  background-color:rgba(255,255,255,.04);
  border:1.5px solid var(--line-strong);
}
.team-logo-preview__info{
  flex:1;min-width:0;
  display:flex;flex-direction:column;gap:4px;
  font-size:12px;
}
.team-logo-preview__info b{
  color:var(--gold-lt);font-size:12.5px;font-weight:900;
}
.team-logo-preview__info span{
  color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.team-logo-preview__clear{
  flex:0 0 auto;
  appearance:none;border:0;
  width:30px;height:30px;border-radius:8px;
  display:grid;place-items:center;
  background:rgba(255,110,130,.1);
  border:1px solid rgba(255,110,130,.28);
  color:var(--red-lt);
  font-family:inherit;font-size:13px;
  cursor:pointer;transition:.2s;
}
.team-logo-preview__clear:hover{
  background:rgba(255,110,130,.2);
}

/* 文件选择框 */
.tool-field input[type="file"]{
  padding:8px 12px;
  font-size:12.5px;
  color:var(--muted);
  cursor:pointer;
}
.tool-field input[type="file"]::file-selector-button{
  appearance:none;border:0;
  padding:6px 14px;
  margin-right:12px;
  border-radius:7px;
  font-family:inherit;font-size:12.5px;font-weight:800;
  background:linear-gradient(135deg,var(--gold-lt),var(--gold-dk));
  color:#0d1730;
  cursor:pointer;transition:.2s;
}
.tool-field input[type="file"]::file-selector-button:hover{
  transform:translateY(-1px);
  box-shadow:0 8px 20px -10px rgba(212,180,122,.9);
}

/* 队伍列表里的缩略图 */
.tool-list__thumb{
  flex:0 0 auto;
  width:36px;height:36px;
  border-radius:50%;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  background-color:rgba(255,255,255,.04);
  border:1px solid var(--line);
  display:grid;place-items:center;
  font-size:14px;font-weight:900;
  color:var(--muted);
}
.tool-list__thumb--empty{
  background:rgba(255,110,130,.1);
  border-color:rgba(255,110,130,.28);
  color:var(--red-lt);
}
/* ============================================================
   特别鸣谢 · 头像
============================================================ */
.thanks-card__avatar--img{
  object-fit: cover;
  object-position: center;
  padding: 0;
  background: rgba(255,255,255,.04);
  border: 1.5px solid var(--line-strong);
  box-shadow:
    0 6px 14px -8px rgba(212,180,122,.9),
    inset 0 1px 0 rgba(255,255,255,.1);
  overflow: hidden;
}

/* 悬停时轻微放大 */
.thanks-card__member:hover .thanks-card__avatar--img{
  transform: scale(1.06);
  border-color: var(--gold);
  box-shadow:
    0 8px 20px -8px rgba(212,180,122,1),
    inset 0 1px 0 rgba(255,255,255,.15);
  transition: .25s cubic-bezier(.2,.9,.3,1);
}

/* 合作分类的头像用青色边框 */
.thanks-card[data-category="合作"] .thanks-card__avatar--img{
  border-color: rgba(120,220,200,.5);
  box-shadow:
    0 6px 14px -8px rgba(120,220,200,.9),
    inset 0 1px 0 rgba(255,255,255,.1);
}
.thanks-card[data-category="合作"] .thanks-card__member:hover .thanks-card__avatar--img{
  border-color: var(--cyan);
  box-shadow:
    0 8px 20px -8px rgba(120,220,200,1),
    inset 0 1px 0 rgba(255,255,255,.15);
}