/* Aranyliget · prototípus. Egy borítékból kiemelkedő levél, amely maga lesz a meghívó. */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/cormorant-garamond-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300 700;font-display:swap;src:url(fonts/cormorant-garamond-italic.woff2) format('woff2')}
@font-face{font-family:'Pinyon Script';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/pinyon-script-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/jost-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Jost';font-style:normal;font-weight:300 700;font-display:swap;src:url(fonts/jost-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --paper:#f5eee2;
  --paper-deep:#ece2d0;
  --linen:#e3d8c5;
  --ink:#31241f;
  --ink-soft:#5a4840;
  --wine:#6b2333;
  --wine-deep:#4a1522;
  --gold:#9c7a41;
  --olive:#5d6843;
  --rule:rgba(90,72,64,.22);
  --serif:'Cormorant Garamond',Georgia,serif;
  --script:'Pinyon Script','Snell Roundhand',cursive;
  --sans:'Jost','Futura','Avenir Next',system-ui,sans-serif;
  --ease-out:cubic-bezier(.16,.84,.24,1);
  --ease-fold:cubic-bezier(.62,.02,.28,1);
  /* Z-rétegek: oldal < nyitójelenet < repülő levél */
  --z-scene:40;--z-flight:50;
  color-scheme:light;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.2rem/1.6 var(--serif);font-feature-settings:'onum' 1,'kern' 1;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.locked{overflow:hidden;height:100svh}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Finom papírszemcse a teljes oldalon: rögzített, nem görgetett réteg */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.5;mix-blend-mode:multiply;background:url(kepek/papir-minta.webp) center/900px}
main,footer{position:relative;z-index:2}

