:root{--red:#7f130c;--deep:#170807;--wine:#40100b;--gold:#c79a4b;--cream:#faf5ec;--paper:#fffaf2;--ink:#2b100b;--muted:rgba(43,16,11,.64);--line:rgba(127,19,12,.18);--serif:Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,Segoe UI,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--deep)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased}
body.locked{overflow:hidden}
a{color:inherit}button,input,select,textarea{font:inherit}img,video{display:block;max-width:100%}
.intro{position:fixed;inset:0;z-index:1000;background:var(--deep);overflow:hidden;cursor:pointer;transition:opacity .72s ease,visibility .72s ease}
.intro video{width:100%;height:100%;object-fit:cover}
.intro:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,8,7,.12),rgba(23,8,7,.2) 54%,rgba(23,8,7,.54))}
.intro-tap{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));z-index:3;min-height:48px;border:1px solid rgba(255,250,242,.42);border-radius:999px;padding:0 22px;background:rgba(23,8,7,.58);box-shadow:0 18px 54px rgba(0,0,0,.36);color:#fff8ef;font-family:var(--sans);font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;transform:translateX(-50%);white-space:nowrap;backdrop-filter:blur(14px);transition:opacity .3s ease}
.intro.hide{opacity:0;visibility:hidden;pointer-events:none}
.page{overflow:hidden;background:var(--paper)}
.sound{position:fixed;right:16px;bottom:16px;z-index:70;width:54px;height:54px;border:1px solid rgba(255,250,242,.34);border-radius:999px;background:rgba(93,16,10,.86);box-shadow:0 16px 44px rgba(0,0,0,.28);color:#fff8ef;font-family:var(--sans);font-weight:950;backdrop-filter:blur(14px)}
.hero{position:relative;min-height:100svh;display:grid;place-items:center;overflow:hidden;background:#fff;color:var(--ink)}
.curtain-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage-light{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 47%,rgba(255,255,255,.98) 0 24%,rgba(255,255,255,.9) 38%,rgba(255,255,255,.25) 56%,rgba(87,9,6,.38) 100%),linear-gradient(90deg,rgba(104,13,8,.72),transparent 23%,transparent 77%,rgba(104,13,8,.72));}
.hero-copy{position:relative;z-index:2;width:min(770px,100%);padding:92px 20px 36px;text-align:center}
.overline,.kicker{margin:0;font-family:var(--sans);font-size:.68rem;font-weight:900;letter-spacing:.28em;text-transform:uppercase}
.overline{color:rgba(43,16,11,.8)}
.hero h1{display:grid;gap:4px;margin:18px 0 18px;color:#6f160e;font-size:clamp(4.4rem,17vw,9rem);font-style:italic;font-weight:500;line-height:.75;letter-spacing:-.055em}
.hero h1 small{font-size:.25em;line-height:1;color:#5a140e}
.hero-note{width:min(760px,100%);margin:0 auto;color:var(--ink);font-family:var(--sans);font-size:.82rem;font-weight:750;letter-spacing:.12em;line-height:1.7;text-transform:uppercase}
.hero-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:34px}
.hero-actions a,.soft-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(111,22,14,.24);border-radius:999px;padding:0 18px;background:#fff;color:#6f160e;font-family:var(--sans);font-size:.74rem;font-weight:950;text-decoration:none;box-shadow:0 14px 34px rgba(111,22,14,.12)}
.section{padding:clamp(76px,12vw,126px) 16px}
.wrap{width:min(980px,100%);margin:0 auto;text-align:center}
.kicker{color:#8b2518}
h2{margin:10px auto 0;font-size:clamp(3rem,11vw,6.8rem);font-weight:500;font-style:italic;line-height:.84;letter-spacing:-.055em;color:#6f160e}
.reveal{background:linear-gradient(180deg,#fffaf2,#f4e9da)}
.ticket{position:relative;width:min(430px,100%);min-height:390px;display:grid;place-items:center;margin:34px auto 0;border:1px solid rgba(127,19,12,.24);border-radius:32px;padding:28px;background:linear-gradient(180deg,#fff,#f3e4cb);box-shadow:0 28px 80px rgba(111,22,14,.12);overflow:hidden;color:var(--ink)}
.ticket:before,.ticket:after{content:"";position:absolute;top:50%;width:42px;height:42px;border-radius:999px;background:#f4e9da;transform:translateY(-50%);box-shadow:0 0 0 1px rgba(127,19,12,.12) inset}.ticket:before{left:-21px}.ticket:after{right:-21px}
.ticket-shine{position:absolute;inset:0;background:repeating-linear-gradient(120deg,rgba(127,19,12,.11) 0 9px,rgba(255,255,255,.48) 9px 18px);transition:opacity .55s ease,transform .55s ease}.ticket.revealed .ticket-shine{opacity:0;transform:translateX(34%)}
.ticket small{position:relative;z-index:1;font-family:var(--sans);font-size:.68rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase;color:rgba(43,16,11,.58)}.ticket.revealed small{opacity:.2}
.ticket strong,.ticket em,.ticket b{position:relative;z-index:1;display:block}.ticket strong{font-size:6.8rem;line-height:.72;color:#6f160e}.ticket em{font-size:3.4rem;line-height:.86;color:#8b2518}.ticket b{font-family:var(--sans);font-size:.9rem;letter-spacing:.34em;color:rgba(43,16,11,.68)}
.countdown{padding:70px 12px;background:linear-gradient(180deg,#6c130d,#3c0c08);color:white;text-align:center}.countdown .kicker{color:rgba(255,250,242,.78)}
.count-grid{width:min(840px,100%);display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:30px auto 0}.count-grid div{min-height:112px;display:grid;place-items:center;border:1px solid rgba(255,250,242,.2);border-radius:20px;background:rgba(255,255,255,.07);box-shadow:0 18px 44px rgba(0,0,0,.18)}.count-grid strong{font-size:clamp(2rem,8vw,4rem);font-weight:500;line-height:.84;color:#fff6e8}.count-grid span{font-family:var(--sans);font-size:.62rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.split{display:grid;grid-template-columns:.76fr 1fr;gap:34px;align-items:center;text-align:left}.split.reverse{grid-template-columns:1fr .76fr}.venue-art,.dress-art{width:100%;max-height:430px;object-fit:contain;margin:auto;filter:drop-shadow(0 18px 38px rgba(111,22,14,.12))}
.copy p:not(.kicker){color:var(--muted);font-size:1.1rem;line-height:1.75}.map-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:22px}.map-actions a{min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(111,22,14,.18);border-radius:999px;padding:0 14px;background:#6f160e;color:#fff8ef;font-family:var(--sans);font-size:.76rem;font-weight:900;text-decoration:none}
.map-wrap{margin-top:34px}.map{height:min(360px,46vh);border:1px solid rgba(127,19,12,.18);border-radius:28px;overflow:hidden;background:#f1e1ca;box-shadow:0 24px 70px rgba(111,22,14,.1)}.teatro-pin{display:grid;place-items:center;width:44px!important;height:44px!important;border-radius:999px;background:#6f160e;color:white;box-shadow:0 14px 30px rgba(111,22,14,.3);font-size:1.2rem}
.menu{background:#f3e7d6}.menu-frame{position:relative;width:min(720px,100%);margin:34px auto 0}.menu-frame>img{width:100%;filter:drop-shadow(0 28px 60px rgba(111,22,14,.14))}.menu-list{position:absolute;inset:13% 13%;display:grid;align-content:center;gap:18px}.menu-list article{border-bottom:1px solid rgba(127,19,12,.16);padding-bottom:14px}.menu-list article:last-child{border-bottom:0}.menu-list span{font-family:var(--sans);font-size:.62rem;font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:#8b2518}.menu-list h3{margin:5px 0 4px;font-size:1.55rem;color:#6f160e}.menu-list p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.5}
.dress{background:#fffaf2}.transport{background:#7a150e;color:white}.transport h2{color:white}.transport .kicker{color:rgba(255,250,242,.72)}.transport-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:34px}.transport-grid article{border:1px solid rgba(255,250,242,.2);border-radius:26px;padding:24px;background:rgba(255,255,255,.08);text-align:left}.transport-grid span{font-family:var(--sans);font-weight:950;letter-spacing:.14em;color:#fff1df}.transport-grid h3{margin:12px 0 8px;font-size:1.8rem}.transport-grid p{margin:0;color:rgba(255,255,255,.72);line-height:1.6}
.rsvp{background:#fffaf2}.form-wrap{width:min(720px,100%)}form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px;text-align:left}label{display:grid;gap:7px}label span,.guest-row>span{font-family:var(--sans);font-size:.66rem;font-weight:900;letter-spacing:.13em;text-transform:uppercase;color:rgba(43,16,11,.62)}input,select,textarea{width:100%;min-height:50px;border:1px solid rgba(127,19,12,.18);border-radius:16px;padding:12px 14px;background:white;color:var(--ink);outline:none}textarea{min-height:96px;resize:vertical}.full,.submit,.notice{grid-column:1/-1}.guest-row{display:grid;gap:7px}.stepper{display:grid;grid-template-columns:48px 1fr 48px;gap:8px}.stepper button{border:1px solid rgba(127,19,12,.18);border-radius:16px;background:white;color:#6f160e;font-family:var(--sans);font-size:1.25rem;font-weight:950}.stepper input{text-align:center;font-family:var(--sans);font-weight:900}.submit{min-height:52px;border:0;border-radius:999px;background:#6f160e;color:white;font-family:var(--sans);font-weight:950;box-shadow:0 20px 60px rgba(111,22,14,.16)}.notice{min-height:22px;color:#6f160e;text-align:center;font-family:var(--sans);font-weight:850}
.footer{padding:78px 18px 112px;background:var(--paper);text-align:center}.footer strong{display:block;color:#6f160e;font-size:clamp(3rem,12vw,6rem);font-style:italic;font-weight:500;line-height:.88}.footer span{display:block;margin-top:12px;font-family:var(--sans);font-size:.72rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
@media(max-width:760px){.intro-tap{font-size:.62rem;padding:0 16px}.hero-copy{padding:82px 14px 34px}.hero h1{font-size:clamp(4rem,22vw,7rem)}.hero-note{font-size:.69rem;letter-spacing:.08em}.section{padding:64px 14px}h2{font-size:clamp(3rem,16vw,5rem)}.ticket{min-height:330px}.ticket strong{font-size:5.4rem}.count-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.count-grid div{min-height:78px;border-radius:14px}.count-grid strong{font-size:clamp(1.55rem,7vw,2.25rem)}.count-grid span{font-size:.49rem;letter-spacing:.08em}.split,.split.reverse,form,.transport-grid{grid-template-columns:1fr}.map-actions{display:grid}.menu-list{position:relative;inset:auto;margin-top:-26px;padding:0 24px 30px}.menu-frame>img{display:none}.sound{right:12px;bottom:12px;width:50px;height:50px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important;scroll-behavior:auto!important}}
