@font-face{font-family:"Cormorant";src:url("../fonts/CormorantGaramond.ttf") format("truetype-variations");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant";src:url("../fonts/CormorantGaramond-Italic.ttf") format("truetype-variations");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Revive80";src:url("../fonts/Revive80.otf") format("opentype");font-display:swap}

:root{
  --cream:#F1EADC;
  --olive:#8A7E3E;
  --olive-dk:#6E6330;
  --brown:#2A2418;
  --rule:rgba(110,99,48,.45);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:"Cormorant",Georgia,serif;
  background:
    radial-gradient(ellipse 70% 30% at 50% 0%, rgba(255,238,200,.55), transparent 60%),
    var(--cream);
  color:var(--brown);
  position:relative;
  overflow-x:hidden;
  font-weight:300;
}

.grain{position:fixed;inset:0;pointer-events:none;z-index:80;opacity:1;mix-blend-mode:multiply}

/* visually hidden — keeps content available to assistive tech */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ============================================================
   Language toggle (CZ · DE) — fixed top-right, low-key
   ============================================================ */
.lang-toggle{
  position:fixed;
  top:clamp(20px,3vh,32px);
  right:clamp(20px,3vw,32px);
  z-index:90;
  display:flex;align-items:center;gap:12px;
  font-family:"Cormorant",serif;font-weight:400;
  font-size:13px;
  text-transform:uppercase;
  color:var(--olive);
  -webkit-tap-highlight-color:transparent;
}
.lang-toggle__btn{
  appearance:none;background:transparent;border:0;
  padding:6px 2px 6px 6px;cursor:pointer;
  color:inherit;opacity:.4;
  font-family:inherit;font-weight:inherit;font-size:inherit;
  letter-spacing:.32em;text-transform:inherit;
  transition:opacity .35s ease, letter-spacing .35s ease;
  line-height:1;
}
.lang-toggle__btn:hover{opacity:.8}
.lang-toggle__btn[aria-pressed="true"]{
  opacity:1;letter-spacing:.42em;
}
.lang-toggle__btn:focus-visible{
  outline:1px dashed var(--olive-dk);outline-offset:4px;border-radius:2px;
}
.lang-toggle__sep{
  display:inline-block;width:1px;height:14px;
  background:var(--olive);opacity:.45;
}
@media (max-width:680px){
  .lang-toggle{top:14px;right:14px;font-size:11px;gap:9px}
  .lang-toggle__btn{padding:5px 2px 5px 5px;letter-spacing:.28em}
  .lang-toggle__btn[aria-pressed="true"]{letter-spacing:.36em}
  .lang-toggle__sep{height:11px}
}

/* ============================================================
   HERO — original A2 grounded composition (full viewport)
   ============================================================ */
