/* AWS re:Invent 2026. coralogix.com builds this on a bespoke cx-* template with a countdown, a
   marquee and a stack of card types; rebuilt here on the site's own components, so it is the
   agenda, the two sessions and the two evenings rather than the machinery around them. */
/* .page-hero is padding: 112px 0 0 with overflow:hidden — fine for pages whose last element is a
   line of fine print or a product shot meant to sit on the edge, but the countdown boxes ended
   flush against it and the mint wash was sliced off mid-box. */
.ri-hero { padding-bottom: 64px; }
.ri-hero .eyebrow { display: block; margin-bottom: 18px; }
.ri-hero h1 { max-width: 20ch; }

/* ───── the week ─────
   Four cards rather than a list: the day is the thing you scan for, so it leads each card, and the
   kind sits top right against a legend beside the heading. The whole card is the link; the arrow
   is the affordance. */
/* The agenda is a compact strip, not a full section: 160px top and bottom plus the hero's own
   floor left 264px of nothing above the heading. 96px here puts the heading 160px below the
   hero, which is the site's usual rhythm, without the two paddings compounding. */
#agenda { padding: 96px 0 112px; }
.ri-agenda-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: 16px 24px; max-width: 1040px; margin: 0 auto 28px; }
.ri-agenda-head h2 { font-size: clamp(26px, 3vw, 36px); line-height: 1.1; letter-spacing: -0.03em; font-weight: 560; }
/* The key and the per-card label are plain mono with their icon, not outlined pills. A row of
   rounded badges is the stock SaaS shape, and the icon already does the labelling work the
   border was doing. The legend separates its entries with hairlines, as .proof and .tl-specs do. */
