:root {
  --ink: #100b24;
  --ink-soft: #1a1137;
  --paper: #f2e9d6;
  --paper-dim: #cabfcb;
  --violet: #8f66ff;
  --violet-bright: #bca5ff;
  --lilac: #d9ccff;
  --yellow: #f7d656;
  --gold: #e9af33;
  --line: rgba(242, 233, 214, .18);
  --mono: "DM Mono", monospace;
  --sans: "Manrope", Arial, sans-serif;
  --serif: "Playfair Display", Georgia, serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; min-width: 320px; overflow-x: hidden; background: var(--ink); color: var(--paper); font-family: var(--sans); }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
.page-grain { pointer-events: none; inset: 0; position: fixed; z-index: 20; opacity: .18; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E"); }
.page-wash { position: fixed; z-index: 100; inset: 0; pointer-events: none; overflow: hidden; transform: translateY(-105%); background: radial-gradient(circle at 50% 50%, #7d59db 0 2%, rgba(125,89,219,.38) 12%, transparent 34%), linear-gradient(135deg, #100b24, #291651 55%, #160b33); transition: transform .62s cubic-bezier(.76, 0, .24, 1); }.page-wash::before { content: "✦"; position: absolute; left: 50%; top: 50%; color: var(--yellow); font: 200px/1 var(--serif); text-shadow: 0 0 45px #fff4c9, 0 0 130px var(--violet); transform: translate(-50%, -50%) rotate(15deg); }.page-wash::after { content: ""; position: absolute; inset: 0; background-image: radial-gradient(circle, #fff 0 1px, transparent 1.5px), radial-gradient(circle, var(--yellow) 0 1px, transparent 1.5px); background-size: 120px 150px, 190px 200px; opacity: .55; }.page-entering .page-wash { transform: translateY(0); transition: none; }.is-leaving .page-wash { transform: translateY(0); }
.section-shell { width: min(1180px, calc(100% - 80px)); margin-inline: auto; }
.eyebrow { margin: 0; color: var(--yellow); font: 500 10px/1.4 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.display-title, h1, h2, h3, p { margin-top: 0; }
.site-header { height: 86px; padding: 0 40px; position: absolute; top: 0; left: 0; width: 100%; z-index: 10; display: grid; grid-template-columns: auto 1fr; align-items: center; }
.wordmark { font: 800 12px/1 var(--sans); letter-spacing: .06em; display: inline-flex; align-items: center; gap: 8px; width: fit-content; }
.brand-logo { width: 25px; height: 25px; display: block; object-fit: contain; }
.site-header nav { display: flex; justify-self: end; gap: 28px; font-size: 12px; font-weight: 600; }
.site-header nav a { color: rgba(242,233,214,.62); position: relative; transition: color .2s ease; }
.site-header nav a:hover, .site-header nav a.active { color: var(--paper); }
.site-header nav a.active::after { content: ""; position: absolute; left: 50%; bottom: -8px; width: 4px; height: 4px; border-radius: 50%; background: var(--yellow); transform: translateX(-50%); }
.button span, .inline-link span, .site-footer a span { font-size: 15px; margin-left: 5px; }

/* Home — hero */
.home-page { background: #1b1138; }
.hero { min-height: 100svh; padding-top: 21vh; position: relative; isolation: isolate; }
.hero::before { content: ""; z-index: -2; position: absolute; inset: 0 calc((100vw - min(1180px, calc(100vw - 80px))) / -2); background: linear-gradient(to bottom, transparent 0 70%, #1b1138 100%), radial-gradient(circle at 74% 40%, rgba(118, 73, 229, .35), transparent 17%), radial-gradient(circle at 53% 75%, rgba(246, 212, 84, .08), transparent 20%), linear-gradient(130deg, #0e0920 0%, #1d1241 60%, #130c2c 100%); }
.hero::after { content: ""; position: absolute; inset: 0 calc((100vw - min(1180px, calc(100vw - 80px))) / -2); opacity: .56; z-index: -1; background-image: radial-gradient(circle at 6% 44%, #fff 0 1px, transparent 1.5px), radial-gradient(circle at 20% 18%, #fff 0 1px, transparent 1.5px), radial-gradient(circle at 44% 38%, #fff 0 1px, transparent 1.5px), radial-gradient(circle at 87% 23%, #fff 0 1px, transparent 1.5px), radial-gradient(circle at 91% 61%, #fff 0 1px, transparent 1.5px), radial-gradient(circle at 64% 11%, #f7d656 0 1.5px, transparent 2px), radial-gradient(circle at 31% 72%, #f7d656 0 1px, transparent 1.5px); background-size: 283px 221px, 330px 290px, 247px 320px, 357px 260px, 286px 300px, 368px 316px, 306px 229px; animation: twinkle 6s ease-in-out infinite alternate; }
.hero-copy { max-width: 635px; }
.hero-copy .eyebrow { margin-bottom: 26px; }
.display-title { font: 600 clamp(68px, 10.4vw, 148px)/.77 var(--serif); letter-spacing: -.065em; color: var(--paper); }
.display-title em, h1 em, h2 em, h3 em { color: var(--yellow); font-weight: 500; }
.hero-subtitle { width: min(405px, 100%); margin: 36px 0 25px 7px; color: var(--paper-dim); font-size: 14px; line-height: 1.75; }
.hero-actions { display: flex; gap: 20px; align-items: center; margin-left: 7px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: fit-content; padding: 14px 19px; text-transform: uppercase; letter-spacing: .11em; font: 500 10px var(--mono); transition: transform .22s ease, background .22s ease; }
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--yellow); color: var(--ink); }
.button-primary:hover { background: #ffdf66; }
.button-light { background: var(--paper); color: var(--ink); }
.button-text { border-bottom: 1px solid rgba(242,233,214,.5); padding-inline: 2px; color: var(--paper); }
.hero-meta { position: absolute; bottom: 41px; left: 0; right: 0; display: flex; justify-content: space-between; align-items: end; font: 10px/1.6 var(--mono); letter-spacing: .08em; color: rgba(242,233,214,.72); }
.hero-meta p { margin: 0; }
.hero-meta p:first-child span { display: block; color: var(--yellow); font: 500 20px/1 var(--serif); letter-spacing: 0; margin-bottom: 4px; }
.scroll-cue { position: absolute; bottom: 42px; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; color: rgba(242,233,214,.45); text-transform: uppercase; letter-spacing: .18em; font: 9px var(--mono); transition: opacity .45s ease, transform .45s ease; }
.scroll-cue span { height: 19px; width: 1px; background: var(--yellow); animation: scroll-pulse 1.5s ease-in-out infinite; }
.scroll-cue.hidden { opacity: 0; transform: translate(-50%, 12px); }
.hero-planet { position: absolute; right: clamp(-70px, 3vw, 70px); top: 17.5vh; width: clamp(270px, 34vw, 500px); aspect-ratio: 1; z-index: -1; animation: planet-orbit 11s ease-in-out infinite; }
.planet-core { position: absolute; left: 9%; top: 10%; width: 82%; height: 82%; border-radius: 50%; overflow: hidden; background: radial-gradient(circle at 35% 30%, #ffd768 0 2%, transparent 2.5%), radial-gradient(circle at 41% 38%, #bf9eff 0 3%, transparent 7%), radial-gradient(circle at 40% 42%, #6946bd 0 35%, #311e6d 62%, #190e3f 100%); box-shadow: inset -36px -30px 80px #12082e, 0 0 110px rgba(178,129,255,.42); animation: planet-breathe 6.5s ease-in-out infinite; }
.planet-core::before { content: ""; position: absolute; width: 67%; aspect-ratio: 1; top: -14%; left: -22%; border-radius: 50%; background: radial-gradient(circle, rgba(255,249,213,.65), rgba(188,165,255,.18) 33%, transparent 68%); filter: blur(7px); mix-blend-mode: screen; animation: planet-shine 9s ease-in-out infinite alternate; }
.planet-core::after { content: ""; position: absolute; inset: 8%; border-radius: inherit; background: repeating-radial-gradient(circle at 65% 52%, transparent 0 13px, rgba(209,190,255,.12) 14px 15px), conic-gradient(from 20deg, transparent, rgba(214,194,255,.18), transparent 31%, rgba(247,214,86,.11), transparent 60%); opacity: .7; mix-blend-mode: screen; animation: planet-surface 18s linear infinite; }
.planet-ring { position: absolute; border: 1px solid rgba(247,214,86,.57); border-radius: 50%; }
.ring-one { width: 128%; height: 25%; top: 40%; left: -15%; box-shadow: 0 0 12px rgba(247,214,86,.18); animation: ring-one-orbit 10s linear infinite; }
.ring-two { width: 121%; height: 38%; top: 33%; left: -11%; border-color: rgba(188,165,255,.32); animation: ring-two-orbit 15s linear infinite; }
.tiny-star { position: absolute; color: var(--yellow); animation: star-flicker 2.2s ease-in-out infinite alternate; }
.tiny-star-one { top: 2%; right: 4%; font-size: 30px; }.tiny-star-two { left: 2%; bottom: 20%; font-size: 20px; animation-delay: .7s; }.tiny-star-three { right: 7%; bottom: 8%; font-size: 13px; animation-delay: 1.3s; }
.fade-in { animation: fade-up .8s both; }.hero-subtitle { animation-delay: .17s; }.hero-actions { animation-delay: .32s; }.hero-meta { animation-delay: .45s; }

/* Home — scrolling journey */
.journey h2, .timeline h2, .register-banner h2 { margin: 0; font: 600 clamp(42px, 5.9vw, 82px)/.98 var(--serif); letter-spacing: -.052em; }
.journey { background: #1b1138; padding: 140px 0 30px; position: relative; overflow: clip; isolation: isolate; }.journey::before { content: ""; position: absolute; z-index: -1; height: 60%; width: 45%; right: -15%; top: 21%; background: radial-gradient(ellipse, rgba(152,104,255,.24), transparent 64%); animation: nebula-breathe 8s ease-in-out infinite alternate; }.journey::after { content: ""; position: absolute; z-index: -1; inset: 0; opacity: .38; background-image: radial-gradient(circle, rgba(247,214,86,.85) 0 1px, transparent 1.5px), radial-gradient(circle, rgba(255,255,255,.7) 0 1px, transparent 1.5px), radial-gradient(circle, rgba(188,165,255,.9) 0 1px, transparent 1.5px); background-size: 145px 171px, 233px 191px, 319px 287px; animation: sky-drift 18s linear infinite; }.journey-heading { position: relative; z-index: 2; }.journey-heading .eyebrow { margin-bottom: 34px; }.journey-heading h2 { max-width: 720px; }.journey-heading > p:last-child { margin: 25px 0 0; color: var(--paper-dim); max-width: 360px; font-size: 13px; line-height: 1.75; }
.memory-panel { min-height: 670px; max-width: 1100px; width: min(100% - 160px, 1100px); margin: 155px auto 0; display: flex; align-items: center; gap: clamp(40px, 8vw, 145px); position: relative; z-index: 4; opacity: .18; transform: translateY(80px) scale(.965) rotate(-1.4deg); filter: saturate(.65); transition: opacity .85s cubic-bezier(.16, 1, .3, 1), transform .95s cubic-bezier(.16, 1, .3, 1), filter .8s ease; }.memory-panel.is-visible { opacity: 1; transform: none; filter: none; }.memory-panel.panel-right { flex-direction: row; }.memory-panel.panel-left { flex-direction: row-reverse; }.panel-last { margin-bottom: 80px; }
.memory-photo { height: 500px; flex: 0 1 560px; border-radius: 51% 49% 45% 55% / 41% 47% 53% 59%; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; color: rgba(242,233,214,.52); font: 500 11px/1.6 var(--mono); letter-spacing: .17em; text-align: center; background-color: #372060; outline: 1px solid rgba(242,233,214,.1); outline-offset: 10px; transform: rotate(-2deg); transition: transform 1.2s cubic-bezier(.16, 1, .3, 1), outline-color .6s ease; }.memory-panel.panel-left .memory-photo { transform: rotate(2deg); }.memory-panel.is-visible .memory-photo { transform: rotate(0) scale(1); outline-color: rgba(247,214,86,.44); }
.memory-photo::before, .memory-photo::after { content: ""; position: absolute; inset: 0; pointer-events: none; }.memory-photo::before { background: radial-gradient(circle at 25% 30%, rgba(247,214,86,.8) 0 1px, transparent 2px), radial-gradient(circle at 58% 20%, rgba(255,255,255,.9) 0 1px, transparent 2px), radial-gradient(circle at 80% 68%, rgba(255,255,255,.8) 0 1px, transparent 2px), radial-gradient(circle at 38% 80%, rgba(247,214,86,.7) 0 1px, transparent 2px); background-size: 160px 150px, 220px 180px, 180px 170px, 190px 210px; opacity: .75; animation: photo-stars 14s linear infinite; }.memory-photo::after { background: linear-gradient(115deg, transparent 28%, rgba(255,244,201,.27) 48%, transparent 67%); transform: translateX(-130%) skewX(-18deg); }.memory-panel.is-visible .memory-photo::after { animation: photo-sheen 2.2s .35s cubic-bezier(.16, 1, .3, 1) both; }.memory-photo span, .memory-photo small { z-index: 1; }.memory-photo small { position: absolute; left: 26px; top: 24px; color: var(--yellow); font: 10px var(--mono); }
.photo-preopening { background-image: radial-gradient(ellipse at 68% 65%, rgba(247,214,86,.75), transparent 8%), radial-gradient(ellipse at 28% 30%, #875ce7 0 15%, transparent 36%), linear-gradient(140deg, #190a3d, #4a287d); }.photo-competition { background-image: linear-gradient(36deg, rgba(247,214,86,.68), transparent 42%), repeating-linear-gradient(140deg, transparent 0 35px, rgba(198,164,255,.18) 36px 37px), linear-gradient(130deg, #26114c, #7246b8); border-radius: 46% 54% 57% 43% / 50% 41% 59% 50%; }.photo-opening { background-image: radial-gradient(circle at 58% 42%, #f7d656 0 4%, rgba(247,214,86,.1) 13%, transparent 38%), linear-gradient(120deg, #190a3d, #472278); border-radius: 58% 42% 43% 57% / 46% 62% 38% 54%; }.photo-closing { background-image: radial-gradient(circle at 67% 50%, #f7d656 0 2%, #d289ff 4%, rgba(141,78,239,.58) 13%, transparent 38%), linear-gradient(150deg, #17082e, #552778); border-radius: 39% 61% 49% 51% / 51% 43% 57% 49%; }
.memory-copy { max-width: 315px; }.panel-label { color: var(--yellow); margin: 0 0 17px; font: 500 10px var(--mono); letter-spacing: .14em; text-transform: uppercase; }.memory-copy h3 { margin-bottom: 19px; font: 600 clamp(35px, 4vw, 56px)/.96 var(--serif); letter-spacing: -.055em; }.memory-copy > p:not(.panel-label) { color: var(--paper-dim); font-size: 13px; line-height: 1.8; margin-bottom: 21px; }.panel-year { font: 500 10px var(--mono); color: var(--yellow); letter-spacing: .14em; }.inline-link { color: var(--paper); border-bottom: 1px solid var(--yellow); padding-bottom: 5px; font: 500 10px var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.comet-track { position: absolute; top: 360px; height: calc(100% - 465px); left: 50%; width: min(980px, 83vw); transform: translateX(-50%); pointer-events: none; z-index: 3; }.comet-route { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }.comet-route path { fill: none; stroke: rgba(188,165,255,.38); stroke-width: 2.2; stroke-dasharray: 8 17; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 4px rgba(247,214,86,.3)); animation: route-flow 2.8s linear infinite; }.comet { position: absolute; left: 49%; top: 0; transform: translate(-50%, -50%) rotate(0deg); transform-origin: center; z-index: 4; will-change: transform, left, top; }.comet b { display: block; color: #fff3b4; font-size: 135px; line-height: .68; text-shadow: 0 0 16px #fff, 0 0 42px var(--yellow), 0 0 96px rgba(188,165,255,.9); animation: comet-blink .72s ease-in-out infinite alternate; }.comet i { position: absolute; z-index: -1; width: 520px; height: 16px; right: calc(50% - 31px); top: 50%; transform: translateY(-50%); border-radius: 100%; background: radial-gradient(ellipse at 94% 50%, rgba(255,250,218,1), transparent 9%), linear-gradient(90deg, transparent 0%, rgba(121,82,234,.025) 18%, rgba(168,130,255,.15) 56%, rgba(246,212,86,.62) 84%, #fff9d8 100%); filter: blur(1.25px) drop-shadow(0 0 7px rgba(247,214,86,.58)); }.comet i::before { content: ""; position: absolute; inset: -30px 0; background: linear-gradient(176deg, transparent 0 29%, rgba(247,214,86,.26) 34%, transparent 39%), linear-gradient(180deg, transparent 0 46%, rgba(175,137,255,.22) 51%, transparent 56%), linear-gradient(5deg, transparent 0 59%, rgba(247,214,86,.19) 64%, transparent 69%); border-radius: 50%; filter: blur(2.2px); mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.08) 18%, rgba(0,0,0,.42) 56%, #000 94%); }.comet i::after { content: ""; position: absolute; width: 108%; height: 44px; right: 0; top: -14px; border-radius: 50%; background: linear-gradient(90deg, transparent 0%, rgba(140,92,241,.025) 34%, rgba(247,214,86,.18) 100%); filter: blur(9px); }

/* Home — time, CTA, sponsors */
.timeline { padding: 146px 0; }.timeline > .eyebrow { margin-bottom: 35px; }.timeline-header { display: flex; justify-content: space-between; gap: 70px; align-items: end; margin-bottom: 67px; }.timeline-header h2 { max-width: 670px; }.timeline-header p { max-width: 255px; color: var(--paper-dim); font-size: 13px; line-height: 1.75; margin-bottom: 0; }.timeline-list { border-top: 1px solid var(--line); }.timeline-row { display: grid; grid-template-columns: 195px 1fr 185px; padding: 26px 0; align-items: center; border-bottom: 1px solid var(--line); transition: padding .25s ease, color .25s ease; }.timeline-row:hover { padding-inline: 16px; color: var(--yellow); }.timeline-row > div { display: flex; align-items: baseline; gap: 8px; }.date { font: 600 28px/1 var(--serif); letter-spacing: -.04em; }.month { font: 10px var(--mono); color: var(--yellow); letter-spacing: .1em; }.timeline-row h3 { margin: 0; font: 600 20px var(--sans); letter-spacing: -.035em; }.timeline-row p { margin: 0; color: var(--paper-dim); font-size: 12px; }.timeline-row.highlight h3 { color: var(--yellow); }
.register-banner { min-height: 625px; padding: 115px clamp(35px, 9.5vw, 145px); position: relative; overflow: hidden; background: #936cff; color: #14092d; isolation: isolate; }.register-banner::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(circle at 77% 40%, #f7d656 0 2%, rgba(247,214,86,.47) 2.3%, rgba(247,214,86,.14) 16%, transparent 38%), repeating-radial-gradient(circle at 77% 40%, transparent 0 44px, rgba(20,9,45,.11) 45px 46px); }.register-banner::after { content: "✦"; position: absolute; right: 13%; top: 29%; color: #f8e48f; font-size: clamp(100px, 20vw, 265px); line-height: 1; z-index: -1; transform: rotate(13deg); }.register-banner .eyebrow { color: #2a164e; margin-bottom: 32px; }.register-banner h2 { max-width: 690px; color: #170b33; }.register-banner h2 em { color: var(--paper); }.register-banner > p:not(.eyebrow) { margin: 27px 0 31px; max-width: 400px; color: #302052; font-size: 14px; line-height: 1.75; }.register-glow { position: absolute; width: 600px; height: 600px; top: 50%; right: -10%; transform: translateY(-50%); background: radial-gradient(circle, rgba(247,214,86,.15) 0 4%, transparent 5%); }
.sponsors { padding: 135px 0 112px; }.sponsors-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 31px; }.sponsors-head h2 { margin: 0; font: 600 29px var(--serif); letter-spacing: -.04em; }.sponsor-placeholder { min-height: 205px; padding: 25px; display: grid; place-content: center; text-align: center; border: 1px dashed rgba(247,214,86,.5); color: rgba(242,233,214,.46); background: linear-gradient(130deg, rgba(143,102,255,.1), transparent); }.sponsor-placeholder > div { display: flex; align-items: center; justify-content: center; gap: 23px; color: var(--yellow); font: 11px/1.5 var(--mono); letter-spacing: .15em; }.sponsor-placeholder > div span { font-size: 22px; }.sponsor-placeholder p { margin: 15px 0 0; font-size: 10px; }
.site-footer { border-top: 1px solid var(--line); min-height: 113px; padding: 0 40px; display: flex; align-items: center; justify-content: space-between; gap: 20px; color: rgba(242,233,214,.58); font: 9px var(--mono); letter-spacing: .09em; text-transform: uppercase; }.site-footer .wordmark { color: var(--paper); font-size: 11px; }.site-footer .brand-logo { width: 22px; height: 22px; }.site-footer p { margin: 0; }.site-footer > a:last-child { color: var(--yellow); }

/* Registration page */
.register-page, .merch-page { background: radial-gradient(circle at 76% 19%, rgba(136,89,246,.22), transparent 21%), #100b24; }.register-page .site-header, .merch-page .site-header { position: relative; }.register-hero { padding: 105px 0 83px; }.register-hero .eyebrow { margin-bottom: 27px; }.register-hero h1, .merch-main h1 { margin-bottom: 23px; font: 600 clamp(60px, 8.8vw, 118px)/.82 var(--serif); letter-spacing: -.065em; }.register-hero > p:not(.eyebrow) { color: var(--paper-dim); font-size: 14px; }.registration-note { margin-top: 38px; max-width: 580px; padding: 14px 17px; border-left: 1px solid var(--yellow); color: rgba(242,233,214,.6); background: rgba(255,255,255,.035); font: 10px/1.8 var(--mono); }.registration-note > span { color: var(--yellow); margin-right: 9px; }.registration-note code { color: var(--yellow); font-size: .95em; }.competition-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding-bottom: 106px; }.competition-card { min-height: 263px; padding: 23px; position: relative; overflow: hidden; display: flex; flex-direction: column; color: var(--paper); background: #2a174f; isolation: isolate; transition: transform .25s ease, color .25s ease; }.competition-card:hover { transform: translateY(-7px); color: var(--ink); }.competition-card::before, .competition-card::after { content: ""; position: absolute; inset: 0; z-index: -1; transition: opacity .3s ease, transform .4s ease; }.competition-card::after { opacity: 0; background: var(--yellow); }.competition-card:hover::after { opacity: 1; }.competition-card::before { opacity: .9; background: radial-gradient(circle at 80% 20%, rgba(247,214,86,.35) 0 1%, transparent 1.5px), radial-gradient(circle at 20% 70%, rgba(255,255,255,.6) 0 1px, transparent 1.5px), radial-gradient(circle at 52% 35%, rgba(255,255,255,.35) 0 1px, transparent 1.5px); background-size: 80px 90px, 120px 120px, 110px 100px; }.competition-card:hover::before { transform: scale(1.2); }.card-number { color: var(--yellow); font: 10px var(--mono); }.competition-card:hover .card-number { color: var(--ink); }.competition-symbol { margin: auto 0 11px; color: var(--yellow); font: 73px/.8 var(--serif); letter-spacing: -.12em; transition: transform .3s ease; }.competition-symbol.icon-svg { width: 74px; height: 74px; display: block; fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; letter-spacing: 0; }.competition-card:hover .competition-symbol { color: var(--ink); transform: rotate(12deg) scale(1.12); }.competition-card h2 { margin: 0; font: 600 clamp(28px, 3vw, 39px)/.95 var(--serif); letter-spacing: -.05em; }.competition-card p { margin: 12px 0 0; font: 10px var(--mono); letter-spacing: .09em; text-transform: uppercase; }.competition-card p b { color: var(--yellow); font-size: 17px; }.competition-card:hover p b { color: var(--ink); }.sport-futsal { background-color: #32215c; }.sport-basketball { background-color: #4b286d; }.sport-volleyball { background-color: #25355e; }.sport-badminton { background-color: #513374; }.art-mural { background-color: #413174; }.art-vocal { background-color: #58305c; }.art-band { background-color: #242550; }.art-dance { background-color: #663d7b; }.skill-cubing { background-color: #2f3862; }.sport-swimming { background-color: #253e68; }.skill-debate { background-color: #35245e; }.skill-speech { background-color: #52315f; }.register-help { margin-bottom: 126px; padding: 32px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; }.register-help p { margin: 0; color: var(--paper-dim); font: 16px var(--serif); }.register-help a { border-bottom: 1px solid var(--yellow); padding-bottom: 5px; color: var(--yellow); text-transform: uppercase; font: 10px var(--mono); letter-spacing: .1em; }

/* Merch page */
.merch-main { min-height: calc(100svh - 199px); padding: 88px 0 90px; text-align: center; position: relative; overflow: hidden; }.merch-main .eyebrow { margin-bottom: 29px; }.merch-main h1 { position: relative; z-index: 1; }.merch-lede { position: relative; z-index: 1; width: min(100%, 390px); margin: 0 auto 38px; color: var(--paper-dim); font-size: 14px; line-height: 1.8; }.merch-placeholder { width: min(90%, 520px); height: 310px; margin: 0 auto 42px; position: relative; display: grid; place-content: center; overflow: hidden; border-radius: 50%; border: 1px solid rgba(247,214,86,.38); background: radial-gradient(circle, rgba(247,214,86,.1), transparent 58%); }.merch-placeholder::before, .merch-placeholder::after { content: ""; position: absolute; border: 1px solid rgba(188,165,255,.22); border-radius: 50%; width: 90%; height: 46%; transform: rotate(-23deg); }.merch-placeholder::after { width: 60%; height: 74%; transform: rotate(35deg); }.merch-placeholder p { margin: 15px 0 0; color: var(--yellow); font: 10px/1.6 var(--mono); letter-spacing: .19em; }.shirt-shape { width: 105px; height: 121px; position: relative; z-index: 1; display: grid; place-content: center; background: linear-gradient(140deg, #e9dfc9, #a98fff); clip-path: polygon(19% 0, 38% 8%, 62% 8%, 81% 0, 100% 25%, 78% 42%, 78% 100%, 22% 100%, 22% 42%, 0 25%); color: #220f48; font: 29px var(--serif); box-shadow: 0 0 33px rgba(247,214,86,.35); }.merch-starfield span { position: absolute; color: var(--yellow); animation: star-flicker 2.1s ease-in-out infinite alternate; }.merch-starfield span:nth-child(1) { left: 16%; top: 23%; font-size: 21px; }.merch-starfield span:nth-child(2) { right: 15%; top: 28%; font-size: 31px; animation-delay: .6s; }.merch-starfield span:nth-child(3) { left: 27%; bottom: 23%; font-size: 13px; animation-delay: 1.1s; }.merch-starfield span:nth-child(4) { right: 28%; bottom: 22%; font-size: 16px; animation-delay: 1.6s; }.merch-starfield span:nth-child(5) { left: 7%; top: 55%; font-size: 12px; animation-delay: 1.9s; }

@keyframes twinkle { to { opacity: .8; transform: scale(1.02); } }
@keyframes planet-orbit { 50% { transform: translate(-15px, 15px) rotate(4deg) scale(1.035); } }
@keyframes planet-breathe { 50% { box-shadow: inset -28px -23px 80px #12082e, 0 0 138px rgba(178,129,255,.58); transform: scale(1.025); } }
@keyframes planet-shine { to { transform: translate(86%, 61%) scale(.76); opacity: .55; } }
@keyframes planet-surface { to { transform: rotate(360deg); } }
@keyframes ring-one-orbit { from { transform: rotate(-25deg) scaleX(1); } 50% { transform: rotate(-19deg) scaleX(.94); } to { transform: rotate(-25deg) scaleX(1); } }
@keyframes ring-two-orbit { from { transform: rotate(-25deg) scaleX(1); } 50% { transform: rotate(-31deg) scaleX(1.06); } to { transform: rotate(-25deg) scaleX(1); } }
@keyframes star-flicker { from { opacity: .45; transform: scale(.76) rotate(0); } to { opacity: 1; transform: scale(1.14) rotate(25deg); } }
@keyframes fade-up { from { opacity: 0; transform: translateY(13px); } to { opacity: 1; transform: none; } }
@keyframes scroll-pulse { 50% { transform: translateY(8px); opacity: .2; } }
@keyframes comet-blink { to { transform: scale(1.12) rotate(10deg); text-shadow: 0 0 20px #fff, 0 0 50px var(--yellow), 0 0 112px rgba(188,165,255,.94); } }
@keyframes route-flow { to { stroke-dashoffset: -50; } }
@keyframes sky-drift { to { background-position: 145px 210px, -233px 190px, 319px -287px; } }
@keyframes nebula-breathe { to { transform: scale(1.18) translate(-5%, 5%); opacity: .7; } }
@keyframes photo-stars { to { background-position: 160px 150px, -220px 180px, 180px -170px, -190px -210px; } }
@keyframes photo-sheen { to { transform: translateX(130%) skewX(-18deg); } }

@media (max-width: 760px) {
  .section-shell { width: min(100% - 40px, 600px); }.site-header { height: 70px; padding: 0 20px; display: flex; justify-content: space-between; }.site-header nav { display: flex; gap: 13px; font-size: 10px; }.header-cta { display: none; }.hero { padding-top: 23vh; min-height: 780px; }.hero-planet { width: 310px; right: -82px; top: 45px; opacity: .8; }.display-title { font-size: clamp(64px, 19.5vw, 100px); }.hero-copy { position: relative; z-index: 1; }.hero-subtitle { margin: 31px 0 23px; font-size: 13px; }.hero-actions { margin: 0; flex-direction: column; align-items: flex-start; gap: 15px; }.hero-meta { bottom: 25px; font-size: 8px; }.hero-meta p:first-child span { font-size: 17px; }.scroll-cue { display: none; }.journey { padding-top: 90px; }.journey h2, .timeline h2, .register-banner h2 { font-size: 47px; }.journey-heading > p:last-child { font-size: 12px; }.memory-panel, .memory-panel.panel-right, .memory-panel.panel-left { min-height: initial; width: min(100% - 60px, 570px); margin-top: 102px; flex-direction: column; align-items: stretch; gap: 38px; }.memory-panel.panel-left .memory-photo { order: 0; }.memory-panel.panel-left .memory-copy { order: 1; }.memory-photo { flex-basis: auto; height: 320px; outline-offset: 7px; }.memory-copy { max-width: 100%; }.memory-copy h3 { font-size: 46px; }.comet-track { left: 18px; right: auto; width: calc(100% - 36px); transform: none; top: 285px; height: calc(100% - 335px); }.comet { transform: translate(-50%, -50%) rotate(0deg) scale(.64); }.comet-route path { stroke-width: 1.6; }.panel-last { margin-bottom: 45px; }.timeline { padding: 92px 0; }.timeline-header { display: block; margin-bottom: 45px; }.timeline-header p { margin-top: 22px; }.timeline-row { grid-template-columns: 89px 1fr; gap: 6px; padding: 20px 0; }.timeline-row p { grid-column: 2; font-size: 11px; }.date { font-size: 23px; }.month { font-size: 8px; }.timeline-row h3 { font-size: 16px; }.register-banner { min-height: 535px; padding: 90px 28px; width: 100%; }.register-banner::after { right: -23%; top: 43%; }.sponsors { padding: 90px 0 80px; }.sponsors-head { display: block; }.sponsors-head h2 { margin-top: 14px; }.site-footer { min-height: 145px; padding: 25px 20px; flex-direction: column; align-items: flex-start; justify-content: center; gap: 13px; }.site-footer p { font-size: 8px; }.register-hero { padding: 70px 0 62px; }.register-hero h1, .merch-main h1 { font-size: 63px; }.registration-note { margin-top: 28px; }.competition-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; padding-bottom: 75px; }.competition-card { min-height: 202px; padding: 15px; }.competition-symbol { font-size: 56px; }.competition-card h2 { font-size: 29px; }.competition-card p { font-size: 8px; }.register-help { margin-bottom: 83px; display: block; padding: 24px 0; }.register-help a { display: inline-block; margin-top: 16px; }.merch-main { padding-top: 65px; min-height: calc(100svh - 215px); }.merch-placeholder { height: 260px; }
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; } .comet { transition: none; } }