/* ───────────── A levél (a nyitásban és a fejlécben ugyanaz) ───────────── */
.sheet{position:relative;aspect-ratio:2/3;container-type:inline-size;background:#f8f2e7 url(kepek/papir-minta.webp) center/cover;box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 0 0 1px rgba(120,96,70,.12),0 18px 40px -18px rgba(70,45,30,.45),0 4px 10px -4px rgba(70,45,30,.25);overflow:hidden}
.sheet-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.sheet-body{position:absolute;left:18%;right:18%;top:15%;bottom:30%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.sheet-kicker{margin:0 0 4cqw;font:italic 500 max(13px,4.6cqw)/1.2 var(--serif);color:var(--ink-soft)}
.sheet-names{margin:0;font:400 calc(var(--ns,15) * 1cqw)/.95 var(--script);color:var(--wine);display:flex;flex-direction:column;align-items:center;gap:.04em}
.sheet-names i{font:italic 400 .42em/1 var(--serif);color:var(--gold);margin:.06em 0 .02em}
.sheet-names span{display:block;padding:0 .1em .08em;overflow-wrap:anywhere}
.sheet-rule{width:18cqw;height:1px;margin:4.4cqw 0 3.4cqw;background:linear-gradient(90deg,transparent,var(--gold),transparent)}
.sheet-date{margin:0;font:500 max(15px,6.2cqw)/1.1 var(--serif);letter-spacing:.04em;color:var(--ink)}
.sheet-place{margin:1.6cqw 0 0;font:italic 400 max(13px,4.4cqw)/1.25 var(--serif);color:var(--ink-soft)}

/* ───────────── Nyitójelenet ───────────── */
.scene{position:fixed;inset:0;z-index:var(--z-scene);display:grid;grid-template-rows:1fr auto 1fr;justify-items:center;align-items:center;overflow:hidden;
  background:
    radial-gradient(120% 80% at 30% 18%,rgba(255,248,232,.9),transparent 55%),
    radial-gradient(90% 70% at 85% 95%,rgba(120,92,60,.28),transparent 60%),
    repeating-linear-gradient(90deg,rgba(110,90,60,.035) 0 1px,transparent 1px 3px),
    repeating-linear-gradient(0deg,rgba(110,90,60,.03) 0 1px,transparent 1px 4px),
    radial-gradient(140% 100% at 50% 40%,transparent 55%,rgba(80,55,30,.22)),
    var(--linen);
  transition:opacity .9s ease .25s}
/* Ablakon beeső, lassan mozduló fény-árnyék foltok (hangulat, nem díszítés) */
.scene::before{content:"";position:absolute;inset:-20%;pointer-events:none;opacity:.55;mix-blend-mode:multiply;
  background:radial-gradient(18% 12% at 22% 30%,rgba(90,70,40,.18),transparent 70%),radial-gradient(22% 14% at 70% 22%,rgba(90,70,40,.14),transparent 70%),radial-gradient(16% 10% at 60% 70%,rgba(90,70,40,.12),transparent 70%),radial-gradient(20% 12% at 30% 78%,rgba(90,70,40,.1),transparent 70%);
  filter:blur(18px);animation:dapple 14s ease-in-out infinite alternate}
@keyframes dapple{to{transform:translate3d(3%,-2%,0) rotate(2deg)}}
.scene-top{align-self:end;padding:0 24px 2.4svh;text-align:center;transition:opacity .4s ease,transform .5s var(--ease-out)}
.scene-title{margin:0;font:italic 500 clamp(1.15rem,2.6vw,1.45rem)/1.3 var(--serif);color:var(--ink-soft)}
.scene-bottom{align-self:start;padding:3svh 24px 0;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;transition:opacity .4s ease}
.scene-hint{margin:0;font:italic 500 1.15rem/1.3 var(--serif);color:var(--ink)}
.scene-skip{appearance:none;background:none;border:0;padding:8px 4px;font:500 .875rem/1 var(--sans);letter-spacing:.01em;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(90,72,64,.4);cursor:pointer}
.scene-skip:hover{color:var(--ink)}

.stage{position:relative;perspective:1700px;perspective-origin:50% 30%}
.tilt{transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s var(--ease-out)}
.stage::after{content:"";position:absolute;left:8%;right:8%;bottom:-5%;height:12%;border-radius:50%;background:radial-gradient(closest-side,rgba(60,40,22,.35),transparent);filter:blur(10px);transform:translateZ(-40px);transition:opacity .6s ease}
.scene.is-rising .stage::after{opacity:0}
.env-sheen{position:absolute;inset:0;transform:translateZ(15px);pointer-events:none;background:linear-gradient(115deg,transparent 32%,rgba(255,253,245,.22) 46%,transparent 60%);background-size:220% 100%;background-position:var(--sx,60%) 0;transition:background-position .6s var(--ease-out),opacity .5s ease}
.scene.is-open .env-sheen{opacity:0}
.env{--w:min(84vw,calc(70svh / 1.4),500px);position:relative;width:var(--w);height:calc(var(--w) * 1.4);transform-style:preserve-3d;transform:rotateX(9deg) rotateZ(-1.2deg);transition:transform 1.1s var(--ease-out),opacity .7s ease;animation:arrive 1.1s var(--ease-out) backwards}
@keyframes arrive{from{transform:translateY(5svh) rotateX(18deg) rotateZ(-3deg);opacity:0}}
.env-back,.env-front,.env-flap,.env-letter{position:absolute;left:0;width:100%}
.env-back{inset:0;height:100%;transform:translateZ(0);border-radius:3px;overflow:hidden;background:#d9ccb4;box-shadow:0 40px 60px -30px rgba(60,40,25,.55),0 12px 22px -12px rgba(60,40,25,.4)}
.env-back::before{content:"";position:absolute;inset:0 0 40% 0;background:url(kepek/selyem-minta.webp) 0 0/260% auto;filter:saturate(.85) brightness(.85)}
.env-back::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(40,30,15,.35),transparent 30%)}
.env-letter{left:7%;width:86%;top:4.5%;transform:translateZ(4px);transition:transform 1.05s var(--ease-out)}
.env-front{inset:0;height:100%;transform:translateZ(8px);pointer-events:none}
.env-front svg{width:100%;height:100%;display:block;overflow:visible}
.env-address{position:absolute;left:0;right:0;bottom:11%;text-align:center;font:400 calc(var(--w) * .085)/1 var(--script);color:var(--wine-deep);opacity:.82;transform:translateZ(9px) rotate(-2deg)}
.env-flap{top:0;height:56%;transform-origin:50% 0;transform:rotateX(0) translateZ(12px);transform-style:preserve-3d;transition:transform .95s var(--ease-fold)}
.env-flap>div{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.flap-front{background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(0,0,0,0) 40%),linear-gradient(0deg,rgba(80,55,30,.12),transparent 30%),#efe5d3 url(kepek/papir-minta.webp) center/cover}
.flap-front::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(70,45,25,.18))}
.env-flap>.flap-back{transform:rotateX(180deg);clip-path:polygon(0 100%,100% 100%,50% 0);background:url(kepek/selyem-minta.webp) 0 0/260% auto}
.flap-back::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(30,25,10,.45),transparent 70%)}
.flap-shade{position:absolute;left:0;right:0;top:0;height:56%;clip-path:polygon(0 0,100% 0,50% 100%);transform:translateZ(10px);background:rgba(50,30,15,.18);filter:blur(3px);transition:opacity .9s var(--ease-fold)}

