/* Layout foundations. Current visual tokens and component styling live in theme.css. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--ice); color: var(--ink); font: 16px/1.6 var(--body); -webkit-font-smoothing: antialiased; }
h1,h2,h3,p { margin: 0; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
img,svg { display: block; max-width: 100%; }
a,button,summary { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
button,summary { cursor: pointer; }
p { color: var(--muted); }
:focus-visible { outline: 3px solid var(--cyan); outline-offset: 5px; }
::selection { background: #9a185b; color: #fff; }
.container { width: min(1280px,calc(100% - 96px)); margin-inline: auto; }
.section { padding-block: 64px; }
.icon { width: 40px; height: 40px; flex: none; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; background: #fff; color: #111; padding: 15px; border-radius: 10px; }
.skip-link:focus { top: 15px; }
.site-header { position: sticky; top: 0; z-index: 30; backdrop-filter: blur(18px); border-bottom: 1px solid var(--line); }
.header-inner { height: 82px; display: flex; align-items: center; gap: 30px; }
.brand { display: block; width: 137px; flex-shrink: 0; }
.brand img { width: 100%; height: auto; }
.main-nav { display: flex; align-items: center; gap: 28px; margin-inline: auto; }
.main-nav > a { font-size: 18px; font-weight: 650; white-space: nowrap; }
.header-cta { display: flex; align-items: center; gap: 18px; padding: 13px 24px; font-size: 16px; font-weight: 700; white-space: nowrap; }
.header-cta svg,.button svg { width: 21px; height: 21px; flex: none; }
.menu-button,.mobile-register { display: none; }
.hero { position: relative; }
.hero-actions { display: flex; align-items: center; }
.button { display: inline-flex; align-items: center; justify-content: center; font-weight: 600; transition: transform .18s; }
.text-link,.inline-link { text-decoration: underline; text-underline-offset: 5px; }
.text-link { font-size: 14px; font-weight: 500; }
.facts-strip { display: grid; }
.track-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; align-items: start; }
.track-details summary,.faq-item summary { display: flex; align-items: center; justify-content: space-between; list-style: none; gap: 18px; }
summary::-webkit-details-marker { display: none; }
summary > span { flex: none; font-size: 22px; font-weight: 400; }
details[open] > summary > span { transform: rotate(45deg); }
.timeline { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; }
.partner-grid,.jury-grid { display: grid; gap: 20px; }
.partner-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.jury-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.footer { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; padding-block: 32px; }
.footer-contact { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.footer-bottom { grid-column: 1/-1; display: flex; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid var(--line); }
@media(max-width:1150px) { .container { width: calc(100% - 64px); } .main-nav { gap: 18px; } }
@media(max-width:900px) {
 .main-nav { display: none; position: absolute; left: 24px; right: 24px; top: 70px; padding: 15px; border: 1px solid var(--line); border-radius: 18px; margin: 0; }
 .main-nav.is-open { display: flex; flex-direction: column; align-items: stretch; gap: 0; }
 .main-nav > a { padding: 11px 12px; min-height: 48px; font-size: 18px; }
 .main-nav .mobile-register { display: flex; align-items: center; justify-content: space-between; }
 .mobile-register svg { width: 20px; }
 .menu-button { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 6px; width: 44px; height: 44px; border: 0; border-radius: 12px; }
 .menu-button span { width: 19px; height: 1.5px; background: var(--ink); }
 .menu-button[aria-expanded=true] span:first-child { transform: translateY(3.75px) rotate(45deg); }
 .menu-button[aria-expanded=true] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }
 .timeline { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .jury-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 html { scroll-padding-top: 82px; }
 .container { width: calc(100% - 40px); }
 .section { padding-block: 38px; }
 .header-inner { gap: 16px; }
 .main-nav { left: 20px; right: 20px; }
 .track-grid,.timeline,.partner-grid { grid-template-columns: 1fr; }
 .footer { grid-template-columns: 1fr; }
 .footer-contact { align-items: flex-start; }
 .footer-bottom { flex-wrap: wrap; }
}
@media(max-width:360px) { .container { width: calc(100% - 32px); } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } *,*::before,*::after { animation: none!important; transition: none!important; } }
@media print { .site-header,.hero-visual { display:none; } .section { padding-block:20px; } }

.arena-brand { white-space: nowrap; }

/* Registration: native labels, consistent glass surface, one column on phones */
.registration-form-panel {padding:clamp(24px,4vw,56px);border:1px solid #ffffff26;border-radius:28px;background:linear-gradient(125deg,#ffffff0c,#ffffff03),#121722c9;box-shadow:inset 0 1px 1px #ffffff36,0 20px 70px #0003;backdrop-filter:blur(24px)}
.registration-form-panel fieldset {border:0;padding:0;margin:0;min-width:0}
.registration-form-panel legend {font-weight:600;margin-bottom:20px;font-size:20px}
.registration-applicant-note { margin-bottom: 26px; color: var(--ink); }
.registration-form-panel .registration-format { padding-bottom: 30px; margin-bottom: 30px; border-bottom: 1px solid #ffffff2b; }
.registration-availability {margin:0 0 26px;font-size:18px;color:#f4c3d3}
.registration-form-panel .age-choice {display:flex;flex-wrap:wrap;gap:16px;margin-bottom:30px}
.age-choice label {display:flex;align-items:center;gap:12px;border:1px solid #ffffff45;border-radius:14px;padding:16px 22px;cursor:pointer}
.age-choice label:has(:checked) {background:#c4326930;border-color:#f295b5}
.form-grid {display:grid;grid-template-columns:1fr 1fr;gap:24px}
.field {display:flex;flex-direction:column;gap:9px;font-size:16px;min-width:0}
.field-wide {grid-column:1/-1}
.field-hint {font-size:13px;color:#c3c6d0;font-weight:400}
.field input,.field select {box-sizing:border-box;min-width:0;width:100%;min-height:52px;padding:12px 15px;border:1px solid #72798b;border-radius:10px;color:#fff;background:#0d111dd9;font:inherit;color-scheme:dark}
.field input[type=file] {font-size:14px;padding:10px;line-height:1.6;white-space:normal}
.field input::file-selector-button {padding:8px 12px;margin-right:12px;border:0;border-radius:6px;background:#dedfeb;color:#111;font:inherit}
.registration-form-panel input[type=checkbox],.registration-form-panel input[type=radio] {width:21px;height:21px;min-width:21px;accent-color:#ef8ab0;margin:0;cursor:pointer}
.registration-form-panel .minor-documents,.registration-form-panel .form-consents {border-top:1px solid #ffffff2b;margin-top:32px;padding-top:26px}
.minor-documents p {color:#cdd0d9;line-height:1.6;margin:0 0 20px}
.form-consents label {display:flex;align-items:flex-start;gap:14px;line-height:1.6;margin-bottom:18px;max-width:900px}
.form-consents input {margin-top:3px!important}
.registration-form-panel a {text-decoration:underline;text-underline-offset:4px;color:#f2bbce}
.registration-form-panel [data-document] {color:#c9cbd4}
.registration-submit {margin-top:20px}
.registration-submit:disabled {opacity:.55;cursor:not-allowed}
.registration-form-panel [hidden] {display:none!important}
.registration-form-panel [aria-invalid=true] {border-color:#ff7c92;outline:1px solid #ff7c92}
[data-form-feedback] {line-height:1.6;margin:20px 0 0;overflow-wrap:anywhere}
[data-form-feedback]:empty {display:none}
.preview-notice {padding:16px 20px;background:#ffdf8820;border:1px solid #ffdf8866;border-radius:12px;color:#ffedbd;margin-bottom:24px;line-height:1.6}
@media(max-width:700px){.form-grid{grid-template-columns:1fr}.age-choice label{width:100%}.registration-form-panel{border-radius:20px}.registration-submit{width:100%}.form-consents label{font-size:14px}.footer-bottom{flex-wrap:wrap;gap:16px}}
.sr-only {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.partner-name {font-size:28px;letter-spacing:-.6px;font-weight:600}
@media(min-width:1101px){.timeline{grid-template-columns:repeat(5,minmax(0,1fr))}}
.registration-submit {min-height:54px;min-width:220px;padding:14px 24px;gap:16px;border:1px solid #ffffffaa;border-radius:15px;background:linear-gradient(135deg,#fff,#ebdce9);color:#40192e;box-shadow:inset 0 1px 0 #fff,0 8px 24px #0002}
.registration-submit:disabled {background:#313744;color:#bdc3d1;border-color:#596173;opacity:1;box-shadow:none}
@media(prefers-reduced-transparency:reduce){.registration-form-panel{background:#171b27;backdrop-filter:none}}
.consent-operator {font-size:14px;margin-bottom:20px;line-height:1.6}

/* Registration opens on demand; the landing retains a compact invitation. */
.registration-invite {display:flex;justify-content:space-between;align-items:center;gap:36px;padding:clamp(28px,4vw,52px);border-radius:26px;border:1px solid #ffffff35;background:var(--glass);box-shadow:var(--glass-shadow);backdrop-filter:blur(20px)}
.registration-invite p {margin-top:20px;line-height:1.7}
.registration-invite .registration-open {flex-shrink:0;margin:0;cursor:pointer}
.registration-dialog {width:min(920px,calc(100% - 48px));max-width:none;max-height:calc(100dvh - 48px);margin:auto;padding:0;border:1px solid #ffffff4a;border-radius:24px;background:#151925;color:var(--ink);box-shadow:0 30px 100px #0009;overscroll-behavior:contain;scrollbar-gutter:stable}
.registration-dialog::backdrop {background:#030610bb;backdrop-filter:blur(10px)}
.registration-dialog-header {position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 32px;border-bottom:1px solid #ffffff26;background:#151925f5;backdrop-filter:blur(12px)}
.registration-dialog-header h2 {font-size:30px;line-height:1.15;letter-spacing:-.8px}
.registration-dialog-header .eyebrow {font-size:12px;margin-bottom:7px}
.registration-close {display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;background:#ffffff0d;border:1px solid #ffffff35;border-radius:50%;font-size:30px;line-height:1}
.registration-dialog .registration-form-panel {padding:28px 32px 36px;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;background:transparent}
.registration-is-open {overflow:hidden}
@media(max-width:700px){
 .registration-invite{display:block}.registration-invite .registration-open{width:100%;margin-top:28px}
 .registration-dialog{width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:18px;scrollbar-gutter:auto}
 .registration-dialog-header{padding:18px 20px;gap:12px}.registration-dialog-header h2{font-size:24px}
 .registration-dialog .registration-form-panel{padding:24px 20px 28px}
}

/* Each roster member keeps their own fields and documents. */
.registration-form-panel .registration-person { margin-top: 30px; padding-top: 26px; border-top: 1px solid #ffffff2b; }
.registration-form-panel .registration-person[data-person="captain"] { margin-top: 0; padding-top: 0; border-top: 0; }
.registration-person > legend { padding-right: 12px; font-size: 23px; }
.registration-person .age-choice legend { font-size: 17px; }

/* Locally prepared document pages; long iPhone filenames must wrap on mobile. */
.document-upload { min-width:0 }
.file-pages > div { display:flex; align-items:center; gap:8px; margin:8px 0; font-size:14px }
.file-pages span { flex:1; min-width:0; overflow-wrap:anywhere }
.file-pages button { font:inherit; color:inherit; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3); border-radius:8px; padding:8px; cursor:pointer }
.file-pages button:disabled { opacity:.35; cursor:default }
.document-upload [data-file-feedback] a { color:#fff; text-decoration:underline; text-underline-offset:3px }

.field-error {font-size:14px;line-height:1.45;color:#ff9eae;font-weight:400}

.captain-choice {display:flex;align-items:center;gap:12px;align-self:end;box-sizing:border-box;min-height:52px;padding:12px 16px;border:1px solid #72798b;border-radius:10px;background:#ffffff04;font-size:16px;font-weight:500;cursor:pointer}
.captain-choice:hover {border-color:#e1adca;background:#ffffff08}
.captain-choice:has(:checked) {border-color:#ed9cc2;background:#df79ae18}
.registration-form-panel .captain-choice input {appearance:none;display:grid;place-content:center;width:22px;height:22px;min-width:22px;border:1px solid #8e94a5;border-radius:6px;background:#0d111d;color:#351228}
.captain-choice input::before {content:"";width:10px;height:6px;border:solid currentColor;border-width:0 0 2px 2px;transform:translateY(-1px) rotate(-45deg);visibility:hidden}
.registration-form-panel .captain-choice input:checked {background:#f0b7d2;border-color:#f0b7d2}
.captain-choice input:checked::before {visibility:visible}
.field-hint-optional {font-style:italic}
@media(forced-colors:active){.registration-form-panel .captain-choice input {appearance:auto}.captain-choice input::before {content:none}}
.document-upload {padding:20px;border:1px solid #ffffff35;border-radius:16px;background:#ffffff06;align-content:start;gap:14px}
.document-upload > label {font-weight:600;line-height:1.4}
.document-upload .field-hint {margin:0;line-height:1.5}
.document-upload-button {min-height:52px;padding:14px 20px;width:100%;border:1px solid #ffffffad;border-radius:12px;background:#f7eaf1;color:#3d1530;font:inherit;font-weight:600;cursor:pointer;transition:background .2s}
.document-upload-button:hover {background:#fff}
.document-upload-button:focus-visible,.captain-choice:has(:focus-visible) {outline:3px solid #f7a5cd;outline-offset:4px}

/* Tinted glass, reflective edges and slow poster-colour light behind the content. */
:root {
 --ice: #10121c; --ink: #f9f9fc; --muted: #c6c9d5; --line: #ffffff24;
 --pink: #f75a92; --pink-dark: #ff9bc0; --cyan: #57dce5; --lilac: #b6a0ef;
 --surface: #202538a6; --surface-soft: #1c203080;
 --glass: radial-gradient(ellipse at var(--glint-x,25%) var(--glint-y,0%),#e9f2ff14,transparent 62%),linear-gradient(135deg,#ffffff10,transparent 42%,#ffffff03 72%,#ffffff0c),#111a2a45;
 --glass-edge: #ffffff30;
 --glass-shadow: inset 0 2px 2px #ffffff47,inset 2px 0 3px #ffffff1c,inset 0 -2px 3px #b8e1ff24,inset 0 0 18px #dae9ff0b,0 3px 5px #03081430,0 18px 36px -12px #0008;
 --out: 0 8px 18px #0002; --in: inset 1px 2px 5px #0003;
 --brand-font: 'SB Sans Interface',Arial,sans-serif;
 --display: 'Onest',Arial,sans-serif; --body: 'Onest',Arial,sans-serif;
}
/* Wide, soft ice caustics extend beyond both page edges, with no repeating line tile. */
body { position: relative; isolation: isolate; background: radial-gradient(ellipse 1100px 850px at 85% 240px,#87174625,transparent 75%),radial-gradient(ellipse 1000px 800px at 15% 2200px,#174f6c20,transparent 75%),var(--ice); }
.ambient-scene { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.ice-flow { position: absolute; left: -45%; width: 190%; height: 1000px; color: #6fc5dc; background: linear-gradient(116deg,transparent 32%,#64afca05 36%,#88d0e333 39%,#c5f1ff4a 41%,#7fcfe42b 43%,#5abed509 47%,transparent 52%),linear-gradient(122deg,transparent 48%,#6aadc408 52%,#b9e7f538 55%,#8acadc16 57%,transparent 63%); -webkit-mask-image: linear-gradient(transparent,#000 25%,#000 65%,transparent); mask-image: linear-gradient(transparent,#000 25%,#000 65%,transparent); filter: blur(12px); animation: ice-drift 28s ease-in-out -9s infinite alternate; }
.ice-flow::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(117deg,transparent 0 34px,#b8deef0b 35px,transparent 37px 93px); -webkit-mask-image: linear-gradient(116deg,transparent 26%,#000 40%,transparent 58%); mask-image: linear-gradient(116deg,transparent 26%,#000 40%,transparent 58%); }
.ice-flow-first { top: -160px; }
.ice-flow-second { top: 1100px; animation-duration: 32s; animation-delay: -18s; }
.ice-flow-third { top: 2350px; animation-duration: 30s; animation-delay: -5s; }
.ice-flow-fourth { top: 3700px; animation-duration: 34s; animation-delay: -24s; }
@keyframes ice-drift { from { transform: translate(-9%,32px) skewX(-7deg); } to { transform: translate(9%,-32px) skewX(7deg); } }
@media(max-width:600px) {
 .ice-flow { left: -110%; width: 320%; height: 1200px; }
 .ice-flow-first { top: -100px; }
 .ice-flow-second { top: 1600px; }
 .ice-flow-third { top: 3300px; }
 .ice-flow-fourth { top: 5000px; }
}
@media(prefers-reduced-transparency:reduce) { .ambient-scene { display: none; } }

h2 { font: 600 clamp(34px,4.1vw,56px)/1.08 var(--display); letter-spacing: -1.8px; }
h3 { font: 600 24px/1.25 var(--body); letter-spacing: -.6px; }
.eyebrow { display: block; color: var(--muted); font-size: 13px; font-weight: 500; margin-bottom: 20px; }
.site-header { background: #12172473; border-bottom-color: #ffffff1a; -webkit-backdrop-filter: blur(18px) saturate(155%); backdrop-filter: blur(18px) saturate(155%); }
.main-nav > a { color: #f0f1f6; }
.main-nav > a:hover { color: #fff; }
.header-cta { background: #fff; color: #201225; border: 1px solid #fff; box-shadow: 0 4px 18px #0003; border-radius: 100px; }
.header-cta:hover { background: #ffe6f0; }
.menu-button { background: var(--surface); }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 32px; }
.section-heading > p { font-size: 15px; max-width: 370px; line-height: 1.65; }
.about-section { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: start; }
.about-copy { font-size: 17px; line-height: 1.7; padding-top: 4px; }
.about-section h2 { font-size: clamp(52px,5.5vw,76px); line-height: 1.06; letter-spacing: -2px; }
.about-item + .about-item { margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--line); }
.about-item h3 { font-size: 21px; line-height: 1.35; letter-spacing: -.4px; margin-bottom: 10px; }
.track-grid { position: relative; isolation: isolate; }
.track-grid::before { -webkit-mask-image: radial-gradient(ellipse at center,#000 25%,transparent 72%); mask-image: radial-gradient(ellipse at center,#000 25%,transparent 72%); content: ''; position: absolute; inset: 16% -3% -8%; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 12% 22%,#de20653b,transparent 40%),radial-gradient(ellipse at 53% 90%,#1aa6b437,transparent 41%),radial-gradient(ellipse at 100% 5%,#9570d93b,transparent 38%); }
.track-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 24px; background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: blur(12px) saturate(160%); backdrop-filter: blur(12px) saturate(160%); }
.track-banner { display: flex; align-items: center; justify-content: space-between; min-height: 94px; gap: 14px; padding: 18px 26px; background: linear-gradient(120deg,#f35eab40,#ce306324); color: #ffcfdf; border-bottom: 1px solid #ffb8d42e; box-shadow: inset 0 1px 0 #ffd9e52b; font-weight: 650; font-size: 20px; line-height: 1.3; }
.blue .track-banner { background: linear-gradient(120deg,#57dce53d,#1b9bb021); color: #b7f9ff; border-color: #a1faff2e; box-shadow: inset 0 1px 0 #d2ffff2b; }
.lilac .track-banner { background: linear-gradient(120deg,#b6a0ef40,#8065b52b); color: #e5d9ff; border-color: #decbff2e; box-shadow: inset 0 1px 0 #eae2ff2b; }
.track-banner .icon { width: 35px; height: 35px; }
@media(min-width:901px) { .track-card { min-height: 350px; } }
.track-body { display: flex; flex-direction: column; flex: 1; padding: 26px; min-width: 0; }
.track-body h3 { font-size: 30px; margin-bottom: 14px; }
.track-body > p { font-size: 15px; line-height: 1.65; flex: 1; }
.track-details { border-top: 1px solid #ffffff24; margin-top: 24px; }
.track-details summary { min-height: 53px; font-size: 14px; font-weight: 500; }
.track-details summary:hover { color: var(--pink-dark); }
.track-details > div { padding-block: 10px 2px; font-size: 14px; }
.track-details p { line-height: 1.65; }
.track-details .track-result { margin-top: 18px; }
.track-result strong { color: #fff; font-weight: 500; }
.track-details a { display: inline-flex; min-height: 44px; align-items: center; margin-top: 12px; text-decoration: underline; text-underline-offset: 5px; }
.timeline li { border-top: 1px solid #ffffff2e; padding-top: 21px; }
.step-top { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 23px; }
.step-number { display: grid; place-items: center; width: 27px; height: 27px; flex: none; border-radius: 50%; background: linear-gradient(145deg,#ffffff1f,#ffffff07); border: 1px solid #ffffff2b; color: #fff; font-size: 12px; }
.timeline li:first-child .step-number { background: #e34d813d; color: #ffd9e7; border-color: #f796b455; }
.step-date { color: #fff; font-size: clamp(20px,1.7vw,24px); font-weight: 650; line-height: 1.3; letter-spacing: -.5px; white-space: nowrap; }
.timeline h3 { font-size: 22px; margin-bottom: 12px; }
.timeline li > p { font-size: 14px; line-height: 1.7; }
.pending-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; }
.pending-grid > .section { width: auto; min-width: 0; padding: 0; margin: 0; }
.pending-grid h2,.partners-section h2 { font-size: 40px; }
.pending-grid .section-heading { margin-bottom: 24px; }
.announcement { display: flex; align-items: flex-start; gap: 22px; padding: 27px; min-height: 153px; background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-radius: 22px; }
.announcement-icon { flex: none; color: var(--pink-dark); padding-top: 2px; }
.announcement-icon .icon { width: 30px; height: 30px; }
.announcement h3 { font-size: 19px; letter-spacing: -.3px; margin-bottom: 10px; }
.announcement p { font-size: 16px; line-height: 1.65; }
.pending-grid .announcement { height: calc(100% - 68px); }
.prize-slots { display: grid; gap: 16px; }
.prize-slot { display: flex; align-items: flex-start; gap: 24px; padding: 26px; background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-radius: 20px; }
.prize-slot h3 { margin-bottom: 12px; }
.prize-slot p { font-size: 15px; }
.jury-card img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 22px; margin-bottom: 18px; }
.jury-card h3 { font-size: 20px; margin-bottom: 6px; }
.jury-card p { font-size: 14px; }
.partner-placeholder,.partner-card { min-height: 110px; background: var(--glass); border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-radius: 18px; padding: 25px; display: flex; align-items: center; justify-content: center; text-align: center; }
.partner-placeholder span { font-size: 15px; color: var(--muted); }
.partner-card { flex-direction: column; gap: 15px; background: rgb(255 255 255 / 3%); border-color: rgb(255 255 255 / 8%); box-shadow: none; }
.partner-card a { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 100px; padding: 12px; border-radius: 12px; background: transparent; }
.partner-card a:hover { background: rgb(255 255 255 / 4%); }
.partner-card img { width: auto; max-width: 210px; height: 76px; max-height: 76px; object-fit: contain; }
.partner-name { font-size: 18px; font-weight: 600; }
.partners-section .partner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
@media(min-width:1000px) { .partners-section .partner-grid { grid-template-columns: repeat(3,minmax(0,1fr)); } }
.partner-link { display: inline-block; margin-top: 24px; }
.faq-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: 80px; }
@media(min-width:901px) { .faq-layout h2 { font-size: clamp(56px,6vw,80px); line-height: 1.04; } }
.faq-layout > div > p { font-size: 14px; margin-top: 28px; }
.faq-list { padding-inline: 24px; background: var(--glass); border: 1px solid var(--glass-edge); border-radius: 24px; box-shadow: var(--glass-shadow); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.faq-item { border-bottom: 1px solid #ffffff24; }
.faq-item:last-child { border-bottom: 0; }
.faq-item summary { min-height: 78px; padding-block: 20px; font-size: 17px; }
.faq-item p { font-size: 15px; line-height: 1.7; padding: 0 40px 23px 0; }
.footer > div > p { margin-top: 16px; font-size: 12px; }
.footer-contact > span,.footer-bottom { font-size: 12px; color: var(--muted); }
.footer-contact > a { font-size: 19px; }
@media(max-width:1150px) {
 .track-grid { gap: 18px; }
 .track-banner,.track-body { padding: 22px; }
 .track-banner { font-size: 18px; }
 .track-body h3 { font-size: 27px; }
 .track-body > p { font-size: 14px; }
 .about-section,.faq-layout { gap: 40px; }
}
@media(max-width:900px) {
 h2 { font-size: 42px; }
 .section { padding-block: 48px; }
 .main-nav { background: #191d2af5; box-shadow: 0 14px 35px #0004; }
 .section-heading { gap: 26px; }
 .section-heading > p { font-size: 14px; max-width: 260px; }
 .about-section { gap: 32px; }
 .about-copy { font-size: 15px; }
 .track-grid { grid-template-columns: 1fr; }
 .track-card { display: grid; grid-template-columns: 190px 1fr; }
 .track-banner { flex-direction: column; align-items: flex-start; justify-content: space-between; font-size: 20px; }
 .track-body > p { min-height: 0; }
 .track-details { margin-top: 18px; }
 .pending-grid { gap: 22px; }
 .announcement { padding: 23px; gap: 16px; }
 .announcement h3 { font-size: 18px; }
 .announcement-icon { display: none; }
 .faq-layout { grid-template-columns: 1fr; gap: 30px; }
 .faq-layout h2 br { display: none; }
 .faq-layout > div > p { margin-top: 18px; }
}
@media(max-width:600px) {
 .section { padding-block: 36px; }
 h2 { font-size: 36px; line-height: 1.12; letter-spacing: -1.2px; }
 .eyebrow { font-size: 12px; margin-bottom: 16px; }
 .section-heading { display: block; margin-bottom: 24px; }
 .section-heading > p { max-width: none; margin-top: 16px; font-size: 14px; }
 .section-heading > p br { display: block; }
 .about-section { grid-template-columns: 1fr; gap: 24px; }
 .about-copy { padding: 0; font-size: 15px; }
 .about-section h2 { font-size: clamp(36px,10vw,46px); letter-spacing: -1.2px; }
 .about-item + .about-item { margin-top: 24px; padding-top: 24px; }
 .about-item h3 { font-size: 20px; }
 .track-card { display: block; border-radius: 22px; }
 .track-banner { min-height: 76px; padding: 16px 22px; flex-direction: row; align-items: center; font-size: 19px; }
 .track-banner .icon { width: 30px; height: 30px; }
 .track-body { padding: 22px 22px 12px; }
 .track-body h3 { font-size: 28px; margin-bottom: 14px; }
 .track-body > p { font-size: 14px; }
 .track-details { margin-top: 18px; }
 .track-details summary { min-height: 52px; font-size: 13px; }
 .timeline { gap: 0; }
 .timeline li { padding: 20px 0; display: grid; grid-template-columns: 1fr; }
 .step-top { margin-bottom: 14px; }
 .timeline h3 { font-size: 23px; margin-bottom: 8px; }
 .timeline li > p { font-size: 14px; }
 .pending-grid { grid-template-columns: 1fr; gap: 30px; }
 .pending-grid h2,.partners-section h2 { font-size: 34px; }
 .pending-grid .section-heading { margin-bottom: 20px; }
 .announcement { min-height: 0; padding: 24px; }
 .announcement-icon { display: block; }
 .announcement h3 { font-size: 18px; }
 .announcement p { font-size: 14px; }
 .partner-grid { gap: 12px; }
 .partner-placeholder { min-height: 66px; padding: 20px; justify-content: flex-start; }
 .partner-placeholder span { font-size: 14px; }
 .faq-list { padding-inline: 18px; border-radius: 22px; }
 .faq-item summary { min-height: 72px; font-size: 15px; gap: 20px; }
 .faq-item p { padding-right: 0; font-size: 14px; }
 .footer { gap: 25px; }
 .footer-contact > a { font-size: 17px; }
 .footer-bottom { font-size: 10px; }
}
/* Full-width video cover. Premiere status exists only inside the player. */
.film-cover { display: grid; place-items: center; width: 100%; aspect-ratio: 16/9; padding: 0; overflow: hidden; border: 1px solid var(--glass-edge); border-radius: 32px; background: radial-gradient(ellipse at 85% 80%,#a21c5145,transparent 65%),var(--glass); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.film-visual { position: absolute; inset: 0; pointer-events: none; }
.film-logo { position: absolute; width: 19%; left: 5%; top: 9%; height: auto; }
.film-helmet { position: absolute; width: 28%; left: 2%; bottom: -6%; height: auto; transform: rotate(-15deg); }
.film-laptop { position: absolute; width: 45%; right: -7%; top: 3%; height: auto; transform: rotate(8deg); }
.film-play { position: relative; display: grid; place-items: center; width: 90px; height: 90px; border-radius: 50%; border: 1px solid #ffffff80; background: linear-gradient(135deg,#ffffff45,#ffffff0c),#18263838; box-shadow: inset 1px 2px 3px #ffffff94,inset -1px -2px 3px #ffffff30,0 12px 38px #0006; -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); transition: transform .2s,background .2s; }
.film-play svg { width: 40px; height: 40px; }
.film-cover:hover .film-play { transform: scale(1.08); background-color: #ffffff24; }
.film-cover:active .film-play { transform: scale(.97); }
@media(max-width:600px) { .film-cover { border-radius: 22px; } .film-play { width: 60px; height: 60px; } .film-play svg { width: 29px; height: 29px; } .film-logo { width: 27%; } .film-helmet { width: 32%; } }
.video-dialog { width: min(1280px, calc(100vw - 40px)); max-width: none; max-height: calc(100dvh - 40px); margin: auto; padding: 20px; border: 1px solid #665575; border-radius: 28px; background: #1b192be6; color: #fff; box-shadow: inset 0 1px 0 #ffffff22,0 30px 100px #000b; -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); overflow: auto; }
.video-dialog::backdrop { background: #08060fe8; backdrop-filter: blur(9px); }
.player-header { display: flex; align-items: center; justify-content: space-between; gap: 25px; padding: 0 0 17px 8px; }
.player-header h3 { font-family: var(--body); font-size: 18px; line-height: 1.45; letter-spacing: -.3px; font-weight: 500; }
.player-close { width: 44px; height: 44px; flex: none; display: grid; place-items: center; border: 1px solid #ffffff33; border-radius: 14px; background: linear-gradient(140deg,#ffffff1f,#ffffff07); color: #fff; font-size: 29px; line-height: 1; box-shadow: inset 0 1px 0 #ffffff22; }
.video-dialog video,.video-dialog .player-premiere { display: block; width: 100%; height: auto; max-height: calc(100dvh - 143px); aspect-ratio: 16/9; object-fit: contain; border-radius: 15px; background: #000; }
.video-dialog .video-error { color: #ffd4e1; padding: 20px 10px 7px; font-size: 14px; }
.player-is-open { overflow: hidden; }
@media (max-width:600px) {
  .video-dialog { width: calc(100vw - 16px); padding: 12px; border-radius: 20px; }
  .player-header { padding: 0 0 14px 4px; gap: 13px; }
  .player-header h3 { font-size: 14px; }
  .video-dialog video,.video-dialog .player-premiere { border-radius: 10px; }
}

/* First screen: brand and slogan; supporting context, dates and two action levels. */
.hero {
  isolation: isolate;
  display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 30px;
  min-height: 530px; padding: 52px 56px; margin-top: 28px; margin-bottom: 26px;
  border-radius: 42px;
  background: radial-gradient(ellipse at var(--glint-x,20%) var(--glint-y,0%),#ffdced24,transparent 60%),linear-gradient(125deg,#ffffff12,transparent 45%),linear-gradient(128deg,#6b164c70,#78154145 55%,#981e3436);
  border: 1px solid #ffc3e347;
  box-shadow: var(--glass-shadow),0 28px 65px -18px #02041070;
  -webkit-backdrop-filter: blur(12px) saturate(160%); backdrop-filter: blur(12px) saturate(160%);
}
.hero-copy { position: relative; z-index: 2; padding: 0; }
.hero h1 { margin: 0 0 22px; font-size: inherit; line-height: 1; }
.hero-logo { width: 100%; max-width: 470px; height: auto; }
.hero-context { font-size: 14px; line-height: 1.5; color: #ffe4ef; margin-bottom: 18px; max-width: 440px; }
.hero-description { font: 700 clamp(24px,2.1vw,30px)/1.18 var(--brand-font); letter-spacing: -.5px; text-transform: uppercase; color: #fff; margin: 0 0 22px; max-width: 490px; }
.hero-dates { display: flex; align-items: baseline; gap: 2px; font: 400 18px/1.5 var(--body); color: #ffe4ef; }
.hero-actions { margin-top: 25px; gap: 25px; flex-wrap: nowrap; }
.hero-track-link { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; font-size: 14px; font-weight: 500; color: #fff; text-decoration: underline; text-decoration-color: #ffffff66; text-underline-offset: 6px; white-space: nowrap; }
.hero-track-link:hover { text-decoration-color: #fff; }
.hero .button-primary { gap: 18px; min-height: 54px; padding: 16px 27px; font-size: 15px; background: linear-gradient(135deg,#fff9,#fff5),#f9e8f5b3; color: #4b173a; border: 1px solid #ffffffab; border-radius: 19px; font-weight: 600; box-shadow: inset 0 1px 0 #fff,0 8px 24px #170a2726; }
.hero .button-primary:hover { transform: translateY(-2px); }
.hero-visual { position: relative; min-width: 0; min-height: 405px; height: 100%; overflow: visible; pointer-events: none; margin: 0; }
.kv-helmet,.kv-laptop { position: absolute; max-width: none; height: auto; object-fit: contain; }
.kv-helmet { width: 32%; top: -19px; right: -7px; z-index: 2; transform: rotate(9deg); filter: drop-shadow(4px 14px 14px #360b4f44); }
.kv-laptop { width: 100%; left: 0; bottom: 0; top: auto; z-index: 1; transform: rotate(-8deg); filter: drop-shadow(0 20px 20px #39041755); }
.kv-glow { position: absolute; inset: 0; background: radial-gradient(ellipse,#ee76922b,transparent 64%); }
@media(max-width:1150px) {
 .hero { padding: 40px 36px; min-height: 475px; gap: 22px; }
 .hero-visual { min-height: 330px; }
 .hero-description { font-size: 25px; }
 .hero-dates { font-size: 16px; }
}
@media(max-width:900px) {
 .header-inner { height: 64px; }
 .header-cta { display: none; }
 .menu-button { margin-left: auto; }
 .main-nav { top: 70px; }
 .hero { min-height: 420px; padding: 32px; gap: 14px; }
 .hero h1 { margin-bottom: 24px; }
 .hero-description { font-size: 22px; margin-bottom: 17px; }
 .hero-dates { font-size: 15px; }
 .hero-visual { min-height: 300px; }
}
@media(max-width:600px) {
 .site-header .brand { width: 100px; }
 .header-inner { height: 60px; }
 .menu-button { width: 44px; height: 44px; box-shadow: none; background: transparent; }
 .main-nav { top: 65px; }
 .hero { width: calc(100% - 32px); display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding: 29px 25px 20px; margin-top: 14px; margin-bottom: 22px; gap: 0; border-radius: 28px; }
 .hero h1 { margin: 0 0 18px; }
 .hero-logo { width: 100%; max-width: 340px; }
 .hero-context { font-size: 12px; margin-bottom: 18px; max-width: 265px; }
 .hero-description { font-size: 23px; line-height: 1.18; letter-spacing: -.4px; margin-bottom: 18px; }
 .hero-description br { display: block; }
 .hero-dates { font-size: 15px; }
 .hero-actions { margin-top: 20px; gap: 20px; }
 .hero-track-link { font-size: 13px; }
 .hero .button-primary { padding: 14px 18px; min-height: 52px; font-size: 13px; gap: 16px; }
 .hero-visual { height: 225px; min-height: 0; margin: 18px 0 0; }
 .kv-laptop { width: 84%; left: -1%; bottom: 0; }
 .kv-helmet { width: 32%; right: -3px; top: 0; }
}
@media(max-width:360px) {
 .hero { padding-inline: 22px; }
 .hero-description { font-size: 21px; }
 .hero-actions { gap: 14px; }
 .hero .button-primary { padding-inline: 12px; font-size: 12px; gap: 10px; }
 .hero .button-primary svg { width: 18px; }
 .hero-track-link { font-size: 12px; }
 .hero-dates { font-size: 13px; }
 .hero-visual { height: 195px; }
}

/* Compact content groups share one vertical centre, not stretched text rows. */
.facts-strip { grid-template-columns: repeat(4,minmax(0,1fr)); padding: 28px 8px; gap: 0; background: linear-gradient(135deg,#ffffff09,transparent 55%),#161c2ce6; border: 1px solid var(--glass-edge); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); border-radius: 22px; }
.facts-strip .fact-item { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px; min-width: 0; min-height: 76px; padding: 0 24px; border-right: 1px solid #ffffff20; }
.facts-strip .fact-item:last-child { border: 0; }
.facts-strip .fact-item strong { font: 600 26px/30px var(--body); letter-spacing: -.7px; }
.facts-strip .fact-item span { font-size: 16px; font-weight: 500; line-height: 22px; letter-spacing: 0; text-transform: none; color: #ececf5; }
.facts-strip .fact-number { flex-direction: row; align-items: center; justify-content: flex-start; gap: 14px; }
.facts-strip .fact-number strong { flex: none; font-size: 56px; line-height: .9; letter-spacing: -1.8px; }
.facts-strip .fact-copy { display: flex; flex-direction: column; gap: 0; }
.facts-strip .fact-copy span { font-size: 18px; line-height: 27px; white-space: nowrap; }
.facts-strip .fact-format { gap: 10px; }
.facts-strip .host-fact { gap: 14px; }
.facts-strip .host-fact img { width: 195px; max-width: 100%; height: 30px; object-fit: contain; object-position: left center; }
@media(max-width:1100px) {
 .facts-strip { grid-template-columns: repeat(2,minmax(0,1fr)); row-gap: 22px; }
 .facts-strip .fact-item:nth-child(even) { border: 0; }
}
@media(max-width:600px) {
 .facts-strip { padding: 20px 0; row-gap: 20px; }
 .facts-strip .fact-item { padding-inline: 14px; min-height: 64px; gap: 5px; }
 .facts-strip .fact-item strong { font-size: 19px; line-height: 22px; letter-spacing: -.4px; }
 .facts-strip .fact-item span { font-size: 14px; line-height: 20px; }
 .facts-strip .fact-number { gap: 9px; }
 .facts-strip .fact-number strong { font-size: 36px; line-height: .9; letter-spacing: -1px; }
 .facts-strip .host-fact { gap: 10px; }
 .facts-strip .host-fact img { height: 26px; }
}
@media(max-width:360px) {
 .facts-strip .fact-item { padding-inline: 12px; }
 .facts-strip .fact-item span { font-size: 13px; line-height: 19px; }
 .facts-strip .fact-number { gap: 8px; }
 .facts-strip .fact-number strong { font-size: 30px; }
}

/* A two-pixel reflective bevel, brighter near the pointer, with a clear centre. */
:is(.hero,.facts-strip,.track-card,.announcement,.prize-slot,.partner-placeholder,.partner-card,.faq-list,.film-cover,.header-cta) { position: relative; }
:is(.hero,.facts-strip,.track-card,.announcement,.prize-slot,.partner-placeholder,.partner-card,.faq-list,.film-cover,.header-cta)::after {
 content: ''; position: absolute; inset: 0; padding: 2px; border-radius: inherit; pointer-events: none;
 background: radial-gradient(ellipse at var(--glint-x,22%) var(--glint-y,0%),#fff 0%,#d8edffb3 15%,transparent 48%),linear-gradient(145deg,#ffffff80,transparent 32%,#ffffff12 50%,#bcdbff75 78%,transparent 92%);
 -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0); mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
 -webkit-mask-composite: xor; mask-composite: exclude;
}
.hero::before { content: ''; position: absolute; inset: 5px; border: 1px solid #ffffff09; border-radius: 37px; pointer-events: none; background: linear-gradient(140deg,#ffffff09,transparent 26%,transparent 80%,#ffffff08); }
.hero .button-primary { background: #fff; border-color: #fff; color: #301129; font-weight: 750; box-shadow: 0 8px 24px #0004; }
.hero .button-primary:hover { background: #ffe6f0; }
@media(max-width:600px) { .hero::before { border-radius: 23px; } }
@supports not ((mask-composite: exclude) or (-webkit-mask-composite: xor)) {
 :is(.hero,.facts-strip,.track-card,.announcement,.prize-slot,.partner-placeholder,.partner-card,.faq-list,.film-cover,.header-cta)::after { display: none; }
}

.facts-strip::after { opacity: .28; padding: 1px; }
.partner-card::after { opacity: .12; padding: 1px; }

/* Blur is bounded to panels; no animated filters or page-sized fixed blur layers. */
@media(max-width:600px) {
 .track-card,.facts-strip,.announcement,.prize-slot,.partner-placeholder,.partner-card,.faq-list { -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
 .hero { -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
 .track-grid::before { inset: 5% -2%; background: radial-gradient(ellipse at 0 8%,#df326f30,transparent 38%),radial-gradient(ellipse at 100% 50%,#2891b132,transparent 38%),radial-gradient(ellipse at 10% 100%,#9163cb2b,transparent 35%); }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
 .site-header,.main-nav { background: #171a27; }
 .track-card,.facts-strip,.announcement,.prize-slot,.partner-placeholder,.partner-card,.faq-list { background-color: #1c2030; }
 .hero { background-color: #541133; }
 .video-dialog { background: #1b192b; }
}
@media(prefers-reduced-transparency:reduce) {
 .site-header,.main-nav { background: #171a27; }
 .track-card,.facts-strip,.announcement,.prize-slot,.partner-placeholder,.partner-card,.faq-list { background: #1c2030; -webkit-backdrop-filter: none; backdrop-filter: none; }
 .film-cover,.video-dialog { background: #29243b; -webkit-backdrop-filter: none; backdrop-filter: none; }
 .hero { background-color: #541133; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

@media print { .ambient-scene,.film-section { display: none; } }

/* Participation is the primary action: poster colour, a bright button and clear contrast. */
.registration-invite { position: relative; overflow: hidden; background: radial-gradient(ellipse at 100% 0,#e9477940,transparent 62%),linear-gradient(115deg,#95134d,#74164d 60%,#451536); border-color: #ffb4d470; box-shadow: inset 0 1px 1px #ffffff59,0 20px 50px #0004; }
.registration-invite h2 { color: #fff; font-size: clamp(48px,5.3vw,76px); line-height: 1.06; }
.registration-invite p { color: #fff0f6; }
.registration-invite .registration-open { background: #fff; color: #661335; border: 1px solid #fff; min-height: 76px; padding: 22px 36px; font-size: 22px; font-weight: 750; box-shadow: 0 8px 24px #32051f55; transition: transform .22s ease,box-shadow .22s ease,background-color .22s ease; }
.registration-invite .registration-open:focus-visible { background: #ffe6f0; box-shadow: 0 12px 30px #32051f70,0 0 0 5px #ffffff24; }
@media(hover:hover) and (pointer:fine) { .registration-invite .registration-open:hover { background: #ffe6f0; transform: translateY(-3px); box-shadow: 0 14px 32px #32051f70,0 0 0 5px #ffffff24; } }
.registration-invite .registration-open:active { transform: translateY(0); }
@media(prefers-reduced-motion:reduce) { .registration-invite .registration-open:hover { transform: none; } }
@media(max-width:600px) { .registration-invite h2 { font-size: clamp(40px,10vw,48px); letter-spacing: -1.3px; } .registration-invite .registration-open { font-size: 20px; min-height: 70px; padding-inline: 22px; } }
@media(max-width:1150px) and (min-width:901px) { .header-inner { gap: 18px; } .main-nav { gap: 16px; } .header-cta { gap: 10px; padding-inline: 18px; } }
@media(max-width:900px) { .main-nav .mobile-register { background: #fff; color: #201225; margin-top: 8px; border-radius: 10px; } }
@media(max-width:600px) { .partners-section .partner-grid { grid-template-columns: 1fr; } .step-top { flex-direction: row; align-items: center; } .step-date { font-size: 23px; } .pending-grid .announcement { height: auto; } }
