:root {
  color-scheme:dark;
  --bg:#10100f;
  --surface:#171716;
  --ink:#f5f2eb;
  --muted:#bab6ae;
  --gold:#dec28d;
  --gold-dark:#ad8a50;
  --line:#ffffff26;
  --paper:#f2eee5;
  font-family:Arial,"Helvetica Neue",sans-serif;
  font-synthesis:none;
  -webkit-font-smoothing:antialiased;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
  scroll-padding-top:110px;
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-size:1rem;
  line-height:1.65;
}

h1,h2,h3,p,figure {
  margin:0;
}

h1,h2,h3 {
  font-weight:400;
}

a {
  color:inherit;
  text-underline-offset:5px;
}

img {
  display:block;
  max-width:100%;
  height:auto;
}

a:focus-visible,button:focus-visible {
  outline:3px solid var(--gold);
  outline-offset:6px;
}

.shell {
  width:min(1280px,calc(100% - 96px));
  margin-inline:auto;
}

.section {
  padding-block:104px;
}

.eyebrow {
  font-size:.75rem;
  letter-spacing:.16em;
  line-height:1.5;
  font-weight:500;
}

.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  z-index:30;
  padding:14px 20px;
  transform:translateY(-200%);
  background:var(--gold);
  color:var(--bg);
}

.skip-link:focus {
  transform:none;
}

.site-header {
  border-bottom:1px solid var(--line);
  background:var(--bg);
  position:sticky;
  top:0;
  z-index:10;
}

.header-inner {
  min-height:90px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}

.wordmark {
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:15px;
  white-space:nowrap;
  font-size:1.125rem;
  letter-spacing:.1em;
}

.wordmark span {
  border-left:1px solid #867251;
  padding-left:15px;
  font-size:.75rem;
  color:var(--gold);
  letter-spacing:.08em;
}

.header-inner nav {
  display:flex;
  gap:28px;
}

.header-inner nav a {
  font-size:.875rem;
  text-decoration:none;
  color:var(--muted);
  padding-block:12px;
}

.header-inner nav a:hover {
  color:var(--gold);
}

.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:38px;
  background:var(--gold);
  color:#19160f;
  border:1px solid var(--gold);
  padding:17px 24px;
  min-height:58px;
  font-size:1rem;
  line-height:1.4;
  text-decoration:none;
  font-weight:600;
  transition:background .2s;
}

.button:hover {
  background:#efd6a7;
}

.button-small {
  font-size:.875rem;
  padding:12px 18px;
  min-height:46px;
  gap:24px;
}

.hero {
  display:grid;
  grid-template-columns:1fr .83fr;
  gap:7%;
  align-items:center;
  padding-block:48px 54px;
}

.hero-copy {
  padding-block:24px;
}

.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:15px;
  color:var(--gold);
}

.gold-line {
  display:inline-block;
  width:36px;
  height:1px;
  background:var(--gold-dark);
}

h1 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(5rem,8.6vw,8.25rem);
  letter-spacing:-.065em;
  line-height:.99;
  margin:28px 0 25px;
}

h1 em {
  font-weight:400;
  color:var(--gold);
  font-style:italic;
}

.hero-intro {
  font-size:1.0625rem;
  line-height:1.85;
  color:var(--muted);
  max-width:430px;
}

.hero-date {
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-block:27px 24px;
}

.hero-date time {
  font-size:1.125rem;
}

.hero-date span {
  font-size:.875rem;
  color:var(--muted);
}

.hero-note {
  font-size:.75rem;
  color:var(--muted);
  margin-top:14px;
  line-height:1.65;
}

.hero-section-links {
  display:flex;
  flex-wrap:wrap;
  gap:4px 26px;
  margin-top:18px;
}

.hero-section-links a {
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  color:var(--gold);
  font-size:.875rem;
  text-decoration:none;
}

.hero-section-links a:hover {
  text-decoration:underline;
}

.hero-poster {
  max-width:470px;
  justify-self:end;
  width:100%;
}

