/* 赛事栏目：简洁目录与连续正文。隔离旧卡片样式，保留全站品牌视觉。 */
.events-editorial{color:#35475e;background:#fff}
/* 总览独立视觉：品牌浅蓝、星宝轨道与五类赛事图形。 */
.competition-gallery{background:#f6f9fd;color:#304963}
.competition-gallery .container{max-width:1160px}
.competition-hero{background:linear-gradient(110deg,#eef5ff 0%,#f6faff 42%,#fff 70%);border-bottom:1px solid #e7eff8;overflow:hidden}
.competition-hero-inner{display:grid;grid-template-columns:1.35fr 1fr;align-items:center;gap:40px;padding-block:35px}
.competition-eyebrow{display:flex;align-items:center;gap:10px;color:#6887ac;font-size:12px;letter-spacing:2px;margin-bottom:16px}
.competition-eyebrow i{width:7px;height:7px;border-radius:50%;background:#5796df;box-shadow:0 0 0 5px #5796df0c}
.competition-hero h1{font-size:43px;line-height:1.5;letter-spacing:-.5px;color:#213f66;font-weight:600}
.competition-hero-copy>p{font-size:18px;line-height:1.85;color:#657b96;margin-top:14px}
.competition-categories{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.competition-categories>span{font-size:14px;color:#6180a5;border:1px solid #dbe8f8;border-radius:6px;padding:5px 15px;background:#ffffff9c}
.competition-hero-art{height:280px;position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate}
.competition-hero-art img{width:238px;height:238px;object-fit:contain;position:relative;z-index:2}
.competition-orbit{position:absolute;border:1px solid #cbdcf2;border-radius:50%;width:345px;height:200px;transform:rotate(-23deg);z-index:3;pointer-events:none}
.competition-orbit.orbit-b{width:320px;height:245px;transform:rotate(27deg);border-color:#e2ebf6;z-index:1}
.competition-art-grid{position:absolute;width:390px;height:270px;background-image:radial-gradient(#b8cce633 1px,transparent 1px);background-size:19px 19px;mask-image:radial-gradient(ellipse,#000,transparent 72%);z-index:0}
.competition-spark{position:absolute;color:#eac260;z-index:4;line-height:1}
.spark-a{font-size:30px;right:57px;top:27px}
.spark-b{font-size:23px;left:42px;bottom:43px;color:#719bcc}
.competition-node{position:absolute;width:9px;height:9px;border-radius:50%;background:#72a6e4;box-shadow:0 0 0 5px #72a6e419;z-index:4}
.node-a{left:56px;top:89px;animation:competition-drift 5s ease-in-out infinite}
.node-b{right:35px;bottom:71px;width:6px;height:6px;background:#e9c576;animation:competition-drift 6s ease-in-out 1s infinite}
.competition-catalog{padding-top:29px;padding-bottom:55px}
.competition-catalog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:19px;color:#627f9f;font-size:16px}
.competition-catalog-heading>span:last-child{font-size:13px;letter-spacing:2px;color:#94a7bd}
.competition-catalog-heading i{font-style:normal;color:#c4d1e0;margin-inline:8px}
.competition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.competition-card{position:relative;display:flex;flex-direction:column;background:linear-gradient(135deg,#fff 58%,#f7faff);border:1px solid #e0eaf5;border-radius:18px;padding:27px 30px 22px;overflow:hidden;box-shadow:0 5px 20px #21497004;transition:transform .22s,border-color .22s,box-shadow .22s}
.competition-card:hover{transform:translateY(-4px);border-color:#a9c7ec;box-shadow:0 15px 34px #2149700d}
.competition-card:focus-visible{outline:2px solid #3684d9;outline-offset:4px}
.competition-card-top{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:78px;margin-bottom:14px}
.competition-code{display:block;font-size:33px;font-weight:550;line-height:1.25;letter-spacing:-.4px;color:#336ea9}
.competition-kind{display:inline-block;font-size:13px;color:#708cae;line-height:1.6;margin-top:8px}
.competition-symbol{width:87px;height:87px;flex-shrink:0;border-radius:24px;background:radial-gradient(circle,#edf5ff,transparent 75%)}
.competition-symbol svg{width:100%;height:100%;display:block;transition:transform .3s}
.competition-card:hover .competition-symbol svg{transform:rotate(-4deg) translateY(-2px)}
.competition-card h2{font-size:23px;line-height:1.6;letter-spacing:0;font-weight:500;color:#29435f}
.competition-card-copy>p{font-size:18px;line-height:1.85;font-weight:400;color:#66768b;margin-top:11px}
.competition-card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:21px;font-size:14px;color:#6c8bae}
.competition-arrow{width:31px;height:31px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:21px;color:#518bc8;background:#eff5fc;transition:background .2s,color .2s}
.competition-card:hover .competition-arrow{background:#367cc4;color:#fff}
.card-ioai{background:linear-gradient(130deg,#fff 50%,#f3f8ff)}
.card-lmcc .competition-code{color:#6d73ad}
.card-lmcc .competition-symbol{background:radial-gradient(circle,#f3f1fd,transparent 75%)}
.card-hackathon{grid-column:1/-1;display:grid;grid-template-columns:260px minmax(0,1fr) 135px;gap:28px;align-items:center;background:linear-gradient(110deg,#fff 40%,#f1f9fa);padding-block:25px}
.card-hackathon .competition-card-top{display:flex;margin:0;min-height:0;gap:14px}
.card-hackathon .competition-code{font-size:28px;color:#408392}
.card-hackathon .competition-symbol{position:static;width:72px;height:72px;opacity:1}
.card-hackathon .competition-card-copy{position:relative;padding-right:15px}
.card-hackathon .competition-card-copy p{margin-top:6px}
.card-hackathon .competition-card-bottom{margin:0;padding:0;gap:14px}
@keyframes competition-drift{50%{transform:translateY(-8px)}}
@media(max-width:960px){
 .competition-hero-inner{gap:15px;grid-template-columns:1.3fr 1fr}
 .competition-hero h1{font-size:34px}
 .competition-hero-art{height:245px}
 .competition-hero-art img{width:210px;height:210px}
 .competition-orbit{width:275px;height:175px}
 .competition-orbit.orbit-b{width:255px;height:215px}
 .competition-art-grid{width:290px;height:220px}
 .spark-a{right:12px}.spark-b{left:10px}
 .node-a{left:18px}.node-b{right:5px}
 .competition-card{padding:23px}
 .competition-card h2{font-size:21px}
 .competition-card-copy>p{font-size:17px}
 .competition-code{font-size:30px}
 .competition-symbol{width:75px;height:75px}
 .competition-grid{gap:17px}
 .card-hackathon{grid-template-columns:minmax(0,1fr) 135px;gap:14px 20px}
 .card-hackathon .competition-card-top{grid-column:1/-1}
 .card-hackathon .competition-card-bottom{grid-column:2;justify-content:flex-end}
}
@media(max-width:680px){
 .competition-hero-inner{grid-template-columns:1fr;padding-top:29px;padding-bottom:18px;gap:0}
 .competition-hero h1{font-size:29px;letter-spacing:0}
 .competition-eyebrow{font-size:11px;margin-bottom:11px}
 .competition-hero-copy>p{font-size:17px;margin-top:10px}
 .competition-hero-copy>p br{display:none}
 .competition-categories{margin-top:17px;gap:8px}
 .competition-categories>span{font-size:13px;padding:4px 12px}
 .competition-hero-art{height:170px;width:260px;justify-self:end;margin-top:0}
 .competition-hero-art img{width:161px;height:161px}
 .competition-orbit{width:232px;height:125px}
 .competition-orbit.orbit-b{width:205px;height:155px}
 .competition-art-grid{width:250px;height:160px}
 .spark-a{top:11px;right:12px;font-size:25px}
 .spark-b{left:12px;bottom:25px;font-size:19px}
 .node-a{left:15px;top:58px}.node-b{right:8px;bottom:40px}
 .competition-catalog{padding-top:22px;padding-bottom:30px}
 .competition-catalog-heading{font-size:15px;margin-bottom:15px}
 .competition-grid{grid-template-columns:1fr;gap:17px}
 .competition-card{padding:22px 23px 19px;border-radius:15px}
 .competition-card-top{min-height:69px;margin-bottom:12px}
 .competition-code{font-size:29px}
 .competition-kind{margin-top:7px}
 .competition-symbol{width:72px;height:72px}
 .competition-card h2{font-size:21px}
 .competition-card-copy>p{font-size:17px;line-height:1.85;margin-top:9px}
 .competition-card-bottom{padding-top:17px}
 .card-hackathon{display:flex;gap:0}
 .card-hackathon .competition-card-top{display:flex;min-height:69px;margin-bottom:12px}
 .card-hackathon .competition-symbol{position:static;opacity:1;width:72px;height:72px}
 .card-hackathon .competition-card-copy{padding:0}
 .card-hackathon .competition-card-bottom{padding-top:17px;justify-content:space-between;width:100%}
 .card-hackathon .competition-code{font-size:27px}
}
@media(prefers-reduced-motion:reduce){
 .competition-node{animation:none}
 .competition-card,.competition-symbol svg{transition:none}
 .competition-card:hover,.competition-card:hover .competition-symbol svg{transform:none}
}
.events-editorial .container{max-width:1120px}
.events-intro{background:linear-gradient(115deg,#f2f7fd,#fafcfe 72%);border-bottom:1px solid #e8eef5;padding:47px 0 39px}
.events-eyebrow{display:block;color:#6485aa;font-size:12px;letter-spacing:2px;margin-bottom:12px}
.events-intro h1{font-size:38px;line-height:1.4;font-weight:600;letter-spacing:0;color:#203b5b}
.events-intro p{font-size:18px;color:#66768a;line-height:1.8;margin-top:16px}
.event-list{display:block}
.event-directory.event-list{padding-block:8px 48px}
.event-list-row{display:grid;grid-template-columns:160px minmax(0,1fr) 34px;align-items:start;column-gap:36px;border-bottom:1px solid #e5ebf2;padding:31px 0;transition:background .2s}
.event-list-row:hover{background:#f8fbfe}
.event-list-id>span{display:block;font-size:29px;line-height:1.35;font-weight:550;letter-spacing:-.4px;color:#2e69a9}
.event-list-id>small{display:block;font-size:14px;color:#7d8898;line-height:1.5;margin-top:7px}
.event-list-copy h2{font-size:23px;font-weight:500;line-height:1.55;letter-spacing:0;color:#263e5b;margin:0;text-wrap:balance}
.event-list-copy p{font-size:18px;font-weight:400;color:#647186;line-height:1.85;margin-top:9px;max-width:830px}
.event-list-arrow{font-size:25px;line-height:1.4;color:#6895c3;justify-self:end}
.event-name-part{display:inline-block;white-space:nowrap}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.editorial-home{background:#f8fafd}
.editorial-home .event-list-row:first-child{border-top:1px solid #e5ebf2}
.editorial-home .section-heading h2{font-weight:600}
.editorial-home .event-list-copy h2{font-size:23px;font-weight:500}
.editorial-home .event-list-copy p{font-size:18px}
.article-heading{padding-top:31px;padding-bottom:30px;border-bottom:1px solid #e4ebf3}
.article-back{font-size:15px;color:#74869d;display:inline-block;margin-bottom:26px}
.article-back:hover{color:#216fc4}
.article-kicker{display:flex;align-items:baseline;gap:16px;font-size:25px;color:#2e69a9;font-weight:550;line-height:1.4}
.article-kicker>span{font-size:15px;font-weight:400;color:#8090a3;letter-spacing:0}
.article-heading h1{font-size:36px;line-height:1.55;letter-spacing:0;font-weight:600;color:#263e5b;margin-top:12px;text-wrap:pretty}
.article-english{font-size:15px;color:#7d8a9b;line-height:1.7;margin-top:7px}
.article-lead{font-size:19px;line-height:1.85;color:#5c6c80;margin-top:18px;max-width:970px}
.article-layout{display:grid;grid-template-columns:162px minmax(0,1fr);gap:58px;padding-top:31px;padding-bottom:54px;align-items:start}
.article-toc{position:sticky;top:115px;font-size:15px;color:#79899c}
.article-toc>span{display:block;font-size:13px;color:#96a2b0;letter-spacing:.8px;margin-bottom:13px}
.article-toc>div{display:flex;flex-direction:column;border-left:1px solid #e5ebf2;gap:1px}
.article-toc a{display:block;padding:9px 0 9px 17px;line-height:1.6;font-weight:400}
.article-toc a:hover,.article-toc a:focus-visible{color:#216fc4;background:#f4f8fc}
.article-body{min-width:0}
.article-section{padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid #e5ebf2;scroll-margin-top:110px}
.article-section>h2{font-size:25px;line-height:1.5;font-weight:500;color:#263e5b;letter-spacing:0;margin-bottom:14px}
.article-section p,.article-section dd{font-size:18px;line-height:1.85;color:#5c6b7e;font-weight:400}
.article-section p+p{margin-top:11px}
.article-section a{font-size:15px;color:#327bc1;line-height:1.8}
.article-section a:hover{text-decoration:underline;text-underline-offset:4px}
.article-inline-links{display:flex;gap:12px 25px;flex-wrap:wrap;margin-top:13px}
.article-section .article-note{font-size:15px;line-height:1.8;color:#8793a3;margin-top:14px}
.format-rows{margin:0}
.format-rows>div{display:grid;grid-template-columns:135px minmax(0,1fr);gap:23px;padding:12px 0;border-bottom:1px solid #eef2f6}
.format-rows>div:first-child{padding-top:0}
.format-rows>div:last-child{border:0;padding-bottom:0}
.format-rows dt{font-size:17px;font-weight:400;color:#344d6c;line-height:1.85}
.format-rows dd{margin:0}
.syllabus-group+.syllabus-group{margin-top:23px}
.syllabus-group h3{font-size:19px;line-height:1.6;font-weight:500;color:#2b6296;margin:0 0 7px}
.syllabus-rows{margin:0;background:#f8fafc;border-left:2px solid #d5e3f1;padding:9px 18px}
.syllabus-rows>div{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:20px;padding:10px 0}
.syllabus-rows dt{font-size:17px;line-height:1.85;color:#455c77;font-weight:400}
.syllabus-rows dd{margin:0}
.task-example{margin-top:20px;padding:18px 0 0;border-top:1px dashed #dce5ef}
.task-example>span{font-size:15px;color:#527598;display:block;margin-bottom:8px;line-height:1.7}
.task-example>a{display:inline-block;margin-top:9px}
.article-resources{padding:0;margin:0;list-style:none}
.article-resources li{border-bottom:1px solid #eef2f6}
.article-resources li:last-child{border:0}
.article-resources a{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:17px;padding:10px 0}
.related-events>span{font-size:14px;color:#8b98aa}
.related-events>div{display:flex;gap:15px 31px;flex-wrap:wrap;margin-top:12px}
.related-events a{display:flex;align-items:center;gap:15px;color:#4d7096;font-size:17px}
.events-editorial a:focus-visible,.editorial-home a:focus-visible{outline:2px solid #5b9cda;outline-offset:4px}
@media(max-width:960px){
 .event-list-row{grid-template-columns:140px minmax(0,1fr) 24px;column-gap:24px}
 .event-list-id>span{font-size:26px}
 .article-layout{grid-template-columns:130px minmax(0,1fr);gap:33px}
 .article-heading h1{font-size:32px}
 .format-rows>div{grid-template-columns:110px minmax(0,1fr);gap:15px}
 .syllabus-rows>div{grid-template-columns:95px minmax(0,1fr);gap:15px}
}
@media(max-width:680px){
 .events-intro{padding:30px 0 26px}
 .events-intro h1{font-size:28px}
 .events-intro p{font-size:17px;margin-top:12px}
 .events-intro p br{display:none}
 .event-directory.event-list{padding-bottom:30px}
 .event-list-row{grid-template-columns:minmax(0,1fr) 25px;gap:11px 12px;padding:24px 0}
 .event-list-id{display:flex;align-items:baseline;gap:13px;flex-wrap:wrap;grid-column:1}
 .event-list-id>span{font-size:25px}
 .event-list-id>small{font-size:13px;margin:0}
 .event-list-arrow{grid-column:2;grid-row:1}
 .event-list-copy{grid-column:1/-1;grid-row:2}
 .event-list-copy h2,.editorial-home .event-list-copy h2{font-size:21px;line-height:1.6}
 .event-list-copy p,.editorial-home .event-list-copy p{font-size:17px;line-height:1.85;margin-top:8px}
 .article-heading{padding-top:23px;padding-bottom:23px}
 .article-back{font-size:14px;margin-bottom:20px}
 .article-kicker{font-size:24px;gap:13px}
 .article-kicker>span{font-size:14px}
 .article-heading h1{font-size:27px;line-height:1.55;margin-top:10px}
 .article-english{font-size:13px}
 .article-lead{font-size:18px;margin-top:14px}
 .article-layout{display:block;padding-top:0;padding-bottom:35px}
 .article-toc{position:static;border-bottom:1px solid #e5ebf2;padding:17px 0;margin-bottom:24px}
 .article-toc>span{display:none}
 .article-toc>div{flex-direction:row;flex-wrap:wrap;gap:8px 22px;border:0}
 .article-toc a{padding:0;font-size:14px}
 .article-section{padding-bottom:22px;margin-bottom:22px;scroll-margin-top:90px}
 .article-section>h2{font-size:23px;margin-bottom:12px}
 .article-section p,.article-section dd{font-size:18px;line-height:1.85}
 .format-rows>div{display:block;padding:12px 0}
 .format-rows dt{font-size:17px;margin-bottom:4px;color:#344d6c}
 .syllabus-group+.syllabus-group{margin-top:20px}
 .syllabus-rows{padding:6px 14px}
 .syllabus-rows>div{display:block;padding:9px 0}
 .syllabus-rows dt{margin-bottom:3px;font-size:16px}
 .article-section .article-note{font-size:14px}
 .article-resources a{font-size:16px}
 .related-events>div{gap:11px 22px}
}
