:root{--bordeaux: #5a1420;--bordeaux-dark: #43101a;--bordeaux-deep: #320a12;--gold: #d9b98a;--gold-light: #ecd7b2;--gold-dark: #8f6b3e;--paper: #f7f1e4;--paper-deep: #efe5d0;--ink: #4a2c2c;--focus: #f2d08f;--shadow-strong: 0 1.75rem 3.75rem -1.2rem rgb(0 0 0 / 72%);--text-xs: clamp(.74rem, .71rem + .16vw, .82rem);--text-sm: clamp(.84rem, .79rem + .24vw, .96rem);--text-base: clamp(1rem, .94rem + .3vw, 1.12rem);--text-lg: clamp(1.1rem, 1rem + .5vw, 1.28rem);--text-script-md: clamp(1.55rem, 1.25rem + 1.5vw, 2rem);--text-script-lg: clamp(2.05rem, 1.55rem + 2.7vw, 2.75rem);--text-script-xl: clamp(2.7rem, 2rem + 4.2vw, 4.05rem);--space-2xs: clamp(.35rem, .28rem + .35vw, .55rem);--space-xs: clamp(.55rem, .45rem + .5vw, .8rem);--space-sm: clamp(.8rem, .65rem + .75vw, 1.15rem);--space-md: clamp(1.1rem, .88rem + 1.1vw, 1.6rem);--space-lg: clamp(1.6rem, 1.1rem + 2.5vw, 2.8rem);--page-inline: clamp(.75rem, 3.6vw, 1.25rem);font-family:Cormorant Garamond,Georgia,serif;color:var(--paper);background:var(--bordeaux-deep)}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth;overflow-x:hidden;scrollbar-gutter:stable}body{min-block-size:100vh;min-block-size:100svh;margin:0;background:radial-gradient(ellipse at 50% 30%,#450d19b8,#1a050adb 64%),linear-gradient(180deg,#25060d,#120307);display:flex;flex-direction:column;align-items:center;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(135deg,rgb(255 255 255 / .024) 0 1px,transparent 1px 5px);mix-blend-mode:soft-light;opacity:.45}body:not(.opened){block-size:100vh;block-size:100svh;block-size:100dvh;overflow:hidden}button,input{font:inherit}img,svg{max-inline-size:100%}main,section,article,p,h1,h2,a,button,label,legend{overflow-wrap:anywhere}button,a,input,label{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.skip-link{position:fixed;inset-block-start:calc(env(safe-area-inset-top,0px) + .75rem);inset-inline-start:.75rem;z-index:100;transform:translateY(-160%);border-radius:999px;background:var(--paper);color:var(--bordeaux-deep);padding:.65rem 1rem;text-decoration:none}.skip-link:focus{transform:translateY(0)}#envScreen{position:fixed;inset:0;z-index:50;display:grid;place-items:center;overflow:hidden;background:linear-gradient(180deg,#fcf8f4,#f8f4ef);transition:opacity .6s ease,visibility 0s}body.opened #envScreen{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .7s ease 1.55s,visibility 0s 2.25s}body.instant-open #envScreen{display:none}body.instant-open #invite{opacity:1;visibility:visible;transition:none}@keyframes loader-spin{to{transform:rotate(360deg)}}.loader-ring{position:absolute;inset-inline-start:50%;inset-block-start:50%;margin:-1.625rem 0 0 -1.625rem;inline-size:3.25rem;block-size:3.25rem;border:2px solid rgb(61 15 20 / 14%);border-block-start-color:var(--bordeaux-deep);border-radius:50%;animation:loader-spin .9s linear infinite;transition:opacity .4s ease}body.env-ready .loader-ring{opacity:0;animation:none}@keyframes breathe{0%,to{opacity:.55}50%{opacity:1}}.env-stage{position:relative;block-size:86svh;aspect-ratio:941 / 1672;perspective:1600px;opacity:0;transition:opacity .7s ease}@media(orientation:portrait){.env-stage{block-size:max(100svh,177.7vw)}}body.env-ready .env-stage{opacity:1}.env-back,.env-pocket,.env-flap,.env-letter-paper{position:absolute}.env-back{inset-inline-start:3.401%;inset-block-start:7.775%;z-index:1;inline-size:94.261%}.env-pocket{inset-inline-start:3.401%;inset-block-start:37.919%;z-index:3;inline-size:94.261%}.env-flap{inset-inline-start:3.401%;inset-block-start:37.919%;z-index:4;inline-size:94.261%;backface-visibility:hidden;transform-origin:top center;will-change:transform;transition:transform 1.05s cubic-bezier(.6,.05,.3,1)}body.opened .env-flap{transform:rotateX(-168deg)}.env-letter-paper{inset-inline-start:22%;inset-block-start:40.5%;z-index:2;inline-size:56%;block-size:44%;display:flex;justify-content:center;align-items:flex-start;padding-block-start:9%;border-radius:.55rem;background:linear-gradient(175deg,#fbf6ea,var(--paper-deep));box-shadow:0 -.4rem 1.4rem #1e080a40,inset 0 1px #fffc;will-change:transform;transition:transform 1.1s cubic-bezier(.22,.9,.28,1) 0s}body.opened .env-letter-paper{transform:translateY(-58%);transition-delay:.55s}.env-letter-paper img{inline-size:clamp(3rem,38%,5.5rem);border-radius:50%;box-shadow:0 .5rem 1.2rem #78501e40}.env-seal-btn{position:absolute;inset-inline-start:50%;inset-block-start:51%;inline-size:min(38vw,26vh,12rem);aspect-ratio:1;border:0;border-radius:50%;padding:0;background:transparent;cursor:pointer;opacity:0;pointer-events:none;touch-action:manipulation;transform:translate(-50%,-50%);transition:opacity .7s ease}body.env-ready .env-seal-btn{opacity:1;pointer-events:auto}body.opened .env-seal-btn{pointer-events:none}.env-hint{position:absolute;inset-inline-start:50%;inset-block-end:max(2.75vh,env(safe-area-inset-bottom,0px) + .75rem);color:var(--bordeaux-deep);font-family:Great Vibes,cursive;font-size:var(--text-script-md);line-height:1.08;opacity:0;pointer-events:none;text-align:center;transform:translate(-50%);white-space:nowrap;transition:opacity .5s ease}body.env-ready .env-hint{opacity:1;animation:breathe 2.6s ease-in-out infinite}body.opened .env-hint{opacity:0;animation:none}#soundBtn{position:fixed;inset-block-start:calc(env(safe-area-inset-top,0px) + .75rem);inset-inline-end:.75rem;z-index:60;display:none;align-items:center;justify-content:center;inline-size:2.875rem;block-size:2.875rem;border:1px solid rgb(217 185 138 / 55%);border-radius:50%;background:#320a12c7;color:var(--gold);box-shadow:0 4px 12px #00000059;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:transform .25s,opacity .25s}body.opened #soundBtn{display:flex}#soundBtn:hover{transform:scale(1.08)}.float-nav{position:fixed;inset-inline:50%;inset-block-end:calc(env(safe-area-inset-bottom,0px) + .75rem);z-index:45;display:flex;align-items:center;gap:.2rem;max-inline-size:min(calc(100vw - 1.5rem),44rem);padding:.35rem;border:1px solid rgb(217 185 138 / 28%);border-radius:999px;background:#320a12b8;box-shadow:0 .9rem 2rem #00000038;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transform:translate(-50%);transition:opacity .35s ease,transform .35s ease}body.opened .float-nav{opacity:1;pointer-events:auto;transition:opacity .35s ease 1.2s,transform .35s ease 1.2s}.float-nav a,.float-nav button{min-block-size:2.35rem;border:0;border-radius:999px;background:transparent;color:var(--gold-light);cursor:pointer;font-size:clamp(.72rem,2.4vw,.86rem);padding:.45rem .72rem;text-decoration:none;white-space:nowrap;transition:background .25s,color .25s,transform .25s}.float-nav a:hover,.float-nav button:hover{background:#ecd7b221;color:#fff7e9;transform:translateY(-1px)}#invite{inline-size:100%;max-inline-size:min(51rem,100%);margin:0 auto;padding:calc(env(safe-area-inset-top,0px) + var(--space-lg) + 1.25rem) var(--page-inline) calc(env(safe-area-inset-bottom,0px) + var(--space-lg));color:var(--paper);display:flex;flex-direction:column;align-items:center;gap:18px;opacity:0;visibility:hidden;transition:opacity .9s ease 1.6s,visibility 0s 1.55s}body.opened #invite{opacity:1;visibility:visible}body.admin-open{overflow:hidden}html.admin-route body{overflow:auto}html.admin-route body #envScreen,html.admin-route body #invite,html.admin-route body footer,html.admin-route body #soundBtn{display:none}html.admin-route body #adminPanel{position:relative;inset:auto;z-index:auto;display:block;min-block-size:100svh;padding:var(--space-sm) var(--page-inline) var(--space-lg);background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible}html.admin-route body .admin-shell{width:min(100%,80rem)}html.admin-route body #adminPanel[hidden]{display:none}.admin-login{min-block-size:100svh;display:grid;place-items:center;padding:var(--space-sm) var(--page-inline)}.admin-login[hidden]{display:none}.admin-login-card{width:min(100%,26rem);display:grid;gap:.9rem;text-align:center;padding:clamp(1.4rem,4vw,2rem)}.admin-login-card h1{margin:0;color:var(--bordeaux);font-family:Cormorant Garamond,serif}.admin-login-intro{margin:0}.admin-login-card .field{text-align:left}.admin-login-error{margin:0;min-block-size:1.2em;color:#a02433;font-size:var(--text-sm)}.admin-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.card{position:relative;inline-size:min(calc(100% - 1rem),51rem);container:card / inline-size;margin-block-end:0;padding:clamp(1.45rem,5.2vw,3rem) clamp(1rem,4.5vw,2.4rem);border-radius:.875rem;background:linear-gradient(175deg,#fbf6ea 0%,var(--paper) 55%,var(--paper-deep) 100%);box-shadow:0 20px 50px #0000007f;color:var(--ink);text-align:center}.page-shell{width:min(100%,820px)}.luxury-card{overflow:hidden;border:1px solid rgb(184 146 92 / 55%);box-shadow:0 1.35rem 3rem #14000638,inset 0 0 0 .34rem #ffffff2e}.luxury-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 0%,rgb(184 146 92 / 10%) 0%,transparent 28%),radial-gradient(circle at 100% 0%,rgb(184 146 92 / 10%) 0%,transparent 28%);opacity:.55}.card:before{content:"";position:absolute;inset:clamp(.55rem,2.4vw,.75rem);border:1px solid rgb(184 146 92 / 50%);border-radius:.45rem;pointer-events:none}.card>*{position:relative}.monogram{inline-size:clamp(4rem,18vw,4.75rem);block-size:clamp(4rem,18vw,4.75rem);margin:0 auto var(--space-sm);border-radius:50%;display:block;object-fit:cover;box-shadow:0 6px 16px #78501e42,inset 0 1px 2px #ffffff4d}.verse{max-inline-size:34rem;margin:0 auto var(--space-md);color:color-mix(in srgb,var(--bordeaux) 86%,var(--ink));font-size:clamp(1rem,2.7vw,1.12rem);font-style:italic;line-height:1.62}.verse p{margin-block-end:var(--space-xs)}.verse cite{color:var(--gold-dark);font-size:var(--text-xs);font-style:normal;letter-spacing:.18em;text-transform:uppercase}.section-ornament{inline-size:min(7rem,32vw);block-size:.75rem;margin:0 auto var(--space-xs);border-block:1px solid rgb(184 146 92 / 55%);background:linear-gradient(90deg,transparent 0,rgb(184 146 92 / 78%) 50%,transparent 100%);opacity:.7}.eyebrow,label,legend{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase}.eyebrow{margin:0 0 var(--space-xs);letter-spacing:.28em}h1,h2,p{margin-block-start:0}h1{margin-block-end:var(--space-sm);color:var(--bordeaux);font-family:Great Vibes,cursive;font-size:var(--text-script-xl);font-weight:400;line-height:1.05}.date-line{display:flex;align-items:center;justify-content:center;gap:clamp(.45rem,3.4vw,1rem);inline-size:min(100%,22rem);margin-inline:auto;margin-block-end:var(--space-md)}.date-line .dl{flex:1 1 0;text-align:center;border-block:1px solid rgb(184 146 92 / 55%);padding:.35rem 0;color:var(--ink);font-size:var(--text-xs);letter-spacing:clamp(.12em,1.1vw,.2em);line-height:1.6;text-transform:uppercase}.date-line .dn{flex:0 0 auto;color:var(--bordeaux);font-size:clamp(2.35rem,11vw,3rem);font-weight:500;line-height:1;text-align:center}.countdown{display:grid;gap:var(--space-xs);justify-items:center;margin-block-end:var(--space-sm)}.countdown-label{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase}.countdown-grid{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.countdown-item{display:grid;gap:.2rem;justify-items:center;padding:.65rem .35rem;border:1px solid rgb(184 146 92 / 36%);border-radius:.55rem;background:#fffaf1b8}.countdown-item strong{color:var(--bordeaux);font-size:clamp(1.1rem,4vw,1.75rem);font-weight:600;line-height:1}.countdown-item span{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.calendar-actions{position:relative;display:inline-flex;flex-direction:column;align-items:center;margin-block-end:var(--space-md)}.calendar-menu{position:absolute;inset-block-start:calc(100% + .45rem);z-index:5;min-inline-size:min(18rem,calc(100vw - 3rem));border:1px solid rgb(184 146 92 / 42%);border-radius:.65rem;background:#f7f1e4fa;box-shadow:0 1rem 2rem #320a1238;padding:.45rem}.calendar-menu a{display:block;border-radius:.45rem;color:var(--bordeaux);font-size:var(--text-sm);padding:.7rem .85rem;text-decoration:none}.calendar-menu a:hover{background:#d9b98a2e}.calendar-icon{inline-size:1rem;block-size:1rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.intro,.rsvp-sub,#confirm p{line-height:1.7}.intro{max-inline-size:40ch;margin:0 auto var(--space-sm);font-size:var(--text-base);font-style:italic}.spiritual-intro{max-inline-size:40ch;margin:0 auto var(--space-sm);color:color-mix(in srgb,var(--bordeaux) 84%,var(--ink));font-size:var(--text-base);font-style:italic;line-height:1.7}.arabic-bismillah,.spiritual-verse{max-inline-size:32rem;margin:0 auto var(--space-sm);color:var(--ink);font-family:Noto Naskh Arabic,serif;direction:rtl;text-align:center;unicode-bidi:plaintext}.arabic-bismillah{color:var(--bordeaux);font-size:clamp(1.2rem,4vw,1.65rem);font-weight:600;line-height:1.75}.spiritual-verse{font-size:clamp(1.35rem,4.2vw,1.8rem);line-height:1.95}.spiritual-translation{margin-block-start:var(--space-sm)}.divider{display:flex;align-items:center;gap:var(--space-xs);inline-size:100%;margin:var(--space-sm) auto var(--space-md);color:var(--gold-dark)}.divider:before,.divider:after{content:"";flex:1;block-size:1px;background:#b8925c7f}.venue{display:grid;gap:var(--space-sm);margin-block-end:0;padding:var(--space-md);border:1px solid rgb(184 146 92 / 42%);border-radius:.8rem;background:#fffaf1d1;box-shadow:0 .8rem 1.8rem #300f151a;text-align:center;justify-items:center}.venue:last-of-type{margin-block-end:0}.venue h2,.venue h3,.rsvp-card h2,#confirm .big{color:var(--bordeaux);font-family:Great Vibes,cursive;font-weight:400}.venue-label{margin:0 0 var(--space-2xs);color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase}.venue h2,.venue h3{margin-block-end:var(--space-2xs);font-size:var(--text-script-md)}.venue .time{margin-block-end:var(--space-2xs);color:var(--gold-dark);font-size:clamp(1rem,3.2vw,1.3rem);font-weight:600;letter-spacing:.08em}.venue .place{margin-block-end:var(--space-sm);font-size:var(--text-base);line-height:1.55}.map-frame{inline-size:100%;block-size:clamp(10rem,34vw,13rem);border:1px solid rgb(184 146 92 / 52%);border-radius:.65rem;background:var(--paper-deep);box-shadow:inset 0 0 0 1px #ffffff73}.route-map{block-size:clamp(11rem,44vw,15rem)}.addresses-grid{width:100%;display:grid;gap:var(--space-sm);margin-block-end:var(--space-sm)}.route-progress{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:.65rem;align-items:center;margin-block:var(--space-md)}.route-stop{display:grid;gap:.35rem;justify-items:center;text-align:center}.route-dot{inline-size:2.5rem;block-size:2.5rem;display:grid;place-items:center;border:1px solid rgb(184 146 92 / 72%);border-radius:50%;background:var(--bordeaux);color:var(--gold-light);font-size:.72rem;letter-spacing:.1em}.route-line{inline-size:100%;block-size:1px;background:linear-gradient(to right,#b8925c40,#b8925ce5,#b8925c40)}.route-stop strong{color:var(--bordeaux);font-size:var(--text-sm);font-weight:500;line-height:1.25}.venue-actions,.confirm-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-xs)}.route-points{display:grid;grid-template-columns:1fr;gap:var(--space-xs);margin-block:var(--space-sm)}.route-points p{border-block:1px solid rgb(184 146 92 / 28%);margin:0;padding:.75rem 0;line-height:1.45}.route-points span{display:block;color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase}.route-note{color:#4a2c2cd1;font-size:var(--text-sm);font-style:italic}.wedding-timeline{--timeline-gold: #b9975b;--timeline-progress: 0%;position:relative;display:flex;flex-direction:column;max-inline-size:38.75rem;margin:var(--space-md) auto var(--space-lg)}.timeline-progress{position:absolute;inset-block-start:1.5rem;inset-inline-start:2.23rem;z-index:1;inline-size:1px;block-size:var(--timeline-progress);max-block-size:calc(100% - 3rem);background:linear-gradient(to bottom,#d5b878,#9d743c);transition:block-size .5s ease-out}.timeline-step{position:relative;display:grid;grid-template-columns:4.5rem minmax(0,1fr);min-block-size:clamp(12.5rem,26vw,14.5rem)}.timeline-rail{position:relative;display:flex;justify-content:center}.timeline-step:not(:last-child) .timeline-rail:after{content:"";position:absolute;inset-block-start:3.5rem;inset-block-end:0;inline-size:1px;background:linear-gradient(to bottom,#b9975beb,#b9975b57)}.timeline-marker{position:relative;z-index:2;inline-size:3rem;block-size:3rem;display:grid;place-items:center;border:1px solid rgb(185 151 91 / 85%);border-radius:50%;background:#f8f0e2;box-shadow:0 .38rem 1.1rem #41121c1a,inset 0 0 0 .25rem #b9975b14;color:var(--bordeaux)}.timeline-marker span{font-size:1rem;font-weight:600;letter-spacing:.08em;line-height:1}.timeline-marker i{position:absolute;inset-block-start:-.62rem;color:var(--gold-dark);font-size:.78rem;font-style:normal;line-height:1}.timeline-step.is-active .timeline-marker{border-color:#c6a15c;background:var(--bordeaux);box-shadow:0 .5rem 1.5rem #5a102138;color:#fff8eb}.timeline-step.is-past .timeline-marker{border-color:#b9975be5;background:#ecd7b2}.timeline-content{padding:.25rem 0 3.5rem 1.5rem;text-align:left}.timeline-label{display:inline-block;margin-block-end:.25rem;color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase}.timeline-content h3{margin:0;color:var(--bordeaux);font-family:Great Vibes,cursive;font-size:var(--text-script-md);font-weight:400}.timeline-content p,.timeline-content address{margin:.2rem 0 0;color:var(--ink);font-size:var(--text-base);font-style:normal;line-height:1.5}.timeline-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-block-start:var(--space-xs)}.timeline-actions .maps{min-block-size:2.75rem;padding-inline:.85rem}.timeline-journey{display:inline-flex;align-items:center;gap:.5rem;margin:var(--space-sm) 0 0;border:1px solid rgb(185 151 91 / 35%);border-radius:999px;background:#f8f0e2eb;color:#725842;font-size:.68rem;letter-spacing:.12em;line-height:1.2;padding:.5rem .85rem;text-transform:uppercase}.maps,.submit{min-block-size:2.875rem;min-inline-size:2.875rem;border-radius:999px;letter-spacing:.16em;text-transform:uppercase}.maps{display:inline-flex;align-items:center;justify-content:center;border:1px solid rgb(184 146 92 / 60%);color:var(--bordeaux);font-size:var(--text-xs);padding:.6rem 1rem;text-decoration:none;transition:background .25s,color .25s,transform .25s,box-shadow .25s}.maps:hover{background:var(--bordeaux);color:var(--gold-light);box-shadow:0 .55rem 1.2rem #5a142029;transform:translateY(-1px)}.primary-route,.calendar-toggle{background:var(--bordeaux);color:var(--gold-light)}.calendar-toggle{gap:.5rem}.rsvp-card h2{margin-block-end:var(--space-2xs);font-size:var(--text-script-lg)}.rsvp-sub{margin-block-end:var(--space-md);font-style:italic}form{inline-size:100%;max-inline-size:min(27rem,100%);margin:0 auto}.field{margin-block-end:var(--space-sm);border:0;padding:0;text-align:center}label,legend{display:block;margin-block-end:.45rem}input[type=text],input[type=tel],input[type=number],select,textarea{inline-size:100%;min-block-size:3rem;border:1px solid rgb(184 146 92 / 55%);border-radius:.5rem;background:#ffffff9e;color:var(--ink);font-size:var(--text-base);padding:.7rem .9rem;text-align:center}textarea{min-block-size:5.8rem;resize:vertical;text-align:left}select{cursor:pointer}input:user-invalid{border-color:#8f1d2c}.nested-field{margin-block-start:var(--space-sm)}.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.choices{display:grid;grid-template-columns:1fr;gap:var(--space-xs)}.choice{position:relative;display:flex}.choice input{position:absolute;opacity:0}.choice span{flex:1;min-block-size:3rem;display:grid;place-items:center;border:1px solid rgb(184 146 92 / 55%);border-radius:.5rem;background:#ffffff75;cursor:pointer;font-size:var(--text-base);letter-spacing:.04em;line-height:1.2;padding:.72rem .55rem;transition:background .25s,border-color .25s,color .25s}.choice input:checked+span{border-color:var(--bordeaux);background:var(--bordeaux);color:var(--gold-light)}.contact-grid{display:grid;gap:var(--space-sm)}.phone-field-block{text-align:left}.phone-field{display:grid;grid-template-columns:minmax(7.5rem,9rem) minmax(0,1fr);gap:.55rem;align-items:stretch}.phone-field select{min-inline-size:0;text-align:left}.phone-field input{text-align:left}.choice input:focus-visible+span{outline:2px solid var(--focus);outline-offset:3px}label em{font-style:italic;letter-spacing:.05em;opacity:.85;text-transform:none}.stepper{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-block-start:.2rem}.stepper .step{inline-size:3rem;block-size:3rem;border:1px solid rgb(184 146 92 / 60%);border-radius:50%;background:#ffffff8a;color:var(--bordeaux);cursor:pointer;display:grid;place-items:center;font-size:1.5rem;line-height:1;transition:background .2s,border-color .2s,color .2s}.stepper .step:hover{border-color:var(--bordeaux);background:var(--bordeaux);color:var(--gold-light)}#nbPers{min-inline-size:3ch;color:var(--bordeaux);font-family:Great Vibes,cursive;font-size:2rem;text-align:center}.submit{display:block;inline-size:100%;margin:var(--space-md) auto 0;border:0;background:linear-gradient(160deg,var(--bordeaux) 0%,var(--bordeaux-deep) 100%);box-shadow:0 8px 20px #320a1259;color:var(--gold-light);cursor:pointer;font-size:var(--text-sm);padding:.9rem 1rem;transition:transform .25s,box-shadow .25s}.submit:hover{transform:translateY(-2px);box-shadow:0 12px 26px #320a1273}.submit:disabled{cursor:wait;opacity:.72;transform:none}#confirm{display:none;padding:var(--space-lg) 0 var(--space-xs);text-align:center}#confirm.show{display:grid;gap:var(--space-sm);animation:confirmReveal .52s cubic-bezier(.2,.8,.2,1) both}#confirm .big{margin-block-end:var(--space-xs);font-size:2.2rem}.spiritual-confirmation{max-inline-size:34rem;margin:0 auto}.spiritual-confirmation .spiritual-translation{margin-block-start:var(--space-xs)}.spiritual-confirmation cite{display:block;margin-block-start:var(--space-xs)}#confirm .powered-by{margin-block-start:var(--space-sm);padding-block-start:var(--space-xs);border-block-start:1px solid color-mix(in srgb,var(--gold) 35%,transparent);color:color-mix(in srgb,var(--gold-dark) 75%,var(--ink));font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase}#confirm .powered-by a{color:var(--gold-dark);font-weight:600;text-decoration:none;transition:color .18s ease}#confirm .powered-by a:hover,#confirm .powered-by a:focus-visible{color:var(--bordeaux);text-decoration:underline;text-underline-offset:.25em}body.is-confirmed #envScreen,body.is-confirmed footer,body.is-confirmed .skip-link,body.is-confirmed .reveal:not(#rsvp),body.is-confirmed #invite>section:not(#rsvp){display:none!important}body.is-confirmed #invite{min-block-size:100svh;display:grid;place-items:center;padding-block:clamp(1rem,4vw,2rem)}body.is-confirmed #rsvp{min-block-size:calc(100svh - 2rem);display:grid;align-content:center}body.is-confirmed #rsvp>:not(#confirm){display:none!important}body.is-confirmed #confirm{display:grid!important;padding-block:0;gap:var(--space-md)}body.is-confirmed #confirm .confirm-actions{justify-content:center}@keyframes confirmReveal{0%{opacity:0;transform:translateY(16px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.error{display:none;margin-block-start:.3rem;color:#8f1d2c;font-size:.95rem;font-style:italic;text-align:center}.error.show{display:block}.field-error{min-block-size:1.2rem;margin:.35rem 0 0;color:#8f1d2c;font-size:.92rem;font-style:italic}.server-note{min-block-size:1.3rem;color:#4a2c2cc7;font-size:.95rem;font-style:italic;line-height:1.45}.reveal{opacity:0;transform:translateY(1.4rem);filter:blur(8px);transition:opacity .8s ease,transform .8s ease,filter .8s ease}.reveal.is-visible{opacity:1;transform:none;filter:none}footer{width:100%;display:grid;gap:var(--space-xs);justify-items:center;padding-block:var(--space-xs) var(--space-sm);color:var(--gold-dark);font-family:Cormorant Garamond,serif;font-size:var(--text-sm);opacity:.88;text-align:center}.footer-mark{letter-spacing:.28em;text-transform:uppercase}.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1rem;color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.footer-nav a{color:inherit;text-decoration:none}.footer-powered{color:color-mix(in srgb,var(--gold-dark) 78%,var(--gold));font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;opacity:.85}.footer-powered a{color:var(--gold);text-decoration:none;transition:color .18s ease}.footer-powered a:hover,.footer-powered a:focus-visible{color:var(--gold-light);text-decoration:underline;text-underline-offset:.25em}.admin-panel[hidden]{display:none}.admin-panel{position:fixed;inset:0;z-index:90;padding:clamp(.75rem,2vw,1.25rem);background:#14040cc7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:auto}.admin-shell{width:min(100%,74rem);margin:0 auto;border:1px solid rgb(184 146 92 / 45%);border-radius:.9rem;background:radial-gradient(circle at top,#fffaf1f5,#f7f1e4f0);box-shadow:0 1.6rem 3.5rem #00000059;padding:clamp(1rem,2.8vw,1.6rem)}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-block-end:var(--space-sm);border-bottom:1px solid rgb(184 146 92 / 30%)}.admin-kicker{margin:0 0 .25rem;color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase}.admin-header h2,.admin-card h3{margin:0;color:var(--bordeaux);font-family:Cormorant Garamond,serif;font-weight:600}.admin-header h2{font-size:clamp(1.8rem,4vw,2.5rem)}.admin-toolbar{display:grid;gap:var(--space-sm);margin-block:var(--space-sm)}.admin-search{display:grid;gap:.35rem}.admin-search span{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase}.admin-search input,.admin-search select{min-block-size:2.75rem;border:1px solid rgb(184 146 92 / 40%);border-radius:.55rem;background:#fffaf1eb;color:var(--ink);padding:.65rem .8rem}.admin-search input::placeholder{color:#7d685fb8}.admin-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-action{min-block-size:2.75rem;border:1px solid rgb(184 146 92 / 48%);border-radius:999px;background:var(--paper);color:var(--bordeaux);cursor:pointer;padding:.5rem .9rem}.admin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-block:var(--space-sm)}.admin-stat{display:grid;gap:.25rem;border:1px solid rgb(184 146 92 / 34%);border-radius:.65rem;background:#fffaf1e5;padding:.75rem .85rem}.admin-stat span{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.admin-stat strong{color:var(--bordeaux);font-size:clamp(1.2rem,3vw,1.7rem);font-weight:600;line-height:1.1}.admin-close{min-block-size:2.75rem;border:1px solid rgb(184 146 92 / 50%);border-radius:999px;background:var(--bordeaux);color:var(--gold-light);cursor:pointer;padding:.5rem 1rem}.admin-grid{display:grid;gap:var(--space-sm);margin-block:var(--space-sm)}.admin-card{border:1px solid rgb(184 146 92 / 34%);border-radius:.75rem;background:#fffaf1eb;padding:clamp(.9rem,2vw,1.15rem)}.admin-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;margin-block-end:var(--space-xs)}.admin-card-head p{margin:0;color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.admin-raw{max-block-size:14rem;margin:0;overflow:auto;border-radius:.55rem;background:var(--bordeaux-deep);color:var(--gold-light);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;line-height:1.5;padding:.85rem;white-space:pre-wrap}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;min-inline-size:56rem}.admin-table th,.admin-table td{padding:.65rem .7rem;border-bottom:1px solid rgb(184 146 92 / 18%);text-align:left;vertical-align:top;font-size:var(--text-sm)}.admin-header-copy{display:grid;gap:.35rem;max-inline-size:48rem}.admin-intro,.admin-context,.admin-note,.admin-card-subtitle{color:var(--ink);font-size:var(--text-sm);line-height:1.65}.admin-context,.admin-note{margin:0;color:var(--gold-dark);font-style:italic}.admin-note{margin-block:-.15rem .5rem}.admin-search-box{display:flex;align-items:center;gap:.45rem;min-block-size:2.9rem;border:1px solid rgb(184 146 92 / 40%);border-radius:.55rem;background:#fffaf1eb;padding-inline:.75rem}.admin-search-icon{inline-size:1rem;block-size:1rem;flex:0 0 auto;fill:none;stroke:var(--gold-dark);stroke-width:1.8;stroke-linecap:round}.admin-search-box input{border:0;background:transparent;padding:0;min-block-size:2.25rem;text-align:left;outline:none}.admin-clear{inline-size:2rem;block-size:2rem;border:0;border-radius:50%;background:#b8925c26;color:var(--bordeaux);cursor:pointer;flex:0 0 auto}.admin-export{position:relative}.admin-export-menu{position:absolute;inset-block-start:calc(100% + .45rem);inset-inline-end:0;z-index:4;display:grid;gap:.35rem;min-inline-size:15rem;padding:.45rem;border:1px solid rgb(184 146 92 / 38%);border-radius:.7rem;background:#fffaf1fa;box-shadow:0 1rem 2rem #320a122e}.admin-export-menu .admin-action{inline-size:100%;justify-content:flex-start}.admin-action-primary{background:var(--bordeaux);color:var(--gold-light)}.admin-action-primary:hover{background:var(--bordeaux-dark)}.admin-grid{align-items:start}.admin-card h2,.admin-card h3{margin:0;color:var(--bordeaux);font-family:Cormorant Garamond,serif;font-weight:600}.admin-card h2{font-size:clamp(1.45rem,2.9vw,2rem)}.admin-venue-list{display:grid;gap:.75rem}.admin-venue-card{display:grid;gap:.45rem;padding:.9rem;border:1px solid rgb(184 146 92 / 28%);border-radius:.65rem;background:#fffaf1d1}.admin-venue-card h3{font-size:var(--text-lg)}.admin-venue-card p{margin:0;color:var(--ink);font-size:var(--text-sm);line-height:1.5}.admin-venue-card .venue-actions{justify-content:flex-start}.admin-dl{display:grid;gap:.65rem;margin:var(--space-xs) 0 0}.admin-dl div{display:grid;gap:.15rem}.admin-dl dt{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase}.admin-dl dd{margin:0;color:var(--ink);font-size:var(--text-sm);line-height:1.5}.admin-dl a{color:var(--bordeaux);text-decoration:none}.admin-tech{display:grid;gap:.75rem}.admin-tech summary{cursor:pointer;color:var(--bordeaux);font-family:Cormorant Garamond,serif;font-size:var(--text-lg);font-weight:600}.admin-tech-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-response-layout{display:grid;gap:var(--space-sm)}.admin-mobile-list{display:none;gap:var(--space-sm)}.admin-response-card{display:grid;gap:.7rem;padding:.95rem;border:1px solid rgb(184 146 92 / 28%);border-radius:.75rem;background:#fffaf1eb}.admin-response-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin-response-count{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase}.admin-response-meta{display:grid;gap:.55rem;margin:0}.admin-response-meta div{display:grid;gap:.1rem}.admin-response-meta dt{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase}.admin-response-meta dd{margin:0;color:var(--ink);font-size:var(--text-sm);line-height:1.45}.admin-response-actions{display:flex;flex-wrap:wrap;gap:.45rem}.admin-inline-action{min-block-size:2.45rem;border:1px solid rgb(184 146 92 / 35%);border-radius:999px;background:#fffaf1f0;color:var(--bordeaux);cursor:pointer;padding:.45rem .75rem}.admin-actions-cell{display:flex;flex-wrap:wrap;gap:.35rem}.admin-badge{display:inline-flex;align-items:center;justify-content:center;min-block-size:2rem;padding:.3rem .65rem;border-radius:999px;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase}.admin-badge.is-yes{border:1px solid rgb(90 20 32 / 28%);background:#5a14201a;color:var(--bordeaux)}.admin-badge.is-no{border:1px solid rgb(125 104 95 / 28%);background:#7d685f1a;color:var(--ink)}.admin-badge.is-pending{border:1px solid rgb(184 146 92 / 28%);background:#b8925c24;color:var(--gold-dark)}.admin-empty-state{display:grid;justify-items:center;gap:.75rem;padding:clamp(1.5rem,4vw,2.4rem);border:1px solid rgb(184 146 92 / 28%);border-radius:.85rem;background:#fffaf1eb;text-align:center}.admin-empty-icon{inline-size:3rem;block-size:3rem;display:grid;place-items:center;border-radius:50%;background:var(--bordeaux);color:var(--gold-light);font-size:1.25rem}.admin-empty-state h3{margin:0;color:var(--bordeaux);font-family:Cormorant Garamond,serif;font-size:var(--text-script-md);font-weight:600}.admin-empty-state p{max-inline-size:42ch;margin:0;color:var(--ink);line-height:1.65}.admin-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem;margin-block-start:var(--space-sm)}.admin-pagination-info{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase}.admin-dialog{border:0;border-radius:.9rem;padding:0;background:transparent;max-inline-size:min(94vw,58rem)}.admin-dialog::backdrop{background:#14040cad;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.admin-dialog-card{display:grid;gap:1rem;padding:clamp(1rem,3vw,1.5rem);border:1px solid rgb(184 146 92 / 38%);border-radius:.9rem;background:radial-gradient(circle at top,#fffaf1fa,#f7f1e4f5);box-shadow:0 1.4rem 3rem #00000047}.admin-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.admin-dialog-head h2{margin:0;color:var(--bordeaux);font-family:Cormorant Garamond,serif;font-size:clamp(1.5rem,3vw,2.1rem)}.admin-dialog-dl{max-block-size:min(60svh,32rem);overflow:auto;padding-inline-end:.25rem}.admin-dialog-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.admin-form-grid{display:grid;gap:.85rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid .field{text-align:left}.admin-form-grid label span,.admin-form-grid legend{margin-block-end:.35rem}.admin-toast{position:fixed;inset-inline:50%;inset-block-end:calc(env(safe-area-inset-bottom,0px) + 1rem);z-index:120;transform:translate(-50%);padding:.7rem 1rem;border:1px solid rgb(184 146 92 / 35%);border-radius:999px;background:#320a12eb;color:var(--gold-light);box-shadow:0 1rem 2rem #00000038;opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.admin-toast.is-visible{opacity:1;transform:translate(-50%) translateY(-.15rem)}.admin-table{min-inline-size:74rem}.admin-table th{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase}.admin-table td{font-size:var(--text-sm)}.admin-empty-row td{text-align:center;color:var(--gold-dark);font-style:italic;letter-spacing:.06em}.admin-table th{color:var(--gold-dark);font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase}.admin-table td{color:var(--ink)}@media(min-width:60rem){.admin-toolbar{grid-template-columns:1fr 1fr auto;align-items:end}.admin-actions{justify-content:end}.admin-stats{grid-template-columns:repeat(6,minmax(0,1fr))}.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-rsvp{grid-column:1 / -1}}@container card (min-width: 28rem){.choices{grid-template-columns:repeat(2,minmax(0,1fr))}}@container card (min-width: 34rem){.venue .place{font-size:var(--text-lg)}form{max-inline-size:28rem}}@media(max-width:22rem){:root{--page-inline: .65rem}.card{border-radius:.7rem;padding-inline:.9rem}.float-nav{max-inline-size:calc(100vw - .75rem);overflow-x:auto}.eyebrow,label,legend,.maps,.submit{letter-spacing:.12em}.date-line{gap:.42rem}}@media(max-width:38rem){#invite{padding-block-start:calc(env(safe-area-inset-top,0px) + var(--space-md))}.card{inline-size:min(calc(100% - .9rem),51rem);padding:clamp(1.2rem,5vw,2.4rem) clamp(.9rem,4vw,1.5rem)}.calendar-actions{inline-size:100%}.calendar-toggle{inline-size:100%;justify-content:center}.calendar-menu{inset-inline:0;min-inline-size:0}.timeline-progress{inset-inline-start:1.43rem}.timeline-step{grid-template-columns:3.15rem minmax(0,1fr);min-block-size:auto}.timeline-step:not(:last-child) .timeline-rail:after{inset-block-start:2.75rem}.timeline-marker{inline-size:2.38rem;block-size:2.38rem}.timeline-marker span{font-size:.82rem}.timeline-content{display:flex;flex-direction:column;align-items:center;padding-inline-start:1rem;padding-inline-end:.25rem;padding-block-end:3rem;text-align:center}.timeline-content p,.timeline-content address{max-inline-size:18ch}.timeline-actions{justify-content:center;flex-direction:column;inline-size:100%}.timeline-actions .maps{inline-size:100%}.timeline-journey{align-self:center}.route-progress{grid-template-columns:1fr;justify-items:center;text-align:center}.route-line{inline-size:1px;block-size:1.5rem}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.phone-field{grid-template-columns:minmax(6.8rem,8.25rem) minmax(0,1fr);gap:.45rem}.admin-header{flex-direction:column}.admin-close{inline-size:100%}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-form-grid{grid-template-columns:1fr}.admin-table-wrap{display:none}.admin-mobile-list{display:grid}.admin-dialog{max-inline-size:calc(100vw - 1rem)}}@media(min-width:48rem){#invite{padding-block-start:calc(env(safe-area-inset-top,0px) + var(--space-lg) + 2rem)}.card{margin-block-end:0}.addresses-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.venue{align-content:start}}@media(max-width:42rem){.float-nav{justify-content:flex-start;overflow-x:auto}.float-nav a,.float-nav button{flex:0 0 auto}}@media(hover:none)and (pointer:coarse){.maps:hover,.submit:hover,.stepper .step:hover,#soundBtn:hover{transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none;filter:none}.timeline-progress{block-size:calc(100% - 3rem);transition:none}}
