:root{--rose:#DBA6A8;--ink:#63484d;--sage:#859181;--metal:#b8a58c;--paper:#fffaf6}
    *{box-sizing:border-box}
    body{margin:0;font-family:'Cormorant Garamond',Georgia,serif;color:var(--ink)}
    button{font:inherit;cursor:pointer}
    :focus-visible{outline:3px solid #944964;outline-offset:4px}
    .app-shell{width:100%;min-height:100vh;min-height:100svh;background:#f8dfe3}
    .stage{width:100%;min-height:100vh;min-height:100svh;display:grid;place-items:center;padding:35px 16px}
    .tiny-label{letter-spacing:.2em;text-transform:uppercase;font-size:11px;font-weight:700}
    .envelope-wrap{position:relative;z-index:2;width:min(100%,470px);text-align:center;transition:opacity .8s ease-out}.envelope-wrap.is-opening{opacity:0;pointer-events:none}
    .envelope-heading{margin:0 0 20px}
    .envelope{--ribbon-y:50%;--ribbon-h:28px;position:relative;width:100%;aspect-ratio:.77;overflow:hidden;isolation:isolate;border-radius:8px;background:#fff8f2;box-shadow:0 25px 55px #7d3b5850,0 4px 12px #7d3b5826}
    .envelope::after{content:"";position:absolute;inset:12px;border:1px solid #c9a974b0;pointer-events:none;z-index:7}
    .pattern-image{position:absolute;width:100%;height:100%;max-width:none;object-fit:cover;left:0;top:0;display:block}
    .envelope-back,.flap{position:absolute;inset:0;overflow:hidden;pointer-events:none}
    .envelope-back{z-index:0;background:#f9e7e2}
    .envelope-back::after,.flap::after{content:"";position:absolute;inset:0;background:transparent;pointer-events:none}
    .flap{background:#f9e7e2}
    .pattern-image{opacity:1}.pattern-image.image-failed,.bow-button img.image-failed{opacity:0!important}
    .flap{transition:transform .8s ease-out,opacity .8s ease-out}
    .envelope-fallback{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:150px;min-height:48px;margin:18px auto 0;padding:12px 20px;border:1px solid #fff8f2;border-radius:999px;background:#b85f70;color:#fffaf6;font-size:13px;font-weight:700;letter-spacing:.08em;box-shadow:0 5px 14px #63334755;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
    .bow-button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
    .flap-left{z-index:2;clip-path:polygon(0 0,55% 50%,0 100%);filter:drop-shadow(2px 0 3px #77505a44)}
    .flap-right{z-index:2;clip-path:polygon(100% 0,45% 50%,100% 100%)}
    .flap-top{z-index:3;clip-path:polygon(0 0,100% 0,50% 51%);filter:drop-shadow(0 3px 3px #77505a44)}
    .flap-bottom{z-index:4;clip-path:polygon(0 100%,50% 48%,100% 100%);filter:drop-shadow(0 -3px 3px #77505a44)}
    .envelope.flaps-open .flap-left{transform:translateX(-108%)}
    .envelope.flaps-open .flap-right{transform:translateX(108%)}
    .envelope.flaps-open .flap-top{transform:translateY(-110%);opacity:0}
    .envelope.flaps-open .flap-bottom{transform:translateY(110%)}
    .ribbon-band{position:absolute;z-index:8;left:0;right:0;top:calc(var(--ribbon-y) - var(--ribbon-h)/2);height:var(--ribbon-h);background:linear-gradient(180deg,#b97883 0%,#e9b9bd 15%,#f5d7d8 27%,#dba6a8 48%,#b97883 69%,#efc0c4 86%,#f7d7d9 100%);box-shadow:0 4px 9px #70394f55,0 1px 3px #8b3c5d66,inset 0 1px 2px #fff9,inset 0 -2px 3px #7f315744;transition:transform .8s ease-out,opacity .8s ease-out}
    .ribbon-band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 4%,#fff5 22%,#fff9 39%,transparent 51%,#fff4 72%,transparent 94%);mix-blend-mode:screen}
    .ribbon-band.left{right:50%}.ribbon-band.right{left:50%}
    .bow-button{position:absolute;z-index:11;left:50%;top:30%;width:240px;height:auto;aspect-ratio:1.08;border:0;background:none;padding:0;transform:translate(-50%,-30%);filter:drop-shadow(0 8px 8px #63334766);transition:transform .8s ease-out,opacity .8s ease-out}
    .bow-button img{display:block;width:100%;height:auto}
    .bow-button:hover{filter:drop-shadow(0 11px 12px #63334788) brightness(1.04)}
    .envelope.untying .bow-button{transform:translate(-50%,calc(-30% - 4px)) scale(.98);opacity:0}
    .envelope.untying .ribbon-band.left{transform:translateX(-110%);opacity:0;transition-duration:280ms}
    .envelope.untying .ribbon-band.right{transform:translateX(110%);opacity:0;transition-duration:280ms}
    @media(max-width:600px){.bow-button{width:200px}}
    .envelope-prompt{margin:18px 0 0;font-size:12px;letter-spacing:.12em}
    .invitation{position:relative;z-index:1;width:min(100%,760px);animation:none}
    .invitation[hidden],.envelope-wrap[hidden],.modal-layer[hidden]{display:none}
    @keyframes reveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
    .paper{position:relative;isolation:isolate;overflow:hidden;border:1px solid #d6b988;box-shadow:0 24px 70px #8342593d;padding:52px 66px 54px;text-align:center;background:var(--paper)}
    .paper::after{content:"";position:absolute;inset:13px;border:1px solid #d6b988;pointer-events:none;z-index:3}
    .paper-floral{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;opacity:1}
    .paper-floral img{position:absolute;display:block;height:auto;filter:none;object-fit:contain;max-width:none}
    .paper-floral img.floral-tl,.paper-floral img.floral-tr,.paper-floral img.floral-bl,.paper-floral img.floral-br{opacity:.6!important;pointer-events:none}
    .floral-tl{top:0;left:0;width:164px}.floral-tr{top:0;right:0;width:164px;transform:scaleX(-1)}.floral-bl{bottom:0;left:0;width:140px;transform:scaleY(-1)}.floral-br{bottom:0;right:0;width:140px;transform:scale(-1)}.floral-ml{top:26%;left:8px;width:84px;max-height:58%;object-fit:contain!important}.floral-mr{top:26%;right:8px;width:84px;max-height:58%;object-fit:contain!important;transform:scaleX(-1)}
    .paper-content{position:relative;z-index:2}
    .monogram{display:block;width:clamp(46px,9.6vw,54px);height:auto;aspect-ratio:1;object-fit:contain;margin:0 auto 6px}
    .invitation-name{font-family:'Pinyon Script',cursive;font-size:clamp(34px,11.5vw,48px);font-weight:400;line-height:1.16;margin:4px 0 4px}
    .divider{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--metal);margin:6px auto 24px}
    .divider::before,.divider::after{content:"";width:67px;height:1px;background:#c9ab9b}
    .invitation-message{font-style:italic;line-height:1.75;max-width:480px;margin:0 auto 12px;text-wrap:balance}.invitation-submessage{font-size:13px;line-height:1.5;max-width:390px;margin:0 auto 25px}.attire-card{--art-h:clamp(90px,25vw,160px)}
    .outfit-viewport{position:relative;display:grid;place-items:center;overflow:hidden;margin:0 auto;height:var(--art-h);width:100%!important}.outfit-viewport img{display:block;width:100%!important;height:100%!important;object-fit:contain!important;object-position:center bottom}.outfit-dress img{max-width:150px!important}.outfit-suit img{max-width:125px!important}
    .date-block{max-width:490px;margin:0 auto 25px;padding:19px 10px;border-top:1px solid #d3b9ad;border-bottom:1px solid #d3b9ad}
    .month{letter-spacing:.16em;font-weight:600;margin:0;color:var(--rose)}
    .event-date{font-size:clamp(29px,7vw,45px);line-height:1.25;margin:4px 0}
    .weekday{letter-spacing:.19em;font-size:12px;margin:0 0 17px}
    .venue{letter-spacing:.08em;font-weight:600;margin:0 0 5px}
    .event-time{margin:8px 0 0;font-size:13px;color:#74676a}
    .countdown{margin:0 auto 27px}.countdown-title{margin:0 0 3px}.countdown-subtitle{font-size:12px;font-style:italic;margin:0 0 10px}.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;max-width:430px;margin:0 auto}.count-cell{border:1px solid #d9bdb1;background:#fffaf6;padding:7px 3px}.day-count{display:block;font-variant-numeric:tabular-nums;color:var(--rose);font-size:clamp(21px,5vw,30px);line-height:1.2}.day-unit{display:block;font-size:clamp(8px,2.5vw,11px);letter-spacing:.08em;text-transform:uppercase}
    .actions{display:flex;justify-content:center;align-items:start;gap:clamp(22px,8vw,72px);margin:18px auto 43px}
    .action-item{display:flex;flex-direction:column;align-items:center;gap:11px;width:135px;min-width:0;border:0;background:transparent;color:var(--ink);text-decoration:none;padding:4px}
    .action-circle{position:relative;display:grid;place-items:center;width:70px;height:70px;flex:none;border-radius:50%;background:#c57779;color:white;border:4px solid var(--paper);box-shadow:0 0 0 1px #c57779,0 0 0 5px #fffaf6,0 0 0 6px #d4a3a0;transition:transform .2s}
    .action-item:hover .action-circle{transform:translateY(-3px)}
    .action-circle svg{width:33px;height:33px}
    .action-caption{font-size:11px;font-weight:700;letter-spacing:.07em;line-height:1.45;text-align:center}
    .section-title{display:flex;align-items:center;gap:12px;justify-content:center;color:var(--rose);font-size:14px;font-weight:600;letter-spacing:.12em;margin:0 0 25px}
    .section-title::before,.section-title::after{content:"";height:1px;max-width:62px;flex:1;background:#d5b6ab}
    .attire-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0 auto 20px}
    .attire-card{min-width:0;background:#fffaf6de;border:1px solid #d9bdb1;padding:19px 10px 17px;box-shadow:inset 0 0 0 5px #fffaf6,inset 0 0 0 6px #e9d9d1}
    .attire-art{display:block;height:170px;width:100%;margin:auto}
    .attire-label{font-size:12px;letter-spacing:.09em;font-weight:700;margin:13px 0 4px}
    .attire-detail{font-size:13px;margin:0}
    .no-pink{display:inline-block;border-top:1px solid #d0a59e;border-bottom:1px solid #d0a59e;padding:10px 24px;margin:0 0 45px;color:#a65059;font-size:13px;font-weight:700;letter-spacing:.14em}
    .gift-section{border:1px solid #d9bdb1;padding:25px 18px 28px;background:#fffaf6e8;margin:0 auto 36px}
    .gift-section .section-title{margin-bottom:16px}
    .gift-intro{font-style:italic;margin:0 0 11px}
    .gift-details{line-height:1.95;margin:0}
    .gift-details span{display:block}
    .invitation-footer{font-style:italic;margin:0;font-size:19px;color:var(--rose)}
    .back-button{display:block;margin:22px auto 0;padding:12px 16px;border:0;background:transparent;color:#864b64;text-decoration:underline;text-underline-offset:5px;min-height:48px}
    .modal-layer{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:#4525369c;backdrop-filter:blur(5px)}
    .modal-panel{width:min(100%,440px);max-height:90vh;max-height:90svh;overflow-y:auto;position:relative;background:var(--paper);border:1px solid #ccaa95;box-shadow:0 25px 70px #25121e70;padding:49px 27px 35px;text-align:center}
    .modal-panel::before{content:"";position:absolute;inset:9px;border:1px solid #d5b9aa;pointer-events:none}
    .modal-close{position:absolute;right:14px;top:13px;border:0;background:transparent;color:var(--ink);min-width:48px;min-height:48px;font-size:27px;line-height:1;z-index:2}
    .modal-title{font-size:19px;letter-spacing:.12em;color:var(--rose);margin:0 0 23px}
    .modal-primary{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin-top:8px;background:var(--rose);color:white;padding:12px 20px;text-decoration:none;font-size:13px;font-weight:700}
    @media(max-width:600px){.stage{padding:22px 12px}.paper{padding:40px 28px 42px}.floral-tl{top:0;left:0;width:100px}.floral-tr{top:0;right:0;width:100px}.floral-bl{bottom:0;left:0;width:88px}.floral-br{bottom:0;right:0;width:88px}.floral-ml{left:8px;width:84px}.floral-mr{right:8px;width:84px}.envelope-wrap{width:min(100%,390px)}.attire-grid{gap:9px}.attire-card{padding:16px 5px}.attire-art{height:145px}.section-title{font-size:12px;letter-spacing:.07em}.action-item{width:125px}.gift-details{font-size:14px}}
    @media(max-width:370px){.paper{padding-inline:22px}.attire-art{height:125px}.attire-label{font-size:10px}.attire-detail{font-size:11px}}
    @media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.stage{align-items:start!important;justify-items:center!important}
.stage>.envelope-wrap,.stage>.invitation{grid-area:1 / 1!important;align-self:start!important}
.envelope .bow-button{top:var(--ribbon-y,50%)!important;left:50%!important;width:clamp(180px,55%,240px)!important;min-height:96px;height:auto!important;aspect-ratio:1224 / 1285!important;line-height:0!important;transform:translate(-50%,-28%)!important}
.envelope .bow-button img{display:block!important;width:100%!important;height:auto!important}
.envelope.untying .bow-button{transform:translate(-50%,calc(-28% - 4px)) scale(.98)!important}
  
.paper-floral img.floral-tl, .paper-floral img.floral-tr,
.paper-floral img.floral-bl, .paper-floral img.floral-br,
.paper-floral img.floral-ml, .paper-floral img.floral-mr {
  opacity: .6 !important; pointer-events: none; filter: none;
}
.paper-floral { opacity: 1; }
.paper-floral img.floral-tl, .paper-floral img.floral-tr { width: 190px; }
.paper-floral img.floral-bl, .paper-floral img.floral-br { width: 160px; }
@media (max-width: 600px) {
  .paper-floral img.floral-tl, .paper-floral img.floral-tr { width: 115px; }
  .paper-floral img.floral-bl, .paper-floral img.floral-br { width: 102px; }
  .paper-floral img.floral-ml { left: 4px; width: clamp(36px, 12vw, 54px); }
  .paper-floral img.floral-mr { right: 4px; width: clamp(36px, 12vw, 54px); }
  .venue { font-size: clamp(13px, 3.7vw, 16px) !important; }
}
.stage { padding-top: max(24px, env(safe-area-inset-top)); padding-bottom: max(24px, env(safe-area-inset-bottom)); }

/* Versão 2: flores mais presentes e tipografia delicada. */
body { font-family: 'Cormorant Garamond', Georgia, serif; font-weight: 400; }
.tiny-label, .month, .venue, .section-title, .action-caption { font-weight: 500; }
.paper { padding-top: 64px; padding-bottom: 144px; }
.invitation-name { font-family: 'Pinyon Script', cursive; font-size: clamp(30px, 10.7vw, 48px); font-weight: 400; margin-top: 48px; margin-bottom: 8px; }
.invitation-message { font-weight: 400; line-height: 1.7; }
.paper-floral img.floral-tl, .paper-floral img.floral-tr { width: min(46%, 350px); }
.paper-floral img.floral-bl, .paper-floral img.floral-br { width: min(42%, 300px); }
.paper-floral img, .side-florals img { opacity: .6 !important; filter: none; pointer-events: none; }
.paper-floral, .side-florals { opacity: 1; }
.celebration-region { position: relative; isolation: isolate; }
.celebration-region > .date-block, .celebration-region > .countdown { position: relative; z-index: 1; }
.side-florals { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.side-florals img { position: absolute; top: 8px; display: block; width: 110px; height: auto; max-height: calc(100% - 16px); object-fit: contain; }
.side-florals img.floral-ml { left: -58px; }
.side-florals img.floral-mr { right: -58px; transform: scaleX(-1); }
.attire-section { margin: 0 auto 42px; }
.attire-section .section-title { font-size: 20px; letter-spacing: .06em; margin-bottom: 20px; text-transform: none; }
.attire-grid { gap: 0; margin: 0; border-top: 1px solid #e4c9cd; border-bottom: 1px solid #e4c9cd; }
.attire-card { border: 0; background: transparent; box-shadow: none; padding: 20px 10px; }
.attire-card + .attire-card { border-left: 1px solid #e4c9cd; }
.attire-label { font-size: 15px; font-weight: 500; letter-spacing: .08em; margin: 0 0 8px; text-transform: uppercase; }
.attire-detail { font-size: 21px; line-height: 1.35; margin: 0; }
.attire-note { font-size: 16px; line-height: 1.4; font-style: italic; color: var(--rose); margin: 8px 0 0; }
.invitation-footer { font-size: 22px; }
@media (max-width: 600px) {
  .paper { padding-top: 48px; padding-bottom: 140px; }
  .paper-floral img.floral-tl, .paper-floral img.floral-tr { width: min(40%, 160px); }
  .paper-floral img.floral-bl, .paper-floral img.floral-br { width: min(38%, 155px); }
  .side-florals img { width: clamp(42px, 15vw, 66px); }
  .side-florals img.floral-ml { left: -24px; }
  .side-florals img.floral-mr { right: -24px; }
  .attire-card { padding: 17px 6px; }
  .attire-label { font-size: 14px; }
  .attire-detail { font-size: 20px; }
  .attire-note { font-size: 15px; }
}
@media (max-width: 370px) {
  .side-florals img.floral-ml { left: -18px; }
  .side-florals img.floral-mr { right: -18px; }
}

/* Versão 3: flores um pouco maiores e detalhes em traço fino. */
.invitation-name { white-space: nowrap; font-size: clamp(28px, 10vw, 46px); }
.paper-floral img.floral-tl, .paper-floral img.floral-tr { width: min(48%, 365px); }
.paper-floral img.floral-bl, .paper-floral img.floral-br { width: min(44%, 320px); }
.side-florals img { width: 120px; }
.detail-icon { display: inline-block; flex: 0 0 auto; width: 18px; height: 18px; color: var(--rose); vertical-align: middle; }
.month, .event-time { display: flex; align-items: center; justify-content: center; gap: 8px; }
.event-time .detail-icon { width: 20px; height: 20px; }
.section-title .detail-icon { width: 19px; height: 19px; }
.attire-note { max-width: 100%; overflow-wrap: normal; }
@media (max-width: 600px) {
  .paper-floral img.floral-tl, .paper-floral img.floral-tr { width: min(44%, 180px); }
  .paper-floral img.floral-bl, .paper-floral img.floral-br { width: min(42%, 175px); }
  .side-florals img { width: clamp(45px, 16vw, 72px); }
}