.hero{
  position:relative;
  width:100%;height:100vh;min-height:720px;
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.rays{
  position:absolute;inset:0;pointer-events:none;z-index:2;
  background:
    linear-gradient(212deg, rgba(255,244,210,.42) 0%, rgba(255,244,210,.14) 24%, transparent 58%),
    radial-gradient(ellipse 60% 40% at 88% -8%, rgba(255,236,186,.55), transparent 65%);
  mix-blend-mode:screen;
}
.rays::after{
  content:"";position:absolute;inset:0;
  background:repeating-linear-gradient(212deg,
    rgba(255,240,200,0) 0 30px,
    rgba(255,240,200,.17) 30px 62px,
    rgba(255,240,200,0) 62px 120px);
  mix-blend-mode:screen;opacity:.5;filter:blur(6px);
}
.bokeh{position:absolute;border-radius:50%;z-index:3;pointer-events:none;
  background:radial-gradient(circle at 40% 40%, rgba(255,248,220,.9), rgba(255,230,180,0) 70%);
  filter:blur(2px);animation:drift 22s ease-in-out infinite;
}
.bokeh.b1{width:14px;height:14px;top:22%;left:38%;animation-delay:-2s}
.bokeh.b2{width:9px;height:9px;top:58%;left:62%;animation-delay:-8s}
.bokeh.b3{width:18px;height:18px;top:68%;left:28%;animation-delay:-14s}
@keyframes drift{0%,100%{transform:translate(0,0);opacity:.45}50%{transform:translate(14px,-22px);opacity:.9}}

.layer{position:absolute;inset:0;pointer-events:none;will-change:transform;transition:transform .6s cubic-bezier(.2,.6,.2,1)}

.back-l,.back-r{position:absolute;bottom:-2vh;width:clamp(260px,26vw,420px)}
.back-l{left:-2vw}
.back-r{right:-2vw;transform:scaleX(-1)}
.back-l img,.back-r img{position:absolute;display:block;opacity:.78;filter:saturate(.9)}
.back-l .g1{bottom:0;left:30%;width:72%;transform-origin:50% 100%;animation:windA 9s ease-in-out infinite}
.back-l .g2{bottom:0;left:-5%;width:62%;transform-origin:52% 100%;animation:windB 11s ease-in-out infinite -2.3s}
.back-l .g3{bottom:0;left:55%;width:48%;transform-origin:50% 100%;animation:windC 13s ease-in-out infinite -5s}
.back-r .g1{bottom:0;left:20%;width:74%;transform-origin:50% 100%;animation:windA 10s ease-in-out infinite -1.5s}
.back-r .g2{bottom:0;left:-6%;width:58%;transform-origin:48% 100%;animation:windB 12.5s ease-in-out infinite -6s}
.back-r .g3{bottom:0;left:56%;width:50%;transform-origin:50% 100%;animation:windC 14s ease-in-out infinite -3s}

.mid-l,.mid-r{position:absolute;bottom:-1vh;width:clamp(240px,24vw,380px)}
.mid-l{left:1vw}
.mid-r{right:1vw;transform:scaleX(-1)}
.mid-l img,.mid-r img{position:absolute;display:block}
.mid-l .daisy-big{bottom:14%;left:18%;width:42%;transform-origin:50% 100%;animation:windSoft 8s ease-in-out infinite}
.mid-l .daisy-sm{bottom:4%;left:52%;width:30%;transform-origin:50% 100%;animation:windSoft 10s ease-in-out infinite -3s}
.mid-l .bud-pair{bottom:24%;left:-4%;width:28%;transform-origin:50% 100%;animation:windSoft 11s ease-in-out infinite -1.5s}
.mid-l .leaf{bottom:6%;left:42%;width:16%;transform:rotate(-14deg)}
.mid-r .daisy-big{bottom:18%;left:14%;width:38%;transform-origin:50% 100%;animation:windSoft 9s ease-in-out infinite -2s}
.mid-r .daisy-sm{bottom:6%;left:48%;width:26%;transform-origin:50% 100%;animation:windSoft 10.5s ease-in-out infinite -4s}
.mid-r .bud{bottom:32%;left:60%;width:18%;transform-origin:50% 100%;animation:windSoft 12s ease-in-out infinite -2s}
.mid-r .leaf{bottom:8%;left:38%;width:14%;transform:rotate(12deg)}

.front-r{position:absolute;bottom:-2vh;right:2vw;width:clamp(200px,18vw,300px);z-index:8}
.front-r .poppy{position:absolute;bottom:0;right:6%;width:70%;transform-origin:50% 95%;animation:windSoft 7s ease-in-out infinite}
.front-l{position:absolute;bottom:-1vh;left:3vw;width:clamp(160px,14vw,220px);z-index:8}
.front-l .poppy{position:absolute;bottom:0;left:10%;width:62%;transform:scaleX(-1);transform-origin:50% 95%;animation:windSoft 8.5s ease-in-out infinite -2s}

.wreath{position:absolute;top:-1vh;left:50%;width:min(420px,36vw);z-index:6;pointer-events:none;opacity:.9;translate:-50% 0}
.wreath img{width:100%;display:block}

.bee-fly{position:absolute;top:30%;left:22%;width:52px;height:52px;z-index:11;pointer-events:none;animation:arcFly 28s linear infinite}
.bee-fly img{width:100%;height:100%;object-fit:contain;animation:beeWobble 1.2s ease-in-out infinite}
@keyframes beeWobble{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}
@keyframes arcFly{
  0%{transform:translate(0,0)}
  20%{transform:translate(80px,-40px)}
  40%{transform:translate(220px,-10px)}
  55%{transform:translate(320px,40px)}
  70%{transform:translate(240px,90px)}
  85%{transform:translate(120px,60px)}
  100%{transform:translate(0,0)}
}
@keyframes windA{0%,100%{transform:rotate(-1.4deg)}25%{transform:rotate(.6deg)}55%{transform:rotate(1.8deg)}78%{transform:rotate(-.4deg)}}
@keyframes windB{0%,100%{transform:rotate(1deg)}40%{transform:rotate(-1.6deg)}68%{transform:rotate(2.1deg)}}
@keyframes windC{0%,100%{transform:rotate(-.8deg)}30%{transform:rotate(1.4deg)}60%{transform:rotate(-1.8deg)}82%{transform:rotate(.5deg)}}
@keyframes windSoft{0%,100%{transform:rotate(-.8deg)}50%{transform:rotate(.9deg)}}

.petal{position:fixed;width:24px;z-index:6;top:-40px;opacity:.78;pointer-events:none;will-change:transform}
.petal.p1{left:8%;animation:fallA 22s linear infinite}
.petal.p2{left:18%;width:18px;animation:fallB 28s linear infinite -10s}
.petal.p3{left:28%;width:20px;animation:fallC 25s linear infinite -18s}
.petal.p4{left:38%;width:16px;animation:fallA 30s linear infinite -6s;opacity:.65}
.petal.p5{left:48%;width:22px;animation:fallB 26s linear infinite -20s}
.petal.p6{left:58%;width:14px;animation:fallC 34s linear infinite -14s;opacity:.6}
.petal.p7{left:68%;width:20px;animation:fallA 27s linear infinite -3s;opacity:.7}
.petal.p8{left:78%;width:18px;animation:fallB 31s linear infinite -22s;opacity:.62}
.petal.p9{left:88%;width:24px;animation:fallC 24s linear infinite -8s}
.petal.p10{left:13%;width:14px;animation:fallB 36s linear infinite -16s;opacity:.55}
.petal.p11{left:33%;width:22px;animation:fallC 23s linear infinite -12s;opacity:.72}
.petal.p12{left:53%;width:18px;animation:fallA 29s linear infinite -25s;opacity:.66}
.petal.p13{left:73%;width:16px;animation:fallC 33s linear infinite -2s;opacity:.6}
.petal.p14{left:93%;width:20px;animation:fallA 26s linear infinite -19s}
@keyframes fallA{
  0%{transform:translateY(-60px) translateX(0) rotate(0)}
  50%{transform:translateY(48vh) translateX(28px) rotate(220deg)}
  100%{transform:translateY(108vh) translateX(-12px) rotate(520deg)}
}
@keyframes fallB{
  0%{transform:translateY(-60px) translateX(0) rotate(0)}
  35%{transform:translateY(32vh) translateX(-22px) rotate(-140deg)}
  70%{transform:translateY(70vh) translateX(18px) rotate(-280deg)}
  100%{transform:translateY(108vh) translateX(-8px) rotate(-460deg)}
}
@keyframes fallC{
  0%{transform:translateY(-60px) translateX(0) rotate(0)}
  40%{transform:translateY(40vh) translateX(40px) rotate(180deg)}
  100%{transform:translateY(108vh) translateX(20px) rotate(360deg)}
}

.hero-content{
  position:relative;z-index:20;text-align:center;
  width:min(720px,72vw);
  display:flex;flex-direction:column;align-items:center;
  padding-top:10vh;
}
.hero-monogram{font-family:"Cormorant",serif;font-weight:300;
  font-size:clamp(44px,5.2vw,76px);color:var(--olive);letter-spacing:.18em;line-height:1;
  display:flex;align-items:center;gap:.35em;margin-bottom:clamp(34px,5vh,64px);
}
.hero-monogram .slash{display:inline-block;width:1px;height:1.1em;background:var(--olive);opacity:.75;transform:rotate(14deg) translateY(2px)}
.hero-tag{font-family:"Cormorant",serif;font-weight:400;color:var(--olive);
  letter-spacing:.48em;text-transform:uppercase;font-size:clamp(13px,1.1vw,16px);
  margin-bottom:clamp(36px,5vh,60px);padding-left:.48em;
}
.hero-name-row{display:flex;align-items:baseline;justify-content:center;gap:.5em;line-height:1;white-space:nowrap}
.hero-name{font-family:"Cormorant",serif;font-weight:300;
  font-size:clamp(52px,7.2vw,112px);letter-spacing:.05em;color:var(--brown);
}
.hero-script{font-family:"Revive80",cursive;font-weight:400;
  font-size:clamp(46px,5.8vw,88px);color:var(--brown);
  transform:translateY(.18em) translateX(-.1em);letter-spacing:.01em;
}
.hero-amp{font-family:"Cormorant",serif;font-style:italic;font-weight:300;
  color:var(--olive);font-size:clamp(34px,4vw,56px);margin:clamp(8px,1.2vh,18px) 0;
}
.hero-date{margin-top:clamp(38px,5vh,62px);font-family:"Cormorant",serif;font-weight:300;
  font-size:clamp(19px,1.65vw,24px);color:var(--brown);
  letter-spacing:.38em;text-transform:uppercase;padding-left:.38em;
}
.hero-loc{margin-top:16px;font-family:"Cormorant",serif;font-style:italic;font-weight:300;
  font-size:clamp(17px,1.4vw,21px);color:var(--olive-dk);letter-spacing:.12em;
}
.dot{display:inline-block;width:3px;height:3px;border-radius:50%;background:currentColor;vertical-align:middle;margin:0 .6em;transform:translateY(-3px)}

/* scroll cue */
.scroll-cue{
  position:absolute;left:50%;bottom:max(24px,4vh);transform:translateX(-50%);
  z-index:30;color:var(--olive);font-family:"Cormorant",serif;font-style:italic;
  font-size:13px;letter-spacing:.32em;text-transform:uppercase;padding-left:.32em;
  opacity:.7;animation:bob 2.6s ease-in-out infinite;
}
.scroll-cue::after{content:"";display:block;width:1px;height:32px;background:var(--olive);opacity:.5;margin:8px auto 0}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,4px)}}

