/* Nexus art direction: opposing facets and connected points from the hexagonal X.
   Static geometry keeps the focus on reading and the already approved video loops. */
.nexus-stage{--stage-accent:var(--blue);padding-block:108px 64px}
:root[data-theme="dark"] .nexus-stage{--stage-accent:var(--yellow)}
.stage-layout{display:grid;grid-template-columns:1fr 1.05fr;gap:72px;align-items:center}
.stage-copy{min-width:0;padding-block:12px}
.stage-copy h2{font-size:clamp(38px,3.7vw,52px);line-height:1.08;letter-spacing:-.05em}
.stage-copy h2 span{color:var(--stage-accent)}
.stage-copy>p:not(.event-kicker){font-size:18px;line-height:1.65;margin-top:26px;max-width:460px}
.stage-announcement{margin-top:38px;padding-left:20px;border-left:2px solid var(--stage-accent)}
.stage-announcement .event-pending{color:var(--ink);font-size:14px}
.stage-announcement p{font-size:15px;line-height:1.6;max-width:340px;margin-top:10px}
.stage-copy>.text-link{margin-top:24px;font-size:15px;gap:15px}
.stage-visual{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:480px;padding:38px 44px;background:var(--blue);color:#fff;overflow:hidden;clip-path:polygon(0 0,calc(100% - 52px) 0,100% 30px,100% 100%,52px 100%,0 calc(100% - 30px))}
.stage-gate{position:absolute;z-index:-1;inset:-20% -8%;pointer-events:none;clip-path:polygon(0 0,29% 0,60% 50%,29% 100%,0 100%,32% 50%)}
.stage-gate-back{background:#0806b8;transform:translateX(-20%)}
.stage-gate-front{background:#ffffff0f;transform:rotate(180deg) translateX(-15%)}
.stage-visual:after{content:"";position:absolute;z-index:-1;width:66%;height:64%;border:1px solid #7ca6ff;right:-17%;top:17%;transform:rotate(30deg)}
.stage-visual-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:14px}
.stage-visual-label:before{content:"";height:2px;width:30px;background:var(--yellow)}
.stage-visual-title{position:relative;font-size:clamp(62px,6.4vw,92px);line-height:.97;letter-spacing:-.065em;font-weight:500;padding-block:50px}
.stage-visual-title span{color:var(--yellow)}
.stage-visual-foot{display:flex;gap:12px 24px;flex-wrap:wrap;border-top:1px solid #ffffff40;padding-top:20px;font-size:12px;color:#e8f3ff}
.stage-footer{margin-top:36px;border-top:1px solid var(--line);padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:22px;font-size:14px;color:var(--muted)}
.stage-footer .text-link{font-size:14px;color:var(--ink)}

/* Days form a rail. Each active date connects to a node and the content route. */
.nexus-agenda{--route-rail:250px;--route-gap:52px;--route-accent:var(--blue);--route-surface:var(--page);background:var(--soft);padding-block:100px}
:root[data-theme="dark"] .nexus-agenda{--route-accent:var(--yellow);--route-surface:#030528}
.nexus-agenda .event-heading{display:block;margin-bottom:50px}
.nexus-agenda .event-heading h2{font-size:clamp(38px,4vw,56px);max-width:760px}
.nexus-agenda .event-heading>p{margin-top:24px;max-width:680px;justify-self:auto;font-size:18px}
.nexus-agenda .program-board{display:grid;grid-template-columns:var(--route-rail) minmax(0,1fr);gap:var(--route-gap);border:0;align-items:start}
.nexus-agenda .program-tabs{position:relative;display:flex;flex-direction:column;border:0;gap:14px;isolation:isolate}
.nexus-agenda .program-day{position:relative;min-width:0;display:flex;align-items:center;padding:20px 22px;min-height:138px;gap:20px;border:1px solid var(--line);color:var(--ink);background:transparent;border-radius:5px;transition:background-color .18s,color .18s}
.nexus-agenda .program-day>strong{font-size:76px;letter-spacing:-.075em;font-weight:400}
.nexus-agenda .program-day>span{font-size:17px;gap:2px}
.nexus-agenda .program-day small{font-size:11px;white-space:nowrap}
.nexus-agenda .program-day .icon{display:none}
.nexus-agenda .program-day[aria-selected="true"]{background:var(--yellow);color:var(--navy);border-color:var(--yellow);box-shadow:none}
.nexus-agenda .program-day[aria-selected="true"]:after{content:"";position:absolute;right:calc(-1 * var(--route-gap) - 1px);top:50%;width:var(--route-gap);height:1px;background:var(--route-accent);pointer-events:none}
.nexus-agenda .program-day:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
:root[data-theme="dark"] .nexus-agenda .program-day:focus-visible{outline-color:#fff}
.nexus-agenda .program-day:hover:not([aria-selected="true"]){background:var(--tint)}
.nexus-agenda .program-panel{position:relative;display:block;min-width:0;min-height:400px;padding:0 0 0 34px;border:0;border-left:1px solid var(--route-accent);background:transparent}
.nexus-agenda .program-date-label{display:flex;align-items:center;flex-wrap:wrap;gap:8px 15px;padding:0 0 24px;color:var(--muted);font-size:12px;letter-spacing:.06em}
.nexus-agenda .program-date-label strong{font-size:14px;color:var(--ink);margin:0;letter-spacing:0}
.program-node{display:grid;place-items:center;height:44px;width:44px;margin-right:4px;flex:none;background:var(--route-accent);color:#fff;font-size:13px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
:root[data-theme="dark"] .program-node{color:var(--navy)}
.program-panel-copy{position:relative;isolation:isolate;padding:32px 36px;background:var(--route-surface);border:1px solid var(--line);border-radius:5px}
.program-panel-copy:after{content:"";position:absolute;right:0;top:0;width:36px;height:21px;background:var(--soft);clip-path:polygon(0 0,100% 0,100% 100%);pointer-events:none}
.nexus-agenda .program-panel .event-pending{font-size:12px;color:var(--muted);margin-bottom:16px}
.nexus-agenda .program-panel h3{font-size:clamp(28px,2.8vw,38px);line-height:1.12}
.nexus-agenda .program-panel p{font-size:16px;line-height:1.7;margin-top:18px;max-width:500px}
.nexus-agenda .program-panel .text-link{margin-top:22px;font-size:14px}
.nexus-agenda .program-formats{grid-template-columns:var(--route-rail) minmax(0,1fr);gap:var(--route-gap);margin-top:28px}
.nexus-agenda .program-formats-intro{padding-top:12px}
.nexus-agenda .program-formats-intro h3{font-size:24px;line-height:1.2}
.nexus-agenda .program-formats-intro p{font-size:14px;line-height:1.6}
.nexus-agenda .program-formats-list{position:relative;border:0;border-left:1px solid var(--line);padding-left:34px}
.nexus-agenda .program-format{border-bottom:1px solid var(--line)}
.nexus-agenda .program-format summary{position:relative;padding:19px 0;grid-template-columns:32px minmax(0,1fr) 24px;gap:16px;min-height:80px}
.nexus-agenda .program-format summary:before{content:"";position:absolute;left:-39px;top:calc(50% - 5px);width:9px;height:10px;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%);background:var(--route-accent)}
.nexus-agenda .program-format summary>span:first-child{font-size:12px;color:var(--route-accent)}
.nexus-agenda .program-format summary>strong{font-size:22px;line-height:1.25}
.nexus-agenda .program-format[open] summary>strong{color:var(--route-accent)}
.nexus-agenda .program-format>p{margin:0 32px 24px 48px;font-size:15px;line-height:1.7}
.nexus-agenda .program-footnote{margin-left:calc(var(--route-rail) + var(--route-gap) + 34px);max-width:600px;font-size:12px}

@media(max-width:1100px){
 .stage-layout{gap:36px;grid-template-columns:1fr 1fr}
 .stage-visual{padding:32px;min-height:440px}
 .stage-visual-title{font-size:72px}
 .nexus-agenda{--route-rail:230px;--route-gap:32px}
 .nexus-agenda .program-day{gap:16px;padding-inline:18px}
 .nexus-agenda .program-day>strong{font-size:68px}
}
@media(max-width:767px){
 .nexus-stage{padding-block:64px 48px}
 .stage-layout{grid-template-columns:1fr;gap:32px}
 .stage-copy h2{font-size:36px;max-width:470px}
 .stage-copy>p:not(.event-kicker){font-size:17px;margin-top:22px}
 .stage-announcement{margin-top:26px;padding-left:16px}
 .stage-visual{min-height:330px;padding:28px;clip-path:polygon(0 0,calc(100% - 32px) 0,100% 18px,100% 100%,32px 100%,0 calc(100% - 18px))}
 .stage-visual-title{font-size:clamp(58px,14vw,80px);padding-block:34px}
 .stage-visual-foot{font-size:11px;gap:10px 16px}
 .stage-footer{margin-top:28px;flex-direction:column;align-items:flex-start;gap:12px;font-size:13px}
 .nexus-agenda{padding-block:64px;--route-gap:0px}
 .nexus-agenda .event-heading{margin-bottom:32px}
 .nexus-agenda .event-heading h2{font-size:36px}
 .nexus-agenda .event-heading>p{font-size:17px;margin-top:22px}
 .nexus-agenda .program-board{grid-template-columns:minmax(0,1fr);gap:28px}
 .nexus-agenda .program-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .nexus-agenda .program-day{min-height:106px;padding:17px 14px;gap:12px;align-items:center}
 .nexus-agenda .program-day>strong{font-size:52px}
 .nexus-agenda .program-day>span{font-size:14px}
 .nexus-agenda .program-day small{font-size:10px}
 .nexus-agenda .program-day[aria-selected="true"]:after{right:auto;left:50%;top:100%;width:1px;height:28px}
 .nexus-agenda .program-panel{padding-left:18px;min-height:0}
 .nexus-agenda .program-date-label{gap:8px 12px;padding-bottom:18px;font-size:10px}
 .nexus-agenda .program-date-label strong{font-size:12px}
 .program-node{width:36px;height:36px;font-size:12px;margin-right:0}
 .program-panel-copy{padding:26px 22px}
 .nexus-agenda .program-panel h3{font-size:28px}
 .nexus-agenda .program-panel p{font-size:15px}
 .nexus-agenda .program-panel .text-link{font-size:13px;gap:12px}
 .nexus-agenda .program-formats{grid-template-columns:minmax(0,1fr);gap:22px;margin-top:30px}
 .nexus-agenda .program-formats-intro{padding-top:0}
 .nexus-agenda .program-formats-list{padding-left:18px}
 .nexus-agenda .program-format summary{gap:10px;grid-template-columns:24px minmax(0,1fr) 22px;min-height:74px}
 .nexus-agenda .program-format summary:before{left:-23px}
 .nexus-agenda .program-format summary>strong{font-size:20px}
 .nexus-agenda .program-format>p{margin-left:34px;margin-right:4px;font-size:15px}
 .nexus-agenda .program-footnote{margin-left:19px;font-size:12px}
}
@media(max-width:374px){
 .nexus-agenda .program-day{padding:16px 10px;gap:7px}
 .nexus-agenda .program-day>strong{font-size:43px}
 .nexus-agenda .program-day>span{font-size:13px}
 .nexus-agenda .program-day small{font-size:9px}
 .program-panel-copy{padding:24px 16px}
 .nexus-agenda .program-date-label{gap:8px}
 .stage-copy>.text-link{font-size:14px;gap:10px}
}