/* Viaszpecsét */
.seal{--s:calc(var(--w) * .25);position:absolute;left:calc(50% - var(--s) / 2);top:calc(56% - var(--s) * .62);width:var(--s);height:var(--s);padding:0;border:0;background:none;cursor:pointer;transform:translateZ(16px);-webkit-tap-highlight-color:transparent;border-radius:50%}
.seal:focus-visible{outline-offset:6px}
.seal-half{position:absolute;inset:0;transition:transform .9s cubic-bezier(.4,0,.8,.6),opacity .7s ease .2s}
.seal-half svg{width:100%;height:100%;display:block;filter:drop-shadow(0 3px 3px rgba(40,10,15,.45)) drop-shadow(0 1px 0 rgba(255,220,220,.15))}
.seal-half.l{clip-path:polygon(0 0,53% 0,47% 18%,56% 36%,45% 55%,54% 74%,48% 100%,0 100%)}
.seal-half.r{clip-path:polygon(53% 0,100% 0,100% 100%,48% 100%,54% 74%,45% 55%,56% 36%,47% 18%)}
.seal::after{content:"";position:absolute;inset:-14%;border-radius:50%;border:1px solid rgba(107,35,51,.45);opacity:0;animation:beckon 2.8s ease-out 1.6s infinite}
@keyframes beckon{0%{transform:scale(.82);opacity:.0}25%{opacity:.7}100%{transform:scale(1.25);opacity:0}}
.seal:hover .seal-half{transform:scale(1.03)}
.crumb{position:absolute;width:6px;height:5px;border-radius:2px 3px 2px 1px;background:#6b2333;left:50%;top:50%;opacity:0;transform:translateZ(7px)}

/* Nyitás folyamata */
.scene.is-open .scene-top,.scene.is-open .scene-bottom{opacity:0;transform:translateY(-6px)}
.scene.is-open .seal::after{animation:none;opacity:0}
.scene.is-open .seal{pointer-events:none;outline:none}
.scene.is-open .seal-half.l{transform:translate(-30%,140%) rotate(-38deg);opacity:0}
.scene.is-open .seal-half.r{transform:translate(34%,160%) rotate(31deg);opacity:0}
.scene.is-open .env-flap{transform:rotateX(180deg) translateZ(12px);transition-delay:.28s}
.scene.is-open .flap-shade{opacity:0;transition-delay:.3s}
.scene.is-rising .env{transform:translateY(20%) scale(.86) rotateX(4deg)}
.scene.is-rising .env-letter{transform:translateZ(4px) translateY(-52%)}
.scene.is-leaving{opacity:0;pointer-events:none}
.scene.is-leaving .env{transform:translateY(70svh) rotateZ(7deg) scale(.86);opacity:0;transition:transform 1s cubic-bezier(.5,0,.75,0),opacity .8s ease .15s}
.scene.is-leaving .env-letter{visibility:hidden}

.flight{position:fixed;z-index:var(--z-flight);margin:0;transform-origin:0 0;will-change:transform;pointer-events:none}

/* ───────────── Oldal ───────────── */
.wrap{width:min(100% - 40px,1180px);margin-inline:auto}
section{padding:clamp(72px,11vw,140px) 0}
.h2{margin:0 0 .5em;font:400 clamp(2.3rem,5.4vw,3.6rem)/1.05 var(--serif);letter-spacing:-.01em;color:var(--ink)}
.h2 em{font-style:italic;color:var(--wine)}
.lead{font-size:clamp(1.25rem,2.2vw,1.45rem);line-height:1.55;color:var(--ink-soft);max-width:34ch}
p{margin:0 0 1em}

.btn{display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 26px;border:1px solid var(--wine);border-radius:2px;background:var(--wine);color:#fbf4ea;font:600 .95rem/1 var(--sans);letter-spacing:.02em;text-decoration:none;cursor:pointer;transition:background .25s ease,transform .15s ease}
.btn:hover{background:var(--wine-deep)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--wine)}
.btn.ghost:hover{background:rgba(107,35,51,.06)}
.btn svg{width:18px;height:18px;flex:none}

/* Fejléc: levél + kísérő sorok */
.hero{position:relative;padding:0 20px}
.hero-stage{position:relative;min-height:100svh;display:grid;place-items:center;padding:24px 0 78px}
.hero-sheet{width:min(calc(100vw - 40px),calc((100svh - 110px) * 2 / 3),560px)}
.hero.is-hidden .hero-sheet{visibility:hidden}
.hero-cue{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;font:500 .8125rem/1 var(--sans);color:var(--ink-soft);text-decoration:none}
.hero-cue::after{content:"";width:1px;height:34px;background:linear-gradient(var(--ink-soft),transparent);transform-origin:top;animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0)}50%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}

