:root{--night:#12243c;--ink:#23314a;--rose:#d9a1a5;--light:#fcf0e8;--gold:#e5bd84;--paper:#f4e6e2;--display:Georgia,'Times New Roman',serif;--body:'Trebuchet MS',Arial,sans-serif;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--light);color:var(--ink);font-family:var(--body);line-height:1.65}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button,a,input,textarea{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #c66b56;outline-offset:5px}button{border:0}h1,h2,h3,p{margin:0}h2{font:400 clamp(2.4rem,4.6vw,4.8rem)/1.1 var(--display);text-wrap:balance}h3{font:400 1.6rem/1.3 var(--display)}p{max-width:58ch}section{position:relative;overflow:clip}address{font-style:normal}section:not(.invitation) h2{margin-bottom:30px}[hidden]{display:none!important}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;z-index:50;padding:12px;background:white}.primary{display:inline-flex;justify-content:center;align-items:center;gap:22px;min-height:52px;background:var(--night);color:var(--light);text-decoration:none;padding:15px 26px;border-radius:3px;transition:background .2s,transform .2s}.primary:hover{background:#3c405a;transform:translateY(-2px)}.text-link{display:inline-block;background:none;border:0;border-bottom:1px solid currentColor;padding:10px 0;text-decoration:none}.hero{min-height:940px;height:105svh;max-height:1200px;position:relative;color:var(--light);background:var(--night);overflow:hidden}.hero-art{position:absolute;inset:0}.city-art{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.hero-art::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#10233cd9 0%,#10233c80 36%,transparent 68%)}.topline{position:relative;z-index:2;padding:30px 5vw;display:flex;justify-content:space-between;align-items:center;font-size:14px}.topline a{text-decoration:none}.topline span{color:#d7b7b5;margin-left:10px}.hero-copy{position:relative;z-index:2;width:53%;padding:100px 0 100px 8vw}.guest-label{font-size:17px;color:#f0cfba}.hero h1{font:400 clamp(6rem,11vw,11.8rem)/1.05 var(--display);letter-spacing:-.055em;margin:18px 0}.hero-title{font:400 clamp(1.5rem,2.8vw,2.6rem)/1.3 var(--display);max-width:350px}.hero-date{display:flex;flex-direction:column;margin-top:40px;font-size:15px}.open-button{margin-top:32px;background:var(--gold);color:#17273d}.open-button:hover{background:#f6d5ac}.open-note{font-size:12px;margin-top:12px;color:#e1c5bb}.scroll-cue{display:none;margin-top:30px;font-size:14px;text-underline-offset:7px}.entered .scroll-cue{display:inline-block}.entered .open-button,.entered .open-note{display:none}.scene-caption{position:absolute;bottom:38px;right:5vw;font:italic 1.4rem var(--display);color:#e5bd84}.js .window{opacity:.14}.js .tower{stroke-dasharray:1800;stroke-dashoffset:1800;opacity:.45}.city-lit .tower{stroke-dashoffset:0;opacity:1;transition:stroke-dashoffset 3.2s ease,opacity 1s}.city-lit .window{opacity:1;transition:opacity .6s var(--delay)}.opening .hero-art{animation:cityZoom 3.6s ease both}@keyframes cityZoom{50%{transform:scale(1.05)}100%{transform:scale(1)}}.invitation{padding:140px 24px;min-height:670px;text-align:center;background:#f1dfdc}.prose{position:relative;max-width:720px;margin:auto}.ornament{display:block;font-size:48px;color:#9d7554;margin-bottom:26px}.prose p:not(.signature){margin:30px auto;max-width:48ch;font-size:18px}.signature{font:italic 3.6rem/1.2 var(--display);letter-spacing:-.06em}.river-line{position:absolute;inset:0;opacity:.25;pointer-events:none}.river-line svg{width:100%;height:100%;fill:none;stroke:#aa7866;stroke-width:2}.river-line path{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p,1))}.portrait-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10%;padding:110px max(7vw,24px);min-height:780px;background:#faeee6}.portrait-frame{max-width:430px;width:100%;padding:18px;border:1px solid #ba8b70;transform:rotate(calc(-5deg + var(--p,1)*5deg));border-radius:48% 48% 3px 3px}.portrait-inner{aspect-ratio:4/5;position:relative;background:radial-gradient(circle at 50% 20%,#45526e,#172c43 80%);border-radius:48% 48% 0 0;overflow:hidden;display:grid;place-items:center}.portrait-inner img{width:100%;height:100%;object-fit:cover;position:absolute}.monogram{font:italic 190px var(--display);color:#edbf9b}.portrait-star{position:absolute;right:22%;top:15%;font-size:40px;color:#e0aa93}.frame-shutter{position:absolute;inset:0 50% 0 0;background:#dcb9b1;transform:translateX(calc(-103% * var(--p,1)));border-right:1px solid #aa8171}.frame-shutter.right{inset:0 0 0 50%;transform:translateX(calc(103% * var(--p,1)));border-left:1px solid #aa8171}.photo-caption{display:block;text-align:center;font:italic 1.4rem var(--display);padding-top:18px}.portrait-copy{max-width:450px}.portrait-copy p{font-size:18px;margin:28px 0}.countdown-section{background:var(--night);color:var(--light);min-height:790px;display:grid;place-items:center;padding:100px 24px;text-align:center}.countdown-inner{position:relative;max-width:690px}.clock-orbit{position:absolute;border:1px solid #d6ab7555;width:660px;height:660px;border-radius:50%;transform:rotate(calc(var(--p,1)*90deg))}.clock-orbit::after{content:'';position:absolute;inset:25px;border:1px dashed #d6ab7544;border-radius:50%}.clock-orbit span{position:absolute;top:-33px;left:45%;font-size:48px;color:var(--gold);background:var(--night);padding:0 12px}.event-day{margin:auto;color:#e9c1b2}.countdown{display:flex;justify-content:center;gap:35px;margin:45px 0}.countdown strong{font:400 clamp(2.8rem,5.8vw,5.4rem)/1 var(--display);display:block;color:#e6bb91}.countdown span{display:block;font-size:12px;margin-top:16px}.place-section{display:grid;grid-template-columns:1fr 1fr;padding:120px 7vw;gap:6%;align-items:center;background:#ead5d3}.place-copy{max-width:520px}.place-copy .venue{font:1.9rem var(--display);margin:24px 0 12px}.place-copy address+p{margin-top:28px}.map-links{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}.map-load{margin-top:20px}.route-art svg{width:100%;fill:none;stroke:#9b6e59;stroke-width:2}.route-art circle{stroke-width:1;stroke-dasharray:2 12}.route-art .route{stroke:#243a51;stroke-width:3;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p,1))}.route-art text{fill:#26394d;stroke:none;font:italic 100px Georgia}.venue-drawing{transform-origin:460px 300px;transform:translateY(calc(45px - var(--p,1)*45px))}#mapa{margin-top:20px}#mapa iframe{width:100%;height:280px;border:0;border-radius:3px}.programme-section{padding:110px max(8vw,24px);display:grid;grid-template-columns:1fr 1fr;gap:12%}.programme-section ol{margin:0;padding:0;list-style:none;border-left:1px solid #b58d75}.programme-section li{padding:0 0 42px 30px;position:relative;transform:translateX(calc(30px - var(--p,1)*30px))}.programme-section li::before{content:'✧';position:absolute;left:-9px;top:0;background:var(--light);color:#8d6855}.programme-section time{font-size:14px;color:#816347}.programme-section h3{margin:10px 0}.dress-section{background:#e5c1c0;min-height:540px;display:grid;place-items:center;text-align:center;padding:100px 24px}.dress-section>div:last-child{position:relative;max-width:560px}.dress-section h2{margin:16px 0}.dress-art{position:absolute;inset:0;pointer-events:none}.dress-art i{position:absolute;font-style:normal;color:#a36b5e;left:calc(8% + var(--n)*10%);top:calc(10% + mod(var(--n),3)*26%);font-size:calc(12px + var(--n)*2px);transform:translateY(calc(var(--p,1)*-60px));opacity:.5}.rsvp-section{padding:130px 8vw;display:grid;grid-template-columns:1fr 1fr;gap:10%;background:#f5e7df}.rsvp-intro{max-width:450px}.rsvp-panel{max-width:540px;width:100%}fieldset{border:0;padding:0;display:flex;gap:22px;margin:0 0 24px;flex-wrap:wrap}label{display:block;font-size:14px;margin-bottom:22px}input:not([type=radio]):not([type=checkbox]),textarea{display:block;width:100%;padding:13px 12px;border:1px solid #b99483;background:#fff9f2;color:#20334b;border-radius:2px;margin-top:7px;font-size:16px}textarea{resize:vertical}.radio,.checkbox{display:flex;align-items:center;gap:10px;cursor:pointer}.radio{margin:0}input[type=radio],input[type=checkbox]{accent-color:var(--night);width:19px;height:19px;flex-shrink:0}.privacy{font-size:12px;margin:26px 0;color:#6b5a55}#form-status{margin-top:15px;color:#87422c}#confirmado{padding:50px 0}.done-icon{font-size:80px;color:#a57c4e}#confirmado h3{font-size:2.8rem}#done-name{margin:20px 0}#alterar-resposta{display:block;margin-top:20px}.guests-section{padding:100px 8vw;background:var(--night);color:var(--light);text-align:center}.guests-section h2{max-width:680px;margin-left:auto;margin-right:auto}#guest-total{margin:auto;color:#deb598}#guest-list{list-style:none;padding:0;margin:40px auto 0;max-width:900px;display:flex;justify-content:center;gap:14px 35px;flex-wrap:wrap}#guest-list li{font:1.25rem/1.7 var(--display);border-bottom:1px solid #c0aa8e44;padding:8px 0}#guest-list small{font:12px var(--body);margin-left:10px;color:#d5bba2}.notes-section{padding:110px 8vw;background:#ead5d3}.notes-section h2{text-align:center}#messages{max-width:1100px;margin:60px auto 0;columns:3;column-gap:45px}blockquote{break-inside:avoid;margin:0 0 35px;padding:0 0 28px;border-bottom:1px solid #ad8c7b}blockquote p{font:1.25rem/1.6 var(--display)}blockquote cite{display:block;font:13px var(--body);margin-top:20px}footer{padding:85px 24px;text-align:center;background:#0e2037;color:#e9c7ae}footer p{margin:15px auto}footer a{display:block;font-size:12px;text-decoration:none;margin-top:20px}.music{position:fixed;right:18px;bottom:18px;background:#eac8a2;color:#183049;border:1px solid #183049;width:46px;height:46px;border-radius:50%;font-size:24px;z-index:10}dialog{width:min(440px,calc(100% - 28px));max-height:94svh;padding:16px;background:#f3dfcf;border:0;border-radius:5px}dialog::backdrop{background:#071626d9}dialog canvas{display:block;width:100%;height:auto;max-height:68svh;object-fit:contain;margin:12px auto}dialog .primary{width:100%}.close{background:none;display:block;margin-left:auto;padding:8px;color:var(--ink)}.noscript{padding:30px;margin:auto}.tab-hidden *{animation-play-state:paused!important}@media(min-width:1600px){.hero-copy{padding-top:12vh}}@media(max-width:700px){h2{font-size:2.65rem}.hero{height:930px;min-height:100svh;max-height:none}.hero-art .city-art{width:170%;left:-65%;height:100%;object-fit:cover}.hero-art::after{background:linear-gradient(#10233c99,transparent 80%)}.topline{padding:22px 20px;font-size:12px}.topline span{margin-left:6px}.hero-copy{padding:75px 24px 0;width:100%;text-align:center}.hero h1{font-size:clamp(5.2rem,22vw,8rem);margin:16px 0}.hero-title{font-size:1.8rem;max-width:280px;margin:auto}.guest-label{font-size:14px;margin:auto}.hero-date{margin-top:26px;font-size:13px}.hero .open-button{margin-top:25px}.open-note{margin:10px auto}.hero-art .city-art{opacity:.95}.scene-caption{bottom:24px;font-size:1.2rem}.invitation{padding:95px 25px;min-height:590px}.portrait-section{grid-template-columns:1fr;gap:50px;padding:80px 30px}.portrait-frame{max-width:320px;margin:auto}.portrait-copy{text-align:center}.portrait-copy p{font-size:16px}.countdown-section{min-height:660px;padding:95px 24px}.countdown{gap:20px;margin:40px 0}.countdown strong{font-size:2.8rem}.countdown span{font-size:11px}.clock-orbit{width:530px;height:530px}.event-day{font-size:14px}.place-section{grid-template-columns:1fr;padding:80px 26px;gap:30px}.route-art{max-width:340px;order:-1;margin:auto;width:100%}.programme-section{grid-template-columns:1fr;padding:85px 26px;gap:35px}.programme-section ol{margin-left:10px}.dress-section{min-height:480px;padding:80px 26px}.rsvp-section{grid-template-columns:1fr;gap:40px;padding:80px 26px}.rsvp-intro{text-align:center}.rsvp-intro p{margin:auto}.rsvp-panel{margin:auto}.guests-section{padding:80px 26px}#guest-list{gap:10px 22px}#guest-list li{font-size:1.15rem}.notes-section{padding:80px 26px}#messages{columns:1;margin-top:40px}.music{width:42px;height:42px;right:12px;bottom:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .tower{stroke-dashoffset:0;opacity:1}.js .window{opacity:1}.scene{--p:1!important}.frame-shutter{display:none}.open-button,.open-note{display:none}.scroll-cue{display:inline-block}}
@media(max-width:700px){.theme-paris .hero-art{top:260px;height:670px}.theme-paris .hero-art::after{background:linear-gradient(#12243c,transparent 45%)}.theme-paris .hero-art .city-art{width:205%;left:-80%}.theme-paris .hero-copy{padding-top:65px}}
