:root{--ink:#1b2637;--muted:#738092;--line:#e6e9ef;--coral:#f45d78;--gold:#d7ac70;--surface:#fff;--bg:#f6f8fb;--dark:#15131a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--ink)}button,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}a{text-decoration:none;color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #9fc9ff;outline-offset:3px}.hidden{display:none!important}.app{min-height:100vh}.header{background:#fff;border-bottom:1px solid var(--line);padding:19px max(24px,calc((100vw - 1280px)/2));display:flex;justify-content:space-between;align-items:center;gap:15px}.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:.04em}.brandmark{width:39px;height:39px;display:grid;place-items:center;background:linear-gradient(135deg,#f8677e,#8b65e8);color:white;border-radius:12px}.brand small{display:block;font-size:9px;color:#8490a1;letter-spacing:.19em;font-weight:700;margin-top:2px}.coral{color:var(--coral)}.header-right{display:flex;align-items:center;gap:14px}.demo-tag{color:#289e78;background:#e6fbf3;padding:9px 13px;border-radius:50px;font-size:10px;letter-spacing:.08em;font-weight:800}.small-btn{background:white;border:1px solid var(--line);padding:10px 15px;border-radius:9px;color:#697486;font-size:12px}.main{max-width:1280px;margin:auto;padding:0 24px 80px}.hero{text-align:center;padding:62px 0 36px;background:radial-gradient(ellipse at center,#fff 10%,transparent 75%)}.eyebrow{font-size:10px;letter-spacing:.22em;font-weight:800;color:#bd8762;text-transform:uppercase}.hero h1{font:500 clamp(38px,5vw,65px)/1.15 'Playfair Display',serif;letter-spacing:-.035em;margin:18px auto}.hero h1 em{color:var(--coral);font-weight:400}.hero p{max-width:680px;margin:auto;font-size:14px;line-height:1.8;color:var(--muted)}.steps{display:flex;justify-content:space-between;gap:7px;background:#fff;padding:8px;border:1px solid var(--line);border-radius:17px;box-shadow:0 10px 30px #20334c08;margin-bottom:38px;position:sticky;top:8px;z-index:4}.steps button{flex:1;min-width:0;background:transparent;border:0;border-radius:11px;padding:15px 8px;color:#7c8898;font-weight:700;font-size:12px;transition:.25s}.steps button span{font-size:10px;display:inline-grid;place-items:center;background:#eef0f5;border-radius:50%;width:25px;height:25px;margin-right:5px}.steps button.active{background:#19283d;color:#fff;box-shadow:0 7px 15px #1c2c4022}.steps button.active span{background:#ffffff26}.panel-step{display:none;animation:appear .45s ease both}.panel-step.active{display:block}@keyframes appear{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.section-top{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:26px}.section-top h2{font:500 clamp(32px,3.6vw,46px) 'Playfair Display',serif;letter-spacing:-.025em;margin:11px 0}.section-top p{color:var(--muted);font-size:13px;line-height:1.7;max-width:660px;margin:0}.counter{background:#edf1f6;color:#7b8494;border-radius:50px;padding:8px 13px;font-size:11px;white-space:nowrap}.split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:22px;align-items:start}.card{background:white;border:1px solid var(--line);border-radius:19px;box-shadow:0 10px 28px #27394a06;padding:24px}.cardtop{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:20px}.cardtop strong{font-size:15px}.toolbar{display:flex;gap:12px}.textbtn{border:0;background:transparent;color:#df5870;font-size:11px;font-weight:800}.filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.filters button{background:#f3f5f8;border:1px solid #e9ebf0;border-radius:20px;padding:8px 11px;font-size:10px;font-weight:700;color:#7c8694}.filters button.active{background:#1e2b40;color:white}.guestlist{max-height:580px;overflow:auto;padding-right:5px}.guestrow{display:grid;grid-template-columns:20px 39px minmax(0,1fr) 116px;gap:10px;align-items:center;padding:12px 5px;border-bottom:1px solid #f0f1f4}.guestrow input{accent-color:var(--coral);width:16px;height:16px}.avatar{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:#f5eaf0;color:#d45d77;font-size:11px;font-weight:800}.guestinfo{min-width:0}.guestinfo b{font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guestinfo small{font-size:10px;color:#9ba4b0}.guestrow select{border:1px solid #e8e9ee;background:#fff;border-radius:7px;padding:9px 4px;color:#566172;font-size:10px;max-width:116px}.setup{padding:25px}.event-preview{text-align:center;border-radius:13px;background:radial-gradient(circle at top,#71502b,#1d1a1a 64%);color:#f5ddaa;padding:34px 15px;margin:19px 0 22px}.event-emblem{font-size:43px}.event-kicker{font-size:9px;letter-spacing:.2em}.event-preview h3{font:500 32px/1.12 'Playfair Display',serif;margin:15px 0}.event-preview p{font-size:11px;line-height:1.8;color:#e6cfab}.event-rule{width:65px;height:1px;background:#caa667;margin:auto}.summary-row{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.summary-row span{color:#8993a1}.summary-row b{text-align:right}.btn{border:0;border-radius:10px;padding:14px 20px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:12px;font-weight:800;transition:transform .2s,box-shadow .2s;min-height:45px}.btn:hover{transform:translateY(-2px);box-shadow:0 9px 20px #243a4917}.btn.primary{background:var(--coral);color:white}.btn.light{background:white;color:#3e4b60;border:1px solid #dce2ea}.btn.full{width:100%;margin-top:20px}.fine{font-size:10px;color:#98a1af;line-height:1.7;margin:15px 0 0}.studio{display:grid;grid-template-columns:minmax(270px,.95fr) minmax(300px,1.15fr);gap:25px;align-items:start}.guestpick{max-height:710px;overflow:auto}.invite-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:11px;border:1px solid transparent;width:100%;text-align:left;background:white;margin:5px 0}.invite-item:hover,.invite-item.active{background:#fff7f8;border-color:#f5d5dc}.invite-item img{width:46px;height:69px;object-fit:cover;border-radius:4px}.invite-item span{flex:1;font-size:12px;font-weight:700}.invite-item small{display:block;color:#9ba2ad;font-weight:400;margin-top:6px}.invite-item i{color:#f46c81;font-style:normal}.callout{display:flex;gap:12px;background:#f8f1eb;border-radius:12px;color:#866f59;font-size:12px;line-height:1.7;padding:15px;margin-top:15px}.preview-col{display:flex;flex-direction:column;align-items:center;gap:18px}.invitation{position:relative;width:min(100%,360px);aspect-ratio:2/3;box-shadow:0 20px 65px #151b2b24;border-radius:13px;overflow:hidden;background:#211b1b;flex:none}.invitation>img{width:100%;height:100%;display:block}.invite-name{position:absolute;left:15%;width:70%;top:46.9%;height:7.4%;display:flex;align-items:center;justify-content:center;text-align:center;color:#32201b;font:600 clamp(12px,1.8vw,20px) 'Playfair Display',serif;white-space:nowrap;overflow:hidden}.invite-qr{position:absolute;left:36.5%;top:58.2%;width:27%;aspect-ratio:1;display:grid;place-items:center}.invite-qr canvas{width:100%!important;height:100%!important}.preview-actions,.nextline{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.nextline{margin:35px auto}.experience-teaser{display:flex;align-items:center;justify-content:center;gap:65px;padding:70px 40px;border-radius:25px;background:radial-gradient(circle at 22% 45%,#9d734f,#2a1e26 60%,#191720);color:white;min-height:390px}.teaser-art{font-size:145px;color:#efd2a2;text-shadow:0 20px 60px #d5a7697d}.experience-teaser h3{font:500 44px/1.2 'Playfair Display',serif;margin:20px 0}.experience-teaser p{color:#d7c5bb;font-size:13px;max-width:430px;line-height:1.7}.select{padding:12px 14px;border:1px solid #dce2e9;border-radius:10px;background:#fff;color:#2e3a4d;font-size:12px;min-width:190px}.select.full{width:100%}.scanbox{height:260px;background:radial-gradient(circle,#344d60,#101c29);border-radius:15px;position:relative;overflow:hidden;display:grid;place-items:center}.corners{position:absolute;inset:38px 90px;border:2px solid #ffffff78;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:white;gap:12px;overflow:hidden}.scanicon{font-size:55px}.corners small{font-size:10px}.scanline{position:absolute;height:2px;left:0;right:0;background:#71f7d6;box-shadow:0 0 22px #71f7d6;animation:scan 2.4s linear infinite}@keyframes scan{0%{top:0}50%{top:100%}100%{top:0}}#camera{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}.scan-controls{display:flex;gap:10px;margin:15px 0}.input-label{font-size:11px;color:#7d8998;display:block;margin:20px 0 8px}.verification{min-height:410px;display:flex;flex-direction:column;justify-content:center}.placeholder{text-align:center;color:#9ca5b2}.placeholder span{font-size:55px;color:#d9ad76}.placeholder h3{color:#293448;font:500 29px 'Playfair Display',serif}.placeholder p{font-size:12px;line-height:1.8}.verified-icon{width:55px;height:55px;background:#e4fbef;border-radius:50%;display:grid;place-items:center;color:#249b67;font-size:28px}.verified-name{font:500 33px 'Playfair Display',serif;margin:16px 0 5px}.verified-tier{display:inline-block;background:#f6e9d5;color:#916d3d;padding:7px 13px;border-radius:40px;font-size:10px;font-weight:800}.verified-facts{margin:20px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.verified-facts div{background:#f7f8fa;padding:15px;border-radius:10px}.verified-facts small{display:block;color:#929cac;font-size:10px;margin-bottom:7px}.verified-facts b{font-size:12px}.verify-actions{display:flex;gap:8px;flex-wrap:wrap}.verify-actions .btn{flex:1;padding:12px 8px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:25px 0}.metric{background:white;border:1px solid var(--line);padding:22px 17px;border-radius:15px}.metric span{font-size:9px;color:#7e8998;font-weight:800;letter-spacing:.07em}.metric b{font-size:37px;display:block;margin:12px 0}.metric small{font-size:10px;color:#9ca6b4}.dashgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.dashcard{min-height:200px}.progress{height:13px;border-radius:30px;background:#edf0f5;overflow:hidden;margin:30px 0}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#fa7c8d,#d9ac78);border-radius:30px;transition:width .6s}.category-row{display:grid;grid-template-columns:100px 1fr 45px;gap:12px;align-items:center;margin:15px 0;font-size:11px}.category-track{height:8px;background:#f0f2f5;border-radius:20px;overflow:hidden}.category-track span{display:block;height:100%;border-radius:20px;transition:width .6s}.activity-row{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-bottom:1px solid #edf0f3;font-size:11px}.activity-row small{color:#9ca5b0}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:650px}th{font-size:9px;color:#99a4b2;letter-spacing:.1em;padding:12px;border-bottom:1px solid var(--line)}td{padding:14px 12px;font-size:11px;border-bottom:1px solid #f1f2f5}.state-ok{color:#199b70;font-weight:700}.state-no{color:#a6afbb}.finish{text-align:center;padding:70px 20px 35px}.finish h2{font:500 47px 'Playfair Display',serif;margin:17px}.finish p{color:#8d97a6;max-width:530px;margin:0 auto 25px;line-height:1.8;font-size:13px}.experience{position:fixed;inset:0;z-index:30;background:radial-gradient(ellipse at 50% 35%,#4a342e,#15111b 70%);color:#fff;display:none;overflow:auto;overscroll-behavior:contain}.experience.open{display:block}.experience:before{content:'';position:fixed;inset:0;pointer-events:none;opacity:.15;background-image:radial-gradient(#d4b38c .7px,transparent .7px);background-size:29px 29px}.exit-exp{position:fixed;right:22px;top:20px;z-index:50;border:1px solid #ffffff35;background:#1a1721bc;color:#fff;border-radius:40px;padding:11px 17px;font-size:12px;backdrop-filter:blur(10px)}.exp-intro,.exp-reveal,.exp-pass{min-height:100dvh;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:72px 20px 45px;animation:fadeUp .8s both}@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}.exp-spark{font-size:32px;color:#d6ae78}.exp-intro h2{font:500 clamp(36px,5vw,65px)/1.17 'Playfair Display',serif;margin:16px 0 28px}.exp-intro h2 em{color:#e5bc87;font-weight:400}.envelope-wrap{width:min(420px,85vw);height:290px;perspective:1000px;margin:10px 0 25px;filter:drop-shadow(0 30px 35px #0009)}.envelope{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s}.envelope-back{position:absolute;inset:0;background:linear-gradient(135deg,#a47c53,#e9c697 45%,#af8559);border-radius:9px}.envelope-front{position:absolute;inset:0;background:linear-gradient(145deg,#b68a59,#efd4a7);clip-path:polygon(0 24%,50% 67%,100% 24%,100% 100%,0 100%);z-index:4;border-radius:9px}.envelope-flap{position:absolute;inset:0;background:linear-gradient(160deg,#f0d7af,#a77b50);clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top center;z-index:5;transition:transform 1s cubic-bezier(.2,.7,.1,1),z-index 0s 0.5s}.seal{position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);width:55px;height:55px;border-radius:50%;background:radial-gradient(circle,#8b172e,#5e1021);box-shadow:0 4px 12px #3313227a;border:3px double #c77b75;display:grid;place-items:center;font-size:28px;color:#f7d4a1;z-index:6;transition:opacity .3s}.envelope-letter{position:absolute;top:10%;left:8%;width:84%;height:83%;background:#fff9ed;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#573e2b;gap:15px;z-index:2;transition:transform 1.3s cubic-bezier(.2,.8,.2,1);box-shadow:0 3px 14px #0002}.envelope-letter span,.envelope-letter small{font-size:10px;letter-spacing:.16em}.envelope-letter strong{font:500 26px 'Playfair Display',serif}.envelope.opened .seal{opacity:0}.envelope.opened .envelope-flap{transform:rotateX(180deg);z-index:1}.envelope.opened .envelope-letter{transform:translateY(-120px)}.btn.gold{background:linear-gradient(120deg,#e7c38e,#c99c63);color:#33251d;box-shadow:0 9px 35px #d4aa6744}.btn.transparent{background:#ffffff12;color:#fff;border:1px solid #ffffff3d}.exp-hint{font-size:11px;color:#c2aea0}.exp-reveal h2,.exp-pass h2{font:500 clamp(37px,5vw,58px) 'Playfair Display',serif;margin:15px 0 22px}.reveal-invite{width:min(350px,75vw);box-shadow:0 0 60px #c797533d,0 30px 70px #000a;animation:cardRise 1s cubic-bezier(.16,1,.3,1) both}@keyframes cardRise{from{opacity:0;transform:translateY(100px) rotateX(15deg) scale(.87)}to{opacity:1;transform:none}}.reveal-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:26px}.exp-pass{width:min(800px,100%);margin:auto;justify-content:flex-start;padding-top:90px}.pass-badge{padding:10px 20px;border:1px solid #d7ac70;border-radius:40px;font-size:11px;color:#edcb99;letter-spacing:.16em}.pass-qr{width:min(290px,65vw);aspect-ratio:1;background:#fff;border-radius:17px;padding:15px;margin:25px auto 12px;box-shadow:0 0 45px #d1a76740}.pass-qr canvas{width:100%!important;height:100%!important}.pass-status{background:#423a35;border:1px solid #685747;padding:8px 15px;border-radius:40px;font-size:11px;color:#eacb99}.pass-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;margin:28px 0}.pass-details div{border:1px solid #ffffff25;background:#ffffff0b;padding:18px;border-radius:12px;text-align:left}.pass-details small{display:block;color:#b8aab0;font-size:10px;margin-bottom:8px}.pass-details b{font-size:13px}.pass-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.pass-note{color:#a69aa4;font-size:11px;line-height:1.8;max-width:570px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#1c2b3d;color:#fff;padding:14px 22px;border-radius:10px;box-shadow:0 10px 30px #0004;font-size:12px;opacity:0;pointer-events:none;transition:.25s;z-index:90}.toast.on{opacity:1;transform:translate(-50%,0)}@media(max-width:850px){.split,.studio,.dashgrid{grid-template-columns:1fr}.metrics{grid-template-columns:repeat(2,1fr)}.steps button{font-size:0}.steps button span{font-size:11px;margin:0}.steps{top:0}.experience-teaser{gap:25px}.teaser-art{font-size:90px}}@media(max-width:550px){.header{padding:13px 16px}.brand{font-size:14px}.brandmark{width:34px;height:34px}.header-right .demo-tag{display:none}.main{padding:0 15px 60px}.hero{padding:42px 0 25px}.hero h1{font-size:36px}.hero p{font-size:12px}.steps{margin-bottom:26px}.section-top{align-items:start;flex-direction:column}.card{padding:17px}.guestrow{grid-template-columns:18px 32px minmax(0,1fr) 98px;gap:7px}.guestrow select{max-width:98px;font-size:9px}.guestinfo b{font-size:11px}.experience-teaser{padding:35px 20px;flex-direction:column;text-align:center}.experience-teaser h3{font-size:34px}.teaser-art{font-size:95px}.metrics{gap:8px}.metric{padding:15px 11px}.metric b{font-size:30px}.pass-details{gap:8px}.pass-details div{padding:12px}.pass-details b{font-size:11px}.envelope-wrap{height:210px}.envelope-letter strong{font-size:19px}.exit-exp span{display:none}.exp-pass{padding-top:75px}.verify-actions .btn{flex-basis:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* PATCH v2: image-registered dynamic fields; exact 1024 x 1536 design coordinates */
.invite-name{left:16%;width:68%;top:44.05%;height:6.65%;background:#fffaf1;border-radius:4px;color:#39251f;font-size:clamp(12px,1.7vw,19px);line-height:1;z-index:2;padding:0 4px}
.invite-qr{left:37.1%;top:54.25%;width:25.8%;aspect-ratio:1;background:#fff;padding:2px;z-index:2}
.invite-qr canvas{width:100%!important;height:100%!important;display:block}
.envelope-wrap{height:290px!important;overflow:visible}
.envelope{height:230px;top:25px}
.envelope-back{z-index:0}
.envelope-letter{z-index:2;top:12%;height:76%;justify-content:flex-start;padding-top:30px;gap:12px;overflow:hidden}
.envelope-front{z-index:4;clip-path:polygon(0 25%,50% 69%,100% 25%,100% 100%,0 100%);pointer-events:none}
.envelope-flap{z-index:6;backface-visibility:visible}
.envelope .seal{z-index:7}
.envelope.opened .envelope-letter{transform:translateY(-130px)}
.envelope.opened .envelope-front{z-index:4}
.exp-reveal .invitation{width:min(78vw,360px)}
/* Real logo artwork instead of substitute icon */
.brandmark{background:none;border-radius:0;width:115px;height:45px;overflow:hidden;display:block}
.brandmark img{width:100%;height:100%;object-fit:contain}
.brand{gap:10px}
.seatmap{background:#fff;border:1px solid #e5e8ef;border-radius:18px;padding:22px;margin:24px 0;box-shadow:0 10px 24px #14213708}
.seatmap h3{margin:0 0 8px;font:500 25px 'Playfair Display',serif}
.seatmap p{color:#738092;font-size:12px;line-height:1.7}
.seat-stage{margin:22px auto 25px;max-width:540px;background:linear-gradient(135deg,#e9d2ac,#f9efe1);border:1px solid #dfc39a;border-radius:10px;padding:14px;text-align:center;color:#6c4b28;font-size:11px;font-weight:800;letter-spacing:.17em}
.seat-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;max-width:740px;margin:auto}
.seat-table{border:1px solid #dce3ec;background:#f8fafd;border-radius:14px;padding:13px 5px;text-align:center;min-height:88px;display:flex;flex-direction:column;justify-content:center;gap:6px}
.seat-table strong{font-size:11px}.seat-table small{font-size:9px;color:#738092}
.seat-table.current{border:2px solid #f05d7b;background:#fff1f4;box-shadow:0 0 0 4px #f05d7b15}
.seat-legend{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:20px;color:#697486;font-size:11px}
.seat-legend b{width:9px;height:9px;display:inline-block;border-radius:50%;margin-right:4px}
.pass-seating{width:min(100%,640px);background:#ffffff0a;border:1px solid #ffffff28;border-radius:15px;padding:15px;margin:16px auto;color:#eee}
.pass-seating strong{font-size:13px}.pass-seating small{display:block;color:#b9a5a9;font-size:11px;margin-top:6px}
@media(max-width:550px){.seat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.seatmap{padding:14px}.seat-table{min-height:70px}.brandmark{width:82px;height:35px}.brand{font-size:12px}.envelope-letter{padding-top:22px}}

.brandmark{width:155px;height:43px;background:#f85b72;border-radius:5px}.brandmark img{object-fit:contain}.brand>span:last-child{display:none}@media(max-width:550px){.brandmark{width:132px;height:38px}}

/* v3 final cascade: compact logo, never hero-sized */
.header{position:relative;min-height:70px;overflow:hidden}
.brand{flex:0 0 auto;min-width:0;max-width:45%}
.brandmark,.brandmark:where(*){width:172px!important;height:43px!important;min-width:0!important;max-width:100%!important;display:block!important;flex:none!important;border-radius:7px!important;background:#f85b72!important;overflow:hidden!important;padding:0!important}
.brandmark img{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain!important}
.brand>span:last-child{display:none!important}
.header-right{min-width:0;flex:0 1 auto}
.seat-pass-button{width:min(100%,650px);margin:14px auto 16px;padding:17px 20px;display:flex;align-items:center;gap:14px;text-align:left;border:1px solid #d7ac7080;border-radius:14px;background:linear-gradient(120deg,#e6c58b20,#ffffff09);color:#f8ead7;transition:background .2s,transform .2s}
.seat-pass-button:hover{background:#d7ac7030;transform:translateY(-2px)}
.seat-pass-icon{font-size:29px;color:#e9c68b}.seat-pass-copy{display:flex;flex:1;flex-direction:column;gap:6px;min-width:0}.seat-pass-copy strong{font-size:14px}.seat-pass-copy small{font-size:12px;color:#e1bd8c}.seat-pass-arrow{font-size:11px;white-space:nowrap;color:#e5c18e}
.seating-overlay{position:fixed;inset:0;z-index:80;background:#090b12e8;backdrop-filter:blur(14px);overflow:auto;padding:20px;display:flex;justify-content:center;align-items:flex-start}
.seating-dialog{width:min(900px,100%);margin:auto;background:#f8f6f3;color:#222938;border-radius:22px;padding:clamp(18px,3vw,36px);box-shadow:0 40px 100px #0008}
.seating-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:22px}
.seating-dialog-head h2{font:500 clamp(32px,5vw,48px) 'Playfair Display',serif;margin:8px 0}.seating-dialog-head p{color:#8b6d4d;margin:0;font-size:13px}
.seat-close{background:white;border:1px solid #e4ddd2;border-radius:30px;padding:10px 16px;white-space:nowrap;color:#4d5360}
.seating-floor{border:2px solid #d8c8b2;background:repeating-linear-gradient(90deg,#fffaf2 0,#fffaf2 28px,#fcf7ee 28px,#fcf7ee 56px);border-radius:18px;padding:clamp(12px,3vw,26px)}
.floor-stage{margin:0 auto 24px;max-width:420px;background:#282a35;color:#f1d8a6;padding:15px;text-align:center;letter-spacing:.16em;border-radius:0 0 45px 45px;font-size:12px}
.floor-tables{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,1.4vw,14px)}
.floor-table{background:#fff;border:1px solid #e3dacb;border-radius:12px;min-height:83px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-align:center;padding:6px 3px}
.floor-table-icon{color:#c6a777;font-size:20px}.floor-table strong{font-size:10px}.floor-table small{font-size:8px;color:#a32950;font-weight:900}
.floor-table.floor-target{background:#fff0f4;border:2px solid #f15d7b;box-shadow:0 0 0 4px #f15d7b25,0 0 24px #f15d7b40;animation:seatPulse 1.7s ease-in-out infinite alternate}
@keyframes seatPulse{to{box-shadow:0 0 0 7px #f15d7b10,0 0 32px #f15d7b66}}
.floor-target .floor-table-icon{color:#e54c70}
.floor-aisle{display:flex;justify-content:space-between;gap:8px;color:#a39480;letter-spacing:.08em;font-size:9px;margin:23px 0 13px;border-top:2px dashed #d4c4ae;padding-top:15px}
.floor-entrance{max-width:490px;margin:0 auto;background:#d9eddf;border:1px solid #9bc7aa;color:#2f7751;text-align:center;border-radius:10px;padding:14px 7px;font-size:10px;font-weight:800;letter-spacing:.06em}
.floor-note{font-size:11px;line-height:1.6;color:#818895;text-align:center;margin:17px 0}
.seating-dialog>.btn{display:block;margin:auto}
@media(max-width:600px){.header{min-height:63px;padding:10px 12px!important;gap:6px}.brand{max-width:47%}.brandmark{width:min(145px,44vw)!important;height:36px!important}.header-right{gap:5px}.small-btn{padding:9px 8px;font-size:10px}.seating-overlay{padding:9px}.seating-dialog{border-radius:15px;padding:14px}.floor-tables{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.floor-table{min-height:69px}.floor-table strong{font-size:9px}.floor-stage{font-size:10px}.seat-pass-arrow{font-size:10px}.seat-pass-button{padding:13px 12px}.seat-pass-copy strong{font-size:12px}.seat-close{font-size:10px;padding:8px}.floor-aisle{font-size:7px}}

/* v4 customer journey: clear visual hierarchy */
.journey{background:#fff;border:1px solid #eee5dd;border-radius:25px;padding:clamp(18px,3vw,40px);margin:15px 0 25px;box-shadow:0 20px 60px #20293b0a;transition:.3s}
.journey.journey-collapsed{display:none}.journey-label{display:flex;justify-content:space-between;gap:12px;font-size:10px;font-weight:800;letter-spacing:.12em;color:#bc8f6c;margin-bottom:24px}.journey-label span{color:#8a98a6}.journey-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center}.journey-main h2{font:500 clamp(38px,5vw,67px)/1.1 'Playfair Display',serif;margin:15px 0}.journey-main h2 em{color:#ee5e7e}.journey-main p{color:#7e8795;font-size:13px;line-height:1.9;max-width:440px}.journey-kicker{font-size:10px;color:#d8a878;letter-spacing:.18em;font-weight:800}.journey-foot{display:block;color:#99a3af;font-size:10px;margin-top:16px}.journey-route{background:#f9fafc;border:1px solid #e9edf3;border-radius:17px;padding:14px 22px}.journey-route>div{display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #e6e9f0}.journey-route>div:last-child{border:0}.journey-route span{grid-row:span 2;width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#fff0f4;color:#e95e7c;font-size:10px;font-weight:800}.journey-route strong{font-size:12px;color:#27364b}.journey-route small{font-size:10px;color:#8b97a6;margin-top:4px}.journey-progress{display:flex;align-items:center;gap:14px;margin:0 0 15px;font-size:10px;letter-spacing:.07em;font-weight:800;color:#8b6e56}.journey-track{flex:1;height:5px;background:#e7eaf0;border-radius:30px;overflow:hidden}.journey-track span{display:block;width:20%;height:100%;background:#ed5d7d;transition:width .45s}.journey-progress button{background:none;border:0;color:#d24d73;font-size:11px;cursor:pointer}
/* realistic top-down banquet floorplan */
.ballroom{border:1px solid #d8c7ac;border-radius:17px;padding:clamp(12px,2.8vw,25px);background:repeating-linear-gradient(90deg,#fbf8f1 0,#fbf8f1 26px,#f8f3ea 26px,#f8f3ea 52px);overflow:hidden}.ballroom-stage{width:min(90%,430px);margin:0 auto 26px;padding:15px 8px;text-align:center;background:#282c37;color:#f5d9a5;border-radius:0 0 45px 45px;font-size:clamp(9px,1.6vw,12px);letter-spacing:.12em}.ballroom-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(45px,12%,90px) minmax(0,1fr);gap:5px}.ballroom-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,1.4vw,18px);align-content:start}.ballroom-unit{display:flex;justify-content:center;align-items:center;min-width:0;aspect-ratio:1;position:relative}.round-table{position:relative;width:62%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 40% 30%,#f9f2e5,#d7b98b);border:2px solid #b99a6c;box-shadow:0 4px 9px #6e50332b;display:grid;place-items:center}.chair{position:absolute;width:19%;height:15%;border-radius:5px;background:#8f765f;border:1px solid #66523e;left:50%;top:50%;transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-285%) rotate(0deg)}.table-center{text-align:center;position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:2px}.table-center strong{font-size:clamp(6px,1vw,10px);line-height:1.1;color:#443625}.table-center small{font-size:clamp(5px,.7vw,8px);font-weight:800;color:#866744}.ballroom-unit.is-yours .round-table{background:radial-gradient(circle at 40% 30%,#ffe1e9,#fa9ab2);border:3px solid #e64d79;box-shadow:0 0 0 5px #e64d7925,0 0 18px #e64d7960;animation:seatPulse 1.6s ease-in-out infinite alternate}.ballroom-unit.is-yours .table-center small{color:#9e1644}.media-table{background:radial-gradient(circle at 40% 30%,#e0ebff,#9eb7e3);border-color:#7395c4}.ballroom-walkway{background:linear-gradient(90deg,#f2e7d3,#f8edd9,#f2e7d3);border-left:2px solid #e0cba9;border-right:2px solid #e0cba9;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:12px 2px;border-radius:10px;min-height:400px}.aisle-label{font-size:9px;writing-mode:vertical-rl;letter-spacing:.16em;color:#a68c66;font-weight:800}.aisle-dashes{flex:1;border-left:2px dashed #c9ae86;margin:12px}.route-dot{width:35px;height:35px;border-radius:50%;background:#e95c7a;color:#fff;display:grid;place-items:center;font-size:9px;font-weight:800;box-shadow:0 0 0 5px #f5b2c2}.ballroom-entrance{width:min(80%,400px);margin:20px auto 0;text-align:center;padding:12px 8px;border-radius:10px;background:#dbeee0;border:1px solid #9cc8a8;color:#2b8052;font-size:11px;font-weight:800;letter-spacing:.08em}
@media(max-width:650px){.journey-grid{grid-template-columns:1fr}.journey-route{padding:10px 16px}.journey-label{font-size:8px}.journey-progress{gap:6px;font-size:8px}.journey-progress button{font-size:9px}.ballroom-side{gap:5px}.ballroom-layout{grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:2px}.ballroom{padding:8px}.round-table{width:68%;border-width:1px}.chair{border-width:0;border-radius:2px}.table-center strong{font-size:6px}.table-center small{font-size:5px}.ballroom-walkway{min-height:230px;padding:5px 1px}.aisle-label{font-size:6px}.route-dot{width:24px;height:24px;font-size:7px}.ballroom-stage{margin-bottom:16px}.ballroom-entrance{font-size:8px}.seating-dialog-head h2{font-size:32px}}

/* Invitation artwork has its own designed name and QR panels; overlays must stay inside them. */
.invite-name{left:16%;width:68%;top:46.7%;height:7.5%;font-size:clamp(11px,1.65vw,19px);line-height:1.15;padding:0 5px;white-space:normal;overflow-wrap:anywhere}
.invite-qr{left:37.7%;top:58.4%;width:24.6%;aspect-ratio:1}
.invite-qr canvas{display:block;max-width:100%;max-height:100%}