.note{padding:clamp(64px,10vw,120px) 0 0}
.note-inner{max-width:34rem;margin:0 auto;padding:0 4px}
.note-greet{margin:0 0 .35em;font:400 clamp(2.4rem,7vw,3.2rem)/1.1 var(--script);color:var(--wine)}
.note-text{font-size:clamp(1.3rem,2.4vw,1.5rem);line-height:1.5;color:var(--ink)}
.facts{display:grid;gap:0;margin:2em 0 2.2em;border-top:1px solid var(--rule)}
.facts div{display:grid;grid-template-columns:7.5rem 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule)}
.facts dt{font:600 .8125rem/1.6 var(--sans);color:var(--ink-soft);padding-top:.3em}
.facts dd{margin:0;font-size:1.25rem;line-height:1.45}
.until{margin:0 0 1.6em;font:italic 500 1.2rem/1.4 var(--serif);color:var(--olive)}

@media (min-width:960px){
  .hero{display:grid;min-height:100svh;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(40px,6vw,96px);padding:0 max(40px,calc((100vw - 1240px) / 2));align-items:center}
  .hero-stage{min-height:0;padding:40px 0;justify-items:end}
  .hero-sheet{width:min(calc((100svh - 80px) * 2 / 3),44vw,600px)}
  .hero-cue{display:none}
  .note{padding:0}
  .note-inner{margin:0}
  .note>.note-inner{opacity:1}
  .hero.is-hidden .note{opacity:0;transform:translateY(12px)}
  .note{transition:opacity .9s ease .1s,transform 1s var(--ease-out) .1s}
}

