@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@600;700;800;900&family=Cormorant+Garamond:ital,wght@0,600;0,700;1,600&family=Inter:wght@300;400;500;600;700;800&family=Caveat:wght@600;700&display=swap";:root{--bg:#080808;--bg-darker:#040404;--surface:#141210;--surface-elevated:#1e1914;--surface-glass:#0e0c0ac7;--gold:#d9b46b;--gold-light:#f1d69a;--gold-dark:#a57d3e;--gold-glow:#d9b46b47;--red:#d71932;--red-hover:#b81329;--red-glow:#d7193259;--text:#f8f5ef;--text-muted:#a39d93;--border:#7a5f38;--border-light:#d9b46b66;--font-display:"Cinzel", "Cormorant Garamond", Georgia, serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-script:"Caveat", cursive, sans-serif;--container:1240px;--section-pad:clamp(4.5rem, 8vw, 7.5rem);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--shadow-gold:0 10px 30px -10px #d9b46b4d;--shadow-card:0 20px 40px -15px #000000d9;--spotlight-x:50%;--spotlight-y:40%}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;background-color:var(--bg);color:var(--text);font-family:var(--font-body);scroll-padding-top:86px}body{background-color:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6;overflow-x:hidden}body.nav-locked{overflow:hidden}img,svg{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer;background:0 0;border:none}#particles-canvas{pointer-events:none;z-index:4;opacity:.85;width:100vw;height:100vh;position:fixed;inset:0}.scroll-progress-container{z-index:100;background:#0003;width:100%;height:3px;position:fixed;top:0;left:0}.scroll-progress-bar{background:linear-gradient(90deg, var(--gold-dark), var(--gold-light), var(--red));width:0%;height:100%;box-shadow:0 0 10px var(--gold-glow);transition:width 80ms linear}.container{width:min(calc(100% - 40px), var(--container));margin-inline:auto}.eyebrow{color:var(--gold);letter-spacing:.24em;text-transform:uppercase;align-items:center;gap:.8rem;margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:linear-gradient(90deg, transparent, var(--gold));width:32px;height:1.5px;display:inline-block}.section-title{font-family:var(--font-display);color:var(--gold-light);letter-spacing:-.02em;text-shadow:0 2px 20px #000c;margin-bottom:1.25rem;font-size:clamp(2.2rem,5vw,4.4rem);font-weight:700;line-height:1.05}.section-intro{color:var(--text-muted);max-width:620px;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.7}.text-gold{color:var(--gold)}.text-gold-light{color:var(--gold-light)}.text-red{color:var(--red)}.text-muted{color:var(--text-muted)}.frame{background:var(--surface-glass);border:1px solid var(--border-light);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);position:relative}.frame:before,.frame:after{content:"";pointer-events:none;width:36px;height:36px;position:absolute}.frame:before{border-top:2px solid var(--gold);border-left:2px solid var(--gold);top:-1px;left:-1px}.frame:after{border-bottom:2px solid var(--gold);border-right:2px solid var(--gold);bottom:-1px;right:-1px}[data-tilt]{transform-style:preserve-3d;will-change:transform;transition:transform .25s var(--ease-out-expo), border-color .25s ease}.section{padding-block:var(--section-pad);isolation:isolate;position:relative}.section--texture{background:linear-gradient(#080808eb,#080808f2),url(../assets/images/section-texture.webp) 50%/cover no-repeat}.offline-badge{z-index:100;color:#fff;letter-spacing:.05em;transition:transform .4s var(--ease-out-expo);pointer-events:none;background:#b31b1b;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:.75rem;font-weight:600;display:flex;position:fixed;top:14px;left:50%;transform:translate(-50%)translateY(-100px);box-shadow:0 4px 15px #00000080}.offline-badge.is-active{transform:translate(-50%)translateY(0)}.offline-badge .dot{background:#fff;border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.site-header{z-index:50;-webkit-backdrop-filter:blur(20px);background:#060606eb;border-bottom:1px solid #d9b46b40;transition:border-color .3s;position:sticky;top:0}.navbar{justify-content:space-between;align-items:center;gap:1.5rem;min-height:80px;display:flex}.brand{flex-shrink:0;align-items:center;width:155px;transition:transform .2s;display:flex}.brand:hover{transform:scale(1.03)}.nav-links{align-items:center;gap:clamp(.9rem,1.8vw,2rem);display:flex}.nav-links a{letter-spacing:.16em;text-transform:uppercase;color:var(--text);padding-block:.4rem;font-size:.72rem;font-weight:700;transition:color .2s;position:relative}.nav-links a:hover,.nav-links a.active{color:var(--gold-light)}.nav-links a:after{content:"";background:var(--gold);width:0%;height:1.5px;transition:width .25s var(--ease-out-expo);position:absolute;bottom:0;left:0}.nav-links a:hover:after,.nav-links a.active:after{width:100%}.nav-actions{align-items:center;gap:.9rem;display:flex}.badge-vip{border:1px solid var(--red);color:var(--red);letter-spacing:.16em;text-transform:uppercase;background:#d7193214;border-radius:2px;align-items:center;gap:.4rem;padding:.45rem .95rem;font-size:.68rem;font-weight:800;transition:all .2s;display:inline-flex}.badge-vip:hover{background:var(--red);color:#fff;box-shadow:0 0 15px var(--red-glow)}.btn-install{border:1px solid var(--gold);color:var(--gold-light);letter-spacing:.12em;text-transform:uppercase;background:#d9b46b14;border-radius:2px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.7rem;font-weight:700;transition:all .2s;display:inline-flex}.btn-install:hover{background:var(--gold);color:#080808;box-shadow:var(--shadow-gold)}.menu-toggle{border:1px solid var(--border);color:var(--gold);background:0 0;border-radius:4px;padding:.6rem;display:none}.hero{isolation:isolate;background:#080706 url(../assets/images/hero-concert.webp) 50%/cover no-repeat;align-items:center;min-height:min(860px,100svh - 80px);display:grid;position:relative;overflow:hidden}.hero-overlay{z-index:1;background:radial-gradient(circle at var(--spotlight-x,70%) var(--spotlight-y,35%), #d9b46b38 0%, transparent 60%), radial-gradient(circle at 20% 70%, #d719322e 0%, transparent 65%), linear-gradient(90deg, #080808f5 0%, #080808a6 55%, #080808cc 100%), linear-gradient(0deg, #080808 0%, transparent 35%, #08080866 100%);transition:background .2s;position:absolute;inset:0}.hero-ambient-lights{z-index:2;pointer-events:none;opacity:.35;mix-blend-mode:screen;background:url(../assets/images/ambient-light-overlay.png) 50%/cover no-repeat;position:absolute;inset:0}.hero-particles{z-index:3;pointer-events:none;opacity:.25;mix-blend-mode:color-dodge;background:url(../assets/decorative/decorative_gold_particles_reference.png) 50%/contain no-repeat;position:absolute;inset:0}.hero-inner{z-index:10;padding-block:clamp(4.5rem,9vw,8rem);position:relative}.hero-kicker-wrap{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.hero-kicker{letter-spacing:.4em;text-transform:uppercase;color:var(--gold-light);font-size:clamp(.72rem,1.1vw,.85rem);font-weight:600}.hero-lockup{align-items:center;gap:clamp(1.5rem,4vw,4rem);margin-bottom:1.5rem;display:flex}.hero-logo-box{filter:drop-shadow(0 12px 30px #000000b3);width:min(60vw,620px)}.hero-note{max-width:320px;color:var(--gold-light);font-family:var(--font-script);text-shadow:0 4px 15px #000000e6;border-left:2px solid var(--gold);padding:.8rem 1.2rem;font-size:clamp(1.4rem,2.3vw,2.1rem);font-weight:700;line-height:1.08;transform:rotate(-3deg)}.hero-subtitle{letter-spacing:.12em;text-transform:uppercase;color:var(--text);border-top:1px solid var(--border-light);margin-bottom:2rem;padding-top:1.25rem;font-size:clamp(1.2rem,2.6vw,2.3rem);font-weight:700}.hero-subtitle .dot{color:var(--red);padding-inline:.4em}.hero-meta-bar{border:1px solid var(--border-light);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0e0c0ab3;flex-wrap:wrap;align-items:center;gap:1.2rem 2.5rem;width:fit-content;padding:1.25rem 2rem;display:flex}.hero-meta-item{letter-spacing:.14em;text-transform:uppercase;color:var(--gold-light);align-items:center;gap:.6rem;font-size:.82rem;display:flex}.hero-meta-item strong{color:#fff;font-weight:700}.hero-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2.2rem;display:flex}.button{letter-spacing:.16em;text-transform:uppercase;min-height:52px;transition:all .25s var(--ease-out-expo);cursor:pointer;border:1px solid #0000;border-radius:2px;justify-content:center;align-items:center;gap:.75rem;padding:.85rem 1.8rem;font-size:.76rem;font-weight:700;display:inline-flex}.button--gold{background:linear-gradient(135deg, var(--gold), var(--gold-dark));color:#080808;border-color:var(--gold-light);box-shadow:0 4px 20px #d9b46b40}.button--gold:hover{background:var(--gold-light);transform:translateY(-2px);box-shadow:0 8px 25px #d9b46b66}.button--red{background:var(--red);color:#fff;border-color:var(--red);box-shadow:0 4px 20px var(--red-glow)}.button--red:hover{background:var(--red-hover);transform:translateY(-2px);box-shadow:0 8px 28px #d7193280}.button--ghost{border-color:var(--border-light);color:var(--gold-light);background:#d9b46b0d}.button--ghost:hover{border-color:var(--gold);color:#fff;background:#d9b46b26;transform:translateY(-2px)}.button--small{min-height:40px;padding:.5rem 1.1rem;font-size:.68rem}.vibe-controller{border:1px solid var(--border-light);cursor:pointer;background:#141210d9;border-radius:999px;align-items:center;gap:.75rem;padding:.6rem 1.2rem;transition:all .25s;display:inline-flex}.vibe-controller:hover{border-color:var(--gold);box-shadow:var(--shadow-gold)}.vibe-eq{align-items:flex-end;gap:3px;width:18px;height:16px;display:flex}.vibe-bar{background:var(--gold);border-radius:1px;width:3px;height:4px}.vibe-controller.is-playing .vibe-bar:first-child{animation:.7s ease-in-out infinite alternate eqWave}.vibe-controller.is-playing .vibe-bar:nth-child(2){animation:.5s ease-in-out .2s infinite alternate eqWave}.vibe-controller.is-playing .vibe-bar:nth-child(3){animation:.8s ease-in-out .1s infinite alternate eqWave}.vibe-controller.is-playing .vibe-bar:nth-child(4){animation:.6s ease-in-out .3s infinite alternate eqWave}@keyframes eqWave{0%{height:4px}to{height:16px}}.vibe-label{letter-spacing:.12em;text-transform:uppercase;color:var(--gold-light);font-size:.72rem;font-weight:700}.countdown-wrapper{text-align:left}.countdown{grid-template-columns:repeat(4,1fr);gap:16px;max-width:820px;margin:1.5rem 0 0;display:grid}.countdown-item{border:1px solid var(--border);box-shadow:var(--shadow-card);background:linear-gradient(#d9b46b14 0%,#0a0806cc 100%);border-radius:2px;padding:1.6rem 1rem;position:relative;overflow:hidden}.countdown-item:before{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);height:2px;position:absolute;top:0;left:0;right:0}.countdown-value{font-family:var(--font-display);color:var(--gold-light);font-variant-numeric:tabular-nums;text-shadow:0 4px 20px #d9b46b33;font-size:clamp(2.4rem,5vw,4.2rem);font-weight:800;line-height:1;display:block}.countdown-label{color:var(--text-muted);letter-spacing:.24em;text-transform:uppercase;margin-top:.5rem;font-size:.72rem;font-weight:600;display:block}.event-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:3rem;display:grid}.info-card{align-items:flex-start;gap:1.5rem;min-height:180px;padding:2.2rem 1.8rem;display:flex}.info-card:hover{border-color:var(--gold)}.info-icon-wrapper{border:1px solid var(--border);width:52px;height:52px;color:var(--gold);background:#d9b46b1a;border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.info-label{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;margin-bottom:.35rem;font-size:.72rem;font-weight:700;display:block}.info-value{color:var(--text);margin-bottom:.35rem;font-size:1.25rem;font-weight:700}.info-detail{color:var(--text-muted);font-size:.92rem;line-height:1.5}.timeline-grid{grid-template-columns:1fr;gap:1.8rem;max-width:820px;margin:3rem auto 0;display:grid;position:relative}.timeline-grid:before{content:"";background:linear-gradient(180deg, var(--gold), #d9b46b26);width:1px;position:absolute;top:15px;bottom:15px;left:100px}.timeline-item{grid-template-columns:100px 1fr;align-items:center;gap:2.2rem;display:grid;position:relative}.timeline-time{text-align:right;font-family:var(--font-display);color:var(--gold-light);letter-spacing:.05em;font-size:1.3rem;font-weight:800}.timeline-content{border:1px solid var(--border);background:#0e0c0abf;padding:1.4rem 1.8rem;position:relative}.timeline-content:before{content:"";background:var(--gold);width:11px;height:11px;box-shadow:0 0 10px var(--gold-glow);border:2px solid #080808;border-radius:50%;position:absolute;top:50%;left:-2.2rem;transform:translate(-50%,-50%)}.timeline-title{color:#fff;margin-bottom:.3rem;font-size:1.1rem;font-weight:700}.timeline-desc{color:var(--text-muted);font-size:.88rem;line-height:1.5}.dress-panel{border:1px solid var(--border);background:linear-gradient(90deg,#080808f0 0%,#08080880 60%,#080808e0 100%),url(../assets/images/hero-concert.webp) 50% 65%/cover no-repeat;align-items:center;min-height:380px;display:flex;position:relative;overflow:hidden}.dress-content{z-index:5;padding:clamp(2.5rem,6vw,5rem);position:relative}.dress-word{color:var(--gold-light);font-family:var(--font-display);letter-spacing:-.04em;text-shadow:0 10px 40px #000000e6;margin:.2rem 0;font-size:clamp(4.5rem,12vw,9.5rem);font-weight:900;line-height:.88}.dress-line{color:var(--gold);letter-spacing:.3em;text-transform:uppercase;margin-bottom:1rem;font-size:clamp(.78rem,1.4vw,.95rem);font-weight:700}.dress-desc{color:var(--text);max-width:540px;font-size:clamp(.95rem,1.3vw,1.15rem);line-height:1.6}.moodboard-wrap{border:1px solid var(--border);background:#0e0c0acc;margin-top:2.5rem;padding:1.8rem 2rem}.moodboard-label{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem;font-size:.72rem;font-weight:700}.swatches-grid{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.swatch-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff08;border-radius:2px;align-items:center;gap:.6rem;padding:.5rem 1rem;font-size:.78rem;font-weight:600;transition:all .2s;display:flex}.swatch-btn:hover,.swatch-btn.is-active{border-color:var(--gold);color:var(--gold-light);background:#d9b46b1f}.swatch-color{border:1px solid #fff3;border-radius:50%;width:14px;height:14px}.swatch-color--gold{background:linear-gradient(135deg,#f1d69a,#d9b46b)}.swatch-color--black{background:#111}.swatch-color--disco{background:radial-gradient(circle,#fff 10%,#d9b46b 60%,#d71932 90%)}.swatch-color--ruby{background:#d71932}.moodboard-preview-text{color:var(--gold-light);min-height:24px;margin-top:1rem;font-size:.88rem;font-style:italic;transition:opacity .3s}.moodboard-preview-text.fade-in{animation:.3s forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.ticket-section-wrapper{margin-top:3.5rem;max-width:880px;margin-inline:auto}.vip-ticket{border:1px solid var(--gold);background:linear-gradient(135deg,#14110df2,#080808fa);grid-template-columns:1fr 220px;display:grid;position:relative;overflow:hidden;box-shadow:0 25px 60px #000000e6,0 0 25px #d9b46b26}.vip-ticket:before{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#f1d69a26,#0000);width:60%;height:100%;animation:6s ease-in-out infinite foilShimmer;position:absolute;top:0;left:-100%;transform:skew(-25deg)}@keyframes foilShimmer{0%{left:-100%}35%{left:160%}to{left:160%}}.ticket-main{flex-direction:column;justify-content:space-between;padding:2.4rem;display:flex}.ticket-header{border-bottom:1px solid #d9b46b33;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1.2rem;display:flex}.ticket-badge{letter-spacing:.2em;color:var(--red);border:1px solid var(--red);background:#d719321a;padding:4px 10px;font-size:.68rem;font-weight:800}.ticket-guest-wrap{margin-block:.5rem}.ticket-guest-label{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:.2rem;font-size:.68rem}.ticket-guest-name{font-family:var(--font-display);color:#fff;text-shadow:0 2px 10px #000c;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:800;line-height:1.1}.ticket-meta-grid{border-top:1px solid #d9b46b33;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem;padding-top:1.2rem;display:grid}.ticket-meta-col span{display:block}.ticket-meta-col .label{letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);font-size:.65rem;font-weight:700}.ticket-meta-col .val{color:var(--gold-light);font-size:.92rem;font-weight:700}.ticket-stub{text-align:center;background:#0c0a08f2;border-left:2px dashed #d9b46b66;flex-direction:column;justify-content:space-between;align-items:center;padding:2rem 1.4rem;display:flex;position:relative}.stub-notch-top,.stub-notch-bottom{background:var(--bg);border-radius:50%;width:22px;height:22px;position:absolute;left:-11px}.stub-notch-top{border-bottom:1px solid var(--gold);top:-11px}.stub-notch-bottom{border-top:1px solid var(--gold);bottom:-11px}.stub-serial{color:var(--gold);letter-spacing:.15em;font-family:monospace;font-size:.72rem}.barcode-visual{gap:3px;height:60px;margin-block:1rem;display:flex}.barcode-bar{background:var(--gold-light);height:100%}.ticket-actions-bar{flex-wrap:wrap;justify-content:center;gap:1rem;margin-top:1.5rem;display:flex}.faq-grid{flex-direction:column;gap:1rem;max-width:820px;margin:3rem auto 0;display:flex}.accordion-item{border:1px solid var(--border);background:#0e0c0abf;transition:border-color .25s}.accordion-item:hover{border-color:var(--gold)}.accordion-btn{text-align:left;width:100%;color:var(--text);justify-content:space-between;align-items:center;gap:1rem;padding:1.4rem 1.8rem;font-size:1.05rem;font-weight:700;transition:color .2s;display:flex}.accordion-btn[aria-expanded=true]{color:var(--gold-light);border-bottom:1px solid #d9b46b26}.accordion-btn svg{transition:transform .3s var(--ease-out-expo);flex-shrink:0}.accordion-btn[aria-expanded=true] svg{transform:rotate(180deg)}.accordion-content{color:var(--text-muted);padding:1.4rem 1.8rem;font-size:.95rem;line-height:1.7}.rsvp-panel{justify-content:space-between;align-items:center;gap:3rem;padding:clamp(2.5rem,6vw,4.5rem);display:flex;overflow:hidden}.rsvp-content{max-width:680px}.rsvp-date-badge{color:var(--gold-light);font-family:var(--font-display);margin:1rem 0;font-size:clamp(2.4rem,5vw,4.6rem);font-weight:800;line-height:1;display:inline-block}.signature{font-family:var(--font-script);color:var(--red);white-space:nowrap;font-size:clamp(2.6rem,5.5vw,4.5rem);font-weight:700;transform:rotate(-4deg)}.rsvp-confirmed-card{background:#12100ee6;padding:2rem}.rsvp-confirmed-badge{letter-spacing:.16em;text-transform:uppercase;border-radius:2px;margin-bottom:1.25rem;padding:.4rem .9rem;font-size:.72rem;font-weight:800;display:inline-block}.badge--gold{color:var(--gold-light);border:1px solid var(--gold);background:#d9b46b26}.badge--muted{color:var(--text-muted);border:1px solid var(--border);background:#a39d9326}.rsvp-guest-name{font-family:var(--font-display);color:#fff;margin-bottom:1rem;font-size:1.8rem}.rsvp-details-grid{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem;display:grid}.rsvp-details-grid .full-width{grid-column:1/-1}.detail-label{letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:.2rem;font-size:.68rem;font-weight:700;display:block}.detail-value{color:var(--text);font-size:.95rem;font-weight:600}.rsvp-card-actions{flex-wrap:wrap;gap:.8rem;display:flex}.gallery-panel{grid-template-columns:1.2fr 1.3fr auto;align-items:center;gap:2.5rem;padding:2.5rem;display:grid}.gallery-visual{border:1px solid var(--border);background:url(../assets/images/hero-concert.webp) 50%/cover no-repeat;min-height:240px;position:relative;overflow:hidden}.gallery-visual-overlay{background:linear-gradient(135deg,#08080866,#000c);position:absolute;inset:0}.gallery-cta{flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:1.5rem;display:flex}.gallery-hint{font-size:.75rem;font-style:italic}.gallery-lock{text-align:center;border:1px solid var(--border);min-width:180px;color:var(--gold-light);background:#0e0c0acc;padding:2rem 1.5rem}.gallery-lock img{filter:drop-shadow(0 4px 10px #d9b46b4d);margin:0 auto 1rem;display:block}.gallery-unlocked-wrapper{padding:2.5rem}.gallery-unlocked-header{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem;display:flex}.gallery-title{font-family:var(--font-display);color:var(--gold-light);margin-top:.5rem;font-size:2rem}.gallery-preview-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.polaroid-card{color:#111;background:#fff;padding:12px 12px 20px;transition:transform .3s;transform:rotate(-1.5deg);box-shadow:0 10px 25px #000000b3}.polaroid-card:nth-child(2){transform:rotate(2deg)}.polaroid-card:nth-child(3){transform:rotate(-1deg)}.polaroid-card:hover{z-index:10;transform:scale(1.04)rotate(0)}.polaroid-img{background-size:cover;width:100%;height:200px}.polaroid-caption{font-family:var(--font-script);text-align:center;color:#333;margin-top:10px;font-size:1.2rem;font-weight:700}.kaja-modal{z-index:200;-webkit-backdrop-filter:blur(16px);opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out-expo);background:#040404d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.kaja-modal.is-active{opacity:1;pointer-events:auto}.kaja-modal-dialog{background:var(--surface);border:1px solid var(--gold);width:100%;max-width:540px;transition:transform .3s var(--ease-out-expo);border-radius:2px;padding:2.5rem;position:relative;transform:scale(.94);box-shadow:0 25px 60px #000000f2}.kaja-modal.is-active .kaja-modal-dialog{transform:scale(1)}.kaja-modal-close{color:var(--gold-light);padding:8px;font-size:1.5rem;line-height:1;position:absolute;top:18px;right:18px}.form-group{margin-bottom:1.25rem}.form-label{letter-spacing:.16em;text-transform:uppercase;color:var(--gold-light);margin-bottom:.4rem;font-size:.72rem;font-weight:700;display:block}.form-input,.form-select,.form-textarea{border:1px solid var(--border);color:#fff;background:#090807;border-radius:2px;width:100%;padding:.85rem 1rem;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--gold);box-shadow:0 0 10px var(--gold-glow);outline:none}.kaja-toast{z-index:300;background:var(--surface);color:var(--gold-light);border:1px solid var(--gold);letter-spacing:.05em;opacity:0;pointer-events:none;transition:all .3s var(--ease-out-expo);border-radius:2px;padding:1rem 1.6rem;font-size:.85rem;font-weight:600;position:fixed;bottom:24px;right:24px;transform:translateY(100px);box-shadow:0 10px 30px #000000d9}.kaja-toast.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.site-footer{text-align:center;background:linear-gradient(#080808f0,#040404fa),url(../assets/images/section-texture.webp) 50%/cover no-repeat;border-top:1px solid #d9b46b4d;padding-block:5rem 3rem;position:relative}.footer-motto{color:var(--gold-light);letter-spacing:.35em;text-transform:uppercase;font-size:.75rem;font-weight:700}.footer-logo{filter:drop-shadow(0 4px 15px #000c);width:min(280px,60vw);margin:1.8rem auto .8rem}.footer-sub{color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:2rem;font-size:.76rem}.footer-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.5rem;margin-top:1.5rem;display:flex}.floating-scroll-top{border:1.5px solid var(--gold);width:56px;height:56px;color:var(--gold-light);z-index:120;cursor:pointer;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(14px);transition:opacity .35s var(--ease-out-expo), transform .35s var(--ease-out-expo), border-color .3s ease, box-shadow .3s ease, background .3s ease;background:#0e0c0af0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:32px;right:36px;transform:translateY(24px)scale(.85);box-shadow:0 12px 35px #000000e6,0 0 20px #d9b46b47}.floating-scroll-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.floating-scroll-top:hover,.floating-scroll-top.is-clicked{border-color:var(--red);background:#160e0ff5;transform:translateY(-4px)scale(1.08);box-shadow:0 16px 40px #000000f2,0 0 26px #d719328c}.floating-scroll-top:active{transform:translateY(-1px)scale(1.02)}.scroll-icon{transition:opacity .35s var(--ease-out-expo), transform .35s var(--ease-out-expo), color .3s ease;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scroll-icon--arrow{opacity:1;color:var(--gold-light);transform:scale(1)rotate(0)}.scroll-icon--num{opacity:0;font-family:var(--font-display);color:var(--red);text-shadow:0 0 14px var(--red-glow);font-size:1.3rem;font-weight:900;line-height:1;transform:scale(.3)rotate(45deg)}.floating-scroll-top:hover .scroll-icon--arrow,.floating-scroll-top:focus-visible .scroll-icon--arrow,.floating-scroll-top.is-clicked .scroll-icon--arrow{opacity:0;transform:scale(.3)rotate(-90deg)}.floating-scroll-top:hover .scroll-icon--num,.floating-scroll-top:focus-visible .scroll-icon--num,.floating-scroll-top.is-clicked .scroll-icon--num{opacity:1;transform:scale(1)rotate(0)}.scroll-ring{pointer-events:none;border:1px dashed #d9b46b59;border-radius:50%;transition:border-color .3s;animation:18s linear infinite scrollRingRotate;position:absolute;inset:-4px}.floating-scroll-top:hover .scroll-ring,.floating-scroll-top.is-clicked .scroll-ring{border-color:#d7193280;animation-duration:6s}.scroll-tooltip{border:1px solid var(--gold);color:var(--gold-light);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(8px);transition:opacity .25s var(--ease-out-expo), transform .25s var(--ease-out-expo);background:#0e0c0af2;border-radius:999px;padding:6px 14px;font-size:.72rem;font-weight:700;position:absolute;top:50%;right:calc(100% + 14px);transform:translateY(-50%)translate(10px);box-shadow:0 6px 20px #000000d9}.floating-scroll-top:hover .scroll-tooltip,.floating-scroll-top:focus-visible .scroll-tooltip{opacity:1;transform:translateY(-50%)translate(0)}@keyframes scrollRingRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.js-reveal{opacity:0;transition:opacity .8s var(--ease-out-expo), transform .8s var(--ease-out-expo);transform:translateY(24px)}.js-reveal.is-visible{opacity:1;transform:translateY(0)}@media print{body *{visibility:hidden}#ticket-print-area,#ticket-print-area *{visibility:visible}#ticket-print-area{width:100%;margin:0;position:fixed;top:0;left:0}.ticket-actions-bar,.scroll-progress-container,.site-header,.site-footer{display:none!important}}@media (width<=960px){.hero-lockup{flex-direction:column;align-items:flex-start}.hero-logo-box{width:min(85vw,560px)}.hero-note{max-width:440px;margin-left:.5rem}.event-grid{grid-template-columns:1fr}.rsvp-panel{flex-direction:column;align-items:flex-start;gap:2rem}.gallery-panel{grid-template-columns:1fr 1fr}.gallery-visual{grid-column:1/-1}.gallery-preview-grid,.vip-ticket{grid-template-columns:1fr}.ticket-stub{border-top:2px dashed #d9b46b66;border-left:none;padding-top:2rem}.stub-notch-top{top:-11px;left:-11px}.stub-notch-bottom{top:-11px;left:auto;right:-11px}}@media (width<=720px){.navbar{min-height:70px}.brand{width:128px}.menu-toggle{display:inline-flex}.nav-links{border-bottom:1px solid var(--border);background:#060606fa;flex-direction:column;align-items:stretch;gap:0;padding:1.5rem 24px 2rem;display:none;position:absolute;top:70px;left:0;right:0}.nav-links.is-open{display:flex}.nav-links a{border-bottom:1px solid #d9b46b1f;padding:1rem 0;font-size:.8rem}.hero{min-height:740px}.hero-meta-bar{width:100%;padding:1rem 1.2rem}.countdown{gap:8px}.countdown-item{padding:1rem .5rem}.countdown-value{font-size:1.8rem}.countdown-label{letter-spacing:.14em;font-size:.58rem}.dress-panel{min-height:320px}.dress-content{padding:2.2rem 1.4rem}.gallery-panel{grid-template-columns:1fr;padding:1.5rem}.gallery-lock{min-width:0}.timeline-grid:before{left:20px}.timeline-item{grid-template-columns:1fr;gap:.8rem;padding-left:45px}.timeline-time{text-align:left}.timeline-content:before{left:-30px}.kaja-toast{text-align:center;bottom:20px;left:20px;right:20px}.floating-scroll-top{width:52px;height:52px;bottom:22px;right:20px}.scroll-tooltip{display:none}}