/* ============================================================
   SHEET — centered content column with continuous flora borders
   ============================================================ */

.sheet-wrap{position:relative;z-index:5}

.sheet{
  position:relative;
  max-width:780px;
  margin:0 auto;
  padding:clamp(80px,12vh,140px) 24px clamp(60px,8vh,100px);
}

.accent{
  position:absolute;pointer-events:none;z-index:1;
  opacity:0;will-change:transform,opacity;
  transition:opacity 1.2s ease;
}
.accent.on{opacity:.95}
.accent img{width:100%;display:block}

.with-accent{position:relative}

.accent.left-tall{
  left:calc(50% - 620px);top:-40px;
  width:clamp(180px,22vw,300px);
}
.accent.right-tall{
  right:calc(50% - 620px);top:-40px;
  width:clamp(180px,22vw,300px);
  transform:scaleX(-1);
}
.accent.left-low{
  left:calc(50% - 580px);bottom:-60px;
  width:clamp(140px,16vw,220px);
}
.accent.right-low{
  right:calc(50% - 580px);bottom:-60px;
  width:clamp(140px,16vw,220px);
  transform:scaleX(-1);
}
.accent.top-wide{
  left:50%;top:-180px;width:min(640px,80vw);
  transform:translateX(-50%);
  opacity:0;z-index:1;
}
.accent.top-wide.on{opacity:.85}