.hero-poster img {
  width:100%;
  background:#000;
  aspect-ratio:4/5;
  object-fit:contain;
  border:1px solid #78633b66;
}

.hero-poster figcaption {
  display:flex;
  justify-content:space-between;
  font-size:.75rem;
  letter-spacing:.13em;
  color:#a49b8a;
  margin-top:14px;
}

.event-strip {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-block:1px solid var(--line);
  padding-block:30px;
}

.event-strip>div {
  display:grid;
  gap:9px;
  padding-inline:28px;
  border-left:1px solid var(--line);
}

.event-strip>div:first-child {
  padding-left:0;
  border-left:0;
}

.event-strip .eyebrow {
  color:var(--muted);
  font-size:.75rem;
}

.event-strip strong {
  font-weight:400;
  font-size:1.0625rem;
}

h2 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2.5rem,4.2vw,4.1rem);
  letter-spacing:-.045em;
  line-height:1.1;
}

.app-section {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  align-items:center;
  gap:12%;
  border-top:1px solid var(--line);
}

.robexa-logo {
  width:152px;
  margin-bottom:32px;
}

.app-section h2 {
  margin-bottom:26px;
}

.app-section p:not(.eyebrow) {
  max-width:510px;
  color:var(--muted);
  font-size:1rem;
}

.app-section .existing-app {
  margin-top:18px;
  font-size:.875rem!important;
}

.app-stores>.eyebrow {
  margin-bottom:23px;
  color:var(--gold);
}

.store-badge {
  display:flex;
  gap:18px;
  align-items:center;
  text-decoration:none;
  border:1px solid #7a7569;
  padding:18px 21px;
  min-height:86px;
  transition:background .2s;
}

.store-badge+.store-badge {
  margin-top:14px;
}

.store-badge:hover {
  background:#26241f;
}

.store-badge>img {
  width:36px;
  height:36px;
  object-fit:contain;
}

.store-badge>span {
  display:grid;
}

.store-badge small {
  font-size:.75rem;
  color:var(--muted);
}

.store-badge strong {
  font-size:1.375rem;
  font-weight:500;
  line-height:1.45;
}

.site-footer {
  border-top:1px solid var(--line);
  padding-block:30px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:24px;
  font-size:.8125rem;
  color:var(--muted);
}

.footer-brand {
  color:var(--ink);
  letter-spacing:.1em;
}

.footer-brand span {
  color:var(--gold);
  margin-left:10px;
  font-size:.75rem;
}

.footer-links {
  display:flex;
  flex-wrap:wrap;
  gap:22px;
}

.site-footer a {
  text-decoration:none;
}

.site-footer a:hover {
  text-decoration:underline;
}

@media(min-width:1600px) {
  .hero {
    padding-block:66px;
  }
  .hero-poster {
    max-width:500px;
  }
}

@media(max-width:1050px) {
  .shell {
    width:calc(100% - 64px);
  }
  .header-inner nav {
    gap:18px;
  }
  .hero {
    gap:5%;
    grid-template-columns:1fr .9fr;
  }
  .hero-note {
    max-width:285px;
  }
  .event-strip>div {
    padding-inline:18px;
  }
  .event-strip strong {
    font-size:1rem;
  }
  .app-section {
    gap:8%;
  }
}

@media(max-width:800px) {
  .header-inner nav {
    display:none;
  }
  .hero {
    grid-template-columns:1fr .9fr;
    gap:28px;
  }
  .hero h1 {
    font-size:clamp(4.1rem,9.4vw,6rem);
  }
  .hero-intro {
    font-size:1rem;
  }
  .hero .button {
    padding-inline:18px;
    gap:20px;
    font-size:.9375rem;
  }
  .hero-note {
    font-size:.75rem;
  }
  .event-strip {
    grid-template-columns:1fr 1fr;
    gap:28px 0;
  }
  .event-strip>div:nth-child(3) {
    border-left:0;
    padding-left:0;
  }
  .app-section {
    gap:36px;
  }
  .section {
    padding-block:76px;
  }
}

