/* Continuous motion layer: every chapter stays alive without scrolling. */
.hero-bottom{justify-content:space-between}.hero-orbits i{animation:orbit-idle 14s ease-in-out infinite alternate}.hero-orbits i:nth-child(2){animation-duration:19s;animation-delay:-6s}.hero-orbits i:nth-child(3){animation-duration:11s;animation-delay:-4s}.sonic-title{animation:title-float 6s ease-in-out infinite alternate}.acoustic-glass{animation:glass-sweep 8s ease-in-out infinite alternate}
.official-card{animation:card-hover 5.5s ease-in-out infinite alternate}.official-status i{animation:seal-breathe 3s ease-in-out infinite}.holo-edge{animation:holo-pass 8s ease-in-out infinite alternate}.official-grid{animation:grid-drift 18s linear infinite}
.protocol-core h2{animation:title-float 4.8s ease-in-out infinite alternate}.protocol-traces i:after{animation:trace-travel 2.6s ease-in-out infinite}.protocol-traces i:nth-child(2):after{animation-delay:-.9s}.protocol-traces i:nth-child(3):after{animation-delay:-1.8s}.protocol-core li{animation:protocol-glow 4.5s ease-in-out infinite}.protocol-core li:nth-child(2){animation-delay:-1.5s}.protocol-core li:nth-child(3){animation-delay:-3s}
.equal-nodes i{animation:node-radiate 2.8s ease-in-out infinite;animation-delay:calc(var(--node) * -.38s)}.equal-spectrum i{animation:spectrum-breathe 4s ease-in-out infinite alternate}.equal-spectrum i:nth-child(2n){animation-delay:-2s}.equal-spectrum i:nth-child(3n){animation-delay:-1s}.equal-links{background-size:200% 100%;animation:link-flow 3s linear infinite}
.choice-gate{animation:card-hover 6s ease-in-out infinite alternate}.path-option{animation:path-alive 4.8s ease-in-out infinite}.path-option:nth-child(2){animation-delay:-1.6s}.path-option:nth-child(3){animation-delay:-3.2s}.choice-word{animation:word-drift 8s ease-in-out infinite alternate}
.echo-rings i{animation:ring-breathe 4.6s ease-in-out infinite alternate}.echo-rings i:nth-child(2){animation-delay:-1.1s}.echo-rings i:nth-child(3){animation-delay:-2.2s}.echo-rings i:nth-child(4){animation-delay:-3.3s}.echo-stats>b{animation:stat-glow 4s ease-in-out infinite alternate}.echo-stats>b:nth-child(2){animation-delay:-2s}
/* Each group has the same exact width, including its final gap. */
.fair .scene{display:grid;grid-template-columns:1fr auto;column-gap:30px;align-content:start}.fair .year-mark{grid-column:1/-1}.fair-title{grid-column:1;max-width:none}.fair-score{position:static;grid-column:2;grid-row:2;max-width:250px;align-content:center}.fair-rail,.fair .gallery-hint{grid-column:1/-1;min-width:0}
.fair-rail{overflow:hidden;display:block;scroll-snap-type:none;padding-bottom:35px}.film-track{display:flex;width:max-content;animation:continuous-marquee 65s linear infinite;will-change:transform}.film-group{display:flex;gap:28px;padding-right:28px;flex-shrink:0}.fair-rail .photo-card{width:clamp(320px,52vw,650px);flex:0 0 auto;scroll-snap-align:none}.fair-rail .photo-card img{animation:photo-breathe 8s ease-in-out infinite alternate;transform-origin:center}.fair-rail .photo-card:nth-child(2n) img{animation-delay:-4s}.fair-title h2{animation:title-float 5.5s ease-in-out infinite alternate}
/* Entrance lives on transform; idle floating uses the independent translate property. */
.ticket-stream article{animation:ticket-hover 4.2s ease-in-out infinite alternate;animation-delay:calc(var(--ticket,0) * -.65s)}.ticket-stream article:nth-child(2){--ticket:1}.ticket-stream article:nth-child(3){--ticket:2}.ticket-stream article:nth-child(4){--ticket:3}.ticket-stream article:nth-child(5){--ticket:4}.ticket-stream article:nth-child(6){--ticket:5}.ticket-stream article img{animation:photo-breathe 7s ease-in-out infinite alternate}.ticket-stream .photo-card{overflow:hidden}.talk-head>b{animation:board-light 3s ease-in-out infinite alternate}.talk-head{position:relative}.talk-head:after{content:'';position:absolute;bottom:-2px;left:0;width:80px;height:3px;background:#8170ff;box-shadow:0 0 18px #8170ff;animation:board-scan 5s ease-in-out infinite alternate}
.lecture-shot{animation:photo-float 6s ease-in-out infinite alternate}.spotlight{animation-duration:5s}.lecture-poster>b{animation:stat-glow 3.5s ease-in-out infinite alternate}.room-sign{animation:card-hover 5s ease-in-out infinite alternate}.desk-photos img{animation:photo-float 5s ease-in-out infinite alternate}.desk-photos img:nth-child(2){animation-delay:-1.8s;animation-duration:6.5s}.desk-photos img:nth-child(3){animation-delay:-3.2s;animation-duration:5.8s}
.blueprint:after{content:'';position:absolute;inset:14px;background:linear-gradient(transparent 45%,#83f6ff45 50%,transparent 55%);background-size:100% 280%;pointer-events:none;animation:blueprint-scan 6s linear infinite}.blueprint i{animation:blueprint-pulse 3.6s ease-in-out infinite alternate}.blueprint i:nth-of-type(2){animation-delay:-.9s}.blueprint i:nth-of-type(3){animation-delay:-1.8s}.blueprint i:nth-of-type(4){animation-delay:-2.7s}.phone{animation:phone-hover 5.5s ease-in-out infinite alternate}.signal-lines i{background:linear-gradient(90deg,transparent,#061c12 45%,transparent);background-size:200% 100%;animation:link-flow 3s linear infinite}.signal-lines i:nth-child(2n){animation-delay:-1.5s}.portal-frame{animation:photo-float 6s ease-in-out infinite alternate}.network-copy>b{animation:network-shine 4s ease-in-out infinite alternate}.network-copy>b:nth-of-type(2){animation-delay:-2s}
/* Five continuously running lanes, rather than a grid of little cards. */
.constellation{background:radial-gradient(ellipse at 70% 50%,#261a4f 0,#080610 60%)}.constellation-title h2{font-size:clamp(3.4rem,6vw,6.5rem);line-height:1.12}.constellation-title>small{color:#b2a4d8}.star-map{width:calc(100% + 14vw);margin-left:-7vw;min-height:0;padding:35px 0 55px;overflow:hidden;perspective:none;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.barrage{display:grid;gap:24px;position:relative}.barrage-row{overflow:hidden;padding:8px 0}.barrage-track{display:flex;width:max-content;animation:continuous-marquee var(--duration) linear infinite;animation-delay:var(--offset);will-change:transform}.barrage-row:nth-child(even) .barrage-track{animation-direction:reverse}.barrage-group{display:flex;align-items:center;gap:48px;padding-right:48px;flex-shrink:0;min-width:100vw}.barrage-name{font-size:clamp(1.2rem,2.2vw,2rem);font-weight:600;letter-spacing:.025em;white-space:nowrap;color:#e9e5fb;text-shadow:0 0 28px #a183ff30;display:inline-flex;align-items:center;gap:25px;line-height:1.5}.barrage-name:before{content:'';width:6px;height:6px;border-radius:50%;background:#caff42;box-shadow:0 0 16px #caff42;flex-shrink:0}.barrage-row:nth-child(2) .barrage-name{color:#b6f3ff;font-size:clamp(1.5rem,2.8vw,2.5rem)}.barrage-row:nth-child(3) .barrage-name{color:#b7a6e5}.barrage-row:nth-child(4) .barrage-name{color:#d8ffa0;font-size:clamp(1.4rem,2.6vw,2.3rem)}.barrage-row:nth-child(5){opacity:.65}.partner-total{background:#08061155;animation:stat-glow 4s ease-in-out infinite alternate}.constellation-title{animation:title-float 7s ease-in-out infinite alternate}
.dept-symbol{opacity:.7}.dept-symbol i{animation-duration:8s}.dept-symbol i:nth-child(2){animation-duration:11s}.dept-grid article{animation:department-breathe 5s ease-in-out infinite alternate}.dept-grid article:nth-child(2){animation-delay:-1.2s}.dept-grid article:nth-child(3){animation-delay:-2.4s}.dept-grid article:nth-child(4){animation-delay:-3.6s}.join-copy h2{animation:join-title-glow 5s ease-in-out infinite alternate}.join-rings{animation:join-field-breathe 7s ease-in-out infinite alternate}.qr-core:before,.qr-core:after{animation:seal-breathe 3s ease-in-out infinite}.qr-core img{animation:none!important}
@keyframes continuous-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes orbit-idle{from{rotate:-7deg;scale:.95}to{rotate:7deg;scale:1.08}}
@keyframes title-float{from{translate:0 0}to{translate:0 -10px}}
@keyframes glass-sweep{from{opacity:.3;translate:-2% 0}to{opacity:.9;translate:2% -10px}}
@keyframes card-hover{from{translate:0 4px}to{translate:0 -10px}}
@keyframes seal-breathe{50%{box-shadow:0 0 0 9px #caff421c,0 0 28px #caff4266}}
@keyframes holo-pass{from{background-position:0 50%;opacity:.25}to{background-position:100% 50%;opacity:.7}}
@keyframes grid-drift{to{background-position:52px 52px}}
@keyframes trace-travel{0%,100%{translate:0 -65px;opacity:.3}70%{translate:0 0;opacity:1}}
@keyframes protocol-glow{0%,65%,100%{background:transparent}30%{background:#ffffff40}}
@keyframes node-radiate{50%{background:#735cff;box-shadow:0 0 0 10px #735cff12,0 0 25px #735cff88}}
@keyframes spectrum-breathe{from{translate:-8px 0;opacity:.35}to{translate:8px 0;opacity:1}}
@keyframes link-flow{to{background-position:200% 0}}
@keyframes path-alive{0%,70%,100%{box-shadow:inset 0 0 transparent}35%{box-shadow:inset 5px 0 #caff42,0 0 30px #caff4216;border-color:#caff42;translate:5px 0}}
@keyframes word-drift{to{translate:30px -15px}}
@keyframes ring-breathe{from{scale:.9}to{scale:1.12;box-shadow:0 0 22px #5eeaff15}}
@keyframes stat-glow{to{text-shadow:0 0 30px #9ef2cf4d}}
@keyframes photo-breathe{from{scale:1}to{scale:1.035}}
@keyframes ticket-hover{from{translate:0 4px}to{translate:0 -10px}}
@keyframes board-light{to{text-shadow:3px 3px #caff42,0 0 22px #caff4255}}
@keyframes board-scan{to{left:calc(100% - 80px)}}
@keyframes photo-float{from{translate:0 5px}to{translate:0 -9px}}
@keyframes blueprint-scan{to{background-position:0 280%}}
@keyframes blueprint-pulse{to{box-shadow:inset 0 0 28px #5eeaff20,0 0 20px #5eeaff20}}
@keyframes phone-hover{from{translate:0 7px;rotate:-1deg}to{translate:0 -10px;rotate:1deg}}
@keyframes network-shine{to{text-shadow:2px 2px #7fafff55}}
@keyframes department-breathe{to{border-color:#111a;box-shadow:inset 0 3px var(--department),0 12px 25px #18130a12}}
@keyframes join-title-glow{to{text-shadow:0 0 32px #7feeff40}}
@keyframes join-field-breathe{to{scale:1.1}}
@media(max-width:760px){.film-group{gap:18px;padding-right:18px}.fair-rail .photo-card{width:78vw}.film-track{animation-duration:48s}.star-map{width:calc(100% + 48px);margin-left:-24px;padding-bottom:30px}.barrage{gap:16px}.barrage-group{gap:30px;padding-right:30px}.barrage-name{gap:18px;font-size:1.15rem}.barrage-row:nth-child(2) .barrage-name{font-size:1.5rem}.barrage-row:nth-child(4) .barrage-name{font-size:1.35rem}.constellation-title h2{font-size:3rem}.ticket-stream{padding-top:18px}.hero-bottom{justify-content:center}}
@media(max-width:1000px){.fair .scene{grid-template-columns:1fr}.fair-title{grid-column:1}.fair-score{grid-column:1;grid-row:3;max-width:none;text-align:left;grid-template-columns:auto 1fr;gap:8px 20px;align-items:center;margin:0 0 15px}.fair-score b{font-size:2.4rem}.fair-score>span{font-size:.875rem}}
@media(prefers-reduced-motion:reduce){.fair-rail{overflow-x:auto}.film-group[aria-hidden="true"]{display:none}.barrage-row{overflow-x:auto}.barrage-group[aria-hidden="true"]{display:none}.barrage-group{min-width:0}.barrage-group [aria-hidden="true"]{display:none}}
body.motion-reduced .fair-rail{overflow-x:auto}body.motion-reduced .film-group[aria-hidden="true"],body.motion-reduced .barrage-group[aria-hidden="true"],body.motion-reduced .barrage-group [aria-hidden="true"]{display:none}body.motion-reduced .barrage-row{overflow-x:auto}body.motion-reduced .barrage-group{min-width:0}
