:root{
  --paper:#f5ede3;
  --paper-light:#faf5ee;
  --ink:#413f34;
  --ink-soft:#716b5d;
  --terracotta:#bd6d45;
  --terracotta-soft:#d28f6a;
  --olive:#72745a;
  --line:rgba(168,103,71,.33);
  --header-h:64px;
  --safe-left:max(22px,env(safe-area-inset-left));
  --safe-right:max(22px,env(safe-area-inset-right));
  --display:'Prata','GFS Didot','Bodoni 72','Didot','Times New Roman',serif;
  --editorial:'Cormorant Garamond','Iowan Old Style','Palatino Linotype',Georgia,serif;
  --script:'Marck Script','Apple Chancery','URW Chancery L','Segoe Script','Bradley Hand','FreeSerif',serif;
  --ui:Arial,Helvetica,ui-sans-serif,sans-serif;
  --ease:cubic-bezier(.22,.72,.20,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper);overflow-x:clip}
body{margin:0;min-width:320px;min-height:100svh;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:var(--editorial);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}img{display:block;max-width:100%}button,input,select,textarea{font:inherit}
:focus-visible{outline:3px solid var(--terracotta);outline-offset:4px}
.skip-link{position:fixed;z-index:1000;left:var(--safe-left);top:12px;transform:translateY(-180%);padding:11px 15px;border-radius:10px;background:#fff;color:#332d28;font:700 13px/1 var(--ui)}
.skip-link:focus{transform:none}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.topbar{position:sticky;top:0;z-index:60;height:var(--header-h);display:grid;grid-template-columns:auto 1fr;align-items:center;gap:28px;padding:0 clamp(var(--safe-left),4.2vw,54px);background:rgba(247,240,232,.97);border-bottom:1px solid rgba(105,88,73,.055);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;width:max-content}.brand-logo{width:42px;height:42px;object-fit:contain;flex:0 0 auto}.brand-copy{display:grid;gap:2px}.brand-copy strong{font:400 14px/1.15 var(--display);letter-spacing:.14em}.brand-copy small{font:500 7px/1.25 var(--ui);letter-spacing:.13em;text-transform:uppercase;color:#7a7468}
.topbar nav{justify-self:end;display:flex;align-items:center;gap:clamp(20px,3.3vw,46px);font:500 10px/1 var(--ui);letter-spacing:.19em;color:#575247}
.nav-placeholder{white-space:nowrap}.rsvp-preview{display:inline-grid;appearance:none;-webkit-appearance:none;place-items:center;min-width:112px;height:39px;padding:0 18px;border:1px solid var(--terracotta);border-radius:999px;color:#fff;background:var(--terracotta);font-family:var(--editorial);font-size:13px;letter-spacing:.22em}.rsvp-preview:disabled{opacity:1;cursor:default}.heart-mark{font:400 29px/1 var(--editorial);color:#a66345;transform:translateY(-1px)}

.paper{position:relative;background-image:linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.04)),url('assets/paper-texture.webp');background-repeat:repeat;background-size:auto,512px 512px}

/* HERO: the section itself is transparent; the paper silhouette is the pseudo-layer.
   This lets the sea sit physically behind the torn edge, as in the approved PREVIEW. */
.hero.paper{background:none}
.hero{position:relative;z-index:4;min-height:clamp(480px,48.8vw,520px);display:grid;place-items:start center;padding:clamp(27px,3vw,36px) clamp(var(--safe-left),6vw,92px) 38px;text-align:center;overflow:visible}
.hero::before{content:"";position:absolute;z-index:1;inset:0;background-image:linear-gradient(rgba(255,255,255,.14),rgba(255,255,255,.04)),url('assets/paper-texture.webp');background-repeat:repeat;background-size:auto,512px 512px;pointer-events:none}
.hero-inner{position:relative;z-index:5;width:min(590px,100%);display:grid;justify-items:center}
.eyebrow{margin:0 0 clamp(18px,2.1vw,25px);font:500 clamp(12px,1.15vw,14px)/1.4 var(--editorial);letter-spacing:.31em;text-transform:uppercase;color:#504c41}
.hero h1{margin:0;font-family:var(--display);font-size:clamp(76px,8.9vw,96px);font-weight:400;line-height:.92;letter-spacing:-.045em;color:#3f3c31}.hero h1 span{display:block;text-transform:uppercase}.hero h1 em{display:block;margin:.035em 0 -.005em;color:var(--terracotta);font-family:var(--script);font-size:.72em;font-weight:400;line-height:.92;font-style:italic;letter-spacing:-.04em}
.date{margin:0;font-family:var(--display);font-weight:400;color:#4a473b}.hero-date{margin-top:clamp(20px,2.35vw,28px);font-size:clamp(26px,3.05vw,34px);letter-spacing:.13em}.date-small{font-size:clamp(25px,2.5vw,31px);letter-spacing:.14em;text-transform:uppercase}
.ornament-line{width:52px;height:1px;margin:16px auto 15px;background:var(--terracotta)}
.hero-message{max-width:540px;margin:0;white-space:pre-line;font-family:var(--editorial);font-size:clamp(17px,1.9vw,20px);font-weight:500;line-height:1.42;letter-spacing:.095em;color:#595548}
.botanical{position:absolute;z-index:3;pointer-events:none;user-select:none}
.hero-botanical-left{width:clamp(160px,19vw,194px);left:17.6%;top:8.7%;transform:rotate(-2deg)}
.hero-botanical-right{width:clamp(158px,18.7vw,192px);right:19.7%;top:24.8%;transform:rotate(1deg)}
.side-note{position:absolute;z-index:4;margin:0;font:500 10px/1.64 var(--editorial);letter-spacing:.25em;color:#686255;text-align:left}.side-note-left{left:clamp(var(--safe-left),4vw,52px);top:27%}
.hand-note-img{position:absolute;z-index:4;right:clamp(var(--safe-right),4.1vw,52px);top:20%;width:clamp(142px,17vw,174px);height:auto;mix-blend-mode:normal;pointer-events:none;user-select:none}

/* PHOTO BRIDGE: desktop uses an alpha-shaped extraction of the approved PREVIEW.
   The decorative side note and scroll cue are therefore already part of that non-semantic artwork. */
.atmosphere{position:relative;z-index:5;height:min(58.59375vw,600px);margin-top:-184px;overflow:visible;background:transparent;pointer-events:none}
.atmosphere picture{display:block;width:100%;height:100%}.atmosphere picture img{width:100%;height:100%;max-width:none;object-fit:fill}
.atmosphere-shade{display:none}.photo-side-note,.scroll-cue{display:none}

.countdown{z-index:6;min-height:500px;margin-top:-30px;padding:30px clamp(var(--safe-left),6vw,92px) 28px;text-align:center;overflow:visible}
.countdown::before{display:none}
.countdown-inner{position:relative;z-index:5;width:min(820px,100%);margin:0 auto;display:grid;justify-items:center}.countdown-eyebrow{margin-bottom:0}.ornament-line-short{width:44px;margin:18px auto 24px}.countdown-grid{width:min(720px,100%);display:grid;grid-template-columns:repeat(4,1fr);margin:0 auto 24px}.countdown-grid>div{position:relative;padding:0 clamp(14px,2vw,26px)}.countdown-grid>div:not(:last-child)::after{content:"";position:absolute;right:0;top:4%;bottom:7%;width:1px;background:var(--line)}.countdown-grid strong{display:block;font-family:var(--display);font-size:clamp(48px,6.2vw,68px);font-weight:400;line-height:1;color:#474438}.countdown-grid span{display:block;margin-top:10px;font:500 11px/1.2 var(--editorial);letter-spacing:.25em;color:#605b4e}.countdown-state{grid-column:1/-1;margin:12px 0 26px;font-family:var(--script);font-size:clamp(33px,4vw,48px);color:var(--terracotta)}
.invitation-title{margin:0;font-family:var(--script);font-size:clamp(34px,3.9vw,43px);font-weight:400;font-style:italic;line-height:1.02;color:#4f4a3e;letter-spacing:-.025em}.body-copy{max-width:600px;margin:1px auto 0;font-family:var(--editorial);font-size:clamp(17px,1.8vw,20px);font-weight:500;line-height:1.45;letter-spacing:.02em;color:#5b5649}.date-small{margin-top:15px}.ornament-line-bottom{width:44px;margin:14px auto 8px}.closing-script{margin:0;font-family:var(--script);font-size:clamp(24px,2.9vw,31px);font-style:italic;line-height:.98;color:#9d5a3e}
.countdown-botanical-left{width:clamp(160px,19vw,194px);left:-4px;top:1%}.countdown-botanical-right{width:clamp(180px,21vw,218px);right:-8px;bottom:0}.countdown-side-note{position:absolute;z-index:4;right:clamp(var(--safe-right),4vw,54px);top:4%;margin:0;text-align:right;font:500 9px/1.62 var(--editorial);letter-spacing:.25em;color:#706a5c}.countdown-side-note::after{content:"";display:block;width:38px;height:1px;margin:14px 0 0 auto;background:var(--terracotta-soft)}

.foundation-footer{display:flex;justify-content:center;align-items:center;gap:34px;min-height:70px;padding:14px clamp(var(--safe-left),4vw,58px);background:#f2e8dc;border-top:1px solid rgba(122,100,81,.07);font:500 9px/1.4 var(--editorial);letter-spacing:.25em;text-transform:uppercase;color:#6b6558}.foundation-footer p{margin:0}.footer-line{width:62px;height:1px;background:rgba(118,91,73,.55)}

.reveal{opacity:1;transform:none}.motion-ready .reveal{opacity:0;transform:translate3d(0,14px,0);transition:opacity .76s ease,transform .76s var(--ease)}.motion-ready .reveal.is-visible{opacity:1;transform:none}.motion-ready .scroll-cue span{animation:cue 1.8s ease-in-out infinite}@keyframes cue{50%{transform:translateY(6px)}}

@media (max-width:900px){
  .topbar nav{gap:18px}.nav-placeholder{display:none}.brand-logo{width:38px;height:38px}.brand-copy strong{font-size:12px}.rsvp-preview{min-width:90px;height:36px}.heart-mark{font-size:25px}
  .hero{min-height:560px;padding-top:48px}.hero::before{clip-path:polygon(0 0,100% 0,100% 83%,94% 82%,88% 84%,82% 86%,76% 88%,70% 91%,64% 94%,58% 97%,52% 99%,46% 98%,40% 95%,34% 92%,28% 89%,22% 86%,16% 82%,10% 79%,4% 76%,0 75%)}.hero-botanical-left{left:9%;top:20%;width:145px}.hero-botanical-right{right:7%;top:42%;width:150px}.side-note{display:none}.hand-note-img{right:4.2%;top:20%;width:150px}
  .atmosphere{height:500px;margin-top:-125px}.atmosphere picture img{object-fit:cover}.countdown{min-height:555px;margin-top:0;padding-top:44px}.countdown::before{display:block;content:"";position:absolute;z-index:2;left:-1%;right:-1%;top:-26px;height:50px;background-image:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.02)),url('assets/paper-texture.webp');background-size:auto,512px 512px;clip-path:polygon(0 46%,8% 50%,16% 47%,24% 53%,32% 49%,40% 55%,48% 51%,56% 55%,64% 50%,72% 53%,80% 48%,88% 51%,96% 45%,100% 47%,100% 100%,0 100%);filter:drop-shadow(0 -3px 2px rgba(95,69,52,.14));pointer-events:none}.countdown-botanical-left{left:-42px;top:5%;width:165px}.countdown-botanical-right{right:-46px;bottom:0;width:190px}.countdown-side-note{display:none}
}

@media (max-width:640px){
  :root{--header-h:58px;--safe-left:max(18px,env(safe-area-inset-left));--safe-right:max(18px,env(safe-area-inset-right))}
  .topbar{padding:0 var(--safe-right) 0 var(--safe-left)}.brand-logo{width:34px;height:34px}.brand{gap:7px}.brand-copy strong{font-size:10px}.brand-copy small{display:none}.rsvp-preview{min-width:78px;height:34px;font-size:11px}.heart-mark{display:none}
  .hero{min-height:600px;padding:58px var(--safe-right) 70px var(--safe-left)}.hero::before{clip-path:polygon(0 0,100% 0,100% 88%,92% 87%,84% 89%,76% 91%,68% 94%,60% 97%,52% 99%,44% 98%,36% 95%,28% 92%,20% 89%,12% 86%,4% 84%,0 83%)}.hero h1{font-size:clamp(64px,20vw,84px)}.hero h1 em{font-size:.58em}.eyebrow{font-size:11px;letter-spacing:.24em}.hero-date{font-size:clamp(22px,7vw,28px);letter-spacing:.10em}.hero-message{max-width:340px;font-size:18px;letter-spacing:.055em}.hero-botanical-left{left:-28px;top:25%;width:120px;opacity:.78}.hero-botanical-right{right:-42px;top:46%;width:124px;opacity:.72}.hand-note-img{display:none}
  .atmosphere{height:430px;margin-top:-92px;overflow:hidden;background:#a27c62;pointer-events:auto}.atmosphere picture{height:100%}.atmosphere picture img{height:100%;object-fit:cover;object-position:52% center}.atmosphere-shade{display:block;position:absolute;inset:0;background:linear-gradient(180deg,rgba(71,45,29,.01),rgba(47,31,22,.03) 58%,rgba(37,25,18,.10));pointer-events:none}.photo-side-note{display:none}.scroll-cue{display:block;position:absolute;z-index:3;left:50%;bottom:34px;transform:translateX(-50%);margin:0;color:#fff;text-shadow:0 2px 12px rgba(34,24,18,.38);font:500 9px/1.2 var(--editorial);letter-spacing:.29em;text-transform:uppercase}.scroll-cue span{display:block;margin-top:9px;font-size:20px}
  .countdown{min-height:650px;padding:64px var(--safe-right) 60px var(--safe-left)}.countdown::before{top:-25px;height:48px}.countdown-grid{grid-template-columns:repeat(2,1fr);width:min(420px,100%);gap:24px 0;margin-bottom:30px}.countdown-grid>div:nth-child(2)::after{display:none}.countdown-grid>div:nth-child(-n+2){padding-bottom:20px;border-bottom:1px solid rgba(168,103,71,.18)}.countdown-grid strong{font-size:clamp(45px,14vw,58px)}.countdown-grid span{margin-top:8px;font-size:10px}.invitation-title{font-size:34px}.body-copy{font-size:17px}.date-small{font-size:23px}.closing-script{font-size:27px}.countdown-botanical-left{left:-62px;top:8%;width:150px;opacity:.70}.countdown-botanical-right{right:-66px;bottom:0;width:170px;opacity:.66}.foundation-footer{gap:15px;padding:20px var(--safe-right) 20px var(--safe-left);font-size:8px;letter-spacing:.16em}.footer-line{width:28px}
}

@media (max-width:360px){
  .topbar nav{gap:10px}.rsvp-preview{min-width:72px;height:32px;padding:0 12px}.hero h1{font-size:62px}.hero-message{font-size:17px}.hero-botanical-left{left:-52px;top:30%;width:104px;opacity:.48}.hero-botanical-right{right:-54px;top:50%;width:108px;opacity:.44}.countdown-grid strong{font-size:46px}.countdown-grid>div{padding-left:8px;padding-right:8px}
}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .reveal,.reveal{opacity:1!important;transform:none!important;transition:none!important}.scroll-cue span{animation:none!important}}