@media(max-width:600px) {
  html {
    scroll-padding-top:88px;
  }
  .shell {
    width:calc(100% - 40px);
  }
  .header-inner {
    min-height:76px;
    gap:12px;
  }
  .wordmark {
    font-size:.875rem;
    gap:9px;
    letter-spacing:.04em;
  }
  .wordmark span {
    padding-left:9px;
    font-size:.6875rem;
  }
  .button-small {
    font-size:.8125rem;
    padding:10px 13px;
    gap:12px;
    min-height:44px;
  }
  .hero {
    grid-template-columns:1fr;
    gap:30px;
    padding-block:24px 34px;
  }
  .hero-copy {
    padding-top:18px;
    padding-bottom:0;
  }
  .hero .eyebrow {
    font-size:.75rem;
  }
  .hero h1 {
    font-size:clamp(4.7rem,18vw,7rem);
    margin-block:21px 24px;
  }
  .hero-intro {
    max-width:100%;
    font-size:1rem;
  }
  .hero-date {
    margin-block:22px;
  }
  .hero .button {
    font-size:1rem;
    min-height:56px;
    gap:24px;
  }
  .hero-note {
    max-width:none;
    font-size:.75rem;
    margin-top:13px;
  }
  .hero-poster {
    max-width:none;
    justify-self:stretch;
  }
  .event-strip {
    padding-block:26px;
    gap:25px 0;
  }
  .event-strip>div {
    padding-inline:20px;
  }
  .event-strip strong {
    font-size:.9375rem;
  }
  .event-strip .eyebrow {
    font-size:.75rem;
    letter-spacing:.1em;
  }
  .section {
    padding-block:60px;
  }
  .app-section {
    grid-template-columns:1fr;
    gap:36px;
  }
  .app-stores {
    max-width:420px;
    width:100%;
  }
  .app-section h2 {
    font-size:2.65rem;
  }
  .robexa-logo {
    width:140px;
  }
  .site-footer {
    align-items:flex-start;
    flex-direction:column;
    gap:18px;
    padding-block:26px;
  }
  .footer-links {
    gap:24px;
  }
}

@media(max-width:360px) {
  .shell {
    width:calc(100% - 32px);
  }
  .wordmark span {
    display:none;
  }
  .hero h1 {
    font-size:4.6rem;
  }
  .hero-note {
    max-width:245px;
  }
}

@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  * {
    transition:none!important;
  }
}

/* Event details, dinner and selected past editions. */
h2 em {
  font-weight:400;
  color:var(--gold);
}

.event-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7%;
  align-items:center;
}

.event-photo img {
  width:100%;
  aspect-ratio:1.25;
  object-fit:cover;
  object-position:center;
  border:1px solid var(--line);
}

.event-photo figcaption {
  font-size:.75rem;
  margin-top:14px;
  color:var(--muted);
}

.event-copy .eyebrow,.section-heading .eyebrow,.venue-copy .eyebrow {
  color:var(--gold);
  margin-bottom:23px;
}

.event-copy h2 {
  font-size:clamp(2.15rem,3.25vw,3.25rem);
  margin-bottom:27px;
}

.event-copy>p:not(.eyebrow) {
  color:var(--muted);
  margin-top:15px;
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:24px;
  min-height:44px;
  font-size:.875rem;
  text-decoration:none;
  border-bottom:1px solid var(--gold-dark);
  margin-top:24px;
  padding-block:8px;
}

.text-link:hover {
  color:var(--gold);
}

.ticket-section {
  background:var(--paper);
  color:#222019;
}

.ticket-inner {
  display:grid;
  grid-template-columns:1fr 1fr;
  padding-block:78px;
  gap:8%;
}

.ticket-section .eyebrow {
  color:#756044;
}

.ticket-copy h2 {
  margin-top:22px;
  font-size:clamp(2.65rem,4vw,3.8rem);
}

.ticket-copy h2 em {
  color:#886739;
}

