
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --cu-red: #ef233c;
  --cu-red-dark: #c9172d;
  --black: #0b0b0d;
  --ink: #1a1c20;
  --muted: #666b74;
  --line: #e3e5e8;
  --soft: #f5f6f7;
  --white: #ffffff;
  --blue: #0066b3;
  --max: 1200px;
  --radius: 18px;
  --shadow: 0 20px 60px rgba(12, 14, 18, 0.12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, Arial, sans-serif;
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
.container { width: min(calc(100% - 40px), var(--max)); margin: 0 auto; }

.utility-bar {
  background: var(--black);
  color: #dfe1e5;
  font-size: .78rem;
  letter-spacing: .02em;
}
.utility-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.utility-inner a { text-decoration: none; color: white; font-weight: 700; }
.status-pill { color: #ff8d9b; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid rgba(0,0,0,.08);
  backdrop-filter: blur(14px);
}
.header-inner { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.brand { display: flex; align-items: center; text-decoration: none; min-width: 0; gap: 14px; }
.brand img { width: 150px; height: auto; flex: 0 0 auto; }
.brand-divider { width: 1px; height: 38px; background: #d8dadd; flex: 0 0 auto; }
.brand-event { display: flex; flex-direction: column; line-height: 1.02; min-width: 0; }
.brand-event strong { font-family: "Barlow Condensed", Inter, sans-serif; font-size: 1.36rem; text-transform: uppercase; letter-spacing: .01em; color: #101114; white-space: nowrap; }
.brand-event small { margin-top: 4px; color: var(--muted); font-size: .66rem; font-weight: 700; white-space: nowrap; }
.site-nav { display: flex; align-items: center; gap: 3px; }
.site-nav a { text-decoration: none; font-weight: 700; color: #363940; font-size: .91rem; padding: 11px 12px; border-radius: 9px; }
.site-nav a:hover, .site-nav a.active { background: var(--soft); color: #0d0e10; }
.site-nav .nav-cta { background: var(--cu-red); color: white; margin-left: 6px; }
.site-nav .nav-cta:hover { background: var(--cu-red-dark); color: white; }
.nav-toggle { display: none; border: 1px solid var(--line); background: white; border-radius: 10px; padding: 9px 12px; font-weight: 800; cursor: pointer; }

.hero { position: relative; min-height: 690px; display: grid; align-items: end; overflow: hidden; background: #111; }
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 50%; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,4,5,.93) 0%, rgba(5,5,7,.82) 42%, rgba(5,5,7,.34) 72%, rgba(5,5,7,.18) 100%), linear-gradient(0deg, rgba(0,0,0,.55), transparent 45%); }
.hero-inner { position: relative; z-index: 2; padding: 105px 0 84px; color: white; }
.hero-copy { max-width: 770px; }
.kicker { margin: 0 0 14px; color: var(--cu-red); font-weight: 900; font-size: .78rem; text-transform: uppercase; letter-spacing: .15em; }
.hero .kicker { color: #ff7c8c; }
h1, h2, h3 { font-family: "Barlow Condensed", Inter, sans-serif; letter-spacing: -.015em; }
.hero h1 { margin: 0; font-size: clamp(4rem, 9vw, 7.6rem); line-height: .86; text-transform: uppercase; letter-spacing: -.035em; max-width: 900px; }
.hero-tagline { margin: 25px 0 0; font-size: clamp(1.05rem, 2vw, 1.35rem); color: #eceef1; max-width: 680px; }
.hero-meta { display: flex; flex-wrap: wrap; gap: 10px 24px; margin-top: 22px; color: #f4f4f5; font-size: .95rem; font-weight: 700; }
.hero-meta span::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--cu-red); margin-right: 9px; vertical-align: 1px; }
.btn-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.btn { min-height: 50px; padding: 0 21px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; border-radius: 10px; text-decoration: none; font-weight: 900; border: 1px solid transparent; transition: .16s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--cu-red); color: white; }
.btn-primary:hover { background: var(--cu-red-dark); }
.btn-light { background: white; color: #111; }
.btn-ghost { color: white; border-color: rgba(255,255,255,.46); background: rgba(0,0,0,.18); }
.btn-outline { color: #111; border-color: #cfd2d7; background: white; }

.quickbar { position: relative; z-index: 4; margin-top: -36px; }
.quickbar-grid { display: grid; grid-template-columns: 1.15fr 1fr 1fr .95fr; background: white; box-shadow: var(--shadow); border-radius: var(--radius); overflow: hidden; border: 1px solid rgba(0,0,0,.06); }
.quick-item { padding: 24px 25px; border-right: 1px solid var(--line); min-height: 122px; }
.quick-item:last-child { border-right: 0; background: var(--cu-red); color: white; }
.quick-label { color: var(--muted); text-transform: uppercase; letter-spacing: .11em; font-size: .68rem; font-weight: 900; }
.quick-item:last-child .quick-label { color: #ffd7dd; }
.quick-value { display: block; font-weight: 800; margin-top: 7px; font-size: .99rem; line-height: 1.35; }
.countdown { display: flex; gap: 13px; margin-top: 7px; }
.countdown strong { font-family: "Barlow Condensed"; font-size: 2rem; line-height: 1; }
.countdown small { display: block; font-size: .58rem; text-transform: uppercase; letter-spacing: .1em; color: #ffd7dd; }

.section { padding: 88px 0; }
.section-soft { background: var(--soft); }
.section-black { background: var(--black); color: white; }
.section-head { max-width: 800px; margin-bottom: 38px; }
.section-head h2 { margin: 0; font-size: clamp(2.6rem, 5vw, 4.4rem); line-height: .95; text-transform: uppercase; }
.section-head p { margin: 15px 0 0; color: var(--muted); font-size: 1.06rem; }
.section-black .section-head p { color: #b7bbc2; }

.action-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.action-card { position: relative; overflow: hidden; min-height: 315px; border-radius: var(--radius); background: #151515; color: white; text-decoration: none; box-shadow: 0 12px 35px rgba(0,0,0,.1); }
.action-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.action-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.92), rgba(0,0,0,.12) 70%); }
.action-card:hover img { transform: scale(1.035); }
.action-content { position: absolute; z-index: 2; inset: auto 24px 23px; }
.action-content h3 { margin: 0; font-size: 2.2rem; text-transform: uppercase; line-height: 1; }
.action-content p { margin: 8px 0 0; color: #dedfe2; font-size: .92rem; }
.action-content span { display: inline-block; margin-top: 12px; color: #ff7c8c; font-weight: 900; font-size: .85rem; }

.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; }
.image-frame { border-radius: 20px; overflow: hidden; box-shadow: var(--shadow); min-height: 460px; }
.image-frame img { width: 100%; height: 100%; min-height: 460px; object-fit: cover; }
.copy h2 { margin: 0; font-size: clamp(2.6rem,5vw,4.3rem); line-height: .95; text-transform: uppercase; }
.copy p { color: var(--muted); font-size: 1.05rem; }
.fact-list { display: grid; gap: 12px; margin-top: 26px; }
.fact { display: grid; grid-template-columns: 42px 1fr; gap: 13px; align-items: start; }
.fact-num { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: #ffe9ec; color: var(--cu-red-dark); font-weight: 900; }
.fact strong { display: block; }
.fact span { color: var(--muted); font-size: .92rem; }

.gallery { display: grid; grid-template-columns: 1.35fr .85fr .85fr; grid-template-rows: 260px 260px; gap: 16px; }
.gallery figure { margin: 0; border-radius: 16px; overflow: hidden; position: relative; background: #ddd; }
.gallery figure:first-child { grid-row: 1 / 3; }
.gallery img { width: 100%; height: 100%; object-fit: cover; }
.gallery figure::after { content: ""; position: absolute; inset: 0; box-shadow: inset 0 0 0 1px rgba(0,0,0,.05); pointer-events: none; }

.partner-strip { background: white; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.partner-inner { min-height: 145px; display: grid; grid-template-columns: 1.8fr .8fr .8fr; gap: 45px; align-items: center; }
.partner-title { font-family: "Barlow Condensed"; font-weight: 800; font-size: 1.75rem; text-transform: uppercase; }
.partner-logo { min-height: 80px; display: grid; place-items: center; padding: 10px 0; }
.partner-logo img { max-height: 82px; width: auto; object-fit: contain; }
.partner-logo.first img { max-height: 74px; }
.partner-logo.cufirst img { max-height: 64px; }

.page-hero { background: linear-gradient(115deg,#09090a 0%,#191a1d 73%,#330a10 100%); color: white; padding: 82px 0 74px; overflow: hidden; position: relative; }
.page-hero::after { content:""; position:absolute; right:-100px; top:-230px; width:520px; height:520px; border-radius:50%; border:95px solid rgba(239,35,60,.14); }
.page-hero .container { position: relative; z-index:2; }
.page-hero h1 { margin:0; font-size:clamp(3.4rem,7vw,6.7rem); text-transform:uppercase; line-height:.9; }
.page-hero p { max-width:750px; margin:18px 0 0; color:#cfd1d6; font-size:1.08rem; }

.content-grid { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:48px; align-items:start; }
.prose h2 { margin:0 0 12px; font-size:2.6rem; text-transform:uppercase; line-height:1; }
.prose h2:not(:first-child) { margin-top:46px; }
.prose p, .prose li { color:#50555d; }
.prose ul { padding-left:1.2rem; }
.sidebar { position:sticky; top:106px; border:1px solid var(--line); border-radius:var(--radius); background:var(--soft); padding:25px; }
.sidebar h3 { margin:0 0 14px; font-size:1.65rem; text-transform:uppercase; }
.sidebar p { color:var(--muted); margin:8px 0; }
.info-row { padding:13px 0; border-bottom:1px solid #dde0e4; }
.info-row:last-child { border-bottom:0; }
.info-row small { display:block; color:var(--muted); font-weight:800; text-transform:uppercase; letter-spacing:.09em; font-size:.65rem; }
.info-row strong { display:block; margin-top:3px; }

.form-wrap { margin-top:26px; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:white; box-shadow:var(--shadow); }
.form-head { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 18px; border-bottom:1px solid var(--line); background:#fafafa; }
.form-head strong { font-size:.9rem; }
.form-head a { text-decoration:none; color:var(--cu-red-dark); font-weight:900; font-size:.86rem; }
.form-wrap iframe { width:100%; height:1220px; border:0; display:block; }
.form-placeholder { padding:58px 28px; text-align:center; }
.form-placeholder h3 { margin:0; font-size:2rem; text-transform:uppercase; }
.form-placeholder p { color:var(--muted); max-width:620px; margin:10px auto 0; }
.form-placeholder .btn { margin-top:22px; }

.sponsor-intro { display:grid; grid-template-columns:1.05fr .95fr; gap:50px; align-items:center; }
.sponsor-panel { border:1px solid var(--line); border-radius:var(--radius); padding:29px; background:var(--soft); }
.sponsor-panel h3 { margin:0 0 11px; font-size:2rem; text-transform:uppercase; }
.sponsor-panel p { color:var(--muted); }
.sponsor-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:30px; }
.sponsor-tile { min-height:150px; border:1px solid var(--line); border-radius:14px; display:grid; place-items:center; padding:24px; background:white; }
.sponsor-tile img { max-height:85px; width:auto; object-fit:contain; }
.sponsor-placeholder { color:#9b9fa6; font-weight:800; text-align:center; }

.contact-options { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin:28px 0 35px; }
.contact-option { border:1px solid var(--line); border-radius:14px; padding:23px; text-decoration:none; background:white; }
.contact-option:hover { border-color:#bbc0c7; box-shadow:0 10px 30px rgba(0,0,0,.06); }
.contact-option small { color:var(--muted); display:block; text-transform:uppercase; letter-spacing:.08em; font-weight:800; font-size:.66rem; }
.contact-option strong { display:block; margin-top:7px; overflow-wrap:anywhere; }

.footer { background:#09090a; color:#b7bbc2; padding:52px 0 27px; }
.footer-grid { display:grid; grid-template-columns:1.4fr .65fr .65fr; gap:45px; }
.footer-brand img { width:230px; }
.footer-brand p { max-width:560px; font-size:.9rem; }
.footer h3 { margin:0 0 12px; color:white; font-size:1.25rem; text-transform:uppercase; }
.footer-links { display:grid; gap:8px; align-content:start; }
.footer a { color:#d4d6db; text-decoration:none; }
.footer a:hover { color:white; }
.footer-bottom { margin-top:32px; border-top:1px solid rgba(255,255,255,.12); padding-top:18px; font-size:.76rem; color:#838791; }

.notice { background:#fff2f4; border-left:4px solid var(--cu-red); padding:18px 19px; border-radius:0 10px 10px 0; margin:24px 0; color:#5a3136; }
.code-note { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.85rem; background:#f0f1f3; border-radius:5px; padding:2px 5px; }

@media (max-width: 980px) {
  .quickbar-grid { grid-template-columns:1fr 1fr; }
  .quick-item:nth-child(2) { border-right:0; }
  .quick-item:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .action-grid { grid-template-columns:1fr; }
  .action-card { min-height:280px; }
  .two-col, .sponsor-intro { grid-template-columns:1fr; }
  .gallery { grid-template-columns:1fr 1fr; grid-template-rows:330px 240px; }
  .gallery figure:first-child { grid-column:1 / 3; grid-row:auto; }
  .partner-inner { grid-template-columns:1fr 1fr; padding:25px 0; }
  .partner-title { grid-column:1 / -1; text-align:center; }
  .content-grid { grid-template-columns:1fr; }
  .sidebar { position:static; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
  .contact-options { grid-template-columns:1fr; }
  .sponsor-grid { grid-template-columns:1fr 1fr; }
  .nav-toggle { display:block; }
  .site-nav { display:none; position:absolute; top:79px; left:20px; right:20px; background:white; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow); padding:10px; flex-direction:column; align-items:stretch; }
  .site-nav.open { display:flex; }
  .site-nav .nav-cta { margin-left:0; }
}

@media (max-width: 660px) {
  .container { width:min(calc(100% - 28px), var(--max)); }
  .utility-inner { min-height:42px; justify-content:center; text-align:center; }
  .utility-inner > :last-child { display:none; }
  .brand img { width:120px; }
  .brand-divider { height:34px; }
  .brand-event strong { font-size:1.12rem; }
  .brand-event small { display:none; }
  .hero { min-height:660px; }
  .hero-inner { padding:100px 0 82px; }
  .hero h1 { font-size:clamp(3.7rem,18vw,5.4rem); }
  .hero-overlay { background:linear-gradient(90deg,rgba(4,4,5,.92),rgba(4,4,5,.63)),linear-gradient(0deg,rgba(0,0,0,.55),transparent); }
  .quickbar { margin-top:-24px; }
  .quickbar-grid { grid-template-columns:1fr; }
  .quick-item { min-height:auto; border-right:0; border-bottom:1px solid var(--line); }
  .quick-item:last-child { border-bottom:0; }
  .section { padding:68px 0; }
  .gallery { grid-template-columns:1fr; grid-template-rows:300px 235px 235px 235px; }
  .gallery figure:first-child { grid-column:auto; }
  .partner-inner { grid-template-columns:1fr; gap:20px; }
  .partner-title { grid-column:auto; }
  .sponsor-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-brand { grid-column:auto; }
  .form-wrap { margin-inline:-4px; }
  .form-head { align-items:flex-start; flex-direction:column; }
  .page-hero { padding:62px 0 58px; }
}

.notice-live { background:#effaf3; border-left-color:#198754; color:#254d34; }
.footer-brand a[data-event-domain] { display:inline-block; margin-top:7px; color:#fff; font-weight:800; text-decoration:none; }
.footer-brand a[data-event-domain]:hover { text-decoration:underline; }

@media (max-width: 430px) {
  .brand img { width: 108px; }
  .brand-divider { display:none; }
  .brand-event { display:none; }
}
