:root {
  --wine: #4b1020;
  --wine-deep: #270810;
  --wine-soft: #77344a;
  --ivory: #f8f1e7;
  --paper: #fffaf4;
  --gold: #d6b36d;
  --gold-light: #f0dba9;
  --ink: #1e1719;
  --muted: #74666a;
  --line: rgba(75, 16, 32, .14);
  --danger: #a62d42;
  --success: #326b50;
  --shadow: 0 30px 90px rgba(27, 5, 12, .22);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: Manrope, Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--wine-deep); }
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  
  background: var(--wine-deep);
  color: var(--ivory);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::after {
  content: "";
  position: fixed;
  z-index: 30;
  inset: 0;
  pointer-events: none;
  opacity: .035;
  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='.86' numOctaves='4' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}

button, input { font: inherit; }
a { color: inherit; text-decoration: none; }
img, svg { display: block; }
button { border: 0; cursor: pointer; }
input { border: 0; outline: 0; }
::selection { background: var(--gold); color: var(--wine-deep); }
:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }

.guest-bg {
  position: fixed;
  z-index: -3;
  inset: 0;
  overflow: hidden;
}
.guest-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.72) contrast(1.08);
  transform: scale(1.04);
  animation: guestCinematicZoom 18s ease-out both;
}
.guest-bg::before,
.guest-bg::after {
  content: "";
  position: absolute;
  inset: 0;
}
.guest-bg::before {
  background:
    linear-gradient(90deg, rgba(24, 4, 10, .96) 0%, rgba(35, 7, 15, .86) 41%, rgba(35, 7, 15, .48) 69%, rgba(24, 4, 10, .7) 100%),
    linear-gradient(180deg, rgba(20, 3, 8, .55), rgba(20, 3, 8, .82));
}
.guest-bg::after {
  background: radial-gradient(circle at 75% 20%, rgba(214, 179, 109, .17), transparent 35%);
}
.guest-bg__grain {
  position: absolute;
  inset: -30%;
  opacity: .12;
  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='4' stitchTiles='stitchTiles'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E");
  animation: grainShift .35s steps(2) infinite;
}

.guest-header {
  position: relative;
  z-index: 20;
  display: flex;
  width: min(92vw, 1480px);
  min-height: 96px;
  margin: 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid rgba(255,255,255,.13);
  animation: guestReveal .9s .08s var(--ease) both;
}
.guest-brand { display: inline-flex; align-items: center; gap: 14px; }
.guest-brand img { width: 44px; height: 44px; }
.guest-brand span { display: grid; gap: 1px; }
.guest-brand strong { font-family: var(--serif); font-size: 1.38rem; font-weight: 600; letter-spacing: .06em; line-height: 1; }
.guest-brand small { color: rgba(248,241,231,.6); font-size: .62rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.guest-help {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 10px;
  padding: 0 17px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  backdrop-filter: blur(12px);
  transition: .3s ease;
}
.guest-help:hover { border-color: var(--gold); background: rgba(214,179,109,.14); }
.guest-help__pulse { position: relative; width: 8px; height: 8px; border-radius: 50%; background: #76d4a6; }
.guest-help__pulse::after { content:""; position:absolute; inset:-5px; border:1px solid #76d4a6; border-radius:50%; animation:pulse 1.8s infinite; }

.guest-layout {
  position: relative;
  z-index: 5;
  display: grid;
  width: min(92vw, 1480px);
  margin: 0 auto;
  grid-template-columns: minmax(0, .83fr) minmax(590px, 1.17fr);
  align-items: start;
  gap: clamp(52px, 7vw, 112px);
  padding: clamp(62px, 7vw, 112px) 0 70px;
}
.guest-intro { position: sticky; top: 44px; padding-top: 22px; animation: guestReveal .95s .18s var(--ease) both; }
.guest-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--gold-light);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.guest-eyebrow i { width: 27px; height: 1px; background: currentColor; }
.guest-intro h1 {
  max-width: 760px;
  margin: 22px 0 26px;
  font-family: var(--serif);
  font-size: clamp(4.5rem, 7.6vw, 8.4rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height:1.08;
}
.guest-intro h1 em { color: var(--gold-light); font-weight: 400; }
.guest-intro > p { max-width: 600px; margin: 0; color: rgba(248,241,231,.72); font-size: clamp(1rem, 1.25vw, 1.17rem); line-height: 1.75; }

.guest-steps { display: grid; max-width: 610px; gap: 0; margin: 48px 0 38px; padding: 0; list-style: none; }
.guest-steps li { position: relative; display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 14px; min-height: 76px; border-top: 1px solid rgba(255,255,255,.12); }
.guest-steps li:last-child { border-bottom: 1px solid rgba(255,255,255,.12); }
.guest-steps li > span { color: var(--gold); font-family: var(--serif); font-size: 1.55rem; font-style: italic; }
.guest-steps div { display: grid; gap: 2px; }
.guest-steps strong { font-family: var(--serif); font-size: 1.22rem; font-weight: 500; }
.guest-steps small { color: rgba(248,241,231,.52); font-size: .78rem; }

.guest-accepted { max-width: 610px; padding: 23px 25px; border: 1px solid rgba(214,179,109,.24); border-radius: 20px; background: rgba(31,6,13,.42); backdrop-filter: blur(18px); }
.guest-accepted > strong { color: var(--gold-light); font-size: .7rem; letter-spacing: .13em; text-transform: uppercase; }
.guest-accepted div { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 12px; }
.guest-accepted div span { padding: 7px 11px; border-radius: 999px; background: rgba(255,255,255,.08); font-size: .72rem; font-weight: 700; }
.guest-accepted small { display: block; color: rgba(248,241,231,.52); font-size: .72rem; line-height: 1.55; }

.guest-form-shell {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 34px;
  background: rgba(255,250,244,.975);
  box-shadow: var(--shadow);
  color: var(--ink);
  animation: formEnter 1.1s .15s var(--ease) both;
}
.guest-form-shell::before { content:""; position:absolute; top:-120px; right:-90px; width:300px; height:300px; border-radius:50%; background:radial-gradient(circle,rgba(214,179,109,.22),transparent 68%); pointer-events:none; }
.guest-form-topline { display:flex; min-height:54px; align-items:center; justify-content:space-between; gap:20px; padding:0 clamp(24px,4vw,54px); border-bottom:1px solid var(--line); color:var(--wine); font-size:.62rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.guest-form { padding: clamp(30px,4.3vw,58px); }
.guest-section-heading { display:grid; grid-template-columns:54px 1fr; align-items:start; gap:18px; margin-bottom:25px; }
.guest-section-number { display:grid; width:46px; height:46px; place-items:center; border-radius:50%; background:var(--wine); color:var(--gold-light); font-family:var(--serif); font-size:1.1rem; font-style:italic; }
.guest-section-heading h2 { margin:0; color:var(--wine); font-family:var(--serif); font-size:clamp(2.2rem,4vw,3.2rem); font-weight:500; letter-spacing:-.035em; line-height:1.08; }
.guest-section-heading p { margin:7px 0 0; color:var(--muted); font-size:.86rem; }
.guest-section-heading--addons { margin-bottom:19px; }

.guest-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:18px; }
.guest-field { display:grid; gap:8px; }
.guest-field > span { color:var(--wine); font-size:.69rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.guest-field > span b { color:var(--danger); }
.guest-field input { width:100%; min-height:58px; padding:0 17px; border:1px solid var(--line); border-radius:14px; background:#fff; color:var(--ink); transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease; }
.guest-field input::placeholder { color:#a89b9e; }
.guest-field input:focus { border-color:var(--gold); box-shadow:0 0 0 4px rgba(214,179,109,.15); transform:translateY(-1px); }
.guest-field input.is-invalid { border-color:var(--danger); box-shadow:0 0 0 4px rgba(166,45,66,.1); }
.guest-field__error,.guest-pair-error { min-height:0; color:var(--danger); font-size:.72rem; font-style:normal; line-height:1.4; }
.guest-field__error:empty,.guest-pair-error:empty { display:none; }

.guest-upload-pair { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.guest-upload {
  position:relative;
  display:grid;
  min-height:210px;
  overflow:hidden;
  place-items:center;
  align-content:center;
  gap:6px;
  padding:22px;
  border:1px dashed rgba(75,16,32,.28);
  border-radius:19px;
  background:linear-gradient(145deg,#fff,#f8eee2);
  text-align:center;
  cursor:pointer;
  isolation:isolate;
  transition:transform .3s var(--ease),border-color .3s ease,box-shadow .3s ease,background .3s ease;
}
.guest-upload:hover { transform:translateY(-3px); border-color:var(--gold); box-shadow:0 18px 36px rgba(75,16,32,.1); }
.guest-upload.is-dragover { border-color:var(--gold); background:#fff6e8; transform:scale(1.012); }
.guest-upload.has-file { border-style:solid; border-color:rgba(50,107,80,.38); background:#f8fff9; }
.guest-upload.is-invalid { border-color:var(--danger); background:#fff8f9; }
.guest-upload input { position:absolute; width:1px; height:1px; overflow:hidden; opacity:0; pointer-events:none; }
.guest-upload__icon { display:grid; width:48px; height:48px; place-items:center; margin-bottom:5px; border-radius:50%; background:var(--wine); color:var(--gold-light); transition:.3s var(--ease); }
.guest-upload:hover .guest-upload__icon { transform:translateY(-3px) rotate(-3deg); }
.guest-upload__icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.guest-upload strong { color:var(--wine); font-family:var(--serif); font-size:1.4rem; font-weight:600; }
.guest-upload small { color:var(--muted); font-size:.72rem; }
.guest-upload em { max-width:95%; overflow:hidden; color:#9b8d90; font-size:.63rem; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.guest-upload__preview { display:none; width:100%; }
.guest-upload__preview img { width:100%; height:170px; object-fit:contain; border-radius:8px; background:var(--ivory); }
.guest-upload.has-preview .guest-upload__preview { display:block; }
.guest-upload.has-preview .guest-upload__icon { display:none; }
.guest-upload--compact { min-height:175px; }
.guest-upload--compact .guest-upload__icon { width:41px; height:41px; }
.guest-upload--compact strong { font-size:1.22rem; }

.guest-divider { height:1px; margin:38px 0; background:var(--line); }
.guest-addons { display:grid; gap:14px; }
.guest-addon { padding:20px; border:1px solid var(--line); border-radius:22px; background:rgba(255,255,255,.68); animation:addonEnter .55s var(--ease) both; }
.guest-addon.is-leaving { animation:addonLeave .25s ease both; }
.guest-addon__head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; }
.guest-addon__head div { display:grid; gap:1px; }
.guest-addon__head span { color:var(--muted); font-size:.59rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.guest-addon__head strong { color:var(--wine); font-family:var(--serif); font-size:1.5rem; font-weight:600; }
.guest-addon__head button { padding:7px 10px; border-radius:999px; background:#f4e8e6; color:var(--danger); font-size:.67rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.guest-add-button { display:grid; width:100%; min-height:74px; margin-top:14px; grid-template-columns:44px 1fr; align-items:center; gap:0 13px; padding:13px 18px; border:1px solid var(--line); border-radius:18px; background:transparent; color:var(--wine); text-align:left; transition:.3s var(--ease); }
.guest-add-button:hover { border-color:var(--gold); background:#fff; transform:translateY(-2px); box-shadow:0 14px 30px rgba(75,16,32,.08); }
.guest-add-button > span { grid-row:1/3; display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:var(--wine); color:var(--gold-light); font-size:1.5rem; font-weight:300; }
.guest-add-button strong { align-self:end; font-size:.8rem; font-weight:800; letter-spacing:.05em; }
.guest-add-button small { align-self:start; color:var(--muted); font-size:.68rem; }
.guest-add-button:disabled { cursor:not-allowed; opacity:.42; transform:none; }

.guest-consent { position:relative; display:grid; grid-template-columns:24px 1fr; align-items:start; gap:12px; margin:28px 0 0; cursor:pointer; }
.guest-consent input { position:static; width:22px; height:22px; margin:2px 0 0; accent-color:var(--wine); }
.guest-consent > span { display:none; }
.guest-consent > span::after { content:""; position:absolute; left:7px; top:3px; width:5px; height:10px; border-right:2px solid #fff; border-bottom:2px solid #fff; transform:rotate(45deg) scale(0); transition:.25s var(--ease); }
.guest-consent input:checked + span { border-color:var(--wine); background:var(--wine); }
.guest-consent input:checked + span::after { transform:rotate(45deg) scale(1); }
.guest-consent input:focus-visible + span { outline:2px solid var(--gold); outline-offset:3px; }
.guest-consent p { margin:0; color:var(--muted); font-size:.74rem; line-height:1.55; }
.guest-consent a { color:var(--wine); font-weight:800; text-decoration:underline; text-decoration-color:rgba(75,16,32,.35); text-underline-offset:3px; }

.guest-security-note { display:grid; grid-template-columns:32px 1fr; align-items:start; gap:13px; margin:24px 0; padding:16px 18px; border-radius:15px; background:#f1ebe4; }
.guest-security-note svg { width:25px; height:25px; fill:none; stroke:var(--success); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.guest-security-note p { margin:0; color:#695e61; font-size:.7rem; line-height:1.58; }

.guest-alert { margin:0 0 16px; padding:13px 15px; border:1px solid rgba(166,45,66,.24); border-radius:13px; background:#fff2f4; color:var(--danger); font-size:.76rem; line-height:1.5; }
.guest-submit { position:relative; display:flex; width:100%; min-height:68px; overflow:hidden; align-items:center; justify-content:center; gap:14px; padding:0 26px; border-radius:16px; background:var(--wine); color:#fff; box-shadow:0 16px 34px rgba(75,16,32,.22); transition:transform .3s var(--ease),box-shadow .3s ease,background .3s ease; }
.guest-submit::before { content:""; position:absolute; inset:0; background:linear-gradient(105deg,transparent 25%,rgba(255,255,255,.14) 48%,transparent 70%); transform:translateX(-110%); transition:transform .8s var(--ease); }
.guest-submit:hover { transform:translateY(-3px); background:#5a1528; box-shadow:0 22px 42px rgba(75,16,32,.28); }
.guest-submit:hover::before { transform:translateX(110%); }
.guest-submit svg { width:22px; height:22px; fill:none; stroke:var(--gold-light); stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transition:transform .3s var(--ease); }
.guest-submit:hover svg { transform:translateX(4px); }
.guest-submit__label { font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.guest-submit__progress { position:absolute; inset:0; display:none; align-items:center; justify-content:center; flex-direction:column; gap:7px; background:var(--wine); }
.guest-submit__progress i { position:absolute; left:0; bottom:0; width:0%; height:4px; background:var(--gold); transition:width .2s linear; }
.guest-submit__progress b { color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.guest-submit.is-loading { pointer-events:none; }
.guest-submit.is-loading > .guest-submit__label,.guest-submit.is-loading > svg { opacity:0; }
.guest-submit.is-loading .guest-submit__progress { display:flex; }
.guest-submit-note { margin:13px 0 0; color:#8c7e82; font-size:.67rem; text-align:center; }
.guest-submit-note a { color:var(--wine); font-weight:800; }
.guest-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }

.guest-success { display:none; min-height:680px; align-content:center; justify-items:center; gap:18px; padding:clamp(38px,7vw,80px); text-align:center; }
.guest-success.is-visible { display:grid; animation:successEnter .8s var(--ease) both; }
.guest-success__mark { display:grid; width:98px; height:98px; place-items:center; margin-bottom:4px; border-radius:50%; background:rgba(50,107,80,.1); }
.guest-success__mark span { position:relative; width:48px; height:48px; border-radius:50%; background:var(--success); box-shadow:0 0 0 10px rgba(50,107,80,.12); }
.guest-success__mark span::after { content:""; position:absolute; left:15px; top:10px; width:13px; height:22px; border-right:3px solid #fff; border-bottom:3px solid #fff; transform:rotate(45deg); }
.guest-success .guest-eyebrow { color:var(--wine-soft); }
.guest-success h2 { max-width:560px; margin:0; color:var(--wine); font-family:var(--serif); font-size:clamp(3.2rem,6vw,5.7rem); font-weight:500; letter-spacing:-.05em; line-height:1.08; }
.guest-success > p { max-width:540px; margin:0; color:var(--muted); font-size:.9rem; line-height:1.7; }
.guest-reference { display:grid; min-width:min(100%,390px); gap:4px; margin:9px 0 5px; padding:18px 24px; border:1px dashed rgba(75,16,32,.28); border-radius:16px; background:#fff; }
.guest-reference small { color:var(--muted); font-size:.59rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.guest-reference strong { color:var(--wine); font-size:1.04rem; letter-spacing:.08em; }
.guest-primary-button { display:inline-flex; min-height:56px; align-items:center; justify-content:center; padding:0 24px; border-radius:14px; background:var(--wine); color:#fff; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }

.guest-footer { position:relative; z-index:5; display:flex; width:min(92vw,1480px); margin:0 auto; align-items:center; justify-content:space-between; gap:20px; padding:25px 0 35px; border-top:1px solid rgba(255,255,255,.12); color:rgba(248,241,231,.48); font-size:.63rem; letter-spacing:.07em; text-transform:uppercase; }

@keyframes guestCinematicZoom { from{transform:scale(1.12)} to{transform:scale(1.03)} }
@keyframes grainShift { 0%{transform:translate(0,0)} 25%{transform:translate(2%,-1%)} 50%{transform:translate(-1%,2%)} 75%{transform:translate(1%,1%)} 100%{transform:translate(0,0)} }
@keyframes guestReveal { from{opacity:0;transform:translateY(28px)} to{opacity:1;transform:none} }
@keyframes formEnter { from{opacity:0;transform:translateY(45px) scale(.985);clip-path:inset(8% 0 0 0 round 34px)} to{opacity:1;transform:none;clip-path:inset(0 0 0 0 round 34px)} }
@keyframes addonEnter { from{opacity:0} to{opacity:1} }
@keyframes addonLeave { to{opacity:0;transform:scale(.97);max-height:0;padding-top:0;padding-bottom:0;margin:0} }
@keyframes successEnter { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:none} }
@keyframes pulse { 0%{transform:scale(.5);opacity:1} 100%{transform:scale(1.8);opacity:0} }

@media (max-width: 1120px) {
  .guest-layout { grid-template-columns:1fr; max-width:820px; }
  .guest-intro { position:relative; top:auto; padding-top:0; }
  .guest-intro h1 { max-width:740px; font-size:clamp(4.8rem,11vw,8rem); }
  .guest-steps { grid-template-columns:repeat(3,1fr); max-width:none; gap:10px; }
  .guest-steps li { display:grid; min-height:140px; align-content:start; grid-template-columns:1fr; gap:8px; padding:17px; border:1px solid rgba(255,255,255,.12)!important; border-radius:16px; background:rgba(30,5,12,.35); }
  .guest-accepted { max-width:none; }
}

@media (max-width: 700px) {
  .guest-header { width:90vw; min-height:78px; }
  .guest-brand img { width:38px; height:38px; }
  .guest-brand strong { font-size:1.12rem; }
  .guest-brand small { display:none; }
  .guest-help { min-height:40px; padding:0 13px; font-size:.61rem; }
  .guest-layout { width:100%; gap:38px; padding:48px 0 26px; }
  .guest-intro { width:90vw; margin:0 auto; }
  .guest-intro h1 { margin-top:18px; font-size:clamp(4.2rem,20vw,6.4rem); }
  .guest-intro > p { font-size:.94rem; }
  .guest-steps { grid-template-columns:1fr; margin:34px 0 24px; gap:8px; }
  .guest-steps li { min-height:0; grid-template-columns:45px 1fr; align-items:center; padding:14px; }
  .guest-steps li > span { font-size:1.25rem; }
  .guest-accepted { padding:19px; }
  .guest-form-shell { width:100%; border-radius:28px 28px 0 0; border-right:0; border-bottom:0; border-left:0; }
  .guest-form-topline { padding:0 5vw; }
  .guest-form { padding:34px 5vw 48px; }
  .guest-section-heading { grid-template-columns:44px 1fr; gap:12px; }
  .guest-section-number { width:39px; height:39px; font-size:.95rem; }
  .guest-section-heading h2 { font-size:2.55rem; }
  .guest-fields,.guest-upload-pair { grid-template-columns:1fr; }
  .guest-upload { min-height:178px; }
  .guest-addon { padding:14px; }
  .guest-addon .guest-upload-pair { grid-template-columns:1fr 1fr; gap:8px; }
  .guest-addon .guest-upload { min-height:152px; padding:13px 8px; }
  .guest-addon .guest-upload__icon { width:38px; height:38px; }
  .guest-addon .guest-upload strong { font-size:1.05rem; }
  .guest-addon .guest-upload small { display:none; }
  .guest-submit { min-height:64px; }
  .guest-success { min-height:650px; padding:48px 6vw; }
  .guest-footer { width:90vw; align-items:flex-start; flex-direction:column; padding-bottom:26px; }
}

@media (max-width: 420px) {
  .guest-help { width:40px; padding:0; justify-content:center; font-size:0; }
  .guest-help__pulse { width:9px; height:9px; }
  .guest-intro h1 { font-size:4.25rem; }
  .guest-addon .guest-upload strong { font-size:.96rem; }
  .guest-form-topline span:last-child { display:none; }
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
}

/* Guest verification v3.1 usability refinements */
:root { --sans: "DM Sans", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.guest-accepted div span { white-space: nowrap; }
.guest-upload { cursor: pointer; }
.guest-upload small { max-width: 19ch; line-height: 1.45; text-align: center; }
.guest-upload::before { content: "Tap to choose"; position: absolute; top: 12px; right: 12px; padding: 5px 8px; border-radius: 999px; background: rgba(75,16,32,.08); color: var(--wine); font-size: .52rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.guest-upload.has-file::before { content: "Change file"; background: rgba(50,107,80,.1); color: var(--success); }
.guest-submit-note { line-height: 1.55; }
.guest-upload-cell { display: grid; min-width: 0; align-content: start; gap: 8px; }
.guest-upload-cell .guest-upload { height: auto; min-height: 210px; }
.guest-remove-file { min-height: 44px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--wine); cursor: pointer; }
.guest-arrival-note { margin: 12px 0 22px; color: var(--muted); font-size: .88rem; line-height: 1.6; }
.guest-omission { margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 14px; }
.guest-omission label { display: flex; gap: 10px; align-items: center; min-height: 44px; font-weight: 700; }
.guest-omission input { width: 22px; height: 22px; flex-shrink: 0; accent-color: var(--wine); }
.guest-omission p { margin: 6px 0 0; font-size: .82rem; line-height: 1.6; }
.guest-upload.is-omitted { opacity: .55; pointer-events: none; }
.guest-field { min-width: 0; }
.guest-field input { min-width: 0; max-width: 100%; font-size: 16px; }
.guest-footer { overflow-wrap: anywhere; }
[hidden] { display: none !important; }
@media (max-width: 420px) {
  .guest-addon .guest-upload-pair { grid-template-columns: 1fr; }
  .guest-help { width: auto; padding: 8px 12px; font-size: .72rem; }
}
@media (max-width:700px) {
  .guest-accepted div { display: grid; grid-template-columns: 1fr 1fr; }
  .guest-accepted div span { text-align: center; }
  .guest-upload::before { top: 9px; right: 9px; }
}
