@font-face{font-family:Geist;src:url('/assets/geist.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Cormorant;src:url('/assets/serif.woff2') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:Cormorant;src:url('/assets/italic.woff2') format('woff2');font-weight:600;font-style:italic;font-display:swap}
:root{--paper:#faf7f1;--ink:#281a32;--plum:#241333;--sage:#adf0bd;--serif:Cormorant,Georgia,serif;color-scheme:light}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:1.125rem/1.55 Geist,Arial,sans-serif}
h1,h2,p,figure,blockquote,ol{margin:0}
button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}
svg{width:1.4em;height:1.4em;flex-shrink:0}.symbols{position:absolute;width:0;height:0;overflow:hidden}
[hidden]{display:none!important}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #9956c0;outline-offset:4px}
.skip{position:absolute;z-index:5;top:-80px;background:var(--paper);padding:10px}.skip:focus{top:0}
.wrap{width:min(1200px,89%);margin-inline:auto}
.header{background:var(--paper);border-bottom:1px solid #e7dfda}
.masthead,.brand,.help-link,.dialog-top,footer{display:flex;align-items:center}
.masthead{justify-content:space-between;gap:1rem;min-height:82px}
.brand,.dialog-top,footer{font-family:var(--serif);font-weight:600;letter-spacing:-.035em}
.brand{gap:12px;text-decoration:none;font-size:clamp(1.65rem,2.55vw,2.3rem);line-height:1.05}
.brand img,.dialog-top img,footer img{border-radius:50%;flex:none;object-fit:cover}
.help-link{gap:11px;min-height:48px;font-size:1rem;font-weight:580;text-underline-offset:5px;text-decoration-color:#ae9db7}
.help-link span{font-size:1.1em;color:#79558b}.help-link:hover{text-decoration-thickness:2px}
.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(114deg,#21132f 2%,#2e173e 62%,#28113b);color:#fffaf3}
.art{position:absolute;z-index:-1;right:0;top:0;bottom:0;width:54%;
  mask-image:linear-gradient(to right,transparent,#000 25%);}
.art img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 33%}
.hero-inner{padding-block:clamp(55px,6.5vw,102px);position:relative}
h1,h2,blockquote{font:600 1em/1 var(--serif);letter-spacing:-.042em}
h1{max-width:54%;font-size:clamp(4.3rem,6.75vw,6.7rem);line-height:.99;text-wrap:balance}
h1 em{display:block;color:#e8c9fa;font-weight:600}
.invitation{width:48%;margin-top:24px}
.lead{font-size:clamp(1.125rem,1.65vw,1.375rem);line-height:1.48;max-width:28em;color:#fff4fb}
.cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:62px;padding:14px 21px;border-radius:12px;border:1px solid #d3f8db;background:var(--sage);color:#133c28;font-weight:720;font-size:1.18rem;line-height:1.25;text-align:center;transition:background .15s}
.invitation .cta{margin-top:28px;box-shadow:0 4px 16px #100b1829}.cta:hover{background:#c6facc}.cta:active{background:#9de6af}
.cta .arrow{width:1.05em;margin-left:4px}.cta:focus-visible{outline-color:#f5bd79}
.hint{color:#e5d5eb;font-size:1rem;margin-top:12px;max-width:28em}
.reading{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(40px,7vw,110px);padding-block:clamp(40px,5.5vw,75px)}
.instructions h2{font-size:clamp(2.6rem,3.8vw,3.8rem);margin-bottom:21px}
.instructions ol{padding:0;list-style:none;counter-reset:etapa;display:grid;gap:13px}
.instructions li{position:relative;padding-left:2.5rem;display:block;counter-increment:etapa}
.instructions li:before{content:counter(etapa) / "";position:absolute;left:0;top:0;width:1.72rem;height:1.72rem;display:grid;place-items:center;background:#ede3f0;color:#5a366c;border-radius:50%;font-size:.95rem;font-weight:650;line-height:1}
.instructions strong{font-weight:620}.instructions>p{margin-top:20px;max-width:32em;color:#564b59}
.repeat{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:4px 0;border:0;background:none;color:#4e3260;font-size:1.05rem;font-weight:650;text-decoration:underline;text-underline-offset:5px}.repeat svg{width:1.15em}
.verse{background:#f0e8f1;border:1px solid #dcd0df;border-radius:4px 24px 4px 24px;padding:clamp(24px,3vw,44px);color:#35203e}
.verse figcaption{display:flex;align-items:center;gap:10px;color:#654a70;font-size:1rem;font-weight:600}
.verse figcaption svg{width:24px;height:24px}
.verse blockquote{margin:22px 0 8px;line-height:1.05;font-size:clamp(2.25rem,3.2vw,3.2rem)}
.verse cite{font:600 1rem/1.5 Geist,Arial,sans-serif;color:#6f4d79}
.verse p{border-top:1px solid #ccbdcf;padding-top:17px;margin-top:19px}
footer{min-height:74px;gap:10px;font-size:1.4rem;border-top:1px solid #dfd5d8}
dialog{background:#fffdf8;color:var(--ink);width:min(490px,calc(100% - 24px));border:1px solid #ded1db;border-radius:18px;padding:24px 30px 30px;max-height:calc(100dvh - 20px);overflow:auto;overscroll-behavior:contain;box-shadow:0 16px 80px #1b0d3266}
dialog::backdrop{background:#1a102bd4}body:has(dialog[open]){overflow:hidden}
.dialog-top{gap:9px;font-size:1.38rem;line-height:1.1;padding-bottom:15px;margin-bottom:19px;border-bottom:1px solid #e7dee3}
.close{margin-left:auto;border:0;background:transparent;min-height:45px;padding:4px 0 4px 9px;display:inline-flex;align-items:center;gap:6px;color:#584660;font:550 1rem/1.2 Geist,Arial,sans-serif}
.close b{font-size:1.5rem;font-weight:400}
dialog h2{font-size:clamp(2.3rem,5vw,2.9rem);line-height:1.02;margin:0 0 22px}
form{display:grid}form>label:not(.consent){font-weight:650;margin:0 0 5px}
form input:not([type=checkbox]){min-width:0;width:100%;min-height:52px;padding:10px 13px;background:white;color:var(--ink);border:1px solid #97899d;border-radius:8px;font-size:1.13rem}
#nome{margin-bottom:17px}input::placeholder{color:#746e75;opacity:1}
form small{display:block;margin:4px 0 0;color:#5f5263;font-size:1rem;line-height:1.4}
.consent{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#f5eff6;border:1px solid #e4dae6;border-radius:8px;margin:19px 0 16px;cursor:pointer;line-height:1.43;font-size:1.05rem}
.consent input{flex:none;accent-color:#654476;margin:2px 0 0;width:23px;height:23px}
.field-error,.error{font-size:1rem;line-height:1.4;color:#942738;margin:3px 0 12px}
input[aria-invalid=true]{outline:2px solid #aa3542;outline-offset:1px}
#nome[aria-invalid=true]{margin-bottom:0}.cta.submit,.cta.done{width:100%;min-height:56px}.submit:disabled{opacity:.78;cursor:wait}
.success-icon{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#dbf4df;color:#29523a;margin-bottom:15px}#success p{margin:0 0 23px}
@media(max-width:850px) and (min-width:651px){.art{width:49%}h1{font-size:clamp(3.5rem,7.8vw,4.5rem)}.invitation{width:55%}.invitation .cta{font-size:1.03rem;padding-inline:12px}.hero-inner{padding-block:50px}.reading{gap:28px}}
@media(max-width:650px){
  .wrap{width:calc(100% - 40px)}
  .masthead{min-height:65px}.brand{gap:9px;font-size:1.68rem}.brand img{width:40px;height:40px}.help-link{font-size:.96rem;gap:5px}
  .art{width:53%;height:clamp(210px,59vw,325px);bottom:auto;mask-image:linear-gradient(to right,transparent,#000 24%),linear-gradient(to bottom,#000 62%,transparent);mask-composite:intersect}
  .art img{object-position:51% top}
  .hero-inner{padding-block:29px 30px}
  h1{max-width:57%;font-size:clamp(2.55rem,10.4vw,4rem);line-height:.98;text-wrap:initial}
  .invitation{width:100%;margin-top:25px}
  .lead{max-width:28em;font-size:1.13rem;line-height:1.48}.invitation .cta{margin-top:19px;width:100%;min-height:60px}
  .hint{text-align:center;max-width:none;margin-top:10px}
  .reading{grid-template-columns:1fr;gap:28px;padding-block:33px}
  .instructions h2{font-size:2.6rem;margin-bottom:16px}
  dialog{padding:16px 19px 22px}.dialog-top{margin-bottom:15px}.verse{padding:24px}
}
@media(max-width:410px){.help-link{display:none}.masthead{justify-content:center}.wrap{width:calc(100% - 32px)}.cta{font-size:1.1rem;padding-inline:13px;gap:9px}.cta .arrow{margin-left:0}.hint{font-size:1rem}.dialog-top{font-size:1.25rem}}
@media(max-width:340px){.cta .arrow{display:none}.dialog-top img{width:29px;height:29px}.close{font-size:.95rem}h1{max-width:59%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}
