:root {
  --deep: #040a14;
  --ink: #f5f7fa;
  --muted: #aab5c3;
  --faint: rgba(226, 236, 247, .2);
  --card: rgba(6, 17, 31, .64);
  --cyan: #006fb7;
  --max-width: 1120px;
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--deep); scroll-behavior: smooth; font-family: "Poppins", ui-sans-serif, system-ui, sans-serif; }
body, button, input, select, textarea { margin: 0; color: var(--ink); background: var(--deep); font-family: inherit; line-height: 1.5; }
a { color: inherit; }
.page-shell { position: relative; min-height: 100svh; overflow: hidden; isolation: isolate; background: radial-gradient(ellipse at 58% 48%, rgba(27, 81, 110, .68) 0%, transparent 48%), linear-gradient(135deg, #1b2544 0%, #111d38 52%, #172641 100%); background-attachment: fixed; }
.page-shell::after { position: fixed; inset: 0; z-index: 0; content: ""; pointer-events: none; background: linear-gradient(180deg, rgba(8, 15, 34, .08), rgba(8, 15, 34, .46)), radial-gradient(ellipse at center, transparent 28%, rgba(5, 10, 26, .44) 100%); }
.container { width: min(calc(100% - 5rem), var(--max-width)); margin-inline: auto; }
.wave-canvas { position: fixed; inset: 0; z-index: 0; display: block; width: 100%; height: 100svh; pointer-events: none; }
.masthead { position: fixed; inset: 0 0 auto; z-index: 10; display: flex; justify-content: space-between; align-items: center; width: 100%; max-width: none; min-height: 96px; padding-inline: max(2.5rem, calc((100vw - var(--max-width)) / 2)); border-bottom: 1px solid rgba(4, 10, 20, .12); background: rgba(255, 255, 255, .78); box-shadow: 0 14px 30px rgba(2, 7, 14, .12); backdrop-filter: blur(16px); }
.wordmark { display: inline-flex; align-items: center; width: 154px; text-decoration: none; }
.wordmark img { display: block; width: 100%; height: auto; }
.masthead-actions { display: flex; align-items: center; gap: 1.5rem; }
.event-meta { margin: 0; color: #425066; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; }
.back-link { padding: .55rem .8rem; border: 1px solid rgba(0, 111, 183, .45); border-radius: 3px; color: #006fb7; font-size: .72rem; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; transition: color .2s ease, background .2s ease; }
.back-link:hover, .back-link:focus-visible { color: #fff; background: #006fb7; }
.register-link { color: #fff; background: #006fb7; }
.register-link:hover, .register-link:focus-visible { background: #00578f; }
.content { position: relative; z-index: 1; padding: clamp(8rem, 14vw, 10rem) 0 7rem; }
.kicker { margin: 0 0 1rem; color: var(--cyan); font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, strong { font-weight: 400; }
h1 { margin-bottom: 1.3rem; font-size: clamp(4.5rem, 11vw, 9.5rem); line-height: .84; letter-spacing: -.09em; }
.agenda { margin-top: 0; }
.sponsors { margin-top: 6rem; font-family: "Poppins", ui-sans-serif, system-ui, sans-serif; }
.sponsors-heading { margin-bottom: 1.5rem; }
.sponsors-heading .kicker { margin-bottom: .45rem; }
.sponsor-wall { position: relative; padding: clamp(1.25rem, 4vw, 2.75rem); border: 1px solid rgba(206, 230, 244, .2); border-radius: 3px; background: #fff; box-shadow: 0 18px 42px rgba(0,0,0,.12); }
.sponsor-wall-inner { position: relative; }
.sponsor-wall img { display: block; width: 100%; height: auto; }
.sponsor-link { position: absolute; z-index: 1; top: var(--top); left: var(--left); width: var(--width); height: var(--height); border-radius: 4px; cursor: pointer; }
.sponsor-link:hover { box-shadow: inset 0 0 0 1px rgba(0, 111, 183, .35); }
.sponsor-link:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.section-label { margin-bottom: 1.75rem; }
.section-label .kicker { margin-bottom: .4rem; }
.day-switch { display: flex; width: fit-content; gap: .3rem; margin-top: 1.5rem; border-bottom: 1px solid var(--faint); }
.day-tabs { display: flex; gap: .3rem; }
.day-switch-button, .day-switch-link { position: relative; padding: .55rem .8rem .7rem; border: 0; color: var(--muted); background: transparent; font: inherit; font-size: .72rem; letter-spacing: .1em; text-decoration: none; text-transform: uppercase; cursor: pointer; }
.day-switch-button::after { position: absolute; right: .8rem; bottom: -1px; left: .8rem; height: 2px; content: ""; background: transparent; }
.day-switch-button:hover, .day-switch-button:focus-visible, .day-switch-link:hover, .day-switch-link:focus-visible { color: var(--ink); }
.day-switch-button.is-active { color: var(--ink); }
.day-switch-button.is-active::after { background: var(--cyan); }
.day-schedule { display: grid; gap: .85rem; scroll-margin-top: 7.5rem; }
.day-schedule + .day-schedule { margin-top: 3rem; }
h1, h2 { margin-bottom: 0; font-size: clamp(2rem, 5vw, 3.6rem); line-height: .95; letter-spacing: -.07em; }
.agenda-list { position: relative; display: grid; gap: .7rem; }
.agenda-list::before { position: absolute; top: 2.5rem; bottom: 1rem; left: 125px; content: ""; border-left: 1px solid rgba(0, 111, 183, .55); pointer-events: none; }
.talk-card, .break-row, .day-heading { position: relative; }
.day-heading { display: flex; align-items: baseline; gap: 1rem; margin: 2.4rem 0 .25rem; padding-left: 1.25rem; color: var(--muted); }
.day-heading time { color: #fff; font-size: clamp(1.2rem, 2vw, 1.4rem); }
.day-heading:first-child { margin-top: 0; }
.talk-card { display: grid; grid-template-columns: 100px 62px minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; min-height: 128px; padding: 1rem 1.25rem; background: var(--card); border: 1px solid rgba(206, 230, 244, .2); border-radius: 3px; box-shadow: 0 18px 42px rgba(0,0,0,.12); backdrop-filter: blur(8px); transition: transform .25s ease, background .25s ease, border-color .25s ease; }
.talk-card:hover { transform: translateX(5px); background: rgba(13, 31, 52, .8); border-color: rgba(110, 231, 255, .55); }
.pitch-card { cursor: pointer; }
.pitch-card:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.pitch-card.is-expanded { align-items: start; }
.pitch-toggle { display: inline-flex; align-items: center; gap: .45rem; margin: .45rem 0 0; color: var(--cyan); font-size: .67rem; letter-spacing: .1em; text-transform: uppercase; }
.pitch-toggle::after { width: .45rem; height: .45rem; content: ""; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-.15rem); transition: transform .2s ease; }
.pitch-card.is-expanded .pitch-toggle::after { transform: rotate(225deg) translate(-.12rem, -.12rem); }
.pitch-list { grid-column: 2 / -1; margin: 0; padding: .25rem 0 .25rem 1.35rem; color: var(--muted); font-size: .78rem; line-height: 1.55; }
.pitch-list li + li { margin-top: .55rem; }
.pitch-list strong, .pitch-list span { display: block; }
.pitch-list strong { color: #fff; }
.talk-time { color: var(--cyan); font-size: 1.2rem; }
.talk-duration { align-self: center; justify-self: end; color: var(--muted); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.pitch-card.is-expanded .talk-duration { align-self: start; }
.speaker-portrait { position: relative; display: grid; width: 62px; height: 62px; place-items: center; flex-shrink: 0; overflow: hidden; border-radius: 50%; color: rgba(255,255,255,.9); font-size: .9rem; letter-spacing: -.04em; box-shadow: inset 0 0 0 1px rgba(255,255,255,.32); }
.speaker-image { position: absolute; inset: 0; display: block; width: 100%; max-width: 100%; height: 100%; max-height: 100%; object-fit: cover; object-position: center; }
.portrait-blue, .portrait-pink, .portrait-violet, .portrait-cyan { background: linear-gradient(145deg, var(--cyan), #14709e 75%); }
h3 { margin-bottom: .4rem; font-size: clamp(1.15rem, 2.4vw, 1.55rem); line-height: 1.1; letter-spacing: -.03em; }
.speaker { margin: 0; color: var(--muted); font-size: .88rem; }
.break-row { display: grid; grid-template-columns: 100px minmax(0, 1fr) auto; gap: 1.25rem; align-items: center; padding: .8rem 1.25rem; color: var(--muted); font-size: .95rem; letter-spacing: .06em; text-transform: uppercase; }
.break-row span:first-child { color: var(--cyan); }
.break-row span:nth-child(2) { color: #fff; }
.break-row small { color: var(--muted); font-size: .72rem; letter-spacing: .1em; white-space: nowrap; }
@media (max-width: 680px) {
  .container { width: min(calc(100% - 2rem), var(--max-width)); }
  .masthead { min-height: 78px; padding-inline: 1rem; }
  .wordmark { width: 118px; }
  .masthead-actions { flex-direction: column; align-items: flex-end; gap: .25rem; }
  .event-meta { display: none; }
  .back-link { padding: .3rem .5rem; font-size: .6rem; }
  .content { padding-top: 5.5rem; padding-bottom: 5rem; }
  .sponsors { margin-top: 4rem; }
  h1 { font-size: clamp(4.25rem, 22vw, 7rem); }
  .day-switch { margin-top: 1.25rem; }
  .talk-card { grid-template-columns: 52px 48px minmax(0, 1fr) auto; gap: .75rem; min-height: 108px; padding: .85rem .7rem; }
  .break-row { grid-template-columns: 52px minmax(0, 1fr) auto; gap: .75rem; padding: .85rem .7rem; }
  .agenda-list::before { left: 69px; }
  .talk-time { font-size: .9rem; }
  .talk-duration { font-size: .55rem; }
  .speaker-portrait { width: 48px; height: 48px; font-size: .72rem; }
  .speaker { font-size: .75rem; }
  .pitch-list { grid-column: 2 / -1; padding-left: 1.15rem; font-size: .7rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
