@font-face{font-family:Cormorant;src:url('fonts/cormorant-garamond-normal-400.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('fonts/cormorant-garamond-normal-500.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Cormorant;src:url('fonts/cormorant-garamond-italic-400.ttf') format('truetype');font-weight:400;font-style:italic;font-display:swap}
:root{--paper:#fffaf5;--rose:#b54b68;--blush:#df8094;--ink:#60454b;--olive:#7e8064;--line:#d5b7ae;--background:#f5eae5}
*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--ink);font-family:Georgia,'Times New Roman',serif;-webkit-text-size-adjust:100%}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer}img{display:block;max-width:100%;height:auto}button:focus-visible,a:focus-visible{outline:3px solid #8b3e57;outline-offset:5px}[hidden]{display:none!important}
.site-shell{width:100%;min-height:100vh;min-height:100svh;padding:max(32px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 10%,#fff7f1,transparent 70%)}
.cover{max-width:480px;margin:0 auto;text-align:center;padding-top:14px}.eyebrow{font:500 10px/1.5 Georgia,serif;letter-spacing:.2em;text-transform:uppercase;color:var(--olive);margin:0}.cover-name{width:210px;margin:24px auto 10px}.cover-date{font:italic 18px/1.4 Cormorant,Georgia,serif;margin:0 0 28px;color:var(--ink)}
.envelope{position:relative;isolation:isolate;width:100%;aspect-ratio:1.22;background:#f9efea;border:1px solid #e7d5ce;border-radius:3px;box-shadow:0 20px 35px #63434824,0 2px 6px #63434814;perspective:900px;overflow:hidden}
.envelope::before{content:'';position:absolute;inset:0;z-index:0;background:repeating-linear-gradient(20deg,#fff3 0 1px,transparent 1px 4px)}
.envelope-fold{position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,#fff9f4,#f0dfd8);z-index:1}.fold-left{clip-path:polygon(0 0,59% 57%,0 100%)}.fold-right{clip-path:polygon(100% 0,41% 57%,100% 100%);background:linear-gradient(220deg,#fffaf5,#f2e5df)}
.envelope-lid{position:absolute;inset:0;z-index:3;clip-path:polygon(0 0,100% 0,100% 46%,50% 76%,0 46%);background:repeating-linear-gradient(15deg,#fffaf6 0 2px,#fdf5ef 2px 3px);filter:drop-shadow(0 3px 3px #9d78672b);transition:transform .6s cubic-bezier(.22,.61,.36,1),opacity .5s ease;transform-origin:50% 0;pointer-events:none}
.envelope-flowers{position:absolute;width:52%;max-width:none;left:-12%;top:-10%;opacity:.92}.envelope-monogram{position:absolute;width:18%;right:15%;top:9%;object-fit:contain}.seal-button{position:absolute;z-index:5;width:112px;aspect-ratio:1;left:50%;top:72%;transform:translate(-50%,-50%);padding:0;border:0;background:transparent;border-radius:50%;transition:transform .4s ease,opacity .35s ease}.seal-button img{width:100%;height:100%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 4px 4px #7b38452b)}.seal-fallback{display:none;position:absolute;inset:13%;border:5px ridge #df8e9b;border-radius:50%;background:#d98795;color:#fff0ed;font:46px/1.4 Cormorant,serif;align-items:center;justify-content:center}.image-failed img{display:none}.image-failed .seal-fallback{display:flex}.cover-prompt{font:italic 17px/1.5 Cormorant,serif;margin:25px 0 17px}.open-button{display:inline-flex;align-items:center;gap:22px;min-height:48px;border:0;border-bottom:1px solid #b96e7d;padding:10px 2px;color:var(--rose);background:none;font-size:10px;letter-spacing:.16em;text-transform:uppercase}.open-button span{font-size:20px;letter-spacing:0}.cover-hint{font:11px/1.5 Georgia,serif;margin:14px 0 0;color:#8a7475}.is-opening .seal-button{transform:translate(-50%,-50%) scale(.88) rotate(-9deg);opacity:0}.is-opening .envelope-lid{transform:translateY(-32%);opacity:0}
.invitation{max-width:640px;margin:0 auto}.letter{position:relative;isolation:isolate;overflow:hidden;background:var(--paper);border:1px solid #ead4cd;border-radius:190px 190px 8px 8px;box-shadow:0 18px 48px #6a424b14;padding:92px 74px 0}.hero-art{position:absolute;inset:0;pointer-events:none;z-index:0}.hero-art img{position:absolute;max-width:none;opacity:.72}.hero-flower-left{width:37%;left:-13%;top:10px;transform:rotate(-8deg)}.hero-flower-right{width:35%;right:-14%;top:90px;transform:rotate(8deg)}.letter-header,.message,.celebration,.attire,.guest-actions,.letter-footer{position:relative;z-index:1}.letter-header{text-align:center}.letter-header .eyebrow{font-size:9px;letter-spacing:.22em}.letter-header h1{margin:28px auto 20px;width:80%;font-size:inherit}.letter-header h1 img{width:100%}.letter-header h1:focus{outline:none}.botanical-divider{display:flex;align-items:center;justify-content:center;gap:14px;color:#a09c7d;margin-bottom:28px}.botanical-divider span{width:38px;height:1px;background:#d7c4b3}.botanical-divider svg{width:24px;height:28px}
.message{text-align:center;font-size:16px;line-height:1.75;max-width:400px;margin:0 auto 36px}.message p{margin:0}.message p+p{margin-top:20px}.celebration{text-align:center;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0 24px}.celebration .eyebrow{font-size:9px;letter-spacing:.18em}.event-date{display:flex;justify-content:center;align-items:center;gap:18px;margin:13px 0 14px;color:var(--rose)}.date-day{font:400 80px/.95 Cormorant,serif;letter-spacing:-.05em}.date-month{text-align:left;border-left:1px solid #ddb6ba;padding-left:17px;display:flex;flex-direction:column;gap:6px;font:400 26px/1.1 Cormorant,serif}.date-year{font:10px/1.4 Georgia,serif;letter-spacing:.1em;color:var(--ink);text-transform:uppercase}.event-time{display:flex;align-items:center;justify-content:center;gap:8px;font:400 20px/1.3 Cormorant,serif;margin:0}.event-time strong{font-weight:500;font-size:28px;color:var(--rose)}.event-time svg{width:19px;height:19px;color:var(--rose)}
.attire{text-align:center;padding:30px 0 0;max-width:360px;margin:0 auto 36px}.hanger{width:30px;height:28px;color:var(--rose);margin:0 auto 8px}.attire h2{font:400 20px/1.35 Cormorant,serif;margin:0 0 13px}.attire h2 span{display:block;color:var(--rose);font-size:30px;margin-top:2px}.attire p{font:italic 14px/1.65 Georgia,serif;margin:0;color:#806365}
.guest-actions{padding-top:27px;border-top:1px solid var(--line);text-align:center}.guest-actions>.eyebrow{font-size:9px;letter-spacing:.13em}.guest-actions h2{font:400 29px/1.15 Cormorant,serif;margin:11px 0 23px}.action-link{display:flex;align-items:center;gap:13px;min-height:68px;width:100%;text-align:left;text-decoration:none;border:1px solid #c47488;border-radius:8px;padding:13px 17px;color:var(--rose);background:#fffaf5;position:relative;z-index:1}.action-link+.action-link{margin-top:11px}.action-link>svg{width:26px;height:26px;flex-shrink:0}.action-link>span:not(.link-arrow){font:400 17px/1.3 Cormorant,serif}.action-link small{display:block;font:9px/1.5 Georgia,serif;color:#8d7377;margin-top:3px}.link-arrow{margin-left:auto;font:20px/1 Georgia,serif}.action-link[aria-disabled=true]{border-color:#d9b9bf}.action-link:not([aria-disabled=true]):hover{background:#fbe9eb}.action-secondary{background:#f7f1e9;border-color:#c8c4ae;color:#73795e}.rsvp-deadline{font:11px/1.8 Georgia,serif;margin:23px -8px 0;color:#80696d}.rsvp-deadline strong{font-weight:normal;color:var(--rose)}.side-flowers{pointer-events:none;position:absolute;inset:0;z-index:0}.side-flowers img{position:absolute;width:50px;max-width:none;opacity:.58;height:auto}.side-left{left:-91px;top:-42px}.side-right{right:-91px;top:38px}
.letter-footer{min-height:200px;margin-top:32px;padding-bottom:125px;text-align:center}.letter-footer p{position:relative;z-index:1;font:italic 17px/1.4 Cormorant,serif;margin:0}.letter-footer p span{font-size:27px;color:var(--rose);font-style:normal}.footer-flowers{position:absolute;bottom:-105px;left:50%;transform:translateX(-50%) rotate(88deg);width:230px;max-width:none;opacity:.78;pointer-events:none}.back-button{display:block;min-height:48px;margin:16px auto 0;border:0;background:transparent;color:var(--rose);padding:10px 16px;font:12px/1.4 Georgia,serif;text-decoration:underline;text-underline-offset:5px}
@media(max-width:600px){.site-shell{padding-top:max(26px,env(safe-area-inset-top));padding-inline:16px}.cover{padding-top:12px}.letter{padding:75px 36px 0;border-radius:160px 160px 7px 7px}.hero-flower-left{width:39%;left:-15%;top:12px}.hero-flower-right{width:37%;right:-16%;top:72px}.letter-header h1{width:82%;margin-top:25px}.message{font-size:15px;line-height:1.7;margin-bottom:30px}.date-day{font-size:72px}.date-month{font-size:25px}.attire{margin-bottom:31px}.guest-actions h2{font-size:27px}.side-flowers img{width:35px}.side-left{left:-53px}.side-right{right:-53px}.action-link{padding:12px 13px;gap:10px}.action-link>span:not(.link-arrow){font-size:17px}.rsvp-deadline{font-size:10px;margin-inline:-5px}.letter-footer{padding-bottom:124px}.footer-flowers{width:205px;bottom:-96px}}
@media(max-width:350px){.site-shell{padding-inline:12px}.cover-name{width:180px}.letter{padding-inline:27px;padding-top:68px}.letter-header .eyebrow{font-size:8px}.message{font-size:14px}.event-date{gap:13px}.date-day{font-size:66px}.date-month{font-size:23px;padding-left:13px}.date-year{font-size:9px}.guest-actions h2{font-size:25px}.action-link{padding-inline:11px;gap:8px}.action-link>span:not(.link-arrow){font-size:16px}.action-link>svg{width:24px;height:24px}.side-left{left:-44px}.side-right{right:-44px}.seal-button{width:100px}}
@media(max-width:600px){.cover{padding-top:0}.cover-name{margin-top:20px}.cover-date{margin-bottom:24px}.cover-prompt{margin-top:22px;margin-bottom:12px}}
@media(max-width:350px){.message{font-size:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}

/* Revisão 2: arranjos inteiros, monograma interno e ações circulares. */
.letter { border-radius: 28px 28px 8px 8px; padding-top: 44px; }
.hero-art img { width: min(28%, 122px); top: 20px; opacity: .88; transform: none; }
.hero-flower-left { left: 3%; }
.hero-flower-right { right: 3%; }
.interior-monogram { width: 68px; margin: 0 auto 18px; object-fit: contain; }
.letter-header h1 { width: 80%; margin-top: 26px; }
.event-date { display: block; font: 400 50px/1.2 Cormorant, Georgia, serif; letter-spacing: .02em; margin: 12px 0 5px; }
.event-weekday { margin: 0 0 18px; color: var(--olive); font: 10px/1.4 Georgia, serif; letter-spacing: .15em; text-transform: uppercase; }
.attire { margin-bottom: 18px; }
.floral-pause { display: grid; place-items: center; height: 110px; margin: 0 auto 24px; pointer-events: none; }
.floral-pause img { width: 82px; max-width: none; opacity: .82; transform: rotate(-22deg); }
.actions-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; width: 100%; max-width: 330px; margin: 0 auto; }
.action-link { display: flex; flex-direction: column; align-items: center; gap: 13px; min-height: 146px; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--rose); text-align: center; }
.action-circle { display: grid; place-items: center; flex: 0 0 auto; width: 78px; height: 78px; border-radius: 50%; background: #d97691; border: 5px solid #fffaf5; color: #fff; box-shadow: 0 0 0 1px #e2a5b6; }
.action-circle svg { width: 31px; height: 31px; }
.action-link>span:not(.link-arrow):not(.action-circle) { font-size: 17px; line-height: 1.2; }
.action-link small { margin-top: 7px; font-size: 9px; }
.action-secondary { background: transparent; color: var(--rose); }
.action-link:not([aria-disabled=true]):hover { background: transparent; }
.action-link:not([aria-disabled=true]):hover .action-circle { background: #bd5676; }
.letter-footer { min-height: 0; margin-top: 32px; padding-bottom: 20px; }
.footer-art { display: grid; place-items: center; width: 100%; height: clamp(190px,58vw,240px); margin-top: 10px; }
.footer-flowers { position: static; width: min(76%,215px); max-width: none; height: auto; transform: rotate(90deg); opacity: .88; }
@media(max-width:600px) {
  .letter { padding-top: 42px; border-radius: 22px 22px 8px 8px; }
  .hero-art img { width: 28%; top: 18px; }
  .interior-monogram { width: 64px; }
  .letter-header h1 { width: 82%; margin-top: 24px; }
  .event-date { font-size: 44px; }
  .action-link { padding: 0; gap: 13px; }
  .letter-footer { padding-bottom: 18px; }
}
@media(max-width:350px) {
  .letter { padding-top: 40px; }
  .interior-monogram { width: 58px; }
  .event-date { font-size: 40px; }
  .action-circle { width: 72px; height: 72px; }
  .action-link>span:not(.link-arrow):not(.action-circle) { font-size: 16px; }
}

/* Revisão 3: os recortes de origem terminam nas bordas do papel. */
.letter { border-radius: 16px 16px 8px 8px; }
.hero-art img {
  width: min(31%,140px); max-width: none;
  top: auto; right: auto; bottom: auto; left: auto;
  transform: none; opacity: .88;
}
.hero-art img.corner-tl { top: 0; left: 0; }
.hero-art img.corner-tr { top: 0; right: 0; }
.hero-art img.corner-bl { bottom: 0; left: 0; width: min(34%,170px); transform: scaleY(-1); }
.hero-art img.corner-br { bottom: 0; right: 0; width: min(34%,170px); transform: scaleY(-1); }
.attire { margin-bottom: 32px; }
.letter-footer { min-height: 0; margin-top: 32px; padding-bottom: clamp(150px,38vw,210px); }
@media(max-width:600px) {
  .hero-art img { width: min(31%,132px); }
}

/* Revisão 4: mesma linha para círculos, ícones, legendas e avisos. */
.actions-grid { align-items: start; }
.actions-grid .action-link {
  display: grid; grid-template-rows: 78px auto; align-content: start;
  align-items: start; justify-items: center; row-gap: 13px;
  margin: 0; margin-top: 0px; min-height: 154px; padding: 0;
}
.actions-grid .action-circle {
  display: grid; place-items: center; align-self: start; justify-self: center;
  margin: 0; padding: 0; line-height: 0;
}
.actions-grid .action-circle svg { display: block; width: 31px; height: 31px; margin: 0; }
.actions-grid .action-caption { display: grid; grid-template-rows: 42px auto; row-gap: 7px; width: 100%; }
.actions-grid .action-label { display: block; line-height: 21px; }
.actions-grid .action-caption small { display: block; margin: 0; line-height: 14px; }
@media(max-width:350px) {
  .actions-grid .action-link { grid-template-rows: 72px auto; min-height: 148px; }
}

/* Revisão 5: leitura mobile e áreas de legenda uniformes. */
.actions-grid .action-caption { grid-template-rows: 42px 28px; }
.actions-grid .action-caption small { font-size: 10px; line-height: 14px; }
.rsvp-deadline { max-width: 390px; margin: 24px auto 0; font-size: 12px; line-height: 1.75; }

/* Revisão 6: flores e assinatura mais claras, com os originais preservados. */
.hero-art img { opacity: .70; }
.envelope-flowers { opacity: .72; }
.cover-name, .letter-header h1 img { opacity: .75; }
.letter-footer p span { color: #e04460; opacity: .75; }

/* Revisão 7: monograma suave, combinando com a assinatura. */
.envelope-monogram, .interior-monogram { opacity: .75; }

/* Revisão 9: links ativos e avisos provisórios removidos. */
.actions-grid .action-caption { grid-template-rows: 42px; row-gap: 0; }
.actions-grid .action-link { min-height: 133px; }
@media(max-width:350px) { .actions-grid .action-link { min-height: 127px; } }