.accent.rsvp-poppy{
  left:calc(50% - 70px);top:-170px;
  width:clamp(110px,11vw,150px);
  transform:rotate(9deg);
  transform-origin:50% 100%;z-index:1;
}
.accent.rsvp-poppy img{filter:drop-shadow(0 6px 14px rgba(120,80,40,.08))}

.rsvp-bee{
  position:absolute;width:44px;pointer-events:none;z-index:5;
  left:0;top:0;will-change:transform;
  transition:opacity .4s ease;
}
.rsvp-bee img{width:100%;display:block;animation:beeWobble 1s ease-in-out infinite}
.rsvp-bee.flee img{animation-duration:.35s}
.rsvp-bee.resting img{animation-play-state:paused}

.seal-bee{display:none;
  position:absolute;width:42px;pointer-events:none;z-index:5;
  left:50%;top:50%;
  transform-origin:0 0;
  animation:sealOrbit 9s linear infinite;
}
.seal-bee img{width:100%;display:block;animation:beeWobble 1.2s ease-in-out infinite}
@keyframes sealOrbit{
  0%   {transform:translate(-50%,-50%) rotate(0deg)   translate(90px,0) rotate(0deg)}
  100% {transform:translate(-50%,-50%) rotate(360deg) translate(90px,0) rotate(-360deg)}
}
.submit-wrap{position:relative}

.bee-spot{
  position:absolute;width:48px;z-index:6;pointer-events:none;
  opacity:0;transition:opacity .8s ease;
}
.bee-spot.on{opacity:1;animation:beeIdle 5s ease-in-out infinite}
.bee-spot img{width:100%;display:block;transform-origin:50% 50%}
@keyframes beeIdle{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}

.flora-rule{
  display:flex;align-items:center;justify-content:center;gap:14px;
  margin:clamp(28px,4vh,40px) auto;width:min(420px,80%);
}
.flora-rule .ln{flex:1;height:1px;background:var(--rule)}
.flora-rule img{width:34px;height:34px;object-fit:contain;opacity:.85}

/* ===== content atoms ===== */
.s-head{
  text-align:center;
  font-family:"Cormorant",serif;font-weight:400;color:var(--olive);
  letter-spacing:.4em;text-transform:uppercase;font-size:clamp(14px,1.15vw,17px);
  padding-left:.4em;
  margin-top:clamp(72px,10vh,120px);
}
.s-sub{
  text-align:center;margin-top:8px;
  font-family:"Cormorant",serif;font-style:italic;font-weight:300;
  color:var(--olive-dk);font-size:clamp(15px,1.2vw,18px);letter-spacing:.06em;
}
.hairline{
  display:block;width:min(420px,80%);height:1px;background:var(--rule);
  margin:clamp(22px,3vh,30px) auto clamp(28px,4vh,40px);
  position:relative;
}
.hairline::before,.hairline::after{
  content:"";position:absolute;top:50%;width:5px;height:5px;border-radius:50%;background:var(--olive);transform:translateY(-50%);
}
.hairline::before{left:-3px}
.hairline::after{right:-3px}

/* HARMONOGRAM */
.schedule{
  margin:0 auto;max-width:420px;
  display:grid;grid-template-columns:5.2em 1.2em 1fr;
  column-gap:.55em;row-gap:clamp(14px,1.6vh,22px);
  align-items:baseline;
}
.schedule .time{
  font-family:"Cormorant",serif;font-weight:400;color:var(--olive);
  font-size:clamp(18px,1.55vw,22px);letter-spacing:.08em;
  font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;
}
.schedule .dash{color:var(--rule);font-size:clamp(18px,1.55vw,22px);user-select:none;line-height:1;text-align:center}
.schedule .what{
  font-family:"Cormorant",serif;font-weight:300;color:var(--brown);
  font-size:clamp(18px,1.55vw,22px);letter-spacing:.02em;text-align:left;
}
.schedule .what em{font-style:italic;color:var(--olive-dk)}

/* DOBRÉ VĚDĚT */
.tips{
  margin:0 auto;max-width:560px;
  display:flex;flex-direction:column;gap:clamp(14px,2vh,20px);
}
.tips-centered{text-align:center}
.tips-centered p{
  font-family:"Cormorant",serif;font-weight:300;color:var(--brown);
  font-size:clamp(17px,1.4vw,20px);line-height:1.6;
}

/* PROSE */
.prose{
  margin:0 auto;max-width:560px;text-align:center;
  font-family:"Cormorant",serif;font-weight:300;font-size:clamp(17px,1.4vw,20px);
  color:var(--brown);line-height:1.65;text-wrap:pretty;
}