/* Történet: íves fotó és szöveg */
.story{display:grid;gap:clamp(36px,6vw,88px);align-items:center}
.arch{position:relative;border-radius:999px 999px 4px 4px;overflow:hidden;aspect-ratio:3/4;max-width:440px;width:100%;margin:0 auto;box-shadow:0 30px 60px -36px rgba(60,40,25,.6)}
.arch img{width:100%;height:100%;object-fit:cover}
.arch::after{content:"";position:absolute;inset:10px;border-radius:999px 999px 2px 2px;border:1px solid rgba(255,245,225,.55);pointer-events:none}
.story-text p{font-size:clamp(1.2rem,2vw,1.35rem);max-width:36ch;color:var(--ink)}
.story-text p:first-of-type::first-letter{float:left;font:400 4.2em/.8 var(--script);color:var(--wine);margin:.08em .3em 0 0;padding-left:.06em}
@media (min-width:860px){.story{grid-template-columns:5fr 6fr}.arch{margin:0}}

/* Program: idővonal, amely görgetéskor rajzolódik ki */
.program{background:linear-gradient(var(--paper-deep),var(--paper-deep)) ;position:relative}
.program-grid{display:grid;gap:40px}
.program-head .h2{margin-bottom:.2em}
.program-head p{color:var(--ink-soft);font-size:1.25rem}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline li{position:relative;display:grid;grid-template-columns:5.4rem 1fr;gap:22px;padding:0 0 34px 0}
.timeline li::before{content:"";position:absolute;left:calc(5.4rem + 10px);top:.9em;bottom:-.2em;width:1px;background:var(--gold);transform-origin:top;transform:scaleY(var(--draw,1));transition:transform 1.1s var(--ease-out)}
.timeline li:last-child::before{display:none}
.timeline li::after{content:"";position:absolute;left:calc(5.4rem + 6px);top:.62em;width:9px;height:9px;border-radius:50%;background:var(--paper-deep);border:1px solid var(--gold)}
.t-time{font:500 1.55rem/1.2 var(--serif);font-feature-settings:'lnum' 1;color:var(--wine);text-align:right;padding-right:6px}
.t-what{padding-left:14px}
.t-what h3{margin:0 0 .15em;font:500 1.45rem/1.25 var(--serif)}
.t-what p{margin:0;color:var(--ink-soft);font-size:1.15rem;line-height:1.5}
@media (min-width:860px){.program-grid{grid-template-columns:4fr 7fr;gap:80px}.program-head{position:sticky;top:96px;align-self:start}}

/* Helyszín: teljes szélességű kép, rátett papírcímke */
.venue{position:relative;padding-bottom:0}
.venue-figure{position:relative;margin:0;height:min(78svh,760px);overflow:hidden}
.venue-figure img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.venue-card{position:relative;margin:-88px 20px 0;padding:30px 28px 28px;background:var(--paper);box-shadow:0 24px 50px -28px rgba(60,40,25,.55);max-width:30rem}
.venue-card .h2{font-size:clamp(2rem,4.5vw,2.8rem);margin-bottom:.15em}
.venue-card p{color:var(--ink-soft)}
.venue-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
@media (min-width:860px){.venue-card{position:absolute;left:max(40px,calc((100vw - 1180px) / 2));bottom:56px;margin:0}}

/* Tudnivalók */
.good{display:grid;gap:0;border-top:1px solid var(--rule)}
.good div{padding:26px 0;border-bottom:1px solid var(--rule)}
.good h3{margin:0 0 .3em;font:italic 500 1.5rem/1.2 var(--serif);color:var(--wine)}
.good p{margin:0;max-width:40ch}
@media (min-width:860px){.good{grid-template-columns:repeat(2,1fr);column-gap:64px}}