.ticket-price {
  display:flex;
  gap:22px;
  align-items:baseline;
  margin-top:32px;
}

.ticket-price strong {
  font-family:Georgia,"Times New Roman",serif;
  font-size:6.5rem;
  font-weight:400;
  letter-spacing:-.07em;
  line-height:1.1;
}

.ticket-price strong span {
  font-family:Arial,sans-serif;
  font-size:2.2rem;
  margin-left:11px;
  letter-spacing:-.02em;
}

.ticket-price>span {
  font-size:.9375rem;
  color:#676052;
}

.ticket-seat {
  color:#585346;
  margin-block:17px 29px;
  font-size:1rem;
}

.button-dark {
  background:#1b1b19;
  border-color:#1b1b19;
  color:var(--paper);
}

.button-dark:hover {
  background:#38352e;
}

.ticket-footnote {
  font-size:.8125rem;
  color:#676052;
  margin-top:16px;
}

.ticket-menu {
  padding-left:13%;
  border-left:1px solid #c9c0af;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.ticket-menu h3 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:2rem;
  letter-spacing:-.035em;
  margin-top:17px;
}

.menu-list {
  list-style:none;
  margin:18px 0 25px;
  padding:0;
}

.menu-list li {
  display:flex;
  align-items:center;
  gap:28px;
  padding-block:18px;
  border-bottom:1px solid #c9c0af;
  font-size:1.125rem;
}

.menu-list li>span:first-child {
  color:#756044;
  font-size:.75rem;
}

.menu-drinks>.eyebrow {
  margin-bottom:12px;
}

.menu-drinks>p:last-child {
  font-size:1rem;
  line-height:1.9;
}

.menu-date {
  font-size:.8125rem;
  color:#676052;
  margin-top:30px;
}

.menu-date>span {
  margin-inline:8px;
}

.section-heading {
  display:flex;
  justify-content:space-between;
  gap:35px;
  align-items:end;
  margin-bottom:40px;
}

.section-heading h2 {
  font-size:clamp(2.3rem,3.5vw,3.4rem);
}

.section-heading>p {
  font-size:.875rem;
  color:var(--muted);
  line-height:1.8;
  flex-shrink:0;
}

.gallery-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:35px 22px;
}

.gallery-grid img {
  aspect-ratio:4/3;
  width:100%;
  object-fit:cover;
  object-position:center 35%;
}

.gallery-grid figcaption {
  display:flex;
  justify-content:space-between;
  gap:10px;
  font-size:.8125rem;
  color:var(--muted);
  margin-top:13px;
}

.gallery-grid figcaption>span:last-child {
  color:var(--gold);
  font-size:.75rem;
  letter-spacing:.08em;
}

.venue-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
  padding-block:64px 88px;
  gap:7%;
  align-items:center;
}

.venue-brand {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  background:#000;
  padding:70px 40px;
  min-height:340px;
  border:1px solid #5d513a66;
}

.venue-logo-window {
  width:100%;
  max-width:430px;
  aspect-ratio:3.6;
  overflow:hidden;
}

.venue-logo-window>img {
  width:100%;
  max-width:none;
  transform:translateY(-36%);
}

.venue-brand>p {
  font-size:.75rem;
  letter-spacing:.2em;
  color:#b8a887;
  margin-top:14px;
}

.venue-copy h2 {
  font-size:clamp(2.5rem,3.6vw,3.4rem);
  margin-bottom:25px;
}

.venue-name {
  font-size:1.0625rem;
}

.venue-copy address {
  font-size:1rem;
  font-style:normal;
  color:var(--muted);
  margin-top:7px;
}

.venue-copy .text-link {
  margin-top:18px;
}

.venue-reminder {
  display:flex;
  flex-wrap:wrap;
  gap:9px 22px;
  font-size:.8125rem;
  color:var(--muted);
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--line);
}

.venue-reminder>span:first-child {
  color:var(--gold);
  letter-spacing:.08em;
}

