:root {
  --forest: #073b29;
  --deep: #042319;
  --green: #a8d42a;
  --green-soft: #dceca8;
  --orange: #f29b1b;
  --yellow: #ffc928;
  --cream: #fff4df;
  --paper: #fffaf1;
  --ink: #112b21;
  --muted: #5b6d62;
  --line: rgba(7, 59, 41, .16);
  --progress: 0%;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--deep); color: var(--ink); font-family: Arial, Helvetica, sans-serif; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea { min-height: 3rem; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .6; }
:focus-visible { outline: 3px solid var(--yellow); outline-offset: 3px; }

.shell { position: relative; min-height: 100vh; overflow: hidden; background: radial-gradient(circle at 8% 4%, rgba(168, 212, 42, .18), transparent 22rem), radial-gradient(circle at 94% 80%, rgba(242, 155, 27, .16), transparent 26rem), var(--deep); }
.texture { position: fixed; inset: 0; z-index: 3; pointer-events: none; opacity: .06; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E"); }
.layout { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 1.25rem; width: min(100%, 84rem); margin: 0 auto; padding: 1rem; }
.poster-side { order: 2; }
.content-side { order: 1; display: flex; flex-direction: column; gap: 1.25rem; padding: 1rem 0 .5rem; }
.poster-frame { overflow: hidden; border: .5rem solid var(--paper); background: var(--paper); box-shadow: 0 1.5rem 4rem rgba(0, 0, 0, .26); transform: rotate(-1.2deg); }
.poster-frame img { display: block; width: 100%; height: auto; }
.poster-caption { margin: 1.2rem .5rem 0; color: rgba(255, 244, 223, .74); font-size: .9rem; line-height: 1.5; }
.hero { color: var(--cream); }
.eyebrow, .form-eyebrow { margin: 0 0 .65rem; color: var(--green); font-size: .73rem; font-weight: 800; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; }
.date-pill { display: inline-block; margin: 0 0 1rem; padding: .48rem .75rem; border-radius: .25rem; background: var(--orange); color: var(--deep); font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
h1, h2, p { margin-top: 0; }
h1 { max-width: 13ch; margin-bottom: 1rem; font-size: clamp(2.8rem, 11vw, 5.75rem); font-weight: 900; letter-spacing: -.07em; line-height: .88; }
h1 span { display: block; color: var(--green); }
.intro { max-width: 38rem; margin-bottom: 0; color: rgba(255, 244, 223, .76); font-size: 1rem; line-height: 1.55; }
.capacity-card { display: grid; grid-template-columns: auto 1fr; gap: .2rem 1rem; align-items: end; padding: 1rem; border: 1px solid rgba(220, 236, 168, .28); border-radius: 1rem; background: rgba(9, 78, 49, .72); color: var(--cream); }
.capacity-label { display: block; color: rgba(255, 244, 223, .72); font-size: .75rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.capacity-card strong { display: block; color: var(--green); font-size: 2.4rem; line-height: .95; }
.capacity-track { align-self: center; height: .7rem; margin-top: .35rem; border-radius: 99rem; background: rgba(255, 244, 223, .16); overflow: hidden; }
.capacity-track span { display: block; width: var(--progress); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--green), var(--yellow)); transition: width .35s ease; }
.capacity-card p { grid-column: 1 / -1; margin: .55rem 0 0; color: rgba(255, 244, 223, .72); font-size: .83rem; }
.form-card { padding: 1.25rem; border-radius: 1rem; background: var(--paper); box-shadow: 0 1rem 3rem rgba(0, 0, 0, .18); }
.form-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.form-heading .form-eyebrow { color: var(--forest); margin-bottom: .25rem; }
h2 { margin-bottom: .15rem; color: var(--forest); font-size: clamp(1.75rem, 5vw, 2.5rem); letter-spacing: -.05em; line-height: 1; }
.badge { padding: .4rem .55rem; border-radius: .3rem; background: var(--green-soft); color: var(--forest); font-size: .7rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.form-grid { display: grid; grid-template-columns: 1fr; gap: .9rem; }
.field { display: grid; gap: .4rem; }
.field span { color: var(--forest); font-size: .84rem; font-weight: 800; }
.field b { color: #c34c1a; }
.field small { color: var(--muted); font-weight: 500; }
.field input, .field select, .field textarea { width: 100%; border: 1px solid var(--line); border-radius: .55rem; padding: .72rem .8rem; background: #fff; color: var(--ink); font-size: 1rem; }
.field textarea { min-height: 5.5rem; resize: vertical; }
.field input::placeholder, .field textarea::placeholder { color: #9aa69d; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--forest); box-shadow: 0 0 0 3px rgba(168, 212, 42, .33); outline: none; }
.honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.form-error { margin: 1rem 0 0; padding: .75rem; border-left: 4px solid #c34c1a; background: #fff0e8; color: #8c2c0c; font-size: .9rem; line-height: 1.45; }
.primary-button, .secondary-button { display: flex; min-height: 3.25rem; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; margin-top: 1.1rem; border: 0; border-radius: .55rem; padding: .8rem 1rem; font-weight: 900; transition: transform .2s ease, box-shadow .2s ease; }
.primary-button { background: var(--orange); color: var(--deep); box-shadow: .3rem .3rem 0 var(--forest); }
.primary-button:hover:not(:disabled) { transform: translate(-.12rem, -.12rem); box-shadow: .45rem .45rem 0 var(--forest); }
.primary-button strong { font-size: 1.4rem; }
.secondary-button { justify-content: center; border: 2px solid var(--forest); background: transparent; color: var(--forest); }
.form-footnote, .success-note { margin: .85rem 0 0; color: var(--muted); font-size: .73rem; line-height: 1.45; }
.success-card { padding-top: .5rem; }
.success-mark { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; margin-bottom: 1rem; border-radius: 50%; background: var(--green); color: var(--deep); font-size: 2rem; font-weight: 900; }
.success-card h2 { font-size: clamp(2rem, 7vw, 3.5rem); }
.success-card > p:not(.form-eyebrow):not(.success-note) { color: var(--muted); line-height: 1.55; }
.confirmation-code { display: grid; gap: .3rem; margin: 1.25rem 0; padding: .9rem; border-radius: .55rem; background: var(--forest); color: var(--cream); }
.confirmation-code span { font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.confirmation-code strong { color: var(--yellow); font-size: 1.6rem; letter-spacing: .13em; }
.footer { display: flex; flex-wrap: wrap; gap: .3rem .55rem; padding: .35rem .25rem 0; color: rgba(255, 244, 223, .62); font-size: .78rem; line-height: 1.45; }
[hidden] { display: none !important; }

@media (min-width: 640px) { .layout { padding: 2rem; } .form-card { padding: 1.75rem; } .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .wide { grid-column: 1 / -1; } }
@media (min-width: 900px) { .layout { grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; min-height: 100vh; padding-block: 3.5rem; } .poster-side { order: 1; } .content-side { order: 2; padding-block: 1rem; } .poster-frame { max-height: calc(100vh - 7rem); } .poster-frame img { max-height: calc(100vh - 7.7rem); object-fit: contain; object-position: top; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }
