:root{--cream:#f6f2e9;--navy:#192b43;--gold:#d8b138;--amber:#f0b62d;--gray:#73777d;--line:#192b4319;--white:#fff;--error:#a43822;font-family:"Avenir Next",Avenir,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--navy);background:var(--cream);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}input:focus-visible{outline:none;box-shadow:0 0 0 3px #d8b13838;border-color:var(--navy)}[hidden]{display:none!important}.skip-link{position:fixed;left:20px;top:-80px;z-index:10;background:var(--navy);color:white;padding:15px;border-radius:10px}.skip-link:focus{top:20px}.demo-bar{height:30px;display:flex;align-items:center;justify-content:center;gap:7px;color:#73777d;font-size:10px;letter-spacing:.02em;border-bottom:1px solid var(--line);background:#f0ede5}.demo-dot{width:4px;height:4px;border-radius:50%;background:var(--gray)}
.site-header{max-width:1320px;margin:auto;padding:23px 48px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:block;width:114px;flex:none}.brand img{display:block;width:100%;height:auto}.header-caption{font-size:12px;color:var(--gray);margin-left:auto;margin-right:42px}.text-button{display:flex;align-items:center;gap:10px;padding:10px 0;border:0;background:none;font-size:12px;font-weight:600;color:var(--navy)}.text-button svg{width:17px;height:17px}.text-button:hover{color:#8e5717}
.main-grid{max-width:1320px;padding:26px 48px 0;margin:auto;display:grid;grid-template-columns:minmax(0,.91fr) minmax(0,1.09fr);gap:58px;align-items:start}.welcome{padding-top:18px;padding-bottom:5px;animation:appear .65s both}.eyebrow{display:flex;align-items:center;gap:10px;color:#73777d;font-size:10px;font-weight:600;letter-spacing:.13em}.bulb{display:inline-block;width:9px;height:9px;flex:none;border:1.1px solid var(--gold);border-radius:50%;background:radial-gradient(circle,#f7f4e9 0 30%,#eee1b9 52%,#ead6a0 69%,#e1c269 70% 100%);box-shadow:0 0 5px #d8b13816}.welcome h1{font-size:clamp(40px,4.15vw,57px);font-weight:600;letter-spacing:-2.2px;line-height:1.11;margin:23px 0 21px}.welcome h1 span{color:#ae471d}.intro{font-size:15px;line-height:1.65;margin:0;color:#465365}.intro strong{font-weight:600;color:var(--navy)}
#ticket-form{margin-top:35px;max-width:455px}.form-heading{display:flex;align-items:center;gap:10px;margin-bottom:22px}.step-number{font-size:9px;font-weight:600;border:1px solid #192b4320;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;color:#727a83}.form-heading h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.2px}.form-caption{font-size:10px;color:var(--gray);margin-left:auto}.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field label{font-size:11px;font-weight:600;display:block;margin-bottom:8px}.field input{width:100%;height:48px;border-radius:11px;border:1px solid #192b432b;background:#fff9;padding:0 14px;color:var(--navy);font-size:13px;transition:border-color .2s,box-shadow .2s,background .2s}.field input::placeholder{color:#8a8e92}.field input:hover{background:#fff}.field input[aria-invalid="true"]{border-color:var(--error)}.field-error{margin:4px 0 0;font-size:10px;line-height:1.4;color:var(--error);min-height:0}.field-error:empty{display:none}.phone-field{margin-top:18px}.primary-button{border:1px solid var(--navy);border-radius:100px;min-height:49px;background:var(--navy);color:white;display:flex;align-items:center;justify-content:center;gap:13px;padding:13px 23px;font-size:13px;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s}.primary-button:hover{background:#263d58;box-shadow:0 5px 12px #192b4314;transform:translateY(-1px)}.primary-button:active{transform:translateY(0)}.generate-button{margin-top:25px;width:100%;justify-content:space-between;padding-left:20px;padding-right:18px}.generate-button svg{width:19px;height:19px}.form-note{font-size:10px;text-align:center;color:var(--gray);margin:12px 0 0;line-height:1.5}
.scene{position:relative;border-radius:19px;overflow:hidden;animation:appear .9s .12s both;min-width:0;isolation:isolate;margin-top:0}.scene-visual{height:465px;position:relative}.scene-photo{position:absolute;inset:0;background:var(--navy)}.scene-photo>img{width:100%;height:100%;object-fit:cover;object-position:51% 50%;display:block}.photo-blend{position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,#192b4310 57%,#192b43bf 84%,#192b43 100%)}.scene-caption{position:absolute;bottom:34px;left:34px;right:25px;color:white}.live-pill{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.14em;font-weight:600;color:#eddfbd}.live-pill .bulb{width:7px;height:7px}.scene-caption p{font-size:24px;line-height:1.27;letter-spacing:-.5px;margin:15px 0 0;font-weight:500}.event-strip{height:84px;background:var(--navy);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 28px 0 34px;color:white;position:relative}.event-strip>div{display:flex;flex-direction:column;gap:5px}.event-strip>div>span{font-size:8px;color:#c6cbd2;letter-spacing:.1em}.event-strip strong{font-size:12px;font-weight:500;white-space:nowrap}.event-strip .event-time{text-align:center}.event-time strong{font-size:17px;color:var(--amber);line-height:1}.event-strip .event-place{text-align:right}.strip-bulb{width:6px;height:6px;border-width:.75px}.site-footer{max-width:1320px;margin:43px auto 0;padding:20px 48px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#7c8187;font-size:10px;line-height:1.5}.site-footer strong{font-weight:500;color:#55606d}
.result{grid-column:1/-1;max-width:900px;width:100%;margin:6px auto 0;animation:appear .45s both}.main-grid.has-result{display:block}.result-heading{text-align:center}.result-heading .eyebrow{justify-content:center}.result h1{font-size:42px;line-height:1.2;letter-spacing:-1.5px;font-weight:600;margin:17px 0 10px;outline:none}.result-heading p{font-size:14px;color:#596473;margin:0 0 26px}.ticket-controls{display:flex;justify-content:space-between;align-items:center;margin:0 0 13px}.segmented-control{display:flex;background:#192b4309;border-radius:100px;padding:4px;gap:2px}.segmented-control button{border:0;background:none;padding:8px 17px;border-radius:100px;color:#69727e;font-size:11px}.segmented-control button[aria-pressed="true"]{background:white;color:var(--navy);box-shadow:0 1px 4px #192b430d;font-weight:600}.ticket-format{font-size:10px;color:var(--gray)}.ticket-preview{width:100%;border:1px solid #192b431a;border-radius:12px;overflow:hidden;box-shadow:0 12px 34px #192b430a;background:var(--cream)}.ticket-preview canvas,.ticket-preview>img{width:100%;height:auto;display:block;aspect-ratio:2.1}.ticket-summary{font-size:11px;color:var(--gray);text-align:center;line-height:1.5;margin:14px 0 0;overflow-wrap:anywhere}.result-actions{display:flex;justify-content:center;gap:12px;margin:25px 0 0}.result-actions .primary-button{min-width:250px}.secondary-button{border:1px solid #192b4324;border-radius:100px;background:transparent;color:var(--navy);font-size:12px;padding:13px 22px;min-height:49px;transition:background .2s}.secondary-button:hover{background:#192b4307}.download-description{display:flex;align-items:center;gap:11px;justify-content:center;margin-top:17px;color:#536072}.file-icon{font-size:8px;letter-spacing:.05em;border:1px solid #192b4329;border-radius:5px;padding:8px 5px}.download-description p{font-size:10px;line-height:1.6;margin:0}.download-description p span{color:var(--gray)}.action-status{text-align:center;font-size:11px;color:var(--gray);min-height:17px;margin:12px 0 0}.action-status.error{color:var(--error)}
dialog{padding:0;width:440px;max-width:calc(100vw - 32px);border:1px solid #192b4317;border-radius:20px;background:var(--cream);color:var(--navy);box-shadow:0 25px 100px #192b4340}dialog::backdrop{background:#14233b66;backdrop-filter:blur(4px)}.dialog-content{padding:39px;position:relative}.dialog-close{position:absolute;top:16px;right:16px;border:0;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;background:#192b4309;color:var(--navy)}.dialog-close svg{width:16px;height:16px}.dialog-content h2{font-size:32px;letter-spacing:-1px;line-height:1.16;font-weight:600;margin:25px 0 15px}.dialog-content>p{font-size:12px;color:#66717f;line-height:1.6}dl{margin-top:28px}dl>div{margin-top:20px}dt{font-size:10px;color:var(--gray);margin-bottom:5px}dd{margin:0;font-size:13px;line-height:1.7}.dialog-note{border-top:1px solid var(--line);padding-top:20px;margin-top:25px!important;font-size:10px!important}
@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.scene-photo>img{transform:scale(1.14) translateY(-3%)}
.mobile-event-summary{display:none}.event-info{min-height:44px}
.mobile-ticket-details{display:none}
@media(min-width:1500px){.site-header,.main-grid,.site-footer{max-width:1430px}.main-grid{gap:85px;padding-top:37px}.welcome{padding-top:25px}.scene-visual{height:500px}.welcome h1{font-size:62px}.intro{font-size:16px}#ticket-form{margin-top:40px}.field input{height:51px}.site-footer{margin-top:55px}}
@media(max-width:1100px){.main-grid{gap:35px;padding-left:32px;padding-right:32px}.site-header,.site-footer{padding-left:32px;padding-right:32px}.header-caption{margin-right:24px}.welcome h1{font-size:44px;letter-spacing:-1.8px}.scene-visual{height:470px}.event-strip{gap:9px;padding-left:18px;padding-right:18px}.event-strip strong{font-size:10px}.event-time strong{font-size:15px}.scene-caption{left:18px}.scene-caption p{font-size:22px}.form-caption{font-size:9px}}
@media(max-width:800px){.site-header{padding:19px 25px}.brand{width:95px}.header-caption{display:none}.main-grid{display:flex;flex-direction:column;padding:14px 25px 0;gap:31px;max-width:610px}.welcome{width:100%;padding-top:9px}.welcome h1{font-size:49px;line-height:1.08;letter-spacing:-2px;margin-top:20px}.intro{font-size:14px}.desktop-break{display:none}#ticket-form{max-width:none;margin-top:31px}.form-heading{margin-bottom:19px}.form-caption{font-size:10px}.field input{font-size:14px;height:50px}.generate-button{height:52px}.scene{width:100%;border-radius:16px}.scene-visual{height:310px}.scene-photo>img{object-position:50% 59%}.scene-caption{bottom:26px;left:25px}.scene-caption p{font-size:22px}.event-strip{height:79px;padding:0 22px 0 25px;gap:15px}.event-strip strong{font-size:11px}.event-time strong{font-size:17px}.site-footer{padding:24px 25px;margin-top:16px;max-width:610px;font-size:9px}.site-footer>span:last-child{max-width:150px;text-align:right}.result h1{font-size:35px}.result-heading p{font-size:12px;line-height:1.6;margin-bottom:22px}.result-heading .eyebrow{font-size:9px}.result{margin-top:14px}.result-actions{gap:10px}.result-actions .primary-button{min-width:0;flex:1;font-size:12px;padding:12px 16px}.secondary-button{padding:12px 15px;font-size:11px}.ticket-summary{font-size:10px}.main-grid.has-result{padding-left:20px;padding-right:20px}.download-description{margin-top:21px}.result .ticket-format{font-size:9px}.segmented-control button{font-size:10px;padding:8px 13px}}
@media(max-width:380px){.main-grid{padding-left:20px;padding-right:20px}.welcome h1{font-size:43px}.eyebrow{font-size:9px}.name-fields{gap:12px}.event-strip{padding-left:19px;padding-right:14px;gap:9px}.event-strip strong{font-size:10px}.event-time strong{font-size:16px}.scene-caption{left:19px}.form-caption{font-size:9px}.dialog-content{padding:29px}}
@media(max-width:800px){.field input{font-size:16px}.mobile-event-summary{display:flex;flex-direction:column;gap:3px;font-size:11px;margin:15px 0 0;color:var(--gray)}.mobile-event-summary strong{color:var(--navy);font-weight:500}#ticket-form{margin-top:25px}}
@media(max-width:800px){.ticket-summary{display:none}.mobile-ticket-details{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;margin:19px 4px 0}.mobile-ticket-details>div{margin:0;min-width:0}.mobile-ticket-details .detail-name{grid-column:1/-1}.mobile-ticket-details dt{font-size:8px;letter-spacing:.05em;margin-bottom:4px}.mobile-ticket-details dd{font-size:12px;line-height:1.5;overflow-wrap:anywhere;font-weight:500}.mobile-ticket-details .detail-name dd{font-size:14px;font-weight:600}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.guest-option{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}.guest-toggle{display:flex;align-items:flex-start;gap:12px;cursor:pointer}.guest-toggle input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--navy);flex:none}.guest-toggle strong{display:block;font-size:12px;font-weight:600}.guest-toggle small{display:block;font-size:10px;color:var(--gray);margin-top:4px}.guest-fields{border:0;border-top:1px solid var(--line);padding:18px 0 0;margin:24px 0 0;min-width:0}.guest-fields legend{font-size:14px;font-weight:600;padding:0 12px 0 0}.guest-fields>p{font-size:11px;color:var(--gray);line-height:1.5;margin:0 0 18px}.form-error{font-size:11px;line-height:1.5;color:var(--error)}.form-error:empty{display:none}.ticket-persons{display:flex;gap:12px;margin:0 0 24px;justify-content:center;flex-wrap:wrap}.ticket-persons button{border:1px solid var(--line);border-radius:14px;padding:13px 20px;text-align:left;background:transparent;color:var(--navy);min-width:210px;max-width:100%}.ticket-persons button[aria-pressed="true"]{border-color:var(--navy);background:#192b4306}.ticket-persons strong{display:block;font-size:13px;overflow-wrap:anywhere}.ticket-persons small{display:block;font-size:10px;color:var(--gray);margin-top:4px;overflow-wrap:anywhere}.reservation-link{text-align:center;font-size:11px;color:var(--gray);line-height:1.6;overflow-wrap:anywhere;margin:10px auto 0}.result-actions{flex-wrap:wrap}.result-actions .primary-button{min-width:220px}@media(max-width:800px){.ticket-persons{gap:8px;margin-bottom:20px}.ticket-persons button{min-width:0;flex:1;padding:12px}.ticket-persons strong{font-size:12px}.ticket-persons small{font-size:9px}.result-actions .primary-button{min-width:100%;flex:1}.reservation-link{font-size:10px}.guest-fields input{font-size:16px}}

/* Brief ticket preparation, using the invitation's existing palette. */
.ticket-progress{width:256px;max-width:calc(100vw - 40px);border:1px solid var(--line);border-radius:20px;padding:0;background:var(--cream);color:var(--navy);box-shadow:0 16px 60px #192b4320;animation:progress-appear .16s ease-out both}.ticket-progress::backdrop{background:#192b431c;backdrop-filter:blur(4px)}.ticket-progress-content{padding:30px 20px 25px;text-align:center}.ticket-progress svg{width:68px;height:56px;fill:none;stroke:var(--navy);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.ticket-progress-outline{stroke-dasharray:190;stroke-dashoffset:190;animation:ticket-outline .38s ease-out forwards}.ticket-progress-perforation{stroke:var(--gray);stroke-dasharray:2 4;opacity:.5}.ticket-progress-scan{stroke:#a58324;animation:ticket-scan .85s .15s ease-in-out infinite}.ticket-progress p{font-size:12px;font-weight:500;margin:16px 0 0;line-height:1.5}@keyframes progress-appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes ticket-outline{to{stroke-dashoffset:0}}@keyframes ticket-scan{0%,100%{transform:translateY(0);opacity:.35}50%{transform:translateY(19px);opacity:1}}@media(prefers-reduced-motion:reduce){.ticket-progress-outline{stroke-dashoffset:0}.ticket-progress-scan{opacity:.5}}

/* Minimal privacy acknowledgement; all existing composition rules are preserved. */
.privacy-minimal{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:20px 0 3px;font-size:10px;color:var(--gray)}.privacy-minimal label{display:flex;align-items:center;gap:7px;cursor:pointer}.privacy-minimal input{width:13px;height:13px;margin:0;accent-color:var(--navy)}.privacy-minimal button{border:0;background:none;color:var(--navy);font:inherit;padding:4px 0;text-decoration:underline;text-underline-offset:3px}.privacy-minimal button:focus-visible{outline:2px solid var(--navy);outline-offset:4px}#privacy-dialog p{line-height:1.7;font-size:12px;color:var(--gray)}#privacy-dialog{max-width:520px}#privacy-contact{font-size:10px!important}