/* RSVP */
.form{
  margin:0 auto;max-width:520px;
  display:grid;grid-template-columns:160px 1fr;
  column-gap:clamp(18px,2.5vw,32px);
  row-gap:clamp(14px,2vh,20px);
  align-items:start;
  border:0;padding:0;min-width:0;
}
.form .row-label{
  font-family:"Cormorant",serif;font-weight:300;color:var(--brown);
  font-size:clamp(16px,1.3vw,19px);padding-top:6px;letter-spacing:.02em;
  display:block;
}
legend.row-label{padding:0 0 0 0;float:left;width:160px}
.form .row-field{display:flex;flex-direction:column;gap:8px;min-width:0}
.input{
  appearance:none;background:transparent;border:0;border-bottom:1px solid var(--rule);
  font-family:"Cormorant",serif;font-weight:300;font-size:clamp(16px,1.3vw,19px);
  color:var(--brown);padding:6px 0 8px;outline:none;width:100%;
  transition:border-color .3s;letter-spacing:.02em;
}
.input:focus{border-bottom-color:var(--olive-dk)}
.input::placeholder{color:rgba(74,66,48,.32);font-style:italic}
.input[aria-invalid="true"]{border-bottom-color:var(--olive-dk)}
.radios{display:flex;flex-wrap:wrap;gap:6px clamp(18px,2.4vw,32px);padding-top:4px;border:0;margin:0}
.radios.col{flex-direction:column;gap:10px}
.radio{display:inline-flex;align-items:center;gap:10px;cursor:pointer;position:relative;user-select:none;line-height:1}
.radio input{position:absolute;opacity:0;inset:0;cursor:pointer}
.circle{
  width:16px;height:16px;border-radius:50%;border:1px solid var(--olive);
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  transition:border-color .2s;background:transparent;
}
.circle::after{
  content:"";width:8px;height:8px;border-radius:50%;background:var(--olive);
  transform:scale(0);transition:transform .25s cubic-bezier(.2,.8,.2,1);
}
.radio input:checked + .circle::after{transform:scale(1)}
.radio input:focus-visible + .circle{outline:1px dashed var(--olive-dk);outline-offset:3px}
.radio .rlabel{
  font-family:"Cormorant",serif;font-weight:300;font-size:clamp(15px,1.2vw,18px);color:var(--brown);
}
.jine-input{margin-top:4px;font-style:italic;color:var(--olive-dk);font-size:clamp(14px,1.1vw,17px)}

/* row wrappers (replaces grid-direct labels when fieldset is used) */
.form .row{display:contents}

/* inline error message */
.field-error{
  font-family:"Cormorant",serif;font-style:italic;font-weight:400;
  color:var(--olive-dk);font-size:clamp(13px,1.05vw,15px);
  letter-spacing:.04em;margin-top:6px;
  animation:errSlide .35s ease;
}
.field-error[hidden]{display:none}
@keyframes errSlide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

.submit-wrap{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;margin-top:clamp(28px,4vh,48px);gap:14px}
.seal{
  appearance:none;background:transparent;border:1px solid var(--olive);
  border-radius:50%;width:108px;height:108px;color:var(--olive-dk);
  font-family:"Cormorant",serif;font-weight:400;letter-spacing:.32em;
  text-transform:uppercase;font-size:13px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;padding:0;
  transition:background .35s, color .35s, transform .35s, letter-spacing .35s, opacity .25s;
  position:relative;
}
.seal::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(138,126,62,.35);pointer-events:none}
.seal:hover{background:var(--olive);color:var(--cream);letter-spacing:.42em;transform:scale(1.03)}
.seal[aria-busy="true"]{cursor:wait;letter-spacing:.18em;font-size:11px;opacity:.85}
.seal[aria-busy="true"]:hover{background:transparent;color:var(--olive-dk);letter-spacing:.18em;transform:none}
.seal:disabled{cursor:not-allowed}

.form-error{
  margin:0 auto;max-width:520px;text-align:center;
  font-family:"Cormorant",serif;font-style:italic;color:var(--olive-dk);
  font-size:clamp(14px,1.1vw,17px);letter-spacing:.04em;
}
.form-error[hidden]{display:none}

/* success block */
.form-success{
  margin:clamp(36px,5vh,56px) auto 0;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:clamp(14px,2vh,22px);
  outline:none;
}
.form-success[hidden]{display:none}
.form-success.show{animation:fadeUp .8s ease both}
.success-flora{width:64px;height:64px;object-fit:contain;opacity:.92}
.success-head{
  font-family:"Cormorant",serif;font-weight:400;color:var(--olive);
  letter-spacing:.4em;text-transform:uppercase;
  font-size:clamp(18px,1.6vw,22px);padding-left:.4em;
}
.success-text{
  font-family:"Cormorant",serif;font-weight:300;color:var(--brown);
  font-size:clamp(17px,1.4vw,20px);line-height:1.6;max-width:460px;
}
.success-seal{
  width:80px;height:80px;border-radius:50%;border:1px solid var(--olive);
  display:flex;align-items:center;justify-content:center;position:relative;margin-top:8px;
}
.success-seal::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid rgba(138,126,62,.35)}
.success-seal img{width:42px;height:42px;object-fit:contain}