@media(max-width:1050px) {
  .event-section {
    gap:5%;
  }
  .ticket-inner {
    gap:6%;
  }
  .ticket-menu {
    padding-left:11%;
  }
  .venue-section {
    gap:5%;
  }
  .venue-brand {
    padding-inline:25px;
  }
  .gallery-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:30px 18px;
  }
}

@media(max-width:800px) {
  .event-section {
    grid-template-columns:1fr;
    gap:34px;
  }
  .event-photo {
    max-width:620px;
  }
  .event-photo img {
    aspect-ratio:1.5;
  }
  .event-copy {
    max-width:620px;
  }
  .event-copy h2 {
    font-size:2.9rem;
  }
  .ticket-inner {
    gap:35px;
  }
  .ticket-menu {
    padding-left:28px;
  }
  .ticket-copy h2 {
    font-size:2.6rem;
  }
  .ticket-price {
    gap:16px;
    flex-wrap:wrap;
  }
  .ticket-price strong {
    font-size:5.5rem;
  }
  .ticket-price>span {
    font-size:.875rem;
  }
  .ticket-copy .button {
    padding-inline:18px;
    gap:18px;
    font-size:.9375rem;
  }
  .section-heading {
    align-items:start;
    flex-direction:column;
    gap:22px;
  }
  .section-heading .eyebrow {
    margin-bottom:18px;
  }
  .section-heading>p br {
    display:none;
  }
  .gallery-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .venue-section {
    gap:34px;
  }
  .venue-brand {
    min-height:280px;
    padding-inline:16px;
  }
  .venue-copy h2 {
    font-size:2.65rem;
  }
}

@media(max-width:600px) {
  .event-section {
    gap:28px;
  }
  .event-copy h2 {
    font-size:2.25rem;
  }
  .event-photo figcaption {
    font-size:.75rem;
    line-height:1.6;
  }
  .event-copy .eyebrow {
    font-size:.75rem;
    margin-bottom:19px;
  }
  .event-copy>p:not(.eyebrow) {
    font-size:1rem;
  }
  .ticket-inner {
    grid-template-columns:1fr;
    padding-block:53px;
    gap:39px;
  }
  .ticket-copy h2 {
    font-size:2.9rem;
  }
  .ticket-price {
    margin-top:27px;
    gap:20px;
  }
  .ticket-price strong {
    font-size:6rem;
  }
  .ticket-price>span {
    font-size:.9375rem;
  }
  .ticket-copy .button {
    font-size:1rem;
    gap:24px;
  }
  .ticket-menu {
    border-left:0;
    border-top:1px solid #c9c0af;
    padding:32px 0 0;
  }
  .ticket-menu h3 {
    font-size:1.875rem;
  }
  .menu-list {
    margin-top:13px;
  }
  .menu-list li {
    padding-block:16px;
  }
  .menu-date {
    font-size:.8125rem;
    line-height:1.75;
  }
  .menu-date>span {
    margin-inline:4px;
  }
  .section-heading h2 {
    font-size:2.65rem;
    max-width:350px;
  }
  .gallery-grid {
    gap:28px 14px;
  }
  .gallery-grid img {
    aspect-ratio:1;
    object-position:center 25%;
  }
  .gallery-grid figcaption {
    flex-direction:column;
    gap:2px;
    font-size:.75rem;
  }
  .gallery-grid figcaption>span:last-child {
    font-size:.75rem;
  }
  .venue-section {
    grid-template-columns:1fr;
    gap:34px;
    padding-block:0 55px;
    border-top:0;
  }
  .venue-brand {
    min-height:245px;
    padding:42px 23px;
  }
  .venue-logo-window {
    max-width:370px;
  }
  .venue-copy h2 {
    font-size:2.8rem;
  }
  .venue-copy address {
    font-size:.9375rem;
  }
  .venue-copy .eyebrow {
    margin-bottom:20px;
  }
  .venue-reminder {
    margin-top:24px;
  }
  .text-link {
    font-size:.875rem;
  }
}