.ri-legend { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin: 0; padding: 0; }
.ri-legend li, .ri-kind { display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--mono); font-size: 12px; color: var(--fg-2); }
.ri-legend li { padding: 2px 14px; box-shadow: -1px 0 0 var(--line-2); }
.ri-legend li:first-child { padding-left: 0; box-shadow: none; }
.ri-legend li:last-child { padding-right: 0; }
.ri-legend svg, .ri-kind svg { width: 13px; height: 13px; flex: none; fill: none; stroke: var(--accent);
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.ri-agenda { list-style: none; margin: 0 auto; padding: 0; max-width: 1040px;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
/* A column, so the time line can be pushed to the foot and sit on the arrow's baseline. It used
   to flow straight after the title while the arrow was pinned to the bottom, so the two only
   lined up on the cards whose title happened to wrap to two lines. */
.ri-slot { position: relative; display: flex; flex-direction: column; padding: 22px 22px 24px; height: 100%;
  transition: border-color .25s var(--ease), background .25s var(--ease); }
.ri-slot:hover { border-color: rgba(19,233,137,.4); }
/* date left, kind right, laid out rather than positioned: absolute placement let the pill land on
   top of the date once the cards narrowed, and .ri-kind is shared with the after-hours cards. */
.ri-slot-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.ri-slot-top .ri-when { flex: 0 1 auto; min-width: 0; }
.ri-slot-top .ri-kind { flex: none; }
/* a grid, not a wrapping flex row: the widest pill squeezed "30 NOV" onto two lines on the
   first card while the others kept theirs on one */
.ri-when { display: grid; grid-template-columns: auto auto; justify-content: start; align-items: baseline; column-gap: 7px; }
.ri-when b { font-size: 34px; line-height: 1; font-weight: 600; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.ri-when span, .ri-when em { font-family: var(--mono); font-size: 12px;
  color: var(--fg-3); font-style: normal; }
.ri-when em { grid-column: 1 / -1; margin-top: 2px; }
.ri-slot h3 { margin-top: 18px; font-size: 18px; font-weight: 560; letter-spacing: -0.02em; line-height: 1.25; }
.ri-at { margin-top: auto; padding-top: 10px; padding-right: 26px; font-size: 14px; color: var(--fg-2); line-height: 18px; }
.ri-go { position: absolute; right: 20px; bottom: 24px; width: 18px; height: 18px; fill: none; stroke: var(--accent);
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s var(--ease); }
.ri-slot:hover .ri-go { transform: translateY(3px); }
.ri-slot:hover h3 { color: var(--mint); }

/* ───── sessions ─────
   Two cards side by side: when and where across the top, the number the talk turns on, the title,
   who is speaking, then what you take away. The big figure uses --grad like every other headline
   number on the site rather than the flat green the source uses. */
.ri-sessions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 1140px; margin: 0 auto; }
.ri-session { padding: 32px; display: flex; flex-direction: column; }

.ri-s-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: start; }
.ri-s-date { display: grid; place-items: center; width: 68px; padding: 10px 0 12px; border-radius: 14px;
  border: 1px solid rgba(19,233,137,.35); background: rgba(19,233,137,.07); }
.ri-s-date span { font-family: var(--mono); font-size: 12px; color: var(--accent); }
.ri-s-date b { font-size: 30px; line-height: 1; font-weight: 600; letter-spacing: -0.04em; font-variant-numeric: tabular-nums; }
.ri-s-when b { display: block; font-size: 17px; font-weight: 560; letter-spacing: -0.02em; }
.ri-s-when p { display: flex; align-items: center; gap: 7px; margin-top: 7px; font-family: var(--mono); font-size: 12px; color: var(--fg-3); }
.ri-s-when svg, .ri-s-silent svg { width: 13px; height: 13px; flex: none; fill: none; stroke: currentColor;
  stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ri-s-when svg { stroke: var(--accent); }
.ri-s-tags { display: grid; justify-items: end; gap: 9px; }
/* A session code reads as a code already; it does not need a tinted pill around it. */
.ri-s-code { color: var(--mint); font-family: var(--mono); font-size: 11px; letter-spacing: .08em; }
.ri-s-silent { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: 12px; color: var(--fg-3); }

.ri-s-stat { margin-top: 30px; }
.ri-s-stat b { display: block; font-size: clamp(46px, 5.4vw, 64px); line-height: .95; font-weight: 600; letter-spacing: -0.045em;
  color: var(--accent); }
.ri-s-stat span { display: block; margin-top: 12px; font-size: 14.5px; line-height: 1.5; color: var(--fg-2); }
.ri-session h3 { margin-top: 26px; font-size: clamp(21px, 2.2vw, 26px); line-height: 1.2; letter-spacing: -0.028em; font-weight: 560; }

.ri-s-speakers { margin-top: 26px; padding: 22px; border: 1px solid var(--line); border-radius: 16px;
  background: rgb(var(--ink) / .02); }
.ri-s-speakers .eyebrow { display: block; margin-bottom: 18px; }
.ri-s-speakers ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 24px; }
.ri-s-speakers li { max-width: 130px; }
.ri-s-speakers img { display: block; width: 68px; height: 68px; border-radius: 50%; object-fit: cover; margin-bottom: 12px; }
.ri-s-speakers b { display: block; font-size: 15px; font-weight: 560; letter-spacing: -0.01em; }
.ri-s-speakers span { display: block; font-size: 13px; line-height: 1.45; color: var(--fg-3); }

.ri-s-stand { margin-top: 26px; font-size: 16px; line-height: 1.6; color: var(--fg); }
.ri-s-learn-h { display: block; margin-top: 26px; }
.ri-s-learn { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 11px; }
.ri-s-learn li { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; line-height: 1.5; color: var(--fg-2); }
.ri-s-learn svg { width: 17px; height: 17px; margin-top: 1px; flex: none; fill: none; stroke: var(--accent);
  stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

.ri-s-more { margin-top: 22px; }
.ri-s-more summary { display: inline-flex; align-items: center; gap: 7px; cursor: pointer; list-style: none;
  font-size: 14px; color: var(--accent); }
.ri-s-more summary::-webkit-details-marker { display: none; }
.ri-s-more summary::after { content: ""; width: 7px; height: 7px; border-right: 1.6px solid currentColor;
  border-bottom: 1.6px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform .2s; }
.ri-s-more[open] summary::after { transform: rotate(-135deg) translate(-3px, -3px); }
.ri-s-more p { margin-top: 14px; font-size: 14.5px; line-height: 1.7; color: var(--fg-2); }

/* margin-top:auto pins the footer to the bottom, so the two cards' buttons line up even when one
   card has three speakers and a longer title */
.ri-s-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: auto;
  padding-top: 26px; border-top: 1px solid var(--line); }
.ri-s-foot span { font-size: 13px; color: var(--fg-3); }

/* ───── the evenings ───── */
.ri-nights { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; max-width: 1040px; margin: 0 auto; }
.ri-night { padding: 30px; }
.ri-night h3 { font-size: 21px; font-weight: 560; letter-spacing: -0.02em; }
.ri-when-line { margin-top: 8px; font-family: var(--mono); font-size: 12.5px; color: var(--fg-3); }
.ri-night p { margin-top: 14px; font-size: 15px; line-height: 1.65; color: var(--fg-2); }
.ri-night .btn { margin-top: 22px; }

@media (max-width: 860px) {
  #agenda { padding: 80px 0 96px; }
  .ri-agenda { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  /* two session cards side by side leave about 170px each on a phone; minmax(0,1fr) keeps that
     inside the viewport, so nothing overflows and it is still unreadable */
  .ri-sessions { grid-template-columns: minmax(0, 1fr); }
  .ri-nights { grid-template-columns: minmax(0, 1fr); }
  .ri-session { padding: 26px 22px; }
}
@media (max-width: 560px) {
  .ri-agenda { grid-template-columns: minmax(0, 1fr); }
}

/* ───── countdown ───── */
.ri-when-bar { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px;
  margin-top: 34px; font-family: var(--mono); font-size: 12.5px; color: var(--fg-3); }
.ri-when-bar i { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); flex: none; }
.ri-count { list-style: none; display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin: 22px 0 0; padding: 0; }
.ri-count li { min-width: 88px; padding: 14px 10px 12px; border: 1px solid var(--line-2); border-radius: 14px;
  background: rgb(var(--ink) / .03); text-align: center; }
.ri-count b { display: block; font-size: 34px; line-height: 1; font-weight: 600; letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums; }
.ri-count span { display: block; margin-top: 7px; font-family: var(--mono); font-size: 12px; color: var(--fg-3); }
@media (max-width: 560px) {
  .ri-hero { padding-bottom: 48px; }
  #agenda { padding: 64px 0 80px; }
  .ri-count { gap: 8px; }
  .ri-count li { min-width: 0; flex: 1; padding: 12px 4px 10px; }
  .ri-count b { font-size: 26px; }
}

/* ───── the booth ─────
   The floor plan is the real one from the organisers, with the pin, the label and the magnifier
   baked into the single transparent PNG, so it is an <img> rather than anything drawn here. */
.ri-booth { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 48px; align-items: center;
  max-width: 1040px; margin: 0 auto; padding: 48px; }
.ri-booth-no { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 26px; }
.ri-booth-no b { font-size: clamp(54px, 7vw, 82px); line-height: .9; font-weight: 600; letter-spacing: -0.05em;
  color: var(--accent); }
.ri-booth-no span { padding-top: 6px; font-family: var(--mono); font-size: 12.5px; line-height: 1.5; color: var(--fg-2); }
.ri-booth-copy h2 { font-size: clamp(26px, 3.2vw, 38px); line-height: 1.12; letter-spacing: -0.03em; font-weight: 560; }
.ri-booth-copy > p:not(.ri-booth-no) { margin-top: 16px; font-size: 16px; line-height: 1.65; color: var(--fg-2); max-width: 46ch; }
.ri-booth-copy .btn { margin-top: 28px; }
.ri-booth-map img { display: block; width: 100%; height: auto; }

@media (max-width: 860px) {
  .ri-booth { grid-template-columns: minmax(0, 1fr); gap: 32px; padding: 32px 24px; }
  /* the plan reads as decoration once it is this small; the booth number carries the message */
  .ri-booth-map { order: -1; }
}
@media (max-width: 560px) {
  .ri-booth { padding: 26px 20px; }
  /* three columns of header do not fit: the code and "silent session" drop under the date, and
     the button goes full width rather than running past the card */
  .ri-session { padding: 24px 20px; }
  .ri-s-head { grid-template-columns: auto minmax(0, 1fr); gap: 14px; }
  .ri-s-tags { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 10px 14px; }
  .ri-s-foot .btn { width: 100%; }
  .ri-s-speakers { padding: 18px; }
  .ri-s-speakers ul { gap: 18px; }
}

/* The nav is sticky at the top, so an anchor would otherwise land under it. */
#aim255-s, #aim247-s, #dinner, #happy-hour, #agenda, #sessions, #booth { scroll-margin-top: 96px; }

/* Light skin: small green text uses --mint (≥4.5:1 on the light surfaces); --accent stays for dots, fills,
   borders and large numbers. Light only, so the dark skin is unchanged. */
:root[data-theme="light"] .ri-s-date span,
:root[data-theme="light"] .ri-s-more summary,
:root[data-theme="light"] .ri-booth-no b { color: var(--mint); }

/* ───── Restored from the coralogix.com campaign design (November 2026) ─────
   The first port kept the content and dropped the event's look. Brian's team built these pages to
   be handed to customers, so the pieces that made them feel like an event come back: the event
   bar, the dot field and glow behind the hero, the tilted ribbon, the big outline type, the invite
   cards beside each evening and the closing "See you in Las Vegas". Colours are the site's own. */

/* Event bar: the page's own menu under the site nav (coralogix.com used it instead of the nav). */
.ri-subnav { position: sticky; top: 68px; z-index: 40; background: rgb(var(--bg-rgb, 5 8 7) / .86);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
:root[data-theme="light"] .ri-subnav { background: rgb(255 255 255 / .9); }
.ri-subnav-inner { display: flex; align-items: center; gap: 28px; height: 52px; max-width: 1440px; padding: 0 48px; }
.ri-subnav-label { font-family: var(--mono); font-size: 12px; color: var(--fg-2); padding-right: 24px;
  border-right: 1px solid var(--line-2); white-space: nowrap; }
.ri-subnav nav { display: flex; gap: 22px; margin-left: auto; font-size: 14px; }
.ri-subnav nav a { display: inline-flex; align-items: center; gap: 8px; color: var(--fg-2); white-space: nowrap; transition: color .2s var(--ease); }
.ri-subnav nav a::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.ri-subnav nav a:hover { color: var(--fg); }
.ri-subnav .ri-subnav-cta { height: 32px; padding: 0 14px; font-size: 13px; }
@media (max-width: 960px) {
  .ri-subnav-inner { gap: 16px; overflow-x: auto; scrollbar-width: none; }
  .ri-subnav-inner::-webkit-scrollbar { display: none; }
  .ri-subnav nav { margin-left: 0; gap: 18px; }
  .ri-subnav-cta { display: none !important; }
}
/* in-page jumps land under both bars */
#agenda, #booth, #sessions, #after-hours, #dinner, #happy-hour, #aim255-s, #aim247-s { scroll-margin-top: 140px; }

/* Hero: the dot field and the green glow the campaign opened on. */
.ri-hero { position: relative; isolation: isolate; }
.ri-hero-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.ri-hero-bg::before { content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(rgb(var(--ink) / .16) 1px, transparent 1.4px); background-size: 22px 22px;
  -webkit-mask-image: radial-gradient(ellipse 75% 70% at 50% 40%, transparent 30%, #000 85%);
          mask-image: radial-gradient(ellipse 75% 70% at 50% 40%, transparent 30%, #000 85%); }
.ri-hero-bg::after { content: ""; position: absolute; width: 900px; height: 620px; right: -160px; bottom: -220px;
  border-radius: 50%; background: rgba(19, 233, 137, .16); filter: blur(120px); }
:root[data-theme="light"] .ri-hero-bg::after { background: rgba(11, 158, 94, .14); }

/* Marquees: the tilted ribbon after the week, and the big outline type before the evenings. */
.ri-marquee { overflow: hidden; }
.ri-marquee-track { display: flex; width: max-content; animation: ri-marquee 60s linear infinite; }
.ri-marquee-track > div { display: flex; align-items: center; flex: none; }
.ri-marquee span { white-space: nowrap; }
@keyframes ri-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ri-marquee-track { animation: none; } }

.ri-ribbon { margin: 8px 0 0; padding: 16px 0; background: var(--accent); color: #04140c; transform: rotate(-2deg) scale(1.04); }
.ri-ribbon span { padding: 0 26px; font-size: clamp(22px, 2.6vw, 34px); font-weight: 650; letter-spacing: -0.03em; line-height: 1; }
.ri-ribbon i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }

.ri-bigtype { padding: 34px 0 38px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ri-bigtype .ri-marquee-track { animation-duration: 80s; }
.ri-bigtype span { padding: 0 34px; font-size: clamp(64px, 9vw, 132px); font-weight: 650; letter-spacing: -0.05em; line-height: 1; color: var(--accent); }
.ri-bigtype em { font-style: normal; color: transparent; -webkit-text-stroke: 1.5px var(--accent); }
.ri-bigtype i { width: 12px; height: 12px; border-radius: 50%; background: var(--accent); flex: none; }

/* The two evenings: the invite card beside the details, as on the campaign page. */
.ri-evenings .section-head { margin-bottom: 72px; }
.ri-evening { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(32px, 5vw, 72px);
  align-items: center; max-width: 1140px; margin: 0 auto; }
.ri-evening + .ri-evening { margin-top: 96px; }
.ri-evening-art { display: block; border-radius: 18px; overflow: hidden; border: 1px solid var(--line);
  box-shadow: 0 30px 80px -40px rgb(0 0 0 / calc(.8 * var(--sh))); transition: transform .35s var(--ease), border-color .35s var(--ease); }
.ri-evening-art:hover { transform: translateY(-3px); border-color: rgba(19, 233, 137, .4); }
.ri-evening-art img { display: block; width: 100%; height: auto; }
.ri-evening-copy .eyebrow { display: block; margin-bottom: 14px; color: var(--accent); }
.ri-evening-copy h3 { font-size: clamp(30px, 3.2vw, 42px); line-height: 1.08; letter-spacing: -0.035em; font-weight: 600; }
.ri-evening-when { margin-top: 18px; font-size: 15px; line-height: 1.55; color: var(--fg); font-weight: 500; }
.ri-evening-copy > p:not(.ri-evening-when) { margin-top: 16px; font-size: 16px; line-height: 1.65; color: var(--fg-2); }
.ri-evening-copy .btn { margin-top: 28px; }

/* Closing: "See you in Las Vegas" over the outline re:Invent word. */
.ri-vegas { position: relative; overflow: hidden; padding: 150px 0 0; text-align: center; border-top: 1px solid var(--line); }
.ri-vegas::before { content: ""; position: absolute; left: 50%; top: 40%; width: 1000px; height: 560px; transform: translate(-50%, -50%);
  border-radius: 50%; background: rgba(19, 233, 137, .10); filter: blur(130px); pointer-events: none; }
.ri-vegas-inner { position: relative; z-index: 1; }
.ri-vegas .eyebrow { display: block; margin-bottom: 26px; }
.ri-vegas h2 { font-size: clamp(64px, 10vw, 140px); line-height: .92; letter-spacing: -0.06em; font-weight: 650; }
.ri-vegas .lead { margin: 26px auto 0; font-size: 20px; color: var(--fg); }
.ri-vegas .hero-actions { justify-content: center; margin-top: 36px; }
.ri-vegas-word { position: relative; margin-top: 40px; font-size: clamp(120px, 24vw, 360px); line-height: .78; font-weight: 600;
  letter-spacing: -0.06em; white-space: nowrap; color: transparent; -webkit-text-stroke: 1px rgba(19, 233, 137, .45);
  transform: translateY(14%); user-select: none; }
:root[data-theme="light"] .ri-vegas-word { -webkit-text-stroke-color: rgba(11, 158, 94, .5); }

@media (max-width: 960px) {
  .ri-evening { grid-template-columns: minmax(0, 1fr); }
  .ri-evening + .ri-evening { margin-top: 72px; }
  .ri-vegas { padding-top: 110px; }
}
@media (max-width: 560px) {
  .ri-ribbon { padding: 12px 0; }
  .ri-bigtype { padding: 22px 0 26px; }
  .ri-bigtype span { padding: 0 20px; }
  .ri-evenings .section-head { margin-bottom: 48px; }
  .ri-vegas { padding-top: 88px; }
  .ri-vegas .hero-actions { flex-direction: column; align-items: stretch; }
}

/* ───── The two Black Tap invites (/blacktaphh/, /blacktapdinner/) ─────
   As on the campaign pages: a short photo hero, then the details, the evening and its art on the
   left and the Sequel registration form embedded on the right, so the RSVP happens here rather
   than on Sequel's own page. */
.invite-hero { position: relative; min-height: clamp(340px, 46vh, 460px); display: grid; align-items: end; overflow: hidden; }
.invite-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%; }
.invite-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(0 0 0 / .85), rgb(0 0 0 / .1) 70%); }
.invite-hero .container { position: relative; z-index: 1; width: 100%; padding-bottom: clamp(44px, 6vw, 72px); }
.invite-hero .eyebrow { display: block; margin-bottom: 16px; color: #ffd36b; }
.invite-hero h1 { font-size: clamp(54px, 7.4vw, 96px); line-height: .9; letter-spacing: -0.055em; color: #fff; }
.invite-hero h1 span { display: block; color: var(--accent); }

.invite-main { position: relative; padding: clamp(56px, 7vw, 88px) 0 clamp(80px, 10vw, 128px); }
.invite-main::before { content: ""; position: absolute; right: -10%; top: 10%; width: 760px; height: 760px; border-radius: 50%;
  background: rgba(19, 233, 137, .09); filter: blur(140px); pointer-events: none; }
.invite-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: clamp(36px, 5vw, 80px); align-items: start; }

.invite-details { display: grid; gap: 18px; padding: 24px; }
.invite-detail { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 14px; align-items: start; }
.invite-detail svg { width: 22px; height: 22px; margin-top: 16px; fill: none; stroke: var(--accent); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.invite-detail small { display: block; font: 11px/1 var(--mono); color: var(--fg-3); }
.invite-detail b { display: block; margin-top: 8px; font-size: 17px; line-height: 1.35; font-weight: 600; }
.invite-detail span { display: block; margin-top: 3px; color: var(--fg-2); }
.invite-chip { justify-self: start; padding: 8px 16px; border-radius: 999px; font-size: 14px; color: var(--fg);
  border: 1px solid rgba(19, 233, 137, .45); background: rgba(19, 233, 137, .08); }

.invite-copy > .eyebrow { display: block; margin-top: 56px; color: var(--accent); }
.invite-copy h2 { margin-top: 16px; max-width: 14ch; font-size: clamp(34px, 4vw, 52px); line-height: 1.02; letter-spacing: -0.045em; }
.invite-copy > p { max-width: 54ch; margin-top: 18px; font-size: 18px; line-height: 1.6; color: var(--fg-2); }
.invite-perks { list-style: none; display: grid; gap: 12px; margin: 26px 0 0; padding: 0; }
.invite-perks li { display: flex; align-items: center; gap: 12px; font-size: 16px; color: var(--fg); }
.invite-perks svg { width: 18px; height: 18px; flex: none; fill: none; stroke: var(--accent); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.invite-jump { display: none !important; }
.invite-art { margin: 40px 0 0; }
.invite-art img { display: block; width: 100%; max-width: 460px; height: auto; }

.invite-form { position: sticky; top: 140px; }
.invite-form-card { padding: 14px; border-radius: 20px; }
#sequel_root { min-height: 860px; }
.invite-fallback { padding: 18px; font-size: 15px; color: var(--fg-2); }
.invite-fallback a { color: var(--fg); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 960px) {
  .invite-grid { grid-template-columns: minmax(0, 1fr); }
  .invite-form { position: static; }
  .invite-art { display: none; }
  .invite-jump { display: inline-flex !important; margin-top: 30px; }
}
@media (max-width: 560px) {
  .invite-hero { min-height: 300px; }
  .invite-hero h1 { font-size: clamp(46px, 14vw, 64px); }
  .invite-details { padding: 20px; }
  .invite-copy > .eyebrow { margin-top: 44px; }
  .invite-form-card { padding: 8px; border-radius: 16px; }
  #sequel_root { min-height: 1000px; }
}
@media (max-width: 1080px) { .ri-subnav-inner { padding: 0 24px; } }
@media (max-width: 560px) { .ri-subnav-inner { padding: 0 20px; } }
/* The glows and the tilted ribbon reach past the screen edge on purpose; clip them here so a phone
   never gets a sideways scroll (clip, not hidden: hidden would break the sticky form). */
.ri-page-main, .invite-main { overflow-x: clip; }

/* These three pages drop the site nav, as the campaign did: the event bar is the header, with the
   Coralogix logo on its left. The footer stays. */
body.ri-event > .nav { display: none; }
body.ri-event .ri-subnav { top: 0; }
body.ri-event .ri-subnav-inner { height: 64px; gap: 20px; }
.ri-subnav-logo { display: inline-flex; flex: none; }
.ri-subnav-logo img { height: 24px; width: auto; }
.ri-subnav-label { padding-left: 20px; border-left: 1px solid var(--line-2); border-right: 0; padding-right: 0; }
body.ri-event #agenda, body.ri-event #booth, body.ri-event #sessions, body.ri-event #after-hours, body.ri-event #dinner,
body.ri-event #happy-hour, body.ri-event #aim255-s, body.ri-event #aim247-s { scroll-margin-top: 84px; }
body.ri-event .invite-form { top: 88px; }
@media (max-width: 960px) {
  /* phones: logo and Book a demo on the bar; the section links scroll sideways between them */
  body.ri-event .ri-subnav-label { display: none; }
  body.ri-event .ri-subnav-cta { display: inline-flex !important; margin-left: auto; flex: none; }
  body.ri-event .ri-subnav-inner { overflow: visible; }
  body.ri-event .ri-subnav nav { overflow-x: auto; scrollbar-width: none; min-width: 0; flex: 1 1 auto;
    -webkit-mask-image: linear-gradient(90deg, #000 85%, transparent); mask-image: linear-gradient(90deg, #000 85%, transparent); }
  body.ri-event .ri-subnav nav::-webkit-scrollbar { display: none; }
}
@media (max-width: 560px) {
  body.ri-event .ri-subnav nav { display: none; }
}
.invite-hero h1 span { color: #13E989; } /* the hero photo is dark in both skins */

/* ───── Hero, as the campaign had it ─────
   The booth line in a pill whose green edge travels round it, the event name with a slow moving
   gradient, the title at the campaign's size, and its two buttons (solid green with an arrow,
   glassy outline). Reduced motion stops both animations. */
@property --ri-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes ri-spin { to { --ri-angle: 360deg; } }
@keyframes ri-shimmer { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }

.ri-pill { position: relative; display: inline-flex; align-items: center; height: 46px; padding: 0 26px 1px 24px;
  margin-bottom: 30px; border-radius: 999px; background: #000; isolation: isolate; color: #fff;
  font-size: 18px; font-weight: 500; line-height: 1; }
.ri-pill::before { content: ""; position: absolute; inset: 0; padding: 1px; border-radius: inherit; pointer-events: none;
  background: conic-gradient(from var(--ri-angle), rgba(19,233,137,.25) 0deg, #13E989 60deg, rgba(19,233,137,.25) 140deg, rgba(19,233,137,.25) 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite: exclude;
  animation: ri-spin 6s linear infinite; }
.ri-pill > span { position: relative; z-index: 1; opacity: .75; white-space: nowrap; }
:root[data-theme="light"] .ri-pill { background: #fff; color: #0b0c0c; }

.ri-hero h1 { max-width: 1016px; margin-left: auto; margin-right: auto; font-size: clamp(48px, 8.2vw, 110px);
  line-height: .98; letter-spacing: -0.04em; text-wrap: balance; }
.ri-shimmer { background: linear-gradient(95deg, #13E989 0%, #5DF3B7 25%, #F8F8F8 50%, #5DF3B7 75%, #13E989 100%);
  background-size: 200% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: ri-shimmer 7s ease-in-out infinite; }
:root[data-theme="light"] .ri-shimmer { background-image: linear-gradient(95deg, #0b9e5e 0%, #13c97a 25%, #0a6b42 50%, #13c97a 75%, #0b9e5e 100%); }

.ri-hero .hero-actions { gap: 16px; }
.ri-btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 54px; padding: 0 28px; border-radius: 8px; font-size: 18px; font-weight: 500; line-height: 1; white-space: nowrap;
  transition: background-color .25s ease, box-shadow .25s ease; }
.ri-btn svg { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ri-btn-primary { background: #13E989; color: #1E1F20; }
.ri-btn-primary:hover, .ri-btn-primary:focus-visible { box-shadow: 0 2px 17px 0 rgba(68, 225, 129, .8); }
.ri-btn-secondary { background: rgb(var(--ink) / .03); color: var(--fg); -webkit-backdrop-filter: blur(2.5px); backdrop-filter: blur(2.5px); }
.ri-btn-secondary::before { content: ""; position: absolute; inset: -1px; padding: 1px; border-radius: inherit; pointer-events: none;
  background: conic-gradient(from 0deg, rgb(var(--ink) / .45) 0deg, rgb(var(--ink) / .45) 35deg, rgb(var(--ink) / .2) 90deg, rgb(var(--ink) / .45) 145deg, rgb(var(--ink) / .45) 215deg, rgb(var(--ink) / .2) 270deg, rgb(var(--ink) / .45) 325deg);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); mask-composite: exclude; }
.ri-btn-secondary:hover, .ri-btn-secondary:focus-visible { background: rgb(var(--ink) / .12); box-shadow: 0 2px 13px 0 rgba(68, 225, 129, .4); }
.ri-btn:focus-visible { outline: 2px solid #13E989; outline-offset: 3px; }

@media (max-width: 560px) {
  .ri-pill { height: 40px; padding: 0 18px; font-size: 15px; margin-bottom: 22px; }
  .ri-hero h1 { font-size: 48px; }
  .ri-btn { min-height: 50px; font-size: 16px; padding: 0 22px; }
  .ri-hero .hero-actions { flex-direction: column; align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) { .ri-pill::before, .ri-shimmer { animation: none; } }


/* ═════════ /aws-reinvent-2026/: the campaign page, ported (November 2026) ═════════
   The coralogix.com template's own markup and CSS (page-reinvent-2026.css, and the button rules
   from buttons.css renamed .cxb so they never meet the site's .btn), less the dot canvas and its
   ripple. Fonts self-hosted. Every rule is scoped to .cx-* or the page's own ids. */
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/plus-jakarta-sans-latin-cd8db90c.woff2) format("woff2")}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter-latin-c9407645.woff2) format("woff2")}


:root{--cx-green:#17E891;--cx-mint:#5DF3B7;--cx-light:#9CFCD2;--cx-deep:#00A86D;--cx-white:#FCFCFC;--cx-body:#C6C9C5;--cx-muted:#8A8D89;--cx-ease:cubic-bezier(.22,.61,.36,1)}
html{scroll-behavior:smooth}body.cx-reinvent-page.admin-bar .cx-header{top:32px}.cx-page,.cx-page *{box-sizing:border-box}.cx-page{background:#000;color:var(--cx-white);font-family:Inter,Arial,sans-serif;overflow:hidden}.cx-page a{color:inherit}.cx-page img{max-width:100%;height:auto}.cx-container{width:min(100% - 48px,1215px);margin-inline:auto}.cx-section{padding:clamp(72px,9vw,128px) 0;scroll-margin-top:60px}.cx-page h1,.cx-page h2,.cx-page h3{font-family:"Plus Jakarta Sans",sans-serif;margin:0;color:#fff}.cx-page h2{font-size:clamp(34px,4.4vw,54px);line-height:1.08;letter-spacing:-.018em}.cx-page p{color:var(--cx-body);line-height:1.55}.cx-eyebrow{display:block;margin-bottom:14px;color:var(--cx-green);font-size:12px;font-weight:600;line-height:1.2;letter-spacing:.08em;text-transform:uppercase}.cx-mono{font-family:"Geist Mono",monospace}.material-symbols-outlined{font-size:20px;line-height:1}
.cx-header{position:fixed;z-index:100;top:0;left:0;right:0;height:60px;background:rgba(19,19,19,.8);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}.cx-header__inner{width:min(100% - 48px,1215px);height:100%;margin:auto;display:flex;align-items:center;gap:26px}.cx-brand{display:flex;align-items:center;gap:15px;text-decoration:none;flex-shrink:0}.cx-brand img{width:auto;height:22px}.cx-brand__divider{width:1px;height:22px;background:rgba(255,255,255,.2)}.cx-brand__event{font:500 12px/1 "Geist Mono",monospace;color:#BABCB8;text-transform:uppercase;letter-spacing:.08em}.cx-nav{display:flex;align-items:center;gap:20px;margin-left:auto}.cx-nav a{display:flex;align-items:center;gap:7px;color:#BABCB8;text-decoration:none;font-size:13px;transition:color 180ms}.cx-nav a:hover{color:#fff}.cx-nav i{width:6px;height:6px;background:var(--cx-green);border-radius:50%}.cx-progress{position:absolute;bottom:-1px;left:0;right:0;height:2px}.cx-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--cx-deep),var(--cx-green),var(--cx-light));will-change:transform}
.cx-btn{min-height:54px;padding:0 26px;border:0;border-radius:8px;background:var(--cx-green);color:#000!important;display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;font-weight:600;font-size:16px;line-height:1;white-space:nowrap;transition:background 220ms var(--cx-ease),transform 220ms var(--cx-ease),box-shadow 220ms var(--cx-ease)}.cx-btn:hover{background:var(--cx-mint);transform:translateY(-2px);box-shadow:0 12px 32px -10px rgba(23,232,145,.75)}
.cx-hero{position:relative;min-height:min(980px,100vh);padding:150px 0 90px;background:linear-gradient(235.879deg,#009955 -49.38%,#2A2A2B 40.48%,#000 88.05%);isolation:isolate}.cx-hero:after{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:0;height:220px;background:linear-gradient(180deg,transparent,#000)}.cx-hero__canvas{position:absolute;z-index:-2;inset:0;opacity:.95;mask-image:linear-gradient(to bottom,#000 0,#000 40%,transparent 82%)}.cx-hero__glow{position:absolute;z-index:-3;width:min(72vw,900px);height:280px;left:50%;top:110px;transform:translateX(-50%) rotate(-8deg);background:linear-gradient(100.649deg,#000 20.45%,#5DF3B7 74.85%,#F8F8F8 97.81%);filter:blur(70px);opacity:.5;border-radius:50%}.cx-hero__inner{display:flex;flex-direction:column;align-items:center;text-align:center;gap:30px}.cx-pill{position:relative;padding:10px 15px;border:1px solid rgba(255,255,255,.16);border-radius:73px;background:rgba(0,0,0,.78);font:500 12px/1.2 "Geist Mono",monospace;color:#D5D8D4;letter-spacing:.06em;text-transform:uppercase;backdrop-filter:blur(8px)}.cx-pill--orbit{isolation:isolate;overflow:visible}.cx-pill--orbit>span{position:relative;z-index:2}.cx-pill__orbit{position:absolute;z-index:1;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:visible;pointer-events:none;filter:drop-shadow(0 0 4px rgba(23,232,145,.5))}.cx-pill__orbit-line{fill:none;stroke:url(#cx-pill-orbit-gradient);stroke-width:1.7;stroke-linecap:round;stroke-dasharray:18 82;animation:cx-pill-orbit 3.1s linear infinite;vector-effect:non-scaling-stroke}.cx-hero h1{max-width:1120px;font-size:clamp(48px,8.2vw,110px);font-weight:600;line-height:.98;letter-spacing:-.035em}.cx-hero h1 span{background:linear-gradient(90deg,var(--cx-green),var(--cx-mint),#F8F8F8,var(--cx-mint),var(--cx-green));background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;animation:cx-shimmer 7s ease-in-out infinite}.cx-hero__intro{max-width:810px;margin:0;font-size:18px;line-height:1.45}.cx-hero .cx-actions .material-symbols-outlined{font-size:20px}
.cx-actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}.cx-countdown{margin-top:20px;display:flex;flex-direction:column;align-items:center;gap:14px}.cx-countdown__label{display:flex;align-items:center;justify-content:center;gap:10px;font:500 12px/1.5 "Geist Mono",monospace;color:#BABCB8;letter-spacing:.04em;text-transform:uppercase}.cx-countdown__label i{width:7px;height:7px;border-radius:50%;background:var(--cx-green);box-shadow:0 0 0 0 rgba(23,232,145,.7);animation:cx-pulse 1.8s infinite}.cx-countdown__grid{display:grid;grid-template-columns:repeat(4,104px);gap:14px}.cx-countdown__box{padding:16px 12px 14px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.04);backdrop-filter:blur(5px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)}.cx-countdown__box strong{display:block;font:500 clamp(28px,4vw,44px)/1 "Geist Mono",monospace;color:#fff}.cx-countdown__box span{display:block;margin-top:8px;font:500 10px/1 "Geist Mono",monospace;color:#8F938E;text-transform:uppercase;letter-spacing:.1em}
.cx-section-head{margin-bottom:42px}.cx-section-head--split{display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.cx-section-head--center{text-align:center;max-width:780px;margin:0 auto 48px}.cx-section-head--center p{margin:16px auto 0;max-width:700px;font-size:18px}.cx-legend{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.cx-legend>span,.cx-kind{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid rgba(255,255,255,.1);border-radius:73px;background:#111;color:#BABCB8;font-size:11px;white-space:nowrap}.cx-legend .material-symbols-outlined,.cx-kind .material-symbols-outlined{font-size:15px;color:var(--cx-green)}.cx-agenda-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cx-agenda-card{position:relative;min-height:250px;padding:24px;border-radius:12px;background:#161616;text-decoration:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);transition:transform 260ms var(--cx-ease),box-shadow 260ms var(--cx-ease)}.cx-agenda-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);border-radius:12px 12px 0 0}.cx-agenda-card:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px rgba(23,232,145,.55),0 36px 100px -36px rgba(23,232,145,.7)}.cx-agenda-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.cx-date{display:flex;align-items:center;gap:9px}.cx-date strong{font:500 34px/1 "Geist Mono",monospace}.cx-date span{font:500 11px/1.45 "Geist Mono",monospace;color:#999;text-transform:uppercase;letter-spacing:.06em}.cx-agenda-card h3{margin-top:48px;font-size:18px;line-height:1.25}.cx-agenda-card p{display:flex;align-items:center;justify-content:space-between;margin:18px 0 0;color:#8A8D89;font-size:13px}.cx-agenda-card p .material-symbols-outlined{color:var(--cx-green);font-size:18px}
.cx-marquee{width:calc(100% + 50px);margin-left:-25px;overflow:hidden}.cx-marquee--green{background:var(--cx-green);padding:14px 0;transform:rotate(-1.6deg)}.cx-marquee__track{display:flex;width:max-content;animation:cx-marquee 38s linear infinite}.cx-marquee__track>span{display:flex;align-items:center;gap:28px;padding-right:28px;white-space:nowrap;color:#000;font:600 clamp(20px,2.4vw,30px)/1 "Plus Jakarta Sans",sans-serif;text-transform:uppercase;letter-spacing:-.01em}.cx-marquee__track b{font-weight:600}.cx-marquee--dark{background:#050806;border-top:1px solid rgba(23,232,145,.42);border-bottom:1px solid rgba(23,232,145,.42);padding:26px 0}.cx-marquee--dark .cx-marquee__track{animation-duration:46s}.cx-marquee__track--reverse{animation-direction:reverse}.cx-marquee--dark .cx-marquee__track>span{gap:40px;padding-right:40px;color:var(--cx-green);font-size:clamp(40px,6vw,84px);text-transform:none;letter-spacing:-.035em}.cx-marquee--dark em{font-style:normal;color:transparent;-webkit-text-stroke:1.5px var(--cx-green)}
.cx-booth{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,5vw,72px);align-items:center;padding:clamp(32px,5vw,68px);border-radius:22px;background:linear-gradient(180deg,rgba(23,232,145,.08),#131313 40%);box-shadow:inset 0 0 0 1px rgba(23,232,145,.35)}.cx-booth__number-row{display:flex;align-items:flex-end;gap:18px;margin-bottom:28px}.cx-booth__number-row strong{font:600 clamp(64px,8vw,104px)/.9 "Plus Jakarta Sans",sans-serif;letter-spacing:-.06em;background:linear-gradient(120deg,#fff,var(--cx-light),var(--cx-green));background-clip:text;-webkit-background-clip:text;color:transparent}.cx-booth__number-row span{padding-bottom:7px;font:500 11px/1.5 "Geist Mono",monospace;color:var(--cx-light);letter-spacing:.08em}.cx-booth__copy p{max-width:520px;margin:20px 0 28px;font-size:16px}.cx-booth__image{padding:16px;border-radius:18px;background:rgba(255,255,255,.03)}.cx-booth__image img{display:block;width:100%;border-radius:14px;background:#fff;transform:rotate(1.2deg);box-shadow:-10px 43px 44.4px rgba(0,0,0,.29)}
.cx-sessions{position:relative;background:#0B0B0C}.cx-sessions__glow{position:absolute;top:-80px;left:50%;width:760px;height:240px;transform:translateX(-50%);background:var(--cx-green);filter:blur(120px);opacity:.12;border-radius:50%;pointer-events:none}.cx-session-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.cx-session-card{position:relative;display:flex;flex-direction:column;gap:30px;padding:clamp(28px,3.4vw,44px);border-radius:12px;background:linear-gradient(180deg,rgba(93,243,183,.10),#161616 38%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.05);transition:transform 260ms var(--cx-ease),box-shadow 260ms var(--cx-ease)}.cx-session-card:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,var(--cx-deep),var(--cx-mint));border-radius:12px 12px 0 0}.cx-session-card:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px rgba(23,232,145,.55),0 36px 100px -36px rgba(23,232,145,.55)}.cx-session-card__top,.cx-session-date,.cx-session-card__footer{display:flex;align-items:center}.cx-session-card__top{justify-content:space-between;gap:20px}.cx-session-date{gap:14px}.cx-session-date>div{width:74px;height:78px;border:1px solid rgba(255,255,255,.12);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,255,255,.03)}.cx-session-date span{font:500 10px/1 "Geist Mono",monospace;color:var(--cx-light);letter-spacing:.12em}.cx-session-date strong{font:500 31px/1.15 "Geist Mono",monospace}.cx-session-date p{margin:0;font-size:13px;color:#BABCB8}.cx-session-date b{color:#fff;font-weight:500}.cx-session-tags{display:flex;flex-direction:column;align-items:flex-end;gap:10px}.cx-session-tags>span{padding:7px 9px;border-radius:73px;background:rgba(93,243,183,.11);border:1px solid rgba(93,243,183,.22);font:600 11px/1 "Geist Mono",monospace;color:var(--cx-light)}.cx-session-tags small{display:flex;align-items:center;gap:5px;color:#8A8D89;font-size:11px}.cx-session-tags .material-symbols-outlined{font-size:15px}.cx-stat strong{font:600 clamp(52px,6vw,80px)/1 "Plus Jakarta Sans",sans-serif;letter-spacing:-.05em;background:linear-gradient(105deg,#fff,var(--cx-light));background-clip:text;-webkit-background-clip:text;color:transparent}.cx-stat p{margin:5px 0 0;color:#BABCB8;font-size:14px;line-height:1.42}.cx-session-card h3{font-size:clamp(22px,2.3vw,28px);line-height:1.18;letter-spacing:-.012em}.cx-speakers{padding:20px;border-radius:10px;background:rgba(255,255,255,.03)}.cx-speakers__label{display:block;margin-bottom:17px;font:500 10px/1 "Geist Mono",monospace;color:#8A8D89;letter-spacing:.1em}.cx-speakers__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 16px}.cx-speaker{display:flex;flex-direction:column;align-items:flex-start;gap:11px;min-width:0}.cx-speaker img{width:88px;height:88px;object-fit:cover;border-radius:50%;background:#2A2A2B}.cx-speaker b{display:block;color:#fff;font-size:16px;white-space:nowrap}.cx-speaker span{display:block;margin-top:3px;color:#BABCB8;font-size:13px;line-height:1.35}.cx-lead{margin:0!important;color:#FCFCFC!important;font-weight:500;font-size:17px}.cx-learn h4{margin:0 0 12px;font-size:12px;color:#fff;text-transform:uppercase;letter-spacing:.08em}.cx-learn ul{list-style:none;padding:0;margin:0;display:grid;gap:10px}.cx-learn li{display:flex;align-items:center;gap:9px;color:#C6C9C5;font-size:14px}.cx-learn li .material-symbols-outlined{color:var(--cx-green);font-size:19px}.cx-abstract{border-top:1px solid rgba(255,255,255,.08);padding-top:15px}.cx-abstract__toggle{appearance:none;border:0;background:none;padding:0;color:#fff;font:500 13px/1.2 Inter,sans-serif;display:flex;align-items:center;gap:4px;cursor:pointer}.cx-abstract__body{padding-top:14px;color:#BABCB8;font-size:14px;line-height:1.6}.cx-session-card__footer{gap:14px;flex-wrap:wrap}.cx-session-card__footer>span{font-size:12px;color:#8A8D89}
.cx-after-hours{background:#000}.cx-event{display:flex;gap:clamp(32px,5vw,72px);align-items:center;margin-top:clamp(70px,10vw,140px);scroll-margin-top:90px}.cx-event:first-of-type{margin-top:0}.cx-event--reverse{flex-direction:row-reverse}.cx-event__image{flex:1.4 1 460px}.cx-event__image img{display:block;width:100%;border-radius:14px;box-shadow:-10px 43px 44.4px rgba(0,0,0,.29);transition:transform 600ms var(--cx-ease),box-shadow 600ms var(--cx-ease),outline-color 600ms}.cx-event__image img:hover{transform:scale(1.025);outline:1px solid rgba(23,232,145,.6);box-shadow:0 36px 100px -36px rgba(23,232,145,.7)}.cx-event__copy{flex:1 1 320px}.cx-event__copy h3{font-size:clamp(28px,2.8vw,36px);line-height:1.12}.cx-event__copy>p{max-width:440px;font-size:16px;color:#BABCB8}.cx-event__meta{margin:22px 0 16px!important;font-size:15px!important;line-height:1.55!important}.cx-event__meta b{color:#fff;font-weight:500}
.cx-vegas{position:relative;isolation:isolate;overflow:hidden;padding:clamp(90px,12vw,160px) 0;background:var(--cx-green);color:#000}.cx-vegas:before{content:"";position:absolute;z-index:-2;inset:0;background-image:radial-gradient(rgba(0,0,0,.18) 1.5px,transparent 1.5px);background-size:22px 22px;mask-image:radial-gradient(circle at center,#000 0,transparent 75%)}.cx-vegas__word{position:absolute;z-index:-1;left:50%;bottom:-.14em;transform:translateX(-50%);font:600 clamp(120px,25vw,380px)/.8 "Plus Jakarta Sans",sans-serif;letter-spacing:-.07em;color:transparent;-webkit-text-stroke:1.5px rgba(0,0,0,.18);white-space:nowrap}.cx-vegas__inner{text-align:center}.cx-vegas .cx-mono{margin:0 0 22px;color:rgba(0,0,0,.68);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.cx-vegas h2{color:#000;font-size:clamp(52px,9vw,128px);line-height:.95;letter-spacing:-.045em}.cx-vegas__tagline{margin:24px 0 30px!important;color:#000!important;font-size:20px}.cx-btn--black{background:#000;color:var(--cx-green)!important}.cx-btn--black:hover{background:#111}.cx-btn--outline-black{background:transparent;color:#000!important;box-shadow:inset 0 0 0 1.5px #000}.cx-btn--outline-black:hover{background:rgba(0,0,0,.06);box-shadow:inset 0 0 0 1.5px #000}
.cx-footer{padding:36px 0 44px;background:#000;border-top:1px solid rgba(255,255,255,.08)}.cx-footer__inner{display:flex;align-items:center;justify-content:space-between;gap:30px}.cx-footer__left{display:flex;align-items:center;gap:18px;flex-wrap:wrap;color:#8A8D89;font-size:12px}.cx-footer__left img{height:20px;width:auto}.cx-footer__left a{text-decoration:none}.cx-footer__left a:hover{color:#fff}.cx-social{display:flex;gap:6px}.cx-social a{width:32px;height:32px;display:grid;place-items:center;color:#8A8D89;transition:color 180ms}.cx-social a:hover{color:#fff}.cx-social svg{width:18px;height:18px;fill:currentColor}
.cx-reveal{opacity:0;transform:translateY(36px);transition:opacity 800ms var(--cx-ease),transform 800ms var(--cx-ease)}.cx-reveal.is-visible{opacity:1;transform:none}.cx-image-reveal{opacity:0;transform:translateY(70px) scale(.9) rotate(-1.5deg);clip-path:inset(12% 8% round 14px);transition:opacity 1.1s var(--cx-ease),transform 1.1s var(--cx-ease),clip-path 1.1s var(--cx-ease)}.cx-image-reveal.is-visible{opacity:1;transform:none;clip-path:inset(0 round 14px)}
@keyframes cx-pill-orbit{to{stroke-dashoffset:-100}}@keyframes cx-shimmer{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes cx-pulse{0%{box-shadow:0 0 0 0 rgba(23,232,145,.65)}70%{box-shadow:0 0 0 8px rgba(23,232,145,0)}100%{box-shadow:0 0 0 0 rgba(23,232,145,0)}}@keyframes cx-marquee{to{transform:translateX(-25%)}}
@media(max-width:1050px){.cx-agenda-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cx-session-grid{grid-template-columns:1fr}.cx-speakers__grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cx-booth{grid-template-columns:1fr}.cx-booth__image{max-width:720px}}
@media(max-width:900px){.cx-nav{display:none}.cx-header__inner{justify-content:space-between}.cx-header .cxb{margin-left:auto}}
@media(max-width:782px){body.cx-reinvent-page.admin-bar .cx-header{top:46px}}
@media(max-width:640px){.cx-container{width:min(100% - 40px,1215px)}.cx-header__inner{width:calc(100% - 40px)}.cx-hero{padding-top:125px}.cx-actions{width:100%}.cx-hero .cx-actions .cxb{width:100%;min-width:0}.cx-countdown{width:100%}.cx-countdown__label{max-width:360px;flex-wrap:wrap}.cx-countdown__grid{width:100%;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cx-countdown__box{padding:12px 4px 10px}.cx-countdown__box strong{font-size:28px}.cx-section-head--split{align-items:flex-start;flex-direction:column}.cx-legend{justify-content:flex-start}.cx-agenda-grid{grid-template-columns:1fr}.cx-agenda-card{min-height:225px}.cx-booth{padding:28px 22px}.cx-booth__number-row{align-items:flex-start;flex-direction:column;gap:5px}.cx-session-card__top{align-items:flex-start;flex-direction:column}.cx-session-tags{align-items:flex-start}.cx-speakers__grid{grid-template-columns:1fr;gap:16px}.cx-speaker{flex-direction:row;align-items:center}.cx-speaker img{width:64px;height:64px}.cx-speaker b{white-space:normal}.cx-learn li{align-items:flex-start}.cx-session-card__footer{align-items:flex-start;flex-direction:column}.cx-event,.cx-event--reverse{flex-direction:column}.cx-event__image,.cx-event__copy{flex-basis:auto;width:100%}.cx-footer__inner{align-items:flex-start;flex-direction:column}.cx-footer__left{align-items:flex-start;flex-direction:column;gap:10px}}
@media(max-width:480px){.cx-brand__divider,.cx-brand__event{display:none}.cx-header__inner{gap:12px}.cx-hero h1{font-size:48px}.cx-countdown__box strong{font-size:24px}.cx-countdown__box span{font-size:9px}.cx-session-card{padding:25px 20px}.cx-session-date{align-items:flex-start}.cx-session-date>div{width:66px;height:72px}.cx-session-date p{font-size:12px}.cx-stat p br{display:none}.cx-vegas .cx-actions .cx-btn{width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cx-page *,.cx-page *:before,.cx-page *:after{animation:none!important;transition:none!important}.cx-reveal,.cx-image-reveal{opacity:1!important;transform:none!important;clip-path:none!important}.cx-marquee__track{transform:none!important}.cx-hero__canvas{display:none}}

/* v1.0.2 — typography fidelity pass against the supplied source prototype */
.cx-page,
.cx-page button,
.cx-page input,
.cx-page textarea,
.cx-page select{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:400;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}
.cx-page h1,.cx-page h2,.cx-page h3,.cx-page h4{font-family:"Plus Jakarta Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:600;font-synthesis:none}
.cx-page .cx-mono,.cx-brand__event,.cx-countdown__label,.cx-countdown__box strong,.cx-date strong,.cx-date span,.cx-session-date span,.cx-session-date strong,.cx-session-tags>span,.cx-speakers__label{font-family:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-synthesis:none}

/* Header — exact source weights/sizes */
.cx-brand__event{font-size:12px;font-weight:500;line-height:1;letter-spacing:.08em}
.cx-nav a{font-family:Inter,sans-serif;font-size:13px;font-weight:400;line-height:1.2}


/* Hero */
.cx-pill{padding:10px 22px;border-radius:73px;font-family:Inter,sans-serif;font-size:18px;font-weight:500;line-height:1.4;letter-spacing:-.01em;text-transform:none;color:#D5D8D4}
.cx-hero h1{font-size:clamp(48px,8.2vw,110px);font-weight:600;line-height:.98;letter-spacing:-.035em}
.cx-hero__intro{font-family:Inter,sans-serif;font-size:18px;font-weight:400;line-height:1.45;letter-spacing:-.01em}
.cx-btn{font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:1}
.cx-countdown__label{font-size:12px;font-weight:400;line-height:1.5;letter-spacing:.08em}
.cx-countdown__box strong{font-weight:500}
.cx-countdown__box span{font-family:Inter,sans-serif;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.08em}

/* Agenda — source uses a deliberately smaller heading scale here */
#agenda .cx-section-head .cx-eyebrow{display:none}
#agenda .cx-section-head h2{font-size:clamp(26px,3vw,32px);font-weight:600;line-height:1.15;letter-spacing:-.01em}
.cx-legend>span,.cx-kind{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;letter-spacing:.06em;text-transform:uppercase;color:#FCFCFC}
.cx-date strong{font-size:34px;font-weight:500;line-height:1;letter-spacing:0}
.cx-date span{font-size:10px;font-weight:500;line-height:1.45;letter-spacing:.08em}
.cx-agenda-card h3{font-family:"Plus Jakarta Sans",sans-serif;font-size:18px;font-weight:600;line-height:1.2;letter-spacing:-.005em}
.cx-agenda-card p{font-family:Inter,sans-serif;font-size:13px;font-weight:400;line-height:1.4}

/* Marquees */
.cx-marquee__track>span{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;letter-spacing:-.01em}
.cx-marquee--dark .cx-marquee__track>span{font-weight:600;letter-spacing:-.035em}

/* Booth */
.cx-booth__number-row strong{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;line-height:.9;letter-spacing:-.04em}
.cx-booth__number-row span{font-family:Inter,sans-serif;font-size:13px;font-weight:600;line-height:1.4;letter-spacing:.06em;text-transform:uppercase}
#booth .cx-eyebrow{font-size:12px;font-weight:600;letter-spacing:.08em}
#booth h2{font-size:clamp(32px,4vw,44px);font-weight:600;line-height:1.1;letter-spacing:-.012em}
.cx-booth__copy p{font-size:18px;font-weight:400;line-height:1.45;letter-spacing:-.01em}

/* Shared section headers */
.cx-section-head--center .cx-eyebrow{font-size:13px;font-weight:600;line-height:1.2;letter-spacing:.08em}
.cx-section-head--center h2{font-size:clamp(34px,4.4vw,54px);font-weight:600;line-height:1.08;letter-spacing:-.018em}
.cx-section-head--center p{font-size:18px;font-weight:400;line-height:1.45;letter-spacing:-.01em}

/* Session cards */
.cx-session-date span{font-size:11px;font-weight:500;line-height:1;letter-spacing:.12em}
.cx-session-date strong{font-size:32px;font-weight:500;line-height:1.1}
.cx-session-date p{font-size:13px;font-weight:400;line-height:1.5}
.cx-session-date b{font-weight:500}
.cx-session-tags>span{font-size:11px;font-weight:600;line-height:1;letter-spacing:.04em}
.cx-session-tags small{font-size:12px;font-weight:400;line-height:1.3}
.cx-stat strong{font-family:"Plus Jakarta Sans",sans-serif;font-weight:600;line-height:1;letter-spacing:-.05em}
.cx-stat p{font-size:14px;font-weight:400;line-height:1.42}
.cx-session-card h3{font-size:clamp(22px,2.3vw,28px);font-weight:600;line-height:1.18;letter-spacing:-.012em}
.cx-speakers__label{font-size:10px;font-weight:500;letter-spacing:.1em}
.cx-speaker b{font-family:Inter,sans-serif;font-size:16px;font-weight:600;line-height:1.3}
.cx-speaker span{font-family:Inter,sans-serif;font-size:13px;font-weight:400;line-height:1.35}
.cx-lead{font-family:Inter,sans-serif;font-size:17px;font-weight:500;line-height:1.5}
.cx-learn h4{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.3;letter-spacing:.08em}
.cx-learn li{font-size:14px;font-weight:400;line-height:1.5}
.cx-abstract__toggle{font-family:Inter,sans-serif;font-size:13px;font-weight:500;line-height:1.2}
.cx-abstract__body{font-family:Inter,sans-serif;font-size:14px;font-weight:400;line-height:1.6}
.cx-session-card__footer>span{font-size:12px;font-weight:400;line-height:1.4}


/* After-hours */
.cx-event__copy .cx-eyebrow{font-family:Inter,sans-serif;font-size:12px;font-weight:600;line-height:1.2;letter-spacing:.08em}
.cx-event__copy h3{font-size:clamp(28px,2.8vw,36px);font-weight:600;line-height:1.12;letter-spacing:-.018em}
.cx-event__meta{font-family:Inter,sans-serif;font-size:15px!important;font-weight:500;line-height:1.5!important}
.cx-event__meta b{font-weight:500}
.cx-event__copy>p:not(.cx-event__meta){font-family:Inter,sans-serif;font-size:16px;font-weight:400;line-height:1.55}

/* Vegas CTA + footer */
.cx-vegas .cx-mono{font-family:"Geist Mono",monospace;font-size:13px;font-weight:500;line-height:1.3;letter-spacing:.1em}
.cx-vegas h2{font-size:clamp(52px,9vw,128px);font-weight:600;line-height:.95;letter-spacing:-.04em}
.cx-vegas__tagline{font-family:Inter,sans-serif;font-size:20px;font-weight:500;line-height:1.4}
.cx-vegas__word{font-weight:600;line-height:1;letter-spacing:-.05em}
.cx-footer__left{font-family:Inter,sans-serif;font-size:13px;font-weight:400;line-height:1.4}

@media(max-width:480px){
  .cx-pill{font-size:15px;padding:9px 17px}
  #agenda .cx-section-head h2{font-size:26px}
}


/* v1.0.7 — hero synced to the updated Coralogix handoff */
@property --cx-tag-angle { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes cx-tag-spin { to { --cx-tag-angle: 360deg; } }
@keyframes cx-shimmer-source { 0%,100% { background-position:0% 50%; } 50% { background-position:100% 50%; } }

.cx-hero{
  position:relative;
  overflow:hidden;
  min-height:0;
  padding:clamp(72px,9vw,120px) 24px clamp(72px,8vw,112px);
  background:
    linear-gradient(180deg,rgba(0,0,0,0) 72%,#000 100%),
    linear-gradient(235.879deg,#009955 -49.38%,#2A2A2B 40.48%,#000 88.05%);
  isolation:isolate;
}
.cx-hero:after{display:none}
.cx-hero__canvas{
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  opacity:1;
  pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 82%);
  mask-image:linear-gradient(180deg,#000 0%,#000 40%,transparent 82%);
}
.cx-hero__glow{
  position:absolute;
  z-index:0;
  left:50%;
  top:48%;
  width:min(1390px,150vw);
  height:640px;
  transform:translateX(-50%);
  border-radius:50%;
  background:linear-gradient(100.649deg,#000 20.45%,#5DF3B7 74.85%,#F8F8F8 97.81%);
  filter:blur(70px);
  opacity:.5;
  pointer-events:none;
}
.cx-hero .cx-container{width:min(100%,1215px)}
.cx-hero__inner{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:clamp(56px,7vw,88px);
  text-align:center;
}
.cx-hero__copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:30px;
  width:100%;
  max-width:1016px;
  text-align:center;
}
.cx-pill{
  position:relative;
  display:inline-flex;
  align-items:center;
  height:46px;
  padding:11px 26px 12px 24px;
  border:0;
  border-radius:999px;
  background:#000;
  isolation:isolate;
  backdrop-filter:none;
  color:#fff;
  font:500 18px/1 "Plus Jakarta Sans",sans-serif;
  letter-spacing:0;
  text-transform:none;
}
.cx-pill:before{
  content:"";
  position:absolute;
  inset:0;
  padding:1px;
  border-radius:inherit;
  background:conic-gradient(from var(--cx-tag-angle),rgba(23,232,145,.25) 0deg,#17E891 60deg,rgba(23,232,145,.25) 140deg,rgba(23,232,145,.25) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  animation:cx-tag-spin 6s linear infinite;
  pointer-events:none;
}
.cx-pill>span{position:relative;z-index:1;opacity:.7;white-space:nowrap}
.cx-pill__orbit{display:none!important}

.cx-hero h1{
  width:100%;
  max-width:1016px;
  margin:0;
  font-family:"Plus Jakarta Sans",sans-serif;
  font-weight:600;
  font-size:clamp(48px,8.2vw,110px);
  line-height:.98;
  letter-spacing:-.035em;
  color:#fff;
  text-wrap:balance;
}
.cx-hero h1 .cx-hero__accent{
  background:linear-gradient(95deg,#17E891 0%,#5DF3B7 25%,#F8F8F8 50%,#5DF3B7 75%,#17E891 100%);
  background-size:200% 100%;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  animation:cx-shimmer-source 7s ease-in-out infinite;
}
.cx-hero__intro{
  max-width:810px;
  margin:0;
  font-family:Inter,sans-serif;
  font-size:18px;
  font-weight:400;
  line-height:1.45;
  letter-spacing:-.01em;
  color:#C6C9C5;
  text-wrap:pretty;
}
.cx-hero .cx-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}









.cx-countdown{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  width:100%;
  margin-top:0;
}
.cx-countdown[hidden]{display:none}
.cx-countdown__label{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:10px;
  font-family:"Geist Mono",monospace;
  font-size:12px;
  font-weight:400;
  line-height:1.2;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#BABCB8;
  text-align:center;
}
.cx-countdown__label:before{
  content:"";
  flex-shrink:0;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#17E891;
  box-shadow:0 0 10px #17E891;
}
.cx-countdown__label i{display:none}
.cx-countdown__grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,104px));
  gap:14px;
  width:100%;
  max-width:460px;
  justify-content:center;
}
.cx-countdown__box{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
  min-width:0;
  padding:16px 12px 14px;
  border:0;
  border-radius:12px;
  background:rgba(255,255,255,.04);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);
}
.cx-countdown__box strong{
  display:block;
  font-family:"Geist Mono",monospace;
  font-weight:500;
  font-size:clamp(28px,4vw,44px);
  line-height:1;
  color:#fff;
  font-variant-numeric:tabular-nums;
}
.cx-countdown__box span{
  display:block;
  margin-top:0;
  font-family:Inter,sans-serif;
  font-size:11px;
  font-weight:600;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#BABCB8;
}

@media(max-width:640px){
  .cx-hero{padding:clamp(72px,9vw,120px) 20px clamp(72px,8vw,112px)}
  .cx-hero__copy{gap:24px}
  .cx-pill{height:42px;padding:10px 18px;font-size:15px}
  .cx-hero h1{font-size:48px}
  .cx-hero__intro{font-size:16px}
  .cx-hero .cx-actions{width:100%}
  .cx-hero .cx-actions .cxb{width:100%}
  .cx-countdown__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
  .cx-countdown__box{padding:12px 4px 10px}
  .cx-countdown__box strong{font-size:28px}
}
@media(prefers-reduced-motion:reduce){
  .cx-pill:before,.cx-hero h1 .cx-hero__accent{animation:none!important}
  .cx-hero__canvas{display:none!important}
}


/* v1.0.8 — Agenda fidelity pass from the updated handoff */
#agenda.cx-section{
  position:relative;
  padding:clamp(24px,4vw,48px) 0 clamp(56px,7vw,96px);
}
#agenda .cx-section-head{
  margin-bottom:28px;
}
#agenda .cx-section-head--split{
  gap:16px;
}
#agenda .cx-agenda-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap:14px;
  align-items:stretch;
}
#agenda .cx-agenda-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:14px;
  min-height:0;
  padding:22px 22px 24px;
  border-radius:12px;
  background:#161616;
  text-decoration:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
  transition:
    box-shadow 260ms var(--cx-ease),
    background 260ms var(--cx-ease),
    transform 320ms var(--cx-ease);
}
#agenda .cx-agenda-card:hover{
  background:#1A1C1B;
  transform:translateY(-6px);
  box-shadow:
    inset 0 0 0 1px var(--cx-green),
    0 24px 64px -20px rgba(23,232,145,.60);
  text-decoration:none;
}
#agenda .cx-agenda-card:before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:3px;
  border-radius:0;
  background:var(--cx-green);
  opacity:.5;
}
#agenda .cx-agenda-card:after{
  content:"";
  position:absolute;
  right:-40px;
  top:-40px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:var(--blob,var(--cx-green));
  opacity:.14;
  filter:blur(30px);
  pointer-events:none;
}
#agenda .cx-agenda-card__top{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
#agenda .cx-date{
  align-items:baseline;
  gap:10px;
}
#agenda .cx-date strong{
  font-size:34px;
  line-height:1;
}
#agenda .cx-date span{
  line-height:1.55;
  letter-spacing:.08em;
}
#agenda .cx-agenda-card .cx-kind{
  gap:6px;
  padding:5px 10px 5px 8px;
  font-size:11px;
  border:0;
  background:transparent;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);
}
#agenda .cx-agenda-card .cx-kind .material-symbols-outlined{
  font-size:14px;
}
#agenda .cx-agenda-card h3{
  position:relative;
  z-index:1;
  margin:0;
  font-size:18px;
  font-weight:600;
  line-height:1.25;
}
#agenda .cx-agenda-card p{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:0;
  color:#8A8D89;
  font-size:13px;
  line-height:1.4;
}
#agenda .cx-agenda-card p .material-symbols-outlined{
  flex-shrink:0;
  color:var(--cx-green);
  font-size:18px;
}
@media(max-width:640px){
  #agenda .cx-section-head{margin-bottom:24px}
  #agenda .cx-agenda-card{min-height:0}
}


/* v1.0.9 — Sessions fidelity pass against the updated original */
.cx-sessions{
  position:relative;
  overflow:hidden;
  padding:clamp(72px,9vw,128px) 24px;
  background:#0B0B0C;
}
.cx-sessions__glow{
  top:-180px;
  left:50%;
  width:min(1200px,140vw);
  height:460px;
  transform:translateX(-50%);
  background:linear-gradient(100deg,#000 15%,#00A86D 60%,#5DF3B7 95%);
  filter:blur(90px);
  opacity:.32;
}
.cx-sessions .cx-container{
  display:flex;
  flex-direction:column;
  gap:52px;
}
.cx-session-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));
  gap:20px;
  align-items:stretch;
}
.cx-session-card{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  gap:32px;
  padding:clamp(28px,3.4vw,44px);
  border-radius:12px;
  background:linear-gradient(180deg,rgba(93,243,183,.10) 0%,#161616 38%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);
  transition:box-shadow 300ms var(--cx-ease),transform 360ms var(--cx-ease);
}
.cx-session-card:hover{
  transform:translateY(-6px);
  box-shadow:
    inset 0 0 0 1px var(--cx-green),
    0 36px 100px -36px rgba(23,232,145,.70);
}
.cx-session-card:before{
  left:0;
  right:0;
  top:0;
  height:3px;
  border-radius:0;
  background:linear-gradient(90deg,#00A86D,#5DF3B7);
}
.cx-session-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  flex-wrap:wrap;
}
.cx-session-date{
  display:flex;
  align-items:center;
  gap:16px;
}
.cx-session-date>div{
  width:74px;
  height:78px;
  border:0;
  border-radius:10px;
  background:rgba(93,243,183,.14);
  box-shadow:inset 0 0 0 1px rgba(93,243,183,.45);
}
.cx-session-date>div>span{
  font-size:11px;
  letter-spacing:.10em;
  color:var(--cx-mint);
}
.cx-session-date>div>strong{
  font-size:34px;
  line-height:1.05;
  color:#fff;
}
.cx-session-date p{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin:0;
  color:var(--cx-white);
  font-size:15px;
  font-weight:500;
  line-height:1.25;
}
.cx-session-date p b{
  color:var(--cx-white);
  font-weight:500;
}
.cx-session-date p>span{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--cx-body);
}
.cx-session-date p .material-symbols-outlined{
  color:var(--cx-mint);
  font-size:16px;
  line-height:1;
}
.cx-session-tags{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
}
.cx-session-tags>span{
  padding:5px 10px;
  border:0;
  border-radius:4px;
  background:rgba(93,243,183,.18);
  color:var(--cx-light);
  font-size:12px;
  font-weight:500;
  letter-spacing:.04em;
}
.cx-session-tags small{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--cx-muted);
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.cx-session-tags .material-symbols-outlined{
  font-size:14px;
}
.cx-stat{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:10px;
}
.cx-stat strong{
  font-size:clamp(52px,6vw,80px);
  line-height:1.1;
  letter-spacing:-.045em;
  font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,#fff 0%,#5DF3B7 100%);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}
.cx-stat p{
  margin:0;
  color:var(--cx-muted);
  font-size:14px;
  line-height:1.4;
}
.cx-session-card h3{
  font-size:clamp(22px,2.3vw,28px);
  font-weight:600;
  line-height:1.18;
  letter-spacing:-.012em;
  text-wrap:balance;
}
.cx-speakers{
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:24px 24px 26px;
  border-radius:10px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
}
.cx-speakers__label{
  margin:0;
  color:var(--cx-mint);
  font-size:11px;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cx-speakers__grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px 16px;
}
.cx-speaker{
  gap:14px;
}
.cx-speaker img{
  width:88px;
  height:88px;
}
.cx-speaker b{
  font-size:16px;
  font-weight:600;
  line-height:1.3;
  letter-spacing:-.005em;
}
.cx-speaker span{
  margin-top:4px;
  color:var(--cx-muted);
  font-size:13px;
  line-height:1.4;
}
.cx-lead{
  margin:0!important;
  color:var(--cx-white)!important;
  font-size:17px;
  font-weight:500;
  line-height:1.45;
  letter-spacing:-.005em;
}
.cx-learn{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.cx-learn h4{
  margin:0;
  color:var(--cx-mint);
  font-family:"Geist Mono",ui-monospace,monospace;
  font-size:11px;
  font-weight:500;
  line-height:1;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.cx-learn ul{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0;
}
.cx-learn li{
  align-items:flex-start;
  gap:10px;
  color:var(--cx-body);
  font-size:15px;
  line-height:1.45;
  white-space:nowrap;
}
.cx-learn li .material-symbols-outlined{
  color:var(--cx-mint);
  font-size:19px;
  line-height:21px;
}
.cx-abstract{
  border-top:0;
  padding-top:0;
}
.cx-abstract__toggle{
  color:var(--cx-mint);
  font-size:14px;
  font-weight:500;
  gap:4px;
}
.cx-abstract__toggle:hover{
  color:var(--cx-light);
}
.cx-abstract__toggle .material-symbols-outlined{
  font-size:18px;
  transition:transform 200ms var(--cx-ease);
}
.cx-abstract__toggle[aria-expanded="true"] .material-symbols-outlined{
  transform:rotate(180deg);
}
.cx-abstract__body{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid rgba(255,255,255,.08);
  color:var(--cx-muted);
  font-size:14px;
  line-height:1.6;
}
.cx-session-card__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.08);
}


.cx-session-card__footer>span{
  color:#6f736f;
  font-size:12px;
  line-height:1.4;
}
@media(max-width:640px){
  .cx-session-card__top{
    align-items:flex-start;
    flex-direction:column;
  }
  .cx-session-tags{
    align-items:flex-start;
  }
  .cx-learn li{
    white-space:normal;
  }
}


/* v1.0.10 — reliable inline SVG icons for session time/location */
.cx-session-date p .cx-session-inline-icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
  fill:none;
  stroke:var(--cx-mint);
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* v1.0.11 — keep after-hours image zoom clipped inside its frame */
.cx-after-hours .cx-event__image{
  position:relative;
  overflow:hidden;
  border-radius:14px;
  isolation:isolate;
}
.cx-after-hours .cx-event__image img{
  display:block;
  width:100%;
  height:auto;
  border-radius:inherit;
  transform-origin:center center;
  will-change:transform;
}
.cx-after-hours .cx-event__image:hover img{
  transform:scale(1.025);
}
.cx-after-hours .cx-event__image img:hover{
  outline:none;
}


/* v1.0.12 — after-hours hover matches original: scale the whole image card */
.cx-after-hours .cx-event__image{
  position:relative;
  overflow:visible;
  border-radius:14px;
  isolation:isolate;
  transform:scale(1);
  transform-origin:center center;
  transition:
    transform 600ms var(--cx-ease),
    box-shadow 600ms var(--cx-ease);
  will-change:transform;
  z-index:1;
}
.cx-after-hours .cx-event__image img{
  display:block;
  width:100%;
  height:auto;
  border-radius:14px;
  transform:none !important;
  transition:none !important;
}
.cx-after-hours .cx-event__image:hover{
  transform:scale(1.025);
  z-index:3;
  /* box-shadow:0 36px 100px -36px rgba(23,232,145,.70); */
}
.cx-after-hours .cx-event__image:hover img{
  transform:none !important;
  box-shadow: none !important;
}


/* v1.0.13 — allow after-hours hover shadow to extend outside the reveal mask */
.cx-after-hours .cx-event__image.cx-image-reveal.is-visible{
  clip-path:none;
  -webkit-clip-path:none;
  overflow:visible;
}

.cx-after-hours .cx-event__image:hover{
  box-shadow:
    -10px 43px 44.4px rgba(0, 0, 0, 0.29),
    0 0 0 1px #17E891,
    0 40px 120px -40px rgba(23, 232, 145, 0.7);
}




.cx-booth__number-row strong {
  background: linear-gradient(180deg, #17E891 0%, #00A86D 100%);
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;
}

.cx-sessions{
  overflow: clip;
}
.cx-sessions__glow {
  left: 50%;
  top: -180px;
  width: min(1200px, 140vw);
  height: 460px;
  transform: translateX(-50%);
  background: linear-gradient(100deg, #000 15%, #00A86D 60%, #5DF3B7 95%);
  filter: blur(90px);
  opacity: 0.32;
}

.cx-vegas {
  padding: clamp(96px, 12vw, 176px) 24px clamp(120px, 15vw, 220px);
}

@media (max-width: 639px) {
  .cx-sessions .cx-container {
    width: 100%;
  }
  .cx-speakers__grid {
    grid-template-columns: minmax(0px, 1fr);
    gap: 16px;
  }
  .cx-speaker img{
    width: 64px;
    height: 64px;
  } 
}
.cxb {--btn-secondary-bg: rgba(255, 255, 255, 0.03);
  --btn-secondary-bg-hover: rgba(255, 255, 255, 0.14);
  --btn-secondary-color: #FCFCFC;
  --btn-secondary-border: conic-gradient(from 0deg, rgba(210, 218, 210, 0.48) 0deg, rgba(210, 218, 210, 0.48) 35deg, rgba(115, 128, 120, 0.3) 90deg, rgba(210, 218, 210, 0.48) 145deg, rgba(210, 218, 210, 0.48) 215deg, rgba(115, 128, 120, 0.3) 270deg, rgba(210, 218, 210, 0.48) 325deg, rgba(210, 218, 210, 0.48) 360deg);
  --btn-tertiary-color: #17E891;
  --btn-height: 54px;
  --btn-padding-x: 28px;
  --btn-gap: 12px;
  --btn-font-size: 18px;
  --btn-line-height: 25.2px;
  --btn-icon-size: 20px;
  --btn-tertiary-padding-y: 10px;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--btn-gap);
  box-sizing: border-box;
  min-height: var(--btn-height);
  margin: 0;
  padding: 0 var(--btn-padding-x);
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  font-family: "Inter", sans-serif;
  font-size: var(--btn-font-size);
  font-weight: 500;
  line-height: var(--btn-line-height);
  letter-spacing: 0;
  text-align: center;
  text-decoration: none !important;
  white-space: nowrap;
  vertical-align: top;
  cursor: pointer;
  box-shadow: 0 2px 13px 0 rgba(68, 225, 129, 0);
  transition: background-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease, border-color 0.25s ease;}
.cxb:focus-visible {outline: 2px solid #17E891;
  outline-offset: 3px;}
.cxb[disabled], .cxb[aria-disabled="true"] {opacity: 0.4;
  pointer-events: none;
  cursor: default;}
.cxb--icon::after {content: "";
  display: block;
  flex-shrink: 0;
  width: var(--btn-icon-size);
  height: var(--btn-icon-size);
  background-color: currentColor;
  -webkit-mask: url("/assets/pages/aws-reinvent-2026/arrow-right.svg") center / contain no-repeat;
  mask: url("/assets/pages/aws-reinvent-2026/arrow-right.svg") center / contain no-repeat;}
.cxb--md {--btn-height: 47px;
  --btn-padding-x: 18px;
  --btn-gap: 10px;
  --btn-font-size: 16px;
  --btn-line-height: 22.4px;
  --btn-tertiary-padding-y: 8px;}
.cxb--primary {isolation: isolate;
  background-color: #17E891;
  border-color: rgba(31, 31, 31, 0.02);
  color: #1E1F20 !important;
  box-shadow: 0 2px 17px 0 rgba(68, 225, 129, 0);}
.cxb--primary::before {content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: inherit;
  background: linear-gradient(231deg, #1AFD8B 5.23%, #1CF898 28.62%, #0DF68D 49.22%, #24EE8D 70.89%, #0CEF91 87%);
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;}
.cxb--primary:hover, .cxb--primary:focus-visible {box-shadow: 0 2px 17px 0 rgba(68, 225, 129, 0.8);}
.cxb--primary:hover::before, .cxb--primary:focus-visible::before {opacity: 1;}
.cxb--secondary {background-color: var(--btn-secondary-bg);
  color: var(--btn-secondary-color) !important;
  -webkit-backdrop-filter: blur(2.5px);
  backdrop-filter: blur(2.5px);}
.cxb--secondary::before {content: "";
  position: absolute;
  inset: -1px;
  padding: 1px;
  border-radius: inherit;
  background: var(--btn-secondary-border);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude;
  pointer-events: none;}
.cxb--secondary:hover, .cxb--secondary:focus-visible {background-color: var(--btn-secondary-bg-hover);
  box-shadow: 0 2px 13px 0 rgba(68, 225, 129, 0.4);}
/* Glue for the port: the event bar above it, icons as inline SVG (sized by the page's own rules,
   which set font-size and colour on .material-symbols-outlined), the original small footer in
   place of the site's, the type defaults WordPress gave it, and dark whatever the visitor's skin. */
body.ri-hub { background: #000; }
body.ri-hub > footer.footer { display: none; }
.cx-page { font-size: 15.84px; line-height: normal; }
.cx-page .material-symbols-outlined { display: inline-flex; width: 1em; height: 1em; flex: none; vertical-align: middle; }
.cx-page .material-symbols-outlined svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cx-abstract__toggle[aria-expanded="true"] .material-symbols-outlined svg { transform: rotate(180deg); }
.cx-page section[id], .cx-page article[id] { scroll-margin-top: 80px; }
