@font-face{font-family:Comforter;src:url('assets/comforter.ttf') format('truetype');font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/cormorant-italic.ttf') format('truetype');font-style:italic;font-display:swap}
:root{--wine:#671e27;--deep:#40151d;--paper:#f3ebdb;--ink:#382b25;--muted:#826b58;--gold:#b4956e;--line:#cdbb9e;--serif:Cormorant,Georgia,serif;--script:Comforter,'Brush Script MT',cursive}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:400 22px/1.55 var(--serif);-webkit-font-smoothing:antialiased}body,main{overflow-x:clip}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}h1,h2,h3,p,figure{margin:0}img{display:block;max-width:100%}section{position:relative}::selection{background:#b18466;color:#fff}.skip-link{position:fixed;top:-100px;left:15px;padding:12px;background:white;z-index:20}.skip-link:focus{top:10px}.masthead{height:82px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-bottom:1px solid #d5c6b0}.monogram{font:32px var(--serif);letter-spacing:2px}.monogram span{font-style:italic;color:var(--wine);font-size:23px}.masthead nav{display:flex;gap:38px;font-size:18px}.masthead nav a{border-bottom:1px solid transparent;transition:border-color .2s}.masthead nav a:hover{border-color:var(--wine)}.masthead-date{font:12px/1.5 'Courier New',monospace;letter-spacing:3px}.eyebrow{font:11px/1.8 'Courier New',monospace;text-transform:uppercase;letter-spacing:2.4px;color:var(--wine)}.eyebrow.light{color:#ead7bb}.hero{background:linear-gradient(90deg,#40131cdd,#671e2738),url('assets/wallpaper.png') center 20%/650px auto,var(--wine);color:var(--paper);padding:75px 40px 48px}.hero:after,.venue:after{content:'';position:absolute;left:0;bottom:-1px;height:19px;width:100%;background:var(--paper);clip-path:polygon(0 45%,2% 70%,4% 45%,6% 80%,9% 60%,12% 75%,15% 35%,18% 60%,21% 45%,24% 70%,27% 45%,30% 75%,34% 45%,38% 80%,42% 55%,46% 70%,49% 30%,53% 60%,57% 35%,61% 70%,65% 45%,69% 80%,73% 50%,77% 75%,80% 45%,84% 80%,88% 40%,92% 65%,96% 35%,100% 70%,100% 100%,0 100%)}.hero-inner{max-width:1200px;min-height:650px;margin:auto;display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:36px}.hero-copy{text-align:center;padding-bottom:30px}.hero h1{font:400 clamp(74px,8vw,112px)/1.03 var(--script);margin:35px 0 30px;text-shadow:0 2px 15px #24000630}.hero h1>span{display:block}.hero h1 .ampersand{font:italic 50px/.85 var(--serif);color:#d5b691;margin:8px 0}.hero-rule{display:flex;gap:16px;align-items:center;justify-content:center;color:#caa982}.hero-rule span{width:55px;height:1px;background:#caa98280}.hero-rule i{font-size:10px;font-style:normal}.hero-date{font-size:30px;letter-spacing:2px;margin-top:15px}.hero-city{font:11px 'Courier New',monospace;text-transform:uppercase;letter-spacing:4px;margin-top:12px;color:#dfc7a8}.photo-composition{height:590px;position:relative;isolation:isolate}.photo-card{position:absolute;background:#eae0c8;padding:15px 15px 0;box-shadow:1px 12px 30px #1d070950,inset 0 0 30px #8c663828;border:1px solid #dfd1b7}.photo-card figcaption{font:39px/1.8 var(--script);color:var(--wine);white-space:nowrap;text-align:center}.photo-window{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(ellipse at 40% 30%,#e0d4bd,#aa997f);color:#78654f;aspect-ratio:4/5;box-shadow:inset 0 0 32px #55403022}.photo-window:before{content:'';position:absolute;inset:14px;border:1px solid #8b745733;pointer-events:none}.photo-window img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.photo-window.has-photo:before{display:none}.photo-initial{font:72px var(--script);opacity:.6}.photo-initial.couple{font:56px var(--serif);letter-spacing:3px}.photo-initial i{font-size:40px}.photo-hint{font:9px/1.5 'Courier New',monospace;letter-spacing:1px;text-align:center;max-width:85%;opacity:.85;margin-top:20px}.photo-kicker{font:10px 'Courier New',monospace;letter-spacing:2px;text-transform:uppercase;margin-bottom:30px}.photo-small{font:10px 'Courier New',monospace;letter-spacing:3px;margin-top:30px}.back-left{width:65%;left:-3%;top:83px;transform:rotate(-14deg);z-index:0}.back-right{width:65%;right:-1%;top:53px;transform:rotate(13deg);z-index:0}.back-right .photo-window{background:radial-gradient(ellipse at 40% 30%,#ddd1b8,#9e9b83)}.main-photo{width:76%;left:12%;top:24px;transform:rotate(-3deg);z-index:2}.main-photo .photo-window{aspect-ratio:4/4.65;background:radial-gradient(ellipse at 35% 25%,#e8decb,#b5a58c)}.wax-seal{position:absolute;width:104px;height:auto;left:calc(50% - 52px);top:-20px;transform:rotate(9deg);z-index:3;filter:drop-shadow(2px 5px 4px #25050c50)}.little-ticket{position:absolute;bottom:4px;right:2px;transform:rotate(8deg);z-index:4;padding:12px 23px;background:#d3ab88;color:#442d25;outline:1px solid #654f3a;outline-offset:-6px;border-left:3px dotted var(--deep);border-right:3px dotted var(--deep);box-shadow:2px 5px 10px #2c0c1235;text-align:center}.little-ticket span,.little-ticket small{display:block;font:10px 'Courier New',monospace;letter-spacing:2px}.little-ticket strong{display:block;font:24px var(--serif);letter-spacing:2px}.little-ticket small{font-size:7px;letter-spacing:1px;margin-top:3px}.paper-section{background:radial-gradient(ellipse at 90% 0,#d5bd9230,transparent 55%),var(--paper)}.section-inner{max-width:1120px;margin:auto;padding-left:32px;padding-right:32px}.invitation{padding:120px 0 75px}.script-decoration{position:absolute;top:12px;left:-30px;white-space:nowrap;font:85px var(--script);color:#9c7f5920;transform:rotate(-4deg);pointer-events:none}.invitation-grid{display:grid;grid-template-columns:1.13fr .87fr;gap:95px;align-items:center}.script-heading{font:400 clamp(44px,5vw,64px)/1.25 var(--script);color:var(--wine)}.letter .script-heading{margin:18px 0 28px}.letter>p:not(.eyebrow):not(.signature){margin-bottom:20px;max-width:530px;font-size:25px;line-height:1.6}.letter em{color:var(--wine)}.signature{font:35px/1.4 var(--script);color:var(--wine);margin-top:35px}.calendar-note{position:relative;text-align:center;background:#faf4e6;padding:35px 26px 28px;transform:rotate(3deg);box-shadow:1px 6px 20px #58412b16;border:1px solid #e6d9c1;scroll-margin-top:50px}.tape{position:absolute;background:#cbbb9380;width:110px;height:33px;top:-16px;left:calc(50% - 55px);transform:rotate(-6deg);border-left:2px dashed #ffffff50;border-right:2px dashed #ffffff50}.calendar-note h3{font:48px/1.2 var(--script);color:var(--wine);margin:12px 0 20px}.calendar-note h3 span{font:22px var(--serif);margin-left:10px;color:var(--muted)}.calendar{width:100%;table-layout:fixed;border-collapse:collapse;font-size:20px}.calendar th{font:10px 'Courier New',monospace;font-weight:400;color:var(--muted);height:35px}.calendar td{height:38px;position:relative}.wedding-day span{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--wine);border-radius:48% 43% 47% 42%;width:36px;height:34px;color:var(--wine);font-weight:500}.wedding-day span:after{content:'♥';position:absolute;right:-3px;top:-9px;font:13px var(--serif);background:#faf4e6}.calendar-caption{font:28px var(--script);color:var(--wine);margin:17px 0}.text-link{display:inline-block;border-bottom:1px solid #8b4b4760;padding-bottom:4px;font-size:18px;color:var(--wine)}.text-link:hover{border-bottom-color:var(--wine)}.story{padding:65px 0 115px}.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.memory-pair{position:relative;height:440px}.memory-card{position:absolute;width:58%;background:#e9deca;padding:12px 12px 0;box-shadow:3px 6px 14px #60452230;border:1px solid #ded0b6}.memory-card figcaption{text-align:center;white-space:nowrap;font:23px/2.2 var(--script);color:var(--wine)}.memory-one{left:2%;top:10px;transform:rotate(-10deg)}.memory-two{right:-2%;top:120px;transform:rotate(8deg)}.memory-two .photo-window{background:radial-gradient(ellipse at 40% 30%,#d5c8b0,#a8aa93)}.memory-pair .photo-initial{font-size:70px}.story-copy h2{font:400 48px/1.1 var(--serif);margin:22px 0 25px}.story-copy h2 em{font-weight:400;color:var(--wine)}.story-copy>p:not(.eyebrow){margin-bottom:17px}.story-copy .story-postscript{font-style:italic;color:var(--wine);border-left:1px solid #a07d58;padding-left:23px;margin-top:30px}.venue{background:linear-gradient(#561822e8,#40151de8),url('assets/wallpaper.png') center/600px auto;padding:80px 25px 85px;text-align:center;color:var(--paper)}.venue:before{content:'';position:absolute;inset:0;box-shadow:inset 0 15px 35px #16060a45;pointer-events:none}.venue .script-heading{color:var(--paper);margin:12px 0 40px}.venue-inner{max-width:800px;margin:auto}.venue-card{position:relative;background:var(--paper);color:var(--ink);padding:52px 35px 45px;max-width:590px;margin:auto;box-shadow:0 12px 35px #1b040b60;outline:1px solid #bd9e72;outline-offset:-15px;border:6px double #dbc5a2}.venue-flourish{font-size:36px;color:var(--gold);line-height:1;display:block;margin-bottom:14px}.venue-card h3{font:400 66px/1.2 var(--serif);letter-spacing:9px;margin:8px 0 13px}.ornament-line{display:flex;justify-content:center;align-items:center;gap:15px;color:var(--gold);font-size:16px}.ornament-line:before,.ornament-line:after{content:'';width:50px;height:1px;background:var(--line)}.venue address{font-style:normal;font-size:26px;line-height:1.45;margin:20px 0}.venue-time{font:11px/1.7 'Courier New',monospace;color:var(--muted);margin:20px 0 26px}.button{display:inline-flex;gap:30px;align-items:center;justify-content:center;background:var(--wine);border:1px solid var(--wine);color:var(--paper);padding:12px 28px;min-height:48px;font-size:20px;transition:background .2s,transform .2s}.button:hover{background:var(--deep);transform:translateY(-2px)}.venue-note{font:31px var(--script);margin-top:32px;color:#d9b892}.schedule{padding:95px 0 85px}.section-heading{text-align:center;margin-bottom:50px}.section-heading .script-heading{margin-top:14px}.timeline{list-style:none;margin:0 auto;padding:0;max-width:850px}.timeline li{display:grid;grid-template-columns:180px 1fr 60px;gap:45px;align-items:center;padding:27px 0;border-top:1px solid var(--line)}.timeline li:last-child{border-bottom:1px solid var(--line)}.timeline-time{display:flex;align-items:center;gap:25px}.timeline time{font:italic 43px var(--serif);color:var(--wine);min-width:103px}.timeline-time>span{font:10px 'Courier New',monospace;color:#a78b6d;border:1px solid #c4ad8d;border-radius:50%;width:29px;height:29px;display:grid;place-items:center;flex-shrink:0}.timeline-detail h3{font-size:27px;font-weight:500;line-height:1.2;margin-bottom:7px}.timeline-detail p{font-size:19px;color:var(--muted);line-height:1.5}.timeline-mark{font-size:40px;color:#9d7756;text-align:right}.closing{text-align:center;padding:35px 24px 75px;background:radial-gradient(ellipse at 50% 100%,#d5bd9235,transparent 65%),var(--paper)}.closing-seal{width:75px;height:auto;margin:0 auto 30px}.countdown{display:flex;align-items:center;justify-content:center;gap:22px;margin:18px 0 43px}.countdown>div{min-width:90px}.countdown span{font:400 55px/1.1 var(--serif);color:var(--wine);font-variant-numeric:tabular-nums}.countdown small{display:block;font:9px 'Courier New',monospace;letter-spacing:2px;text-transform:uppercase;margin-top:10px;color:var(--muted)}.countdown i{font-size:24px;color:var(--gold);font-style:normal;align-self:flex-start;margin-top:8px}.closing .script-heading{font-size:clamp(42px,5vw,66px)}.closing-names{font:italic 29px var(--serif);margin:20px 0 13px}.closing-names span{color:var(--wine);margin:0 9px}.closing-date{font:10px 'Courier New',monospace;letter-spacing:3px;color:var(--muted)}.closing .text-link{font-size:15px;margin-top:40px}footer{border-top:1px solid #d6c6ac;text-align:center;padding:22px;font:10px 'Courier New',monospace;letter-spacing:1px;color:var(--muted)}
@media(min-width:1450px){.hero{padding-top:95px;padding-bottom:55px}.hero-inner{min-height:690px}.photo-composition{height:620px}}
@media(max-width:1050px){.hero{padding-left:30px;padding-right:30px}.hero-inner{min-height:570px;gap:18px}.photo-composition{height:500px}.main-photo{width:80%;left:10%}.photo-card figcaption{font-size:31px}.back-left,.back-right{top:70px}.little-ticket{bottom:12px;right:-5px}.invitation-grid{gap:50px}.story-grid{gap:40px}.memory-pair{height:380px}.memory-two{top:120px}.memory-card figcaption{font-size:20px}.story-copy h2{font-size:42px}}
@media(max-width:760px){.masthead{height:67px;padding:0 22px}.monogram{font-size:26px}.masthead nav{gap:22px;font-size:16px}.masthead-date{display:none}.hero{padding:48px 24px 42px}.hero-inner{display:flex;flex-direction:column;gap:0;min-height:0}.hero-copy{padding:0;width:100%}.hero h1{font-size:77px;line-height:.98;margin:25px 0 22px}.hero h1 .ampersand{font-size:34px;margin:6px 0}.hero-date{font-size:27px;margin-top:14px}.hero-city{margin-top:8px}.photo-composition{width:min(450px,100%);height:535px;margin-top:55px}.main-photo{width:74%;left:13%;top:12px}.back-left,.back-right{width:65%;top:65px}.back-left{left:0}.back-right{right:0}.wax-seal{width:86px;left:calc(50% - 43px);top:-24px}.little-ticket{bottom:8px;right:4%;transform:rotate(7deg)}.section-inner{padding:0 26px}.invitation{padding:80px 0 45px}.invitation-grid{grid-template-columns:1fr;gap:55px;max-width:590px}.letter{text-align:center}.script-heading{font-size:49px}.letter .script-heading{margin:16px 0 25px}.letter>p:not(.eyebrow):not(.signature){font-size:23px;max-width:none}.signature{font-size:31px;margin-top:25px}.calendar-note{width:min(370px,95%);margin:auto;padding:32px 25px 27px}.story{padding:45px 0 75px}.story-grid{display:flex;flex-direction:column-reverse;gap:30px;max-width:590px}.story-copy{text-align:center}.story-copy h2{font-size:43px;margin:18px 0 22px}.story-copy p{font-size:23px}.story-copy .story-postscript{border-left:0;padding-left:0;margin-top:22px}.memory-pair{width:min(400px,100%);height:405px;margin-top:10px}.memory-card{width:57%}.memory-two{top:100px;right:1%}.memory-one{left:2%}.memory-card figcaption{font-size:22px}.venue{padding:65px 20px 65px}.venue .script-heading{font-size:46px;margin-bottom:30px}.venue-card{padding:36px 20px 35px;outline-offset:-10px}.venue-card h3{font-size:59px;letter-spacing:7px}.venue address{font-size:25px}.venue-time{max-width:230px;margin:20px auto 25px}.venue-note{font-size:28px;line-height:1.4;margin:25px auto 0;max-width:310px}.schedule{padding:65px 0 55px}.section-heading{margin-bottom:32px}.section-heading .eyebrow{max-width:300px;margin:auto}.timeline li{grid-template-columns:95px 1fr;gap:22px;padding:25px 0;align-items:start}.timeline-time{display:block}.timeline time{font-size:36px;min-width:0}.timeline-time>span{margin:8px 0 0 24px;width:24px;height:24px;font-size:8px}.timeline-detail h3{font-size:25px;line-height:1.15}.timeline-detail p{font-size:19px}.timeline-mark{display:none}.closing{padding:20px 25px 50px}.closing .script-heading{font-size:44px;max-width:410px;margin:auto}.countdown{gap:12px;margin-bottom:35px}.countdown>div{min-width:74px}.countdown span{font-size:48px}.countdown small{font-size:8px}.closing-names{font-size:27px}}
@media(max-width:410px){.photo-composition{height:450px}.photo-card figcaption{font-size:28px}.photo-initial.couple{font-size:43px}.photo-hint{font-size:8px;letter-spacing:.5px}.photo-kicker{font-size:8px;margin-bottom:20px}.photo-small{font-size:8px;margin-top:20px}.little-ticket{bottom:0;font-size:15px}.little-ticket strong{font-size:20px}.memory-pair{height:350px}.memory-card figcaption{font-size:19px}.memory-card{padding:9px 9px 0}.eyebrow{font-size:10px;letter-spacing:1.8px}.masthead nav{gap:18px}.script-heading{font-size:44px}.timeline li{gap:15px;grid-template-columns:86px 1fr}.timeline time{font-size:33px}.timeline-detail h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Пожелания, фотоальбом и палитра гостей */
.schedule-timezone{text-align:center;font:10px/1.6 'Courier New',monospace;letter-spacing:1.5px;color:var(--muted);margin-top:23px}
.section-intro{max-width:650px;margin:22px auto 0;font-size:23px;line-height:1.55;color:var(--muted)}
.wishes{padding:35px 0 85px}.wishes .section-heading{margin-bottom:42px}.wish-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:27px;align-items:start}.wish-note{position:relative;padding:33px 27px 31px;background:#fbf5e9;border:1px solid #e2d5bf;box-shadow:2px 7px 18px #58412b10}.wish-note:nth-child(1){transform:rotate(-1.4deg)}.wish-note:nth-child(2){margin-top:22px;transform:rotate(.8deg)}.wish-note:nth-child(3){transform:rotate(1.4deg)}.wish-number{font:10px 'Courier New',monospace;letter-spacing:2px;color:#a58b70}.wish-symbol{display:block;color:var(--wine);font-size:33px;margin:15px 0 12px;line-height:1}.wish-note h3{font:500 28px/1.15 var(--serif);color:var(--wine);margin-bottom:18px}.wish-note p{font-size:20px;line-height:1.55}.wishes-signature{font:34px/1.35 var(--script);text-align:center;color:var(--wine);margin-top:42px}
.moments{background:#e7dbc6;padding:75px 0 85px}.moments:before{content:'';position:absolute;left:0;right:0;top:0;height:12px;background:var(--paper);clip-path:polygon(0 0,100% 0,100% 35%,96% 70%,92% 35%,88% 90%,84% 45%,80% 75%,76% 40%,72% 85%,68% 45%,64% 70%,60% 30%,56% 75%,52% 45%,48% 85%,44% 30%,40% 75%,36% 45%,32% 90%,28% 50%,24% 80%,20% 40%,16% 75%,12% 35%,8% 80%,4% 50%,0 75%)}.moments .section-heading{margin-bottom:55px}.moments-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:23px;align-items:start;padding:0 5px}.moment-card{position:relative;background:#f8f0df;border:1px solid #d8c6aa;box-shadow:3px 8px 17px #60452225;padding:10px 10px 0;transform:rotate(-3deg)}.moment-card:nth-child(even){transform:rotate(3deg);margin-top:27px}.moment-card:nth-child(3){transform:rotate(-2deg)}.moment-card .photo-window{aspect-ratio:4/5}.moment-card .photo-initial{font-size:44px}.moment-card:nth-child(2) .photo-window{background:radial-gradient(ellipse at 40% 30%,#d4cebc,#a0a18b)}.moment-card:nth-child(3) .photo-window{background:radial-gradient(ellipse at 40% 30%,#e0c7bc,#b39589)}.moment-card:nth-child(4) .photo-window{background:radial-gradient(ellipse at 40% 30%,#d4c6b1,#a18b71)}.moment-card figcaption{text-align:center;font:24px/1.25 var(--script);padding:13px 0 17px;color:var(--wine);min-height:60px;display:grid;place-items:center}.photo-tape{position:absolute;top:-13px;left:calc(50% - 33px);width:66px;height:28px;background:#bdad8880;transform:rotate(4deg);z-index:2;border-left:2px dashed #eee3ca70;border-right:2px dashed #eee3ca70}.moment-card:nth-child(even) .photo-tape{transform:rotate(-7deg)}
.dress-code{padding:85px 0 70px}.dress-code-letter{max-width:850px;text-align:center;margin:auto;border:1px solid #cdbb9e;padding:40px 40px 45px;outline:1px solid #ded0b9;outline-offset:7px;background:#fbf5e955}.dress-code-ornament{display:block;color:var(--gold);font-size:26px;line-height:1;margin-bottom:20px}.dress-code .script-heading{margin-top:13px}.dress-palette{display:flex;justify-content:center;gap:25px;list-style:none;padding:0;margin:37px auto 30px}.dress-palette li{flex:0 1 107px;text-align:center;font-size:17px;line-height:1.25}.swatch{display:block;width:80px;height:80px;max-width:100%;margin:0 auto 15px;border-radius:50%;box-shadow:inset 0 0 0 1px #0000000a,0 3px 6px #59422915}.swatch-wine{background:#702c39}.swatch-rose{background:#bd9090}.swatch-sage{background:#a1aa92}.swatch-beige{background:#d0b996}.swatch-cocoa{background:#937565}.dress-code-note{font-size:20px;line-height:1.5;font-style:italic;color:var(--muted)}
.countdown{gap:15px;margin-bottom:18px}.countdown-target{font:10px/1.6 'Courier New',monospace;letter-spacing:1.3px;color:var(--muted);margin-bottom:35px}
@media(max-width:1050px){.wish-notes{gap:18px}.wish-note{padding:27px 22px}.wish-note h3{font-size:26px}.moments-gallery{gap:18px}.moment-card{padding:9px 9px 0}.moment-card figcaption{font-size:21px}.moment-card .photo-initial{font-size:37px}}
@media(max-width:760px){.wishes{padding:10px 0 60px}.wishes .section-inner{max-width:590px}.section-intro{font-size:22px;margin-top:18px}.wishes .script-heading{font-size:44px}.wish-notes{grid-template-columns:1fr;gap:25px}.wish-note{padding:28px 29px}.wish-note:nth-child(2){margin-top:0}.wish-symbol{margin-top:12px;font-size:28px}.wish-note h3{font-size:29px;margin-bottom:14px}.wish-note p{font-size:22px}.wishes-signature{font-size:31px;margin-top:30px}.moments{padding:60px 0 65px}.moments .section-inner{max-width:590px}.moments-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 19px}.moments .section-heading{margin-bottom:40px}.moment-card:nth-child(even){margin-top:20px}.moment-card figcaption{font-size:22px;min-height:65px}.moment-card .photo-hint{font-size:8px;letter-spacing:.5px}.dress-code{padding:65px 0 55px}.dress-code-letter{padding:30px 19px 32px}.dress-palette{gap:10px;margin:30px auto 25px}.dress-palette li{font-size:15px;flex:1;min-width:0}.swatch{width:60px;height:auto;aspect-ratio:1;margin-bottom:11px}.dress-code-note{font-size:20px}.countdown{gap:8px}.countdown>div{min-width:0;width:65px}.countdown span{font-size:44px}.countdown small{font-size:8px;letter-spacing:1px}.countdown i{font-size:21px}.countdown-target{font-size:9px}}
@media(max-width:410px){.wishes .script-heading{font-size:39px}.wish-note{padding:25px}.wish-note p{font-size:21px}.moments-gallery{gap:29px 15px}.moment-card{padding:7px 7px 0}.moment-card .photo-initial{font-size:31px}.moment-card figcaption{font-size:20px;padding:12px 2px;min-height:65px}.dress-code-letter{padding:28px 14px}.dress-palette{gap:8px;flex-wrap:wrap;max-width:235px;row-gap:20px}.dress-palette li{flex:0 0 65px;font-size:15px}.swatch{width:55px}.countdown{gap:6px}.countdown>div{width:55px}.countdown span{font-size:38px}.countdown small{font-size:8px;letter-spacing:.6px}.countdown-target{letter-spacing:.8px}}

[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.guest-form{max-width:720px;margin:auto;padding:38px;background:#faf4e8;border:1px solid var(--line);box-shadow:3px 8px 20px #58412b12}.rsvp{padding:30px 0 65px}.guest-form input:not([type=radio]):not([type=checkbox]),.guest-form textarea,.guest-form select{font:20px/1.4 var(--serif);color:var(--ink);background:#fffaf1;border:1px solid #cdbb9e;border-radius:3px;padding:12px 14px;width:100%;min-height:48px;outline-offset:3px}.guest-form textarea{resize:vertical}.form-label,.guest-form legend{display:block;font:500 23px/1.3 var(--serif);margin:0 0 12px;color:var(--wine)}.form-label:not(:first-child){margin-top:25px}.guest-form fieldset{border:0;padding:0;margin:28px 0}.guest-form #attendance-details{margin:0}.guest-form #attendance-details>fieldset:first-of-type{margin-top:28px}.choice-row{display:flex;flex-wrap:wrap;gap:10px}.choice{position:relative;display:inline-flex;align-items:center;gap:9px;font-size:19px;line-height:1.3;background:#efe4d1;border:1px solid #d8c4a6;padding:11px 13px;cursor:pointer;border-radius:3px;min-height:46px}.choice:has(input:checked){background:#671e2710;border-color:var(--wine);color:var(--wine)}.choice input{accent-color:var(--wine);width:16px;height:16px;flex-shrink:0}.field-note,.form-privacy{font-size:17px;line-height:1.5;color:var(--muted);margin:0 0 14px}.form-privacy{margin:24px 0 20px}.children-ages{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0}.age-label{font-size:18px}.age-label input{margin-top:5px}.form-status{font-size:20px;color:var(--wine);margin-top:18px;white-space:pre-line}.form-status.is-error{color:#a52b2b}.button{cursor:pointer;font-family:var(--serif)}.button:disabled{opacity:.6;cursor:default;transform:none}.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.text-button{border:0;background:none;text-decoration:underline;color:var(--wine);padding:12px 0;font:18px var(--serif);cursor:pointer}.telegram{padding:10px 0 65px;text-align:center}.telegram-note{max-width:740px}.telegram-note .button{margin-top:26px}.telegram-note .script-heading{margin-top:12px}.wedding-day span{border:0;border-radius:0;position:relative}.wedding-day span:after{display:none}.wedding-day b{font-weight:500;position:relative;z-index:1}.date-heart{position:absolute;width:48px;height:45px;max-width:none;left:50%;top:50%;transform:translate(-50%,-50%);overflow:visible;fill:none;stroke:var(--wine);stroke-width:1.7;animation:heart-beat 3.8s ease-in-out infinite}.calendar-note,.photo-card,.memory-card,.moment-card{transform-origin:50% 8%;animation:paper-sway 7s ease-in-out infinite;will-change:rotate}.photo-card.back-left,.memory-one{animation-duration:8.3s;animation-delay:-2s}.back-right,.memory-two{animation-duration:7.7s;animation-delay:-4s}.main-photo{animation-duration:9s;animation-delay:-1.2s}.moment-card:nth-child(even){animation-duration:8s;animation-delay:-3s}.calendar-note{animation-duration:9.2s}.photo-card:hover,.memory-card:hover,.moment-card:hover,.calendar-note:hover{animation-play-state:paused}.reveal-target{opacity:0;translate:0 38px;transition:opacity .85s ease,translate 1s cubic-bezier(.2,.7,.2,1);will-change:opacity,translate}.reveal-target.is-visible{opacity:1;translate:0 0}.motion-disabled .reveal-target{opacity:1;translate:none}.motion-disabled *{animation:none!important;transition:none!important}
@keyframes paper-sway{0%,100%{rotate:-.7deg}50%{rotate:.7deg}}
@keyframes heart-beat{0%,100%{transform:translate(-50%,-50%) scale(1)}45%{transform:translate(-50%,-50%) scale(1.085)}62%{transform:translate(-50%,-50%) scale(1.015)}78%{transform:translate(-50%,-50%) scale(1.055)}}
@keyframes wave-rise{0%{opacity:0;translate:0 42px;rotate:-.7deg}55%{opacity:1;rotate:.35deg}100%{opacity:1;translate:0 0;rotate:0deg}}
@media(max-width:760px){.guest-form{padding:27px 21px}.rsvp{padding:20px 0 50px}.guest-form legend,.form-label{font-size:22px}.choice{font-size:18px;padding:10px 12px}.children-ages{grid-template-columns:repeat(2,1fr)}.guest-form .button{width:100%}.reveal-target{translate:0 28px;transition:opacity .7s ease,translate .85s ease}.reveal-target.is-visible{animation:wave-rise 1s cubic-bezier(.2,.6,.2,1) both}.reveal-target.is-visible>.section-heading{animation:wave-rise .9s both}.reveal-target.is-visible>.wish-notes,.reveal-target.is-visible>.moments-gallery,.reveal-target.is-visible>.guest-form{animation:wave-rise 1.15s .12s both}.telegram{padding-bottom:55px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal-target{opacity:1!important;translate:none!important;rotate:none!important}*,*:before,*:after{animation:none!important;transition:none!important;will-change:auto!important}}

/* На телефоне пожелания — бесконечный бумажный блокнот. Без JS остаётся обычный список. */
.notebook-controls,.notebook-hint{display:none}
@media(max-width:760px){
 .wish-notes.is-notebook{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:0;isolation:isolate;touch-action:pan-y pinch-zoom;perspective:1000px;margin:13px 3px 0;outline-offset:16px}
 .wish-notes.is-notebook::before,.wish-notes.is-notebook::after{content:'';position:absolute;inset:0;background:#f6ecda;border:1px solid #d9c8ab;box-shadow:1px 5px 9px #58412b12;z-index:0;pointer-events:none}
 .wish-notes.is-notebook::before{transform:translate(3px,10px) rotate(1.8deg)}
 .wish-notes.is-notebook::after{transform:translate(-3px,5px) rotate(-1.1deg);background:#f9efdf}
 .wish-notes.is-notebook>.wish-note{grid-area:1/1;align-self:stretch;min-width:0;width:100%;margin:0;transform:none;padding-top:50px;visibility:hidden;pointer-events:none;z-index:1;transform-origin:50% 15px;backface-visibility:hidden;background:#fbf5e9;box-shadow:1px 5px 12px #58412b18}
 .wish-notes.is-notebook>.wish-note::before{content:'';position:absolute;left:18px;right:18px;top:14px;height:12px;background:radial-gradient(circle at 6px 6px,#cfbfa7 0 2.5px,transparent 3px) 0 0/19px 12px repeat-x;border-bottom:1px dashed #c7b296;padding-bottom:15px;pointer-events:none}
 .wish-notes.is-notebook>.wish-note.is-current{visibility:visible;pointer-events:auto;z-index:3}
 .wish-notes.is-notebook>.wish-note.is-under{visibility:visible;z-index:2;transform:translate(0,5px) scale(.985)}
 .notebook-controls{display:flex;align-items:center;justify-content:center;margin-top:31px;position:relative;z-index:4}
 .notebook-counter{font:11px/1.5 'Courier New',monospace;letter-spacing:1.8px;color:var(--wine);min-width:106px;text-align:center}
 .notebook-hint{display:block;text-align:center;font:16px/1.4 var(--serif);font-style:italic;color:var(--muted);margin-top:12px}
 .wishes:has(.is-notebook) .wishes-signature{margin-top:25px}
}
@media(prefers-reduced-motion:reduce){.wish-notes.is-notebook>.wish-note{transition:none!important}}

.preview-loading main{visibility:hidden}.preview-banner{padding:10px 18px;background:#671e27;color:#fff8ef;text-align:center;font:12px/1.5 system-ui,sans-serif}

#alcohol-other-field{margin-top:18px}

/* Первый альбом: одна рамка на компьютере, три листа на телефоне. */
.hero-photo-deck{position:relative;width:100%;height:100%}
.photo-composition .little-ticket{pointer-events:none}

.photo-composition .wax-seal{pointer-events:none}
@media(min-width:761px){
 .hero-photo-deck>.back-left,.hero-photo-deck>.back-right{display:none}
}
@media(max-width:760px){
 .photo-composition{display:grid;grid-template-columns:minmax(0,1fr);height:auto;margin-bottom:25px}
 .hero-photo-deck{grid-area:1/1;height:auto;width:88%;margin:12px auto 0;outline-offset:8px}
 .hero-photo-deck:not(.is-photo-notebook)>.photo-card:not(.main-photo){display:none}
 .hero-photo-deck>.photo-card{position:relative;width:100%;left:auto;right:auto;top:auto;margin:0;transform:none}
 .hero-photo-deck .photo-window{aspect-ratio:4/4.65}
 .hero-photo-deck .photo-card figcaption{white-space:normal;overflow-wrap:anywhere;line-height:1.3;padding:12px 0 15px}
 .hero-photo-deck.is-photo-notebook{display:grid;grid-template-columns:minmax(0,1fr);isolation:isolate;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;animation:paper-sway 9s ease-in-out infinite;transform-origin:50% 0}
 .hero-photo-deck.is-photo-notebook:active{animation-play-state:paused}
 .hero-photo-deck.is-photo-notebook>.photo-card{grid-area:1/1;align-self:stretch;visibility:hidden;pointer-events:none;z-index:1;animation:none;rotate:none;will-change:auto;transform-origin:50% 15px;backface-visibility:hidden}
 .hero-photo-deck.is-photo-notebook>.photo-card.is-current{visibility:visible;pointer-events:auto;z-index:3}
 .hero-photo-deck.is-photo-notebook>.photo-card.is-under{visibility:visible;z-index:2;transform:translate(0,5px) scale(.985)}
 .hero-photo-deck.is-photo-notebook::before,.hero-photo-deck.is-photo-notebook::after{content:'';position:absolute;inset:0;background:#eae0c8;border:1px solid #dfd1b7;box-shadow:1px 5px 10px #1d070930;pointer-events:none;z-index:0}
 .hero-photo-deck.is-photo-notebook::before{transform:translate(5px,7px) rotate(2deg)}
 .hero-photo-deck.is-photo-notebook::after{transform:translate(-4px,3px) rotate(-2deg)}
 .photo-composition .notebook-controls{grid-row:2;margin-top:22px}
 .photo-composition .notebook-counter{color:#ecd8bc}
 .photo-composition .notebook-hint{grid-row:3;color:#d9bfa0;margin-top:7px}
 .photo-composition .wax-seal{z-index:5}
}

/* Side bookmark: anchored to the album, outside document flow and above captions. */
@media(min-width:761px){
 .photo-composition{height:auto;display:grid;align-content:center;padding:15px 0 0}
 .hero-photo-deck{position:relative;width:76%;height:auto;margin:24px auto 0}
 .hero-photo-deck .main-photo{position:relative;left:auto;top:auto;margin:0;width:100%}
 .hero-photo-deck .main-photo figcaption{white-space:normal;overflow-wrap:anywhere;line-height:1.4;padding:10px 4px 15px}
 .photo-composition .wax-seal{top:0}
}
.photo-composition .little-ticket{position:absolute;grid-area:auto;top:38px;right:-31px;bottom:auto;left:auto;width:54px;height:192px;min-height:0;margin:0;padding:18px 8px;display:flex;align-items:center;justify-content:center;z-index:6;transform:rotate(180deg);transform-origin:center;background:linear-gradient(100deg,#b88e6b 0,#dab795 18%,#e0be9e 80%,#d1a884 100%);border:0;border-top:2px dotted #896b51;border-bottom:2px dotted #896b51;outline:1px solid #846247;outline-offset:-6px;box-shadow:3px 4px 7px #2c0c1240;text-align:center}
.photo-composition .little-ticket>span{display:block;writing-mode:vertical-rl;white-space:nowrap;font:11px/1.4 'Courier New',monospace;letter-spacing:1.5px;text-transform:uppercase;color:#4b3025}
/* A real overlap: rear arm under both papers, front U over their shared edge. */
.ticket-clip{position:absolute;top:40px;right:-46px;left:auto;width:76px;height:26px;max-width:none;overflow:visible;transform:none;pointer-events:none}
.ticket-clip-back{z-index:1;filter:drop-shadow(.5px .6px .4px #211d1840)}
.ticket-clip-front{z-index:7;filter:drop-shadow(.7px 1.2px .65px #211d1860)}
@media(max-width:760px){
 .photo-composition .little-ticket{top:30px;right:-17px;width:42px;height:170px;padding:16px 6px;transform:rotate(180deg);outline-offset:-5px}
 .photo-composition .little-ticket>span{font-size:9px;letter-spacing:1.25px}
 .ticket-clip{top:32px;right:-29px;left:auto;width:60px;height:20px;transform:none}
}
.dress-palette{display:flex;flex-wrap:wrap;justify-content:center;gap:24px 30px}.dress-palette li{flex:0 1 100px}.dress-palette .swatch{margin-inline:auto}
#guest-questions>fieldset{min-width:0;margin:0 0 26px}#guest-questions .form-label{display:block}#guest-questions input[type=number]{max-width:130px}.question-age-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:15px}.question-age-list label{font-size:17px}.question-age-list input{width:100%}
[data-edit]{overflow-wrap:anywhere;white-space:pre-line}[data-edit][hidden]{display:none!important}.inline-text-link{text-decoration:underline;text-underline-offset:4px}

/* One shared invitation link under the album on all screen sizes. */
.hero-next{display:block;width:fit-content;max-width:100%;margin:0 auto;padding-top:24px;text-align:center;font:italic 19px/1.55 var(--serif);color:#e5ceb1}.hero-next span{margin-left:10px}
@media(max-width:760px){.hero-next{padding-top:0;font-size:17px}}

/* Full-viewport invitation cover. It occupies no space once opened. */
.welcome-screen{display:none;isolation:isolate;background:linear-gradient(120deg,#40151dec,#671e2760),url('assets/wallpaper.png') center/640px auto,var(--wine);color:var(--ink)}
html.welcome-active,html.welcome-active body{overflow:hidden;overscroll-behavior:none;height:100%;scroll-behavior:auto}
.welcome-active #invitation-site{visibility:hidden}
.welcome-active .welcome-screen,.welcome-leaving{display:flex;position:fixed;inset:0;z-index:1000;width:100%;height:100vh;height:100dvh;align-items:center;justify-content:center;overflow:hidden;padding:max(22px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
.welcome-screen{opacity:1;transition:opacity .7s ease,transform .8s cubic-bezier(.22,.7,.25,1)}
.welcome-screen.welcome-leaving{opacity:0;transform:translateY(-3%);pointer-events:none}
.welcome-paper{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,70px);width:min(940px,100%);height:min(660px,calc(100dvh - 80px));min-height:0;padding:clamp(24px,4vw,54px);background:radial-gradient(ellipse at 0 0,#bfa47724,transparent 65%),var(--paper);border:1px solid #d8c5a4;box-shadow:0 18px 80px #24050b55,inset 0 0 50px #b69b6720}
.welcome-paper:before{content:'';position:absolute;inset:12px;border:1px solid #b4956e80;pointer-events:none}
.welcome-portrait-wrap{position:relative;min-height:0;width:100%;height:100%;max-height:480px;align-self:center;padding:8px}
.welcome-portrait{height:100%;width:100%;aspect-ratio:auto;border-radius:50% / 44%;border:1px solid #ad8f65;outline:1px solid #b4956e80;outline-offset:6px;background:radial-gradient(ellipse at 35% 25%,#e8decb,#b5a58c);box-shadow:inset 0 0 32px #55403022;overflow:hidden}
.welcome-portrait:before{display:none}.welcome-portrait img{filter:saturate(.8)}
.welcome-initials{font:clamp(40px,5vw,70px)/1 var(--serif);color:var(--wine)}.welcome-initials i{font-size:.6em;font-weight:400}
.welcome-portrait-note{font:20px/1.2 var(--script);color:var(--wine);margin-top:20px;text-align:center}
.welcome-seal{position:absolute;width:76px;height:auto;left:calc(50% - 38px);bottom:-14px;transform:rotate(-12deg);filter:drop-shadow(0 4px 4px #3c141c30)}
.welcome-copy{position:relative;text-align:center;min-width:0}.welcome-names{font:italic 24px/1.25 var(--serif);color:var(--wine);overflow-wrap:anywhere}
.welcome-ornament{display:flex;justify-content:center;align-items:center;gap:13px;color:var(--wine);font-size:11px;margin:22px 0}.welcome-ornament span{height:1px;width:38px;background:#b4956e99}
#welcome-title{font:400 clamp(40px,4.4vw,64px)/1.13 var(--script);color:var(--wine);text-wrap:balance;overflow-wrap:anywhere}
.welcome-date{font:12px/1.5 'Courier New',monospace;letter-spacing:3px;margin-top:24px;color:var(--muted)}
.welcome-hint{font:italic 19px/1.25 var(--serif);color:var(--wine);margin-top:40px;text-wrap:balance}.welcome-arrow{display:block;color:var(--wine);font:24px/1 var(--serif);margin-top:10px;animation:welcome-breathe 2.8s ease-in-out infinite}
.welcome-open{position:absolute;inset:0;z-index:5;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer;color:inherit;touch-action:manipulation}
.welcome-open:focus,.welcome-open:focus-visible{outline:none}.welcome-open:hover{background:transparent}
@keyframes welcome-breathe{0%,100%{opacity:.45;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}
/* The same cover appears as an editable first section inside the admin canvas. */
.welcome-editor .welcome-screen{display:flex;position:relative;align-items:center;justify-content:center;width:100%;height:100vh;height:100dvh;padding:28px;overflow:hidden}
.welcome-editor .welcome-open{display:none}.welcome-editor .welcome-paper{pointer-events:auto}
@media(max-width:620px) and (orientation:portrait){
 .welcome-active .welcome-screen,.welcome-screen.welcome-leaving,.welcome-editor .welcome-screen{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .welcome-paper{width:100%;height:100%;max-height:860px;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:16px;padding:26px 25px 20px}
 .welcome-portrait-wrap{height:100%;max-height:390px;width:min(70%,290px);margin:auto;padding:6px}
 .welcome-paper:before{inset:8px}.welcome-seal{width:58px;left:calc(50% - 29px);bottom:-12px}
 .welcome-copy{max-width:340px;width:100%;margin:auto}.welcome-names{font-size:20px}.welcome-ornament{margin:10px 0;gap:10px}.welcome-ornament span{width:25px}
 #welcome-title{font-size:clamp(35px,9.8vw,48px);line-height:1.08}.welcome-date{margin-top:14px;font-size:10px;letter-spacing:2px}.welcome-hint{font-size:17px;margin-top:22px}.welcome-arrow{font-size:21px;margin-top:6px}
}
@media(max-height:620px){
 .welcome-paper{height:100%;padding:24px;gap:26px}.welcome-portrait-wrap{max-height:100%;max-width:260px;margin:auto}.welcome-seal{width:52px;left:calc(50% - 26px);bottom:-10px}
 .welcome-names{font-size:18px}.welcome-ornament{margin:10px 0}#welcome-title{font-size:38px}.welcome-date{margin-top:12px;font-size:10px}.welcome-hint{font-size:16px;margin-top:17px}.welcome-arrow{font-size:18px;margin-top:5px}
}
@media(max-width:620px) and (max-height:620px) and (orientation:portrait){.welcome-paper{gap:10px;padding:19px 24px 15px}.welcome-portrait-wrap{width:54%}.welcome-names{font-size:16px}#welcome-title{font-size:34px}.welcome-ornament{margin:7px 0}.welcome-date{margin-top:8px}.welcome-hint{margin-top:14px}.welcome-portrait-note{font-size:15px}}
@media(prefers-reduced-motion:reduce){.welcome-screen{transition:none}.welcome-arrow{animation:none}}

/* Programmatic focus keeps a useful reading position without outlining the names. */
.welcome-focus-target:focus,.welcome-focus-target:focus-visible{outline:none}
/* Velvet theatre framing, drawn as lightweight CSS so it is ready on first paint. */
.welcome-theatre{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}
.welcome-curtain{position:absolute;top:0;bottom:-3px;width:53%;background:linear-gradient(180deg,#25050c60,transparent 18%,#25050c15 70%,#14020765),repeating-linear-gradient(90deg,#28050e 0%,#511020 5%,#8a3040 10%,#6e1c2b 15%,#3c0a16 20%,#20040b 23%,#632030 29%,#8b3441 34%,#4d1020 40%);background-size:100% 100%,125px 100%;border-bottom:5px solid #ae8254;box-shadow:0 4px 18px #17030980;will-change:transform}
.welcome-curtain:after{content:'';position:absolute;top:0;bottom:0;width:4px;background:linear-gradient(90deg,#563018,#d6b576,#7b502d);box-shadow:0 0 10px #14030655}
.welcome-curtain-left{left:0;transform:translateX(-94%);border-right:1px solid #b18955}.welcome-curtain-left:after{right:1px}
.welcome-curtain-right{right:0;transform:translateX(94%);border-left:1px solid #b18955}.welcome-curtain-right:after{left:1px}
.welcome-active .welcome-curtain-left{animation:curtain-left-open 2s .15s cubic-bezier(.3,.02,.15,1) both}
.welcome-active .welcome-curtain-right{animation:curtain-right-open 2s .15s cubic-bezier(.3,.02,.15,1) both}
.welcome-pelmet{position:absolute;top:0;left:-2%;width:104%;height:clamp(42px,7dvh,64px);background:radial-gradient(ellipse at 50% -40%,#a15156 0,transparent 65%),repeating-linear-gradient(100deg,#360913 0,#7a2736 24px,#4a111e 44px,#862e3d 62px,#350a16 88px);border-bottom:3px solid #b99866;border-radius:0 0 50% 50% / 0 0 35% 35%;box-shadow:0 5px 12px #23050e40;display:flex;justify-content:center;align-items:center;color:#ddc29a}
.welcome-pelmet span{font-size:14px;line-height:1;border:1px solid #b9986688;border-radius:50%;padding:7px 9px;background:#501423;box-shadow:0 2px 7px #20050b40}
.welcome-flourish{display:block;font:30px/1 Georgia,serif;color:#a3855d;margin:0 auto 9px}
.welcome-active .welcome-paper{animation:welcome-paper-appear 1.3s .55s ease both}
@keyframes curtain-left-open{from{transform:translateX(0)}to{transform:translateX(-94%)}}
@keyframes curtain-right-open{from{transform:translateX(0)}to{transform:translateX(94%)}}
@keyframes welcome-paper-appear{from{opacity:.4;scale:.97}to{opacity:1;scale:1}}
@media(max-width:760px){
 .welcome-paper{background:radial-gradient(ellipse at 50% 15%,#fffaf066,transparent 60%),repeating-linear-gradient(0deg,#b3977310 0 1px,transparent 1px 4px),var(--paper)}
 .welcome-copy:before,.welcome-copy:after{content:'✧';position:absolute;top:6px;color:#ac8b5d;font:20px/1 var(--serif)}.welcome-copy:before{left:3%}.welcome-copy:after{right:3%}
}
@media(max-width:620px) and (orientation:portrait){
 .welcome-active .welcome-screen,.welcome-screen.welcome-leaving,.welcome-editor .welcome-screen{padding-top:max(28px,env(safe-area-inset-top));padding-bottom:max(15px,env(safe-area-inset-bottom))}
 .welcome-paper{padding-top:32px;padding-bottom:18px;gap:19px}.welcome-flourish{font-size:25px;margin-bottom:6px}.welcome-portrait-wrap{width:min(78%,310px)}
 .welcome-hint{margin-top:18px}
}
@media(max-width:620px) and (max-height:650px) and (orientation:portrait){.welcome-paper{padding:25px 24px 14px;gap:12px}.welcome-flourish{font-size:18px;margin-bottom:3px}.welcome-portrait-wrap{width:58%}.welcome-hint{margin-top:12px}}
@media(min-width:1181px){
 #welcome.welcome-screen{display:none!important}html.welcome-active,html.welcome-active body{overflow:visible;height:auto}html.welcome-active #invitation-site{visibility:visible}
}
@media(prefers-reduced-motion:reduce){.welcome-curtain,.welcome-active .welcome-paper{animation:none!important}}

/* The opaque side curtains conceal the scene swap; the valance remains on mobile. */
html.curtain-transition,html.curtain-transition body{overflow:hidden;overscroll-behavior:none;height:100%;scroll-behavior:auto}
.welcome-screen.curtain-revealing{display:flex;position:fixed;inset:0;z-index:1000;width:100%;height:100vh;height:100dvh;overflow:hidden;background:transparent;opacity:1;transform:none;transition:none}
.curtain-revealing .welcome-paper{visibility:hidden}.curtain-revealing .welcome-open{display:none}
.curtain-transition .welcome-open{cursor:default}.curtain-transition .welcome-screen{transition:none}
.mobile-theatre-header{display:none}
.welcome-active .mobile-theatre-header,.curtain-transition .mobile-theatre-header{visibility:hidden}
.music-toggle{position:relative;pointer-events:auto;width:46px;height:46px;border:1px solid #b9986688;border-radius:50%;background:#501423;color:#ddc29a;cursor:pointer;touch-action:manipulation;padding:0;box-shadow:0 2px 7px #20050b40;transform:translateY(-8px)}
.welcome-pelmet .music-heart{border:0;padding:0;background:none;box-shadow:none;font-size:23px;line-height:1}
.music-symbol{position:absolute;right:-5px;bottom:1px;width:20px;height:20px;padding:3px;background:#f2e9d5;border-radius:50%;fill:#651e2d;box-shadow:0 1px 4px #20050b66}
.music-pause,.music-toggle[aria-pressed="true"] .music-play{display:none}.music-toggle[aria-pressed="true"] .music-pause{display:block}
.music-toggle:focus-visible{outline:2px solid #f2e9d5;outline-offset:3px}
.music-hint{position:absolute;bottom:5px;left:8%;width:84%;margin:0;text-align:center;font:11px/1.3 Arial,sans-serif;letter-spacing:.03em;color:#f2e9d5}
.music-toggle[hidden],.music-hint[hidden],#music-decoration[hidden]{display:none}
@media(max-width:760px){
 :root{--mobile-pelmet-height:calc(72px + env(safe-area-inset-top,0px));scroll-padding-top:calc(var(--mobile-pelmet-height) + 18px)}
 .mobile-theatre-header{display:block;position:fixed;z-index:50;top:0;left:0;width:100%;height:calc(var(--mobile-pelmet-height) + 12px);overflow:hidden;pointer-events:none}
 .welcome-pelmet{height:var(--mobile-pelmet-height);padding-top:env(safe-area-inset-top,0px)}
 #invitation-site{padding-top:var(--mobile-pelmet-height);background:var(--wine)}
 #invitation-site>.masthead{display:none}
 .skip-link:focus{z-index:60}
 .welcome-screen .welcome-paper{margin-top:12px;height:calc(100% - 12px)}
}

@media(max-width:760px){#invitation-site{background:linear-gradient(90deg,#40131cdd,#671e2738),url('assets/wallpaper.png') center top/650px auto,var(--wine)}}

/* Contact card follows the shared chat and can be edited independently. */
.contact-section{padding:28px 0 75px}.contact-note{max-width:660px;margin:0 auto;text-align:center;padding:36px clamp(18px,5vw,48px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(ellipse at center,#fff9ed80,transparent 72%)}.contact-ornament{display:block;color:var(--gold);font-size:32px;margin-bottom:12px}.contact-description{margin:20px auto 0;max-width:500px;line-height:1.5;overflow-wrap:anywhere}.contact-name{font-style:italic;color:var(--wine);margin-top:12px;overflow-wrap:anywhere}.contact-phone{display:inline-block;max-width:100%;margin-top:22px;padding:10px 20px;border:1px solid #a9865b70;color:var(--wine);font:500 clamp(22px,5vw,30px)/1.4 var(--serif);text-decoration:none;overflow-wrap:anywhere}.contact-phone:hover{background:#d5bd9235}.contact-phone[hidden],.contact-editor-hint[hidden]{display:none}.contact-editor-hint{font:14px/1.5 Arial,sans-serif;color:var(--muted);margin-top:20px}@media(max-width:600px){.contact-section{padding-bottom:48px}.contact-section .section-inner{padding-left:24px;padding-right:24px}.contact-note{padding:28px 16px}.contact-note .script-heading{font-size:42px}.contact-description{font-size:21px}}

.guest-consent{display:grid;gap:14px;margin:22px 0}.guest-form .consent-choice{display:flex;align-items:flex-start;gap:12px;font:14px/1.55 Arial,sans-serif}.guest-form .consent-choice input{appearance:auto;flex:0 0 20px;width:20px;height:20px;min-height:20px;margin:2px 0 0;accent-color:var(--wine)}.guest-consent a{text-decoration:underline;text-underline-offset:3px;color:inherit}.guest-consent a[aria-disabled=true]{cursor:default}.privacy-policy{font:13px/1.5 Arial,sans-serif;justify-self:start}

.guest-consent{gap:24px;margin:24px 0}.guest-consent .privacy-policy{display:block;justify-self:start;font:inherit;line-height:1.55;text-decoration-line:underline;text-decoration-style:dotted;text-underline-offset:5px;color:inherit;cursor:pointer}.guest-consent .privacy-policy:hover,.guest-consent .privacy-policy:focus-visible{text-decoration-style:solid}.guest-consent .privacy-policy::after,.guest-consent .privacy-policy::before{content:none!important}
