/* Event presentation: a dark, quiet network layer above cool, readable content. */
.hero-stage{position:relative;isolation:isolate;overflow:hidden;background:#0b1422;color:#f3f7ff;border-bottom:1px solid #263750}
.hero-atmosphere{--ambient-play:paused;position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 82% 43%,#17375766,transparent 68%)}
.hero-atmosphere:before{content:"";position:absolute;inset:-8%;background:radial-gradient(ellipse at 89% 28%,#26a6cb4d,transparent 36%),radial-gradient(ellipse at 72% 88%,#7960c954,transparent 40%),radial-gradient(ellipse at 66% 47%,#377bc83b,transparent 48%);opacity:.5;animation:ambient-tide 18s ease-in-out infinite;animation-play-state:var(--ambient-play)}
.hero-atmosphere:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1422 6%,#0b1422e8 27%,#0b142255 65%,transparent)}
.network-topology{position:absolute;height:100%;width:100%;inset:0;color:#5b94ce;object-fit:cover;min-width:1000px}
.network-structure{position:absolute;inset:0;width:100%;height:100%;min-width:1000px}
.network-branches{stroke:#72a9dc;stroke-opacity:.23;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.circuit-junctions{fill:#81b8e8;fill-opacity:.4;stroke:none}
.circuit-terminals{fill:#0d1b2d;stroke-opacity:.4}
/* A short electrical burst is followed by node processing and a return packet. */
.packet-one{--packet-delay:-.8s}.packet-two{--packet-delay:-4s}
.network-signal{--packet-offset:0px;opacity:0;animation:network-flow 6.4s linear infinite;animation-delay:var(--packet-delay);animation-play-state:var(--ambient-play)}
.signal-tail{stroke:#69aff6;stroke-opacity:.3;stroke-width:1.5;stroke-dasharray:18 182}
.signal-trace{--packet-offset:-9px;stroke:#83cfff;stroke-opacity:.8;stroke-width:1.6;stroke-dasharray:3 2 2 193}
.signal-glow{--packet-offset:-14px;stroke:#68caff;stroke-opacity:.2;stroke-width:7;stroke-dasharray:4 196}
.signal-tip{--packet-offset:-17px;stroke:#e1f6ff;stroke-width:2.4;stroke-dasharray:1 199}
.network-echo{stroke:#6cdbed;stroke-width:1.2;stroke-dasharray:2 2 1 195;opacity:0;animation:network-return 6.4s linear infinite;animation-delay:var(--packet-delay);animation-play-state:var(--ambient-play)}
.node-core{fill:#c0e9ff;opacity:.3}
.node-bracket,.node-outline{stroke:#81bcf0;stroke-width:.8;opacity:.3}
.node-outline{animation:node-edge-confirm 6.4s ease-in-out infinite;animation-delay:var(--packet-delay);animation-play-state:var(--ambient-play)}
.node-edge-glow{stroke:#68caff;stroke-width:3;stroke-linejoin:round;opacity:0;animation:node-edge-bloom 6.4s ease-in-out infinite;animation-delay:var(--packet-delay);animation-play-state:var(--ambient-play)}
.node-edge-current{stroke:#c0ebff;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:22 178;opacity:0;animation:node-edge-process 6.4s linear infinite;animation-delay:var(--packet-delay);animation-play-state:var(--ambient-play)}
[data-motion="active"] .hero-atmosphere[data-running="true"]{--ambient-play:running}
.competition-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:72px;align-items:center;padding-block:84px 66px;min-height:565px}
.hero-edition{display:flex;align-items:center;gap:14px;font:500 12px/1.6 var(--font-latin);letter-spacing:.22em;color:#a9c6ee;margin-bottom:25px}
.edition-line{width:28px;height:2px;background:#5293ff;box-shadow:0 0 12px #5293ff30}
.hero-copy h1{font-size:40px;color:#f4f8ff;letter-spacing:0;line-height:1.45;text-wrap:balance}
.hero-cup{display:block;font-family:var(--font-display);font-synthesis:none;font-size:clamp(78px,6.8vw,104px);font-weight:400;letter-spacing:.045em;line-height:1.18;margin:0 0 23px -4px}
.hero-title{display:block;max-width:650px;font-size:32px;font-weight:600;line-height:1.65;letter-spacing:.02em}
.hero-description{font-size:14px;color:#aabbd2;max-width:540px;line-height:2.05;margin-top:22px;text-wrap:pretty}
.hero-copy .hero-actions{margin-top:31px;gap:28px}
.hero-copy .button{background:#2867ee;border-color:#5689f6;min-height:50px;min-width:158px;padding-inline:25px;box-shadow:0 5px 24px #1654d322}
.hero-copy .button:hover{background:#2b68ed;border-color:#91b6ff;box-shadow:0 5px 28px #2867ee40}
.hero-copy .text-link{color:#c8d8ed;font-weight:400;text-decoration:underline;text-decoration-color:#4b6383;text-underline-offset:6px;text-decoration-thickness:1px}
.hero-copy .text-link:hover{color:#fff}
.event-console{min-width:0;padding:26px 28px;background:linear-gradient(135deg,#14243be8,#0e1a2ae8);border:1px solid #344a68;border-top-color:#5b80ad;border-radius:4px;box-shadow:0 16px 56px #020a1429;position:relative}
.console-heading{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;color:#d3e0f2;border-bottom:1px solid #2b3d56;padding-bottom:18px}
.console-signal{position:absolute;left:0;bottom:0;width:30%;height:1px;background:linear-gradient(90deg,transparent,#79baff80,#c9eaff,transparent);opacity:0;pointer-events:none}
.console-phase{display:inline-flex;align-items:center;gap:8px;padding:4px 9px;border:1px solid #3b526f;border-radius:4px;background:#182b43;color:#c5dbf8;font-size:11px;font-weight:550;line-height:1.6;white-space:nowrap}
.console-phase:before{content:"";width:5px;height:5px;flex-shrink:0;background:#7db5ff;border-radius:50%}
.console-phase[data-state="running"]{color:#e3f2ff;border-color:#3c79b2;background:#163857}
.console-phase[data-state="running"]:before{background:#8bd7ff;box-shadow:0 0 0 3px #74caff14;animation:phase-live 3.6s ease-in-out infinite;animation-play-state:paused}
[data-motion="active"] .event-console[data-running="true"] .console-phase[data-state="running"]:before{animation-play-state:running}
.console-phase[data-state="ended"]{color:#acbbce;border-color:#33455e;background:#132237}
.console-phase[data-state="ended"]:before{background:#8493a8}
.console-date-row{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:20px}
.milestone-date{font:500 74px/1.15 var(--font-latin);font-variant-numeric:tabular-nums;letter-spacing:-.05em;white-space:nowrap;color:#f5f8ff}
.milestone-date>span{color:#5596ff;padding-inline:2px}
.console-year{font-size:10px;line-height:2.1;text-align:right;color:#9fb2ce;padding-bottom:8px;white-space:nowrap}
.console-time{font:500 18px/1.7 var(--font-latin);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:12px;margin-top:10px;color:#dce8fb}
.console-time>span{color:#6584ac;font-size:14px}
.console-sessions{margin:15px 0 0}
.console-session{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #2b3d56}
.console-session:first-child{padding-top:0}
.console-session:last-child{padding-bottom:0;border-bottom:0}
.console-session dt{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;font-size:13px;color:#dce8fb}
.console-session dt>span{font-size:10px;color:#a9bbd3}
.console-session dd{display:flex;align-items:baseline;gap:7px;margin:0;font:500 18px/1.5 var(--font-latin);font-variant-numeric:tabular-nums;white-space:nowrap;color:#f0f6ff}
.console-session dd>span{font-size:12px;color:#6584ac}
.console-session .console-session-note{display:block;max-width:12em;font:400 11px/1.8 var(--font-text);white-space:normal;text-wrap:balance;text-align:right;color:#a9bbd3}
.event-clock{margin-top:27px;padding-top:21px;border-top:1px solid #2b3d56;font-variant-numeric:tabular-nums}
.clock-caption{font-size:11px;letter-spacing:.04em;color:#afc3df}
.clock-digits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:13px}
.clock-unit{display:flex;align-items:baseline;justify-content:center;gap:5px;min-width:0;background:#0a1626;border:1px solid #273c58;border-radius:3px;padding:10px 3px 9px}
.clock-unit>span{display:inline-block;min-width:2ch;text-align:center;font:500 27px/1.2 var(--font-latin);font-variant-numeric:tabular-nums;letter-spacing:.01em;color:#d9eaff}
.clock-unit small{font:9px var(--font-text);color:#98adc9}
.clock-unit:last-child>span{color:#83b5ff}
.console-caption{display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#acbfd9;margin-top:20px}
.console-location{padding-left:12px;border-left:1px solid #385072;white-space:nowrap}
.hero-baseline{display:flex;align-items:center;gap:22px;padding-bottom:22px}
.hero-baseline-rule{height:1px;background:linear-gradient(90deg,#3b5b85,transparent);width:80px}
.hero-explore{font-size:10px;letter-spacing:.06em;color:#9db2cf;min-height:44px;display:flex;align-items:center;gap:24px}
.hero-explore:hover{color:white}
html{--event-index-height:79px;scroll-padding-top:calc(var(--event-index-height) + 20px)}
.event-index{position:sticky;top:0;z-index:30;background:var(--white);border-top:0;transition:box-shadow .2s,border-color .2s}
.event-index[data-stuck="true"]{border-bottom-color:#cbd9ed;box-shadow:0 6px 20px #13243e0d}
.event-index>.shell{position:relative;justify-content:space-between;gap:32px;min-height:78px}
.event-index a{gap:17px;position:relative;padding-block:17px;transition:color .2s}
.event-index a>span{color:#476792;transition:color .2s}
.event-index a:after{content:"";position:absolute;height:2px;bottom:0;left:0;right:0;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .2s;opacity:.3}
.event-index a:hover,.event-index a[aria-current="location"]{color:var(--blue-hover)}
.event-index a[aria-current="location"]>span{color:var(--blue)}
.event-index a:hover:not([aria-current="location"]):after{transform:scaleX(1)}
.event-index a:focus-visible{outline-color:var(--focus);outline-offset:-3px;border-radius:3px}
.event-index-marker{position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--blue);pointer-events:none;opacity:0}
.event-index[data-enhanced="true"] .event-index-marker{opacity:1;transition:transform .24s cubic-bezier(.2,.7,.2,1),width .24s cubic-bezier(.2,.7,.2,1)}
.event-index~section[tabindex="-1"]{outline:none}
.event-index+section{scroll-margin-top:-20px}
.event-section{padding-block:76px}
.section-heading{margin-bottom:34px}
.section-heading .eyebrow{color:#486993;font-size:10px;letter-spacing:.13em}
.section-heading h2{font-size:31px;letter-spacing:-.015em}
.event-overview p{color:#4d607b;font-size:15px;line-height:2.15}
.event-objectives{gap:28px;margin-top:42px}
.event-objectives article{position:relative;background:#fff;border:1px solid #dbe3ef;border-top:2px solid #7299cf;border-radius:3px;padding:25px 27px 27px}
.objective-number{color:#356ebd;font-size:12px}
.event-objectives h3{margin-top:18px;font-size:18px}
.event-objectives p{font-size:13px;line-height:1.95;margin-top:12px}
.schedule-band{background:#eaf0f8;border-color:#d8e2ef}
.event-schedule>li{border-color:#cedaeb;padding-block:28px}
.schedule-when time{font-variant-numeric:tabular-nums}
.event-schedule>.schedule-featured{background:#fff;border-left-color:#2563eb;box-shadow:0 4px 20px #152e5010}
.schedule-stage{background:#eaf1ff;color:#2458ad}
.schedule-format{font-size:11px;font-weight:500;color:#4c688d}
.schedule-date{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.schedule-date>span{font-size:11px;color:var(--muted)}
.schedule-hours{display:flex;align-items:baseline;gap:7px;margin-top:3px;font-variant-numeric:tabular-nums}
.schedule-hours time{font:500 18px/1.6 var(--font-latin);color:#214a82}
.schedule-hours>span{font-size:12px;color:#6a7e99}
.schedule-index{color:#536f96}
.schedule-detail p{font-size:13px}
.organization-row dt,.committee-note .label{color:#4c688d}
.organization-row ul{gap:16px 40px}
.awards-section{padding-top:0}
.award-list{background:var(--white);border:1px solid var(--line);border-radius:6px;color:var(--ink)}
.award-list article{border-color:var(--line)}
.award-index{color:var(--blue);font-size:12px;font-weight:600}
.award-list h3{color:var(--ink)}
.award-list p{color:var(--text)}
.reveal-visible{animation:section-reveal .65s cubic-bezier(.2,.7,.2,1) both}
[data-motion="reduced"] .reveal-visible{animation:none}
/* The tip arrives at ~51%: trace the chip edge, confirm the outline, then return. */
@keyframes network-flow{0%{stroke-dashoffset:calc(18px + var(--packet-offset));opacity:0}4%,46%{opacity:1}60%,100%{stroke-dashoffset:calc(-100px + var(--packet-offset));opacity:0}}
@keyframes network-return{0%,72%{stroke-dashoffset:-100px;opacity:0}75%,92%{opacity:.65}99%,100%{stroke-dashoffset:12px;opacity:0}}
@keyframes node-edge-process{0%,52%{stroke-dashoffset:22px;opacity:0}55%,66%{opacity:.9}69%,100%{stroke-dashoffset:-100px;opacity:0}}
@keyframes node-edge-confirm{0%,52%,78%,100%{opacity:.3}56%,66%{opacity:.4}70%,71%{opacity:.7}}
@keyframes node-edge-bloom{0%,52%,78%,100%{opacity:0}56%,66%{opacity:.08}70%,71%{opacity:.18}}
@keyframes ambient-tide{0%,100%{opacity:.35;transform:translate3d(0,0,0)}50%{opacity:.75;transform:translate3d(-12px,8px,0)}}
@keyframes section-reveal{from{opacity:.6;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes phase-live{0%,100%{opacity:.65;transform:scale(.92)}50%{opacity:1;transform:scale(1.12)}}
@media(min-width:1440px){.competition-hero{padding-block:89px 76px;min-height:585px}}
@media(max-width:1100px){.competition-hero{grid-template-columns:minmax(0,1fr) 332px;gap:38px;padding-block:66px 48px;min-height:520px}.hero-cup{font-size:82px}.hero-title{font-size:27px}.event-console{padding:24px}.milestone-date{font-size:66px}.console-time{font-size:17px;gap:9px}.clock-digits{gap:6px}.clock-unit>span{font-size:25px}.hero-description{font-size:13px}.event-section{padding-block:56px}.awards-section{padding-top:0}.event-objectives article{padding:23px}.event-objectives{gap:20px}}
@media(max-width:850px) and (min-width:768px){.competition-hero{gap:28px;grid-template-columns:minmax(0,1fr) 300px}.hero-cup{font-size:72px}.hero-title{font-size:24px}.hero-copy .hero-actions{gap:12px;margin-top:24px}.hero-copy .button{padding-inline:20px}.event-console{padding:22px}.console-time{font-size:16px;gap:8px}.milestone-date{font-size:62px}.clock-unit>span{font-size:23px}.clock-unit{gap:3px}.event-objectives article{padding:20px}.event-objectives h3{font-size:16px}.event-objectives p{font-size:12px}}
@media(max-width:767px){
  .competition-hero{grid-template-columns:1fr;gap:34px;padding-block:38px 22px;min-height:0}
  .hero-atmosphere{background:radial-gradient(ellipse at 100% 48%,#18395d66,transparent 80%)}
  .network-topology{left:auto;right:-46px;top:196px;width:980px;height:760px;min-width:0;opacity:.8}
  .network-structure{left:-450px;width:1100px;min-width:0;opacity:.7}
  .network-routes use:last-child,.network-packet.packet-two,.network-node.packet-two,.network-branches.branch-two{display:none}
  .hero-atmosphere:after{background:linear-gradient(90deg,#0b1422e8 5%,#0b142299 50%,transparent)}
  .hero-edition{font-size:10px;letter-spacing:.19em;margin-bottom:22px}
  .edition-line{width:20px}
  .hero-cup{font-size:76px;margin-bottom:17px;letter-spacing:.025em;margin-left:-3px}
  .hero-title{font-size:26px;line-height:1.6;max-width:8em;text-wrap:wrap;letter-spacing:0}
  .hero-copy h1{font-size:29px}
  .hero-description{font-size:13px;line-height:2;margin-top:18px;max-width:510px}
  .hero-copy .hero-actions{margin-top:24px;gap:23px}
  .hero-copy .button{min-height:48px;padding-inline:19px;font-size:12px;gap:20px}
  .hero-copy .text-link{font-size:12px;gap:13px}
  .event-console{padding:22px 24px;width:100%}
  .console-heading{padding-bottom:16px;font-size:12px}
  .console-date-row{margin-top:14px}
  .milestone-date{font-size:65px}
  .console-year{font-size:10px;padding-bottom:6px}
  .console-time{font-size:19px;margin-top:6px;gap:12px}
  .console-session{gap:10px;padding-block:12px}
  .console-session dd{font-size:18px;gap:6px}
  .event-clock{margin-top:21px;padding-top:18px}
  .clock-digits{gap:10px;margin-top:12px}
  .clock-unit{padding-block:10px;gap:6px}
  .clock-unit>span{font-size:28px}
  .console-caption{margin-top:18px;font-size:10px}
  .hero-baseline{gap:14px;padding-bottom:10px}
  .hero-baseline-rule{width:27px}
  .hero-explore{font-size:10px;gap:12px}
  html{--event-index-height:65px}
  .event-index>.shell{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);min-height:64px;gap:0;padding-block:4px}
  .event-index a{flex-direction:column;justify-content:center;font-size:12px;padding-block:6px;gap:2px;min-width:0;min-height:56px;white-space:nowrap}
  .event-index a>span{font:500 10px/1.4 var(--font-latin);font-variant-numeric:tabular-nums}
  .event-section{padding-block:42px}
  .section-heading{margin-bottom:24px}
  .section-heading h2{font-size:25px}
  .section-heading .eyebrow{font-size:9px}
  .event-overview p{font-size:14px}
  .event-objectives{gap:14px;margin-top:28px}
  .event-objectives article{padding:20px;grid-template-columns:26px 1fr;gap:0 12px;border-top-width:1px;border-left:2px solid #7299cf}
  .event-objectives h3{font-size:16px;margin:0}
  .event-objectives p{font-size:12px;margin-top:10px}
  .objective-number{font-size:11px}
  .event-schedule>li{padding-block:23px}
  .schedule-detail p{font-size:12px}
  .schedule-hours{flex-basis:100%;margin:0}
  .schedule-hours time{font-size:17px}
  .schedule-date>span{font-size:10px}
  .schedule-format{font-size:10px}
  .organization-row ul{gap:10px}
  .awards-section{padding-top:0}
}
@media(max-width:374px){.hero-cup{font-size:68px}.hero-title{font-size:24px}.event-console{padding-inline:20px}.clock-digits{gap:7px}.clock-unit>span{font-size:25px}.hero-copy .hero-actions{gap:17px}.hero-copy .text-link{gap:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.event-objectives article:hover{transform:none}}
@media print{.event-index{position:static;box-shadow:none}.event-index-marker{display:none}}
@media print{.hero-stage{background:white;color:black}.hero-atmosphere,.hero-baseline,.console-signal{display:none}.competition-hero{padding-block:24px;min-height:0}.hero-copy h1,.hero-description,.milestone-date,.console-heading,.console-time,.clock-caption,.console-year,.console-caption,.clock-unit>span,.clock-unit small,.console-session dt,.console-session dt>span,.console-session dd{color:black}.event-console,.clock-unit,.award-list{background:white;box-shadow:none}.console-phase[data-event-phase]{color:black;background:white;border-color:#aaa}.console-phase:before{animation:none!important;box-shadow:none!important;background:#333!important}.award-list h3,.award-list p{color:black}}
