:root {
  color-scheme: dark;
  --pink: #ff007a;
  --white: #fafafa;
  --muted: #b9b9b9;
  font-family: "Rethink Sans", Arial, sans-serif;
  background: #000;
  color: var(--white);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: #000; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--pink); outline-offset: 6px; }
::selection { color: #fff; background: #ad0053; }
h1, h2, p, dl, dd { margin: 0; }
h2 { font-size: clamp(2rem, 3.65vw, 3.95rem); font-weight: 700; line-height: 1.14; letter-spacing: -.045em; }
p { line-height: 1.25; }
.content-width { width: min(1360px, 79%); margin-inline: auto; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 20; background: #000; padding: 14px; }
.skip-link:focus { top: 16px; }
.texture { position: absolute; pointer-events: none; background-image: url("assets/noise.svg"); background-size: 240px 240px; }
.hero { position: relative; isolation: isolate; text-align: center; padding: clamp(60px, 5.5vw, 96px) 24px 0; }
.hero-atmosphere { z-index: -1; inset: 3% 0 12%; opacity: .35; mask-image: radial-gradient(ellipse 48% 44% at 50% 47%, #000 8%, transparent 100%); }
.inkd { display: inline-block; font-size: clamp(1.5rem, 2.4vw, 2.5rem); font-weight: 800; letter-spacing: -.06em; line-height: 1; }
.event-name { margin-top: clamp(26px, 2.7vw, 47px); font-size: clamp(1.2rem, 2.9vw, 3.125rem); letter-spacing: .28em; font-weight: 500; }
.event-name span { color: var(--pink); letter-spacing: 0; font-weight: 700; }
.hero-mark { display: inline-grid; place-items: center; position: relative; margin-top: clamp(45px, 6vw, 104px); }
.hero h1 { position: relative; z-index: 1; font-size: clamp(6.5rem, 14vw, 15.2rem); font-weight: 700; letter-spacing: -.025em; line-height: .95; }
.orb { display: block; border-radius: 50%; background: var(--pink); }
.hero-orb { position: absolute; width: 34%; aspect-ratio: 1; top: 13%; left: 35%; animation: hero-pulse 6s ease-in-out infinite; }
.hero-orb::before, .signal-orb::before, .signal-orb::after { content: ""; position: absolute; inset: -30%; border-radius: 50%; background: var(--pink); opacity: .12; }
.hero-orb::before { animation: halo-pulse 6s ease-in-out infinite; }
.tagline { position: relative; margin-top: clamp(26px, 3.4vw, 58px); font-size: clamp(1.25rem, 3vw, 3.25rem); letter-spacing: -.035em; font-weight: 700; }
.tagline span { color: var(--pink); }
.event-details { display: flex; justify-content: center; flex-wrap: wrap; gap: 26px; margin-top: clamp(28px, 3.3vw, 58px); }
.event-details > div { display: flex; align-items: center; justify-content: center; gap: 24px; border: 1px solid #777; border-radius: 100px; padding: 15px 25px; font-size: 14px; }
.event-details dt { color: var(--pink); font-size: 12px; letter-spacing: .025em; }
.event-details dd { color: #d0d0d0; }
.hero-actions { display: flex; gap: 28px; justify-content: center; margin-top: clamp(45px, 5.7vw, 99px); }
.button { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 100px; padding: 16px 35px; font-size: 16px; font-weight: 600; transition: background .2s, border-color .2s; }
.primary { background: var(--pink); color: #fff; }
.primary:hover { background: #d90068; }
.secondary { background: transparent; border-color: #8b8b8b; }
.secondary:hover { border-color: #fff; background: #151515; }
.hero-rule { height: clamp(70px, 7.3vw, 126px); width: 1px; background: #666; margin: clamp(40px, 4vw, 70px) auto 0; }
.message { padding-top: clamp(65px, 6.1vw, 105px); }
.message-copy { max-width: 860px; }
.message-copy p { max-width: 805px; font-size: clamp(1rem, 1.55vw, 1.65rem); color: var(--muted); margin-top: clamp(28px, 2.8vw, 48px); }
.noise-panel { width: 75%; aspect-ratio: 1.81; margin: -2% 0 0 auto; position: relative; display: grid; place-items: center; isolation: isolate; }
.panel-texture { z-index: -1; inset: 0; opacity: .44; mask-image: radial-gradient(ellipse 43% 49% at 54% 50%, transparent 5%, #000 100%); }
.noise-equation { width: 100%; padding-inline: 6%; display: flex; justify-content: center; gap: .45em; align-items: baseline; font-size: clamp(1.4rem, 3.5vw, 3.7rem); font-weight: 700; letter-spacing: -.045em; }
.arrow { color: var(--pink); }
.rotating-word { display: inline-block; width: 7.1em; text-align: left; transition: opacity .35s ease, transform .35s ease; }
.rotating-word.changing { opacity: 0; transform: translateY(8px); }
.constellation { overflow: clip; container-type: inline-size; position: relative; width: min(1728px, 100%); min-height: 760px; height: min(62vw, 1060px); margin: clamp(80px, 6vw, 110px) auto 0; isolation: isolate; }
.constellation-texture { z-index: -1; inset: 0; opacity: .33; mask-image: radial-gradient(ellipse 60% 45% at 50% 50%, #000 15%, transparent 100%); }
.signals { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.signal { position: absolute; left: var(--x); top: var(--y); }
.signal-orb { position: relative; width: var(--size); aspect-ratio: 1; animation: signal-drift var(--duration) ease-in-out var(--delay) infinite alternate; }
.signal-orb::before { animation: halo-pulse var(--duration) ease-in-out var(--delay) infinite; }
.signal-orb::after { inset: -12%; opacity: .2; }
.signal:nth-child(3n) .signal-orb::before { opacity: 0; }
.signal p { position: absolute; left: var(--label-x); top: var(--label-y); width: max-content; font-size: clamp(1rem, 1.85vw, 2rem); letter-spacing: -.025em; font-weight: 600; }
.speakers { padding: 65px 0 180px; }
.speakers-intro { width: min(1390px, 86%); margin: 0 auto; text-align: center; }
.speakers-intro p { max-width: 1240px; margin: clamp(30px, 3vw, 52px) auto 0; font-size: clamp(1rem, 1.5vw, 1.625rem); color: var(--muted); }
.speaker-stage { position: relative; isolation: isolate; width: min(1510px, 88%); margin: clamp(70px, 6vw, 104px) auto 0; }
.speaker-grid { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); column-gap: 0; row-gap: 70px; list-style: none; margin: 0; padding: 0; }
.speaker { grid-column: span 2; text-align: center; min-width: 0; }
.speaker:nth-child(6) { grid-column: 2 / span 2; }
.speaker img { display: block; width: 100%; height: auto; aspect-ratio: 236 / 210; object-fit: cover; filter: grayscale(1); mask-image: linear-gradient(#000 85%, transparent); }
.speaker h3 { font-size: clamp(.875rem, 1.07vw, 1.15rem); font-weight: 600; color: var(--pink); margin: 23px 4px 0; line-height: 1.25; }
.speaker p { font-size: clamp(.875rem, 1.07vw, 1.15rem); margin-top: 6px; font-style: italic; }
.speaker-noise { z-index: -1; inset: 12% -3% 18%; opacity: .25; transform: scaleY(.85); mask-image: linear-gradient(transparent 10%, #000 30%, transparent 42%, transparent 71%, #000 87%, transparent); }
dialog { width: min(500px, calc(100% - 32px)); border: 1px solid #555; padding: 48px 32px 32px; background: #090909; color: #fff; }
dialog::backdrop { background: #000c; backdrop-filter: blur(7px); }
dialog h2 { font-size: 2rem; }
dialog p { margin: 24px 0; color: #ccc; line-height: 1.5; }
.dialog-close { position: absolute; right: 15px; top: 10px; border: 0; color: white; background: transparent; font-size: 30px; }
@keyframes hero-pulse { 0%, 100% { transform: scale(.86); } 50% { transform: scale(1.12); } }
@keyframes halo-pulse { 0%, 100% { transform: scale(.8); opacity: .06; } 50% { transform: scale(1.16); opacity: .19; } }
@keyframes signal-drift { from { transform: translate(-4px, 5px) scale(.85); } to { transform: translate(8px, -9px) scale(1.1); } }
@media (min-width: 1729px) { .hero { max-width: 1728px; margin-inline: auto; } }
@media (max-width: 1000px) {
  .content-width { width: 86%; }
  .noise-panel { margin-top: 35px; width: 83%; }
  .constellation { min-height: 650px; }
  .speaker-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 50px 28px; }
  .speaker, .speaker:nth-child(6) { grid-column: auto; }
  .speaker:last-child { grid-column: 1 / -1; width: calc(50% - 14px); justify-self: center; }
  .speaker-stage { max-width: 680px; }
  .speaker h3, .speaker p { font-size: 16px; }
  .speakers { padding-bottom: 100px; }
}
@media (max-width: 600px) {
  .hero { padding-inline: 20px; }
  .event-name { font-size: 1.2rem; }
  .hero h1 { font-size: clamp(5.9rem, 25vw, 9rem); }
  .tagline { font-size: clamp(1.22rem, 4.7vw, 1.75rem); line-height: 1.35; margin-top: 30px; }
  .tagline span { display: block; }
  .event-details { flex-direction: column; align-items: center; gap: 12px; }
  .event-details > div { font-size: 12px; gap: 14px; padding: 13px 17px; max-width: 100%; }
  .event-details dt { font-size: 11px; }
  .hero-actions { gap: 12px; flex-wrap: wrap; margin-top: 30px; }
  .button { min-height: 48px; font-size: 14px; padding: 14px 22px; }
  .hero-rule { margin-top: 40px; }
  .message { padding-top: 65px; }
  .message h2 { font-size: clamp(1.7rem, 6.9vw, 2.4rem); }
  .message-copy p { line-height: 1.45; }
  .noise-panel { width: 100%; margin-top: 36px; min-height: 215px; }
  .noise-equation { font-size: clamp(1.12rem, 4.6vw, 1.75rem); padding-inline: 4%; }
  .constellation { height: auto; min-height: 0; margin-top: 60px; padding: 70px 9%; }
  .signals { position: relative; display: grid; gap: 57px; }
  .signal { position: relative; left: auto; top: auto; display: flex; align-items: center; gap: 36px; min-height: 90px; }
  .signal:nth-child(even) { flex-direction: row-reverse; text-align: right; }
  .signal-orb { width: clamp(35px, var(--size), 70px); flex-shrink: 0; }
  .signal p { position: static; width: auto; font-size: clamp(1rem, 4.4vw, 1.3rem); }
  .speakers { padding-top: 60px; }
  .speakers h2 { font-size: clamp(1.8rem, 6.5vw, 2.4rem); }
  .speakers-intro p { line-height: 1.45; }
}
@media (max-width: 420px) {
  .speaker-grid { grid-template-columns: minmax(0, 1fr); gap: 45px; }
  .speaker, .speaker:last-child { width: min(280px, 100%); grid-column: auto; justify-self: center; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* Preserve the complete transparent bust inside the existing portrait slot. */
.speaker img.cutout { object-fit: contain; }

/* Hero proportions from INTRO.png (1728 × 1127). */
.hero { --pink: #ff007a; color: #fff; padding-top: clamp(60px, 5.5vw, 95px); }
.hero-atmosphere { inset: 0; opacity: .55; filter: contrast(1.5); mask-image: radial-gradient(ellipse 49% 45% at 50% 43%, #000 28%, transparent 100%); }
.hero .inkd { font-size: clamp(1.5rem, 2.43vw, 42px); letter-spacing: -.045em; }
.hero .event-name { margin-top: clamp(26px, 2.43vw, 42px); font-weight: 400; letter-spacing: .33em; }
.event-name strong { font-weight: 800; }
.hero-mark { margin-top: clamp(45px, 5.38vw, 93px); }
.hero h1 { font-size: clamp(6.5rem, 14vw, 242px); font-weight: 800; letter-spacing: -.025em; transform: scaleX(1.055); }
.hero-orb { width: 34%; top: 10%; left: 33%; animation: reference-hero-pulse 6s ease-in-out infinite; }
.hero-orb::before { inset: 0; opacity: .2; background-image: url("assets/noise.svg"); background-size: 240px; animation: none; }
.hero .tagline { margin-top: clamp(26px, 2.26vw, 39px); font-size: clamp(1.25rem, 3.125vw, 54px); letter-spacing: 0; line-height: 1.2; }
.hero .event-details { gap: 30px; margin-top: clamp(28px, 2.84vw, 49px); }
.hero .event-details > div { height: 53px; padding: 0 30px; gap: 30px; font-size: 16px; border-color: #fff; }
.hero .event-details dt { font-size: 14px; letter-spacing: 0; }
.hero .event-details dd { color: #fff; }
.hero .hero-actions { gap: 30px; margin-top: clamp(45px, 5.79vw, 100px); }
.hero .button { width: 195px; min-height: 64px; padding: 16px 18px; font-size: 18px; }
.hero .secondary { border-color: #fff; }
.hero-rule { margin-top: clamp(40px, 3.88vw, 67px); background: #fff; }
@keyframes reference-hero-pulse { 0%, 100% { transform: scale(.86); } 50% { transform: scale(1.12); } }
@media (max-width: 600px) {
  .hero .event-name { font-size: clamp(1rem, 4.92vw, 1.2rem); }
  .hero h1 { font-size: clamp(5rem, 25vw, 9rem); }
  .hero .tagline { font-size: clamp(1.2rem, 4.7vw, 1.75rem); line-height: 1.35; margin-top: 30px; }
  .hero .event-details { gap: 12px; }
  .hero .event-details > div { height: auto; min-height: 45px; font-size: 12px; gap: 14px; padding: 13px 17px; }
  .hero .event-details dt { font-size: 11px; }
  .hero .hero-actions { gap: 12px; margin-top: 30px; }
  .hero .button { width: auto; min-height: 48px; font-size: 14px; padding: 14px 22px; }
}

/* Slightly tighter framing for Ashley within the existing portrait slot. */
.speaker img[src$="ashley-cook-cutout.png"] { object-fit: cover; padding-inline: 14%; }

/* Closing sections follow the supplied SUB INTRO compositions. */
.venue-section { width: min(1360px, 79%); margin: 0 auto; padding: clamp(64px, 6.2vw, 107px) 0 clamp(72px, 7.8vw, 135px); display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(40px, 8vw, 138px); color: #fff; }
.venue-copy h2, .closing-section h2 { font-size: clamp(2rem, 3.94vw, 68px); font-weight: 800; line-height: 1.17; letter-spacing: -.035em; }
.venue-copy p { margin-top: 42px; font-size: clamp(1.1rem, 1.62vw, 28px); line-height: 1.08; letter-spacing: -.015em; }
.venue-facts { width: 100%; }
.venue-facts > div { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding: 16px 30px; border-top: 1px solid #595959; font-size: 16px; line-height: 1.2; }
.venue-facts > div:last-child { border-bottom: 1px solid #595959; }
.venue-facts dt { color: var(--pink); text-transform: uppercase; flex-shrink: 0; }
.venue-facts dd { text-align: right; }
.closing-section { color: #fff; text-align: center; padding: clamp(60px, 5.7vw, 98px) 24px clamp(80px, 6.6vw, 114px); }
.closing-section p { max-width: 920px; margin: 42px auto 0; font-size: clamp(1.1rem, 1.62vw, 28px); line-height: 1.1; }
.closing-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 30px; margin-top: 72px; }
.closing-actions .button { width: 195px; min-height: 64px; padding: 16px 18px; font-size: 18px; }
.closing-actions .secondary { border-color: #fff; }
.event-footer { padding: 24px; text-align: center; color: #fff; font-size: clamp(1.3rem, 1.85vw, 32px); font-weight: 800; letter-spacing: -.04em; line-height: 1.2; }
@media (max-width: 900px) {
 .venue-section { width: 86%; grid-template-columns: 1fr; gap: 44px; }
 .venue-copy p { max-width: 640px; line-height: 1.35; margin-top: 28px; }
 .venue-facts > div { padding-inline: 0; }
 .desktop-break { display: none; }
 .closing-section p { line-height: 1.35; margin-top: 28px; }
 .closing-actions { margin-top: 40px; gap: 16px; }
}
@media (max-width: 420px) {
 .venue-facts > div { font-size: 14px; gap: 16px; }
 .closing-actions .button { width: min(100%, 240px); }
}

.presenter-logos { display: flex; justify-content: center; align-items: center; gap: clamp(24px, 2.3vw, 40px); }
.presenter-logos .smart-logo { display: block; width: clamp(57px, 5.8vw, 100px); height: auto; filter: invert(1) grayscale(1) brightness(3); mix-blend-mode: screen; }

.brand-apostrophe { color: var(--pink); }