@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

.foot{text-align:center;margin-top:clamp(80px,10vh,120px);position:relative}
.foot .mark{font-family:"Cormorant",serif;font-weight:300;color:var(--olive);
  font-size:clamp(34px,3.4vw,46px);letter-spacing:.24em;line-height:1;
  display:inline-flex;align-items:center;gap:.4em;
}
.foot .mark .slash{display:inline-block;width:1.2px;height:1.05em;background:var(--olive);opacity:.75;transform:rotate(14deg) translateY(2px)}
.foot .date{margin-top:18px;font-family:"Cormorant",serif;font-weight:300;
  color:var(--brown);font-size:clamp(15px,1.3vw,18px);
  letter-spacing:.42em;text-transform:uppercase;padding-left:.42em;
}
.foot{padding-bottom:0}
.foot .meadow{
  display:block;width:75vw;max-width:none;
  position:relative;left:50%;
  transform:translateX(-50%);
  margin-top:clamp(40px,5vh,60px);margin-bottom:0;
}
.sheet{padding-bottom:0!important}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease, transform .8s cubic-bezier(.2,.6,.2,1)}
.reveal.on{opacity:1;transform:none}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}

@media (max-width:920px){
  .sheet{padding:clamp(32px,5vh,56px) clamp(140px,16vw,200px) clamp(48px,6vh,80px)}
  .side{width:clamp(120px,16vw,180px)}
  .corner{width:clamp(120px,14vw,180px)}
}
@media (max-width:680px){
  .hero{min-height:640px}
  .back-l,.back-r,.mid-l,.mid-r,.front-l,.front-r,.bee-fly,.wreath{display:none}
  .mobile-garland-top,.mobile-garland-bottom{display:block}
  .sheet{padding:24px 22px 56px}
  .side,.corner,.bee-rover,.top-garland{display:none}
  .form{grid-template-columns:1fr;column-gap:0;row-gap:18px}
  .form .row-label,.form legend.row-label{padding-top:0;color:var(--olive);letter-spacing:.32em;text-transform:uppercase;font-size:12px;float:none;width:auto}
  .submit-wrap{margin-top:32px}

  .hero-name-row{flex-direction:column;gap:0;white-space:normal;align-items:center}
  .hero-name{font-size:clamp(40px,11vw,58px);letter-spacing:.04em}
  .hero-script{font-size:clamp(38px,10.5vw,54px);transform:translateY(0) translateX(0);margin-top:-6px}
  .hero-monogram{font-size:clamp(38px,9vw,50px);margin-bottom:24px}
  .hero-tag{font-size:12px;letter-spacing:.42em;margin-bottom:24px}
  .hero-amp{font-size:clamp(28px,7vw,38px);margin:clamp(6px,1vh,12px) 0}
  .hero-date{font-size:15px;letter-spacing:.3em;margin-top:32px}
  .hero-loc{font-size:13px}
  .hero-content{width:min(92vw,420px);padding-top:clamp(60px,10vh,120px)}

  .accent.left-tall,.accent.mirror-right{left:-80vw}
  .accent.right-tall{right:-80vw}
  .accent.left-low{left:-60vw;bottom:-40px;width:50vw}
  .accent.right-low{right:-60vw;bottom:-40px;width:50vw}
  .accent.rsvp-poppy{left:calc(50% - 17vw);top:-110px;width:28vw}

  .schedule{grid-template-columns:4.5em 1em 1fr;column-gap:.4em;max-width:100%}
  .schedule .time,.schedule .dash,.schedule .what{font-size:16px}

  .tips.tips-centered{grid-template-columns:1fr;gap:18px}

  .petal.p2,.petal.p5,.petal.p8,.petal.p11,.petal.p14{display:none}
}
.mobile-garland-top,.mobile-garland-bottom{display:none;position:absolute;left:0;right:0;pointer-events:none;z-index:6}
.mobile-garland-top{top:10vh}
.mobile-garland-top img{display:block;width:88%;max-width:420px;margin:0 auto;opacity:.9}
.mobile-garland-bottom{bottom:0}
.mobile-garland-bottom img{display:block;width:100%;opacity:.95}