/* Visszajelzés */
.rsvp-card{max-width:640px;margin:0 auto;padding:clamp(32px,6vw,56px) clamp(22px,6vw,56px);background:#f9f4ea;box-shadow:0 0 0 1px rgba(120,96,70,.14),0 30px 60px -40px rgba(60,40,25,.55);position:relative}
.rsvp-card::before{content:"";position:absolute;inset:10px;border:1px solid rgba(156,122,65,.35);pointer-events:none}
.rsvp-card .h2{text-align:center}
.rsvp-intro{text-align:center;color:var(--ink-soft);max-width:30rem;margin:0 auto 2em}
.field{display:grid;gap:8px;margin:0 0 22px}
.field>label,.field legend{font:600 .875rem/1.4 var(--sans);color:var(--ink)}
.field small{font:400 .8125rem/1.45 var(--sans);color:var(--ink-soft)}
fieldset.field{border:0;padding:0;margin:0 0 22px}
fieldset.field legend{margin-bottom:10px}
.input{width:100%;min-height:50px;padding:12px 14px;border:1px solid rgba(90,72,64,.38);border-radius:2px;background:#fffdf8;font:400 1.1rem/1.4 var(--serif);transition:border-color .2s ease,box-shadow .2s ease}
.input:focus{outline:none;border-color:var(--wine);box-shadow:0 0 0 3px rgba(107,35,51,.14)}
textarea.input{min-height:96px;resize:vertical}
.choice{display:grid;gap:10px}
.choice label{position:relative;display:flex;align-items:center;gap:12px;min-height:54px;padding:12px 16px;border:1px solid rgba(90,72,64,.32);border-radius:2px;background:#fffdf8;font:500 1.15rem/1.3 var(--serif);cursor:pointer;transition:border-color .2s,background .2s}
.choice input{appearance:none;width:18px;height:18px;margin:0;border:1px solid var(--ink-soft);border-radius:50%;flex:none;display:grid;place-items:center}
.choice input::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--wine);transform:scale(0);transition:transform .2s var(--ease-out)}
.choice input:checked::after{transform:scale(1)}
.choice label:has(input:checked){border-color:var(--wine);background:#fbf1ec}
.choice input:focus-visible{outline:2px solid var(--wine);outline-offset:3px}
.cond{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--ease-out)}
.cond>div{overflow:hidden}
.cond.show{grid-template-rows:1fr}
.form-error{min-height:1.4em;margin:0 0 12px;font:500 .875rem/1.4 var(--sans);color:#9b1c2c}
.rsvp-submit{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:8px}
.demo-note{font:400 .8125rem/1.45 var(--sans);color:var(--ink-soft);text-align:center;margin:0}
.thanks{text-align:center;padding:20px 0}
.thanks p:first-child{font:400 2.6rem/1.1 var(--script);color:var(--wine);margin-bottom:.3em}

/* Lábléc */
.closing{padding:clamp(80px,12vw,150px) 0 60px;text-align:center}
.closing-names{margin:0;font:400 clamp(3rem,10vw,5.4rem)/1 var(--script);color:var(--wine)}
.closing p{color:var(--ink-soft)}
.replay{appearance:none;background:none;border:0;font:500 .875rem/1 var(--sans);color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;cursor:pointer;padding:10px}

/* Belépőkód (opcionális) */
.gate{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:24px;background:var(--linen)}
.gate form{width:min(100%,420px);text-align:center}
.gate .seal-mini{width:72px;height:72px;margin:0 auto 22px}
.gate h1{margin:0 0 .3em;font:400 2.4rem/1.1 var(--script);color:var(--wine)}
.gate p{color:var(--ink-soft)}
.gate .input{text-align:center;letter-spacing:.12em;font-size:1.4rem}

/* Görgetésre megjelenő elemek (csak ha van JS és mozgás) */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform 1s var(--ease-out)}
.js .rv.in{opacity:1;transform:none}
.js .timeline li{--draw:0}
.js .timeline li.in{--draw:1}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
  .js .timeline li{--draw:1}
}
@media print{.scene,.hero-cue,.replay,.rsvp{display:none}}

/* Formázott szövegek (BKSablon.fmt): bekezdés, alcím, felsorolás */
.story-text h3{margin:1.2em 0 .3em;font:italic 500 1.4rem/1.25 var(--serif);color:var(--wine)}
.story-text ul,.good .txt ul{margin:0 0 1em;padding-left:1.1em}
.story-text li,.good .txt li{margin:.2em 0}
.good .txt p{margin:0 0 .5em;max-width:40ch}
.good .txt h3{font:italic 500 1.2rem/1.3 var(--serif);color:var(--wine);margin:.6em 0 .2em}
