:root {
  --ink: #171917;
  --ink-soft: #222520;
  --paper: #f4f0e7;
  --card: #fffdf8;
  --yellow: #f6c600;
  --muted: #60635a;
  --line: #d9d5ca;
  --focus: #176b96;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: Arial, Helvetica, sans-serif; font-size: 1rem; line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-underline-offset: .22em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
.hero :focus-visible, .masthead :focus-visible, .site-footer :focus-visible, .thanks :focus-visible { outline-color: var(--yellow); }
.wrap { width: min(100% - 6rem, 76rem); margin-inline: auto; }
.skip-link { position: absolute; left: 1rem; top: 1rem; z-index: 10; padding: .7rem 1rem; background: var(--yellow); color: var(--ink); transform: translateY(-200%); }
.skip-link:focus { transform: none; }
.masthead { background: var(--ink); color: var(--paper); border-bottom: 1px solid #ffffff19; }
.masthead-inner { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 94px; }
.shop-mark { display: flex; flex-direction: column; text-decoration: none; line-height: 1.15; }
.shop-mark > span { color: var(--yellow); font-family: "Arial Black", Arial, sans-serif; font-size: 1.9rem; font-weight: 900; letter-spacing: -.06em; }
.shop-mark small { margin-top: .4rem; font-size: .62rem; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.site-nav { display: flex; gap: 2rem; margin-left: auto; font-size: .86rem; }
.site-nav a, .masthead-phone a { text-decoration: none; }
.site-nav a:hover, .masthead-phone a:hover { color: var(--yellow); }
.masthead-phone { margin: 0 0 0 1.5rem; padding-left: 2rem; border-left: 1px solid #ffffff30; font-size: .9rem; font-weight: 700; }
.hero, .thanks { position: relative; isolation: isolate; overflow: hidden; background: var(--ink); color: var(--paper); }
.hero-visual { position: absolute; z-index: -2; inset: 0 0 0 31%; }
.hero-visual svg { display: block; width: 100%; height: 100%; }
.hero::before, .thanks::before { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, #171917 5%, #171917f5 28%, #171917b8 44%, #17191722 73%), linear-gradient(0deg, #171917bb, transparent 40%); }
.hero-inner { position: relative; padding-top: 5.25rem; padding-bottom: 5rem; }
.eyebrow { margin: 0 0 1.4rem; font-size: .68rem; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.hero .eyebrow, .thanks .eyebrow { color: var(--yellow); }
.status-dot { display: inline-block; width: 6px; height: 6px; margin-right: .6rem; border-radius: 50%; background: currentColor; vertical-align: middle; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 1.5rem; font-size: clamp(4rem, 7.3vw, 6.6rem); font-weight: 900; line-height: .96; letter-spacing: -.055em; text-transform: uppercase; color: var(--yellow); }
.title-dot { color: var(--paper); }
.hero-intro { margin-bottom: 1.1rem; font-size: clamp(1.15rem, 1.65vw, 1.5rem); line-height: 1.45; letter-spacing: -.02em; }
.lede { max-width: 27rem; color: #deded4; line-height: 1.75; font-size: .98rem; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin: 2rem 0 0; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 1.75rem; min-height: 52px; padding: .85rem 1.6rem; border: 1px solid transparent; border-radius: 2px; font: inherit; font-size: .9rem; font-weight: 700; text-decoration: none; cursor: pointer; transition: background-color .15s, color .15s; }
.btn-primary { background: var(--yellow); color: var(--ink); }
.btn-primary:hover { background: #ffda42; }
.btn-primary span { font-size: 1.15rem; }
.text-link { color: var(--paper); font-size: .84rem; text-decoration: none; border-bottom: 1px solid #ffffff55; padding-block: .5rem; }
.text-link span { margin-left: .5rem; }
.hero-note { margin: 1rem 0 0; font-size: .73rem; color: #c3c6ba; }
.event-details { background: #171917eb; border-top: 1px solid #ffffff25; }
.event-details-inner { display: grid; grid-template-columns: repeat(3, 1fr); padding-block: 1.9rem; }
.event-details-inner > div { display: flex; flex-direction: column; padding-left: 2.2rem; border-left: 1px solid #ffffff24; }
.event-details-inner > div:first-child { padding-left: 0; border-left: 0; }
.detail-label { margin-bottom: .45rem; color: var(--yellow); font-size: .62rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.event-details strong { font-size: 1.02rem; }
.event-details strong + span, .event-details a { margin-top: .25rem; color: #bfc2b7; font-size: .78rem; }
.event-details a { width: fit-content; text-decoration: none; }
.event-details a:hover { color: var(--yellow); }
.expect { padding: 5.5rem 0 4.5rem; background: var(--paper); }
.expect .eyebrow, .signup .eyebrow { color: #746021; }
h2 { margin-bottom: 1.1rem; font-size: clamp(2.25rem, 3.8vw, 3.4rem); line-height: 1.07; font-weight: 700; letter-spacing: -.045em; }
.section-lead { max-width: 37rem; margin-bottom: 2.6rem; color: var(--muted); line-height: 1.75; }
.expect-list { display: grid; grid-template-columns: repeat(3, 1fr); column-gap: 3rem; row-gap: 1.8rem; padding: 0; margin: 0; list-style: none; counter-reset: topic; }
.expect-list li { counter-increment: topic; position: relative; padding: 1.35rem 0 0 2.15rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .92rem; line-height: 1.7; }
.expect-list li::before { content: '0' counter(topic); position: absolute; left: 0; top: 1.5rem; color: #86713b; font-size: .66rem; font-weight: 700; }
.expect-list strong { display: block; margin-bottom: .4rem; color: var(--ink); font-size: 1.1rem; font-weight: 700; }
.soft-note { margin: 2.5rem 0 0; padding: 1.2rem 1.5rem; border-left: 3px solid var(--yellow); background: #e9e4d8; color: #54574e; font-size: .89rem; }
.signup { padding: 5.5rem 0; background: #e9e5da; border-top: 1px solid var(--line); }
.signup-wrap { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.signup-intro { padding-top: .5rem; }
.signup-intro .section-lead { max-width: 24rem; margin-bottom: 2rem; }
.signup-summary { padding-top: 1.8rem; border-top: 1px solid #ccc8bb; }
.signup-summary p { margin-bottom: 1.6rem; font-size: .9rem; color: #565a50; }
.signup-summary span { display: block; margin-bottom: .35rem; font-size: .65rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.signup-summary strong { display: block; color: var(--ink); font-size: 1rem; }
.signup-summary a { color: var(--ink); font-size: 1.15rem; font-weight: 700; text-decoration-color: #a79b72; }
.signup-reassurance { max-width: 20rem; padding-top: .5rem; color: #63665a; font-size: .9rem; font-style: italic; }
.rsvp-form { min-width: 0; padding: 2rem; background: var(--card); border: 1px solid #d8d3c7; border-top: 4px solid var(--yellow); border-radius: 2px; }
.form-heading { margin-bottom: 1.6rem; }
.form-heading h3 { margin-bottom: .35rem; font-size: 1.3rem; letter-spacing: -.025em; line-height: 1.25; }
.form-heading p { margin-bottom: 0; color: var(--muted); font-size: .85rem; }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.field, fieldset { min-width: 0; margin: 0 0 1.15rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.vehicle-row { grid-template-columns: 5.5rem 1fr 1fr; }
.vehicle-row .field { margin-bottom: 0; }
label, legend { display: block; margin-bottom: .4rem; font-size: .83rem; font-weight: 700; }
legend { padding: 0; }
fieldset { padding: 0; border: 0; }
.hint { margin-bottom: .5rem; color: var(--muted); font-size: .78rem; }
.req, .opt { display: inline-block; margin-left: .25rem; color: var(--muted); font-size: .65rem; font-weight: 400; }
input[type='text'], input[type='tel'], input[type='email'], select, textarea { width: 100%; min-width: 0; min-height: 46px; padding: .6rem .75rem; border: 1px solid #bebfb3; border-radius: 2px; background: #fff; color: var(--ink); font: inherit; font-size: 1rem; }
textarea { min-height: 100px; resize: vertical; }
input:user-invalid, select:user-invalid, textarea:user-invalid { border-color: #a32424; }
.checks { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem .6rem; margin: 0; padding: 0; list-style: none; }
.check { display: flex; align-items: center; gap: .55rem; min-height: 44px; margin: 0; padding: .5rem .55rem; border: 1px solid #deded3; border-radius: 2px; font-weight: 400; font-size: .8rem; cursor: pointer; }
.check:hover { background: var(--paper); }
.check:has(input:checked) { background: #fff7d4; border-color: #b89a31; }
.check input { flex-shrink: 0; width: 17px; height: 17px; margin: 0; accent-color: #66551b; }
.btn-block { width: 100%; }
.form-foot { margin: .85rem 0 0; color: var(--muted); text-align: center; font-size: .7rem; line-height: 1.6; }
.site-footer { padding: 2.8rem 0; background: var(--ink); color: var(--paper); }
.site-footer .wrap { display: grid; grid-template-columns: 1fr auto; gap: .25rem 2rem; }
.site-footer p { margin: 0; font-size: .87rem; }
.site-footer .footer-shop { color: var(--yellow); font-size: 1.25rem; font-weight: 700; }
.site-footer p:nth-child(2) { text-align: right; font-weight: 700; }
.site-footer .privacy { grid-column: 1 / -1; margin-top: 1.2rem; padding-top: 1.2rem; border-top: 1px solid #ffffff20; font-size: .7rem; color: #bfc2b7; }
.thanks { min-height: 650px; padding: 5rem 0; }
.thanks-inner { position: relative; }
.thanks h1 { font-size: clamp(3rem, 6vw, 5.5rem); }
.thanks .lede { max-width: 32rem; }
.thanks .soft-note { max-width: 32rem; background: #171917c9; color: var(--paper); }
.btn-ghost { background: transparent; border-color: #ffffff65; color: var(--paper); }
.btn-ghost:hover { background: var(--paper); color: var(--ink); }
@media (min-width: 1500px) { .hero-inner { padding-block: 6.5rem; } }
@media (max-width: 1000px) {
  .wrap { width: calc(100% - 3rem); }
  .hero-inner { padding-block: 4rem; }
  .hero-visual { left: 20%; }
  .hero::before, .thanks::before { background: linear-gradient(90deg, #171917fa, #171917d9 32%, #17191755 80%), linear-gradient(0deg, #171917cc, transparent 50%); }
  .site-nav { gap: 1.25rem; }
  .masthead-phone { margin-left: 0; padding-left: 1rem; }
  .expect-list { column-gap: 1.75rem; }
  .signup-wrap { gap: 2rem; grid-template-columns: .75fr 1.25fr; }
  .rsvp-form { padding: 1.5rem; }
  .event-details-inner > div { padding-left: 1rem; }
  .event-details strong { font-size: .9rem; }
}
@media (max-width: 700px) {
  .wrap { width: calc(100% - 2.5rem); }
  .masthead-inner { min-height: 80px; gap: 1rem; }
  .shop-mark > span { font-size: 1.6rem; }
  .site-nav { display: none; }
  .masthead-phone { padding-left: 0; border: 0; font-size: .8rem; }
  .hero-visual { inset: 0; }
  .hero::before, .thanks::before { background: linear-gradient(90deg, #171917ec, #17191770), linear-gradient(0deg, #171917f5 10%, #17191733 85%); }
  .hero-inner { padding-top: 3.5rem; padding-bottom: 2.5rem; }
  h1 { font-size: clamp(3.5rem, 13vw, 5.5rem); }
  .hero .eyebrow { font-size: .59rem; }
  .hero-intro { font-size: 1.17rem; }
  .lede { max-width: 24rem; font-size: .9rem; }
  .hero-actions { gap: 1rem; }
  .btn { padding-inline: 1.15rem; }
  .text-link { font-size: .78rem; }
  .event-details-inner { grid-template-columns: 1fr; padding-block: .5rem; }
  .event-details-inner > div, .event-details-inner > div:first-child { padding: 1rem 0; border-left: 0; border-bottom: 1px solid #ffffff22; }
  .event-details-inner > div:last-child { border-bottom: 0; }
  .detail-label { margin-bottom: .15rem; }
  .event-details strong { font-size: 1rem; }
  .expect, .signup { padding-block: 3.5rem; }
  .expect-list { grid-template-columns: 1fr 1fr; column-gap: 1.5rem; }
  .expect-list li { font-size: .86rem; padding-left: 0; padding-top: 2.6rem; }
  .expect-list li::before { top: 1rem; }
  .expect-list strong { font-size: 1rem; }
  .section-lead { font-size: .94rem; }
  .signup-wrap { grid-template-columns: 1fr; gap: 1.5rem; }
  .signup-intro .section-lead { max-width: 32rem; margin-bottom: 1rem; }
  .signup-summary { display: none; }
  .signup-reassurance { max-width: none; margin-bottom: 0; }
  .rsvp-form { padding: 1.4rem; }
  .site-footer .wrap { grid-template-columns: 1fr; }
  .site-footer p:nth-child(2) { text-align: left; }
  .thanks { padding-block: 3.5rem; }
}
@media (max-width: 380px) {
  .wrap { width: calc(100% - 2rem); }
  .rsvp-form { padding: 1rem; }
  .field-row, .vehicle-row { grid-template-columns: 1fr; gap: 0; }
  .vehicle-row .field { margin-bottom: .8rem; }
  .checks { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn { transition: none; } }
