@font-face{font-family:Bodoni Moda;font-style:italic;font-display:swap;font-weight:400;src:url(../media/bodoni-moda-latin-400-italic.1-xqmbnxth5j4.woff2)format("woff2"),url(../media/bodoni-moda-latin-400-italic.1-s_aaoh-zyhz.woff)format("woff")}
@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/outfit-latin-ext-wght-normal.3tnx94v3g9ied.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(../media/outfit-latin-wght-normal.3l9rzm26h_u0r.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Playball;font-style:normal;font-display:swap;font-weight:400;src:url(../media/playball-latin-400-normal.2qrc7ctoyh3e4.woff2)format("woff2"),url(../media/playball-latin-400-normal.0aww-5u7c9um4.woff)format("woff")}
@font-face{font-family:Alex Brush;font-style:normal;font-display:swap;font-weight:400;src:url(../media/alex-brush-latin-400-normal.2ots-hzo-2yb6.woff2)format("woff2"),url(../media/alex-brush-latin-400-normal.09plcfkz3wp5w.woff)format("woff")}
@font-face{font-family:Yellowtail;font-style:normal;font-display:swap;font-weight:400;src:url(../media/yellowtail-latin-400-normal.1wc8_oedgb9la.woff2)format("woff2"),url(../media/yellowtail-latin-400-normal.0mesyd-g7tyjd.woff)format("woff")}
.invitation[data-theme=mariage-riviera-postcard]{--env:#fdf8f0;--env-2:#f4ecdd;--seal:#1e3a5f;--accent:#e8b923;--stem:#4c7a5e;--liner:#1e3a5f;--sans:"Outfit Variable", "Outfit", ui-sans-serif, system-ui, sans-serif;--didone:"Bodoni Moda", Didot, Georgia, serif;--script:"Playball", "Brush Script MT", cursive;--bg:#fdfaf3;--ink:#1b2a3a;--muted:#6d7e8c;--card:#fffdf7;--card-ink:#1b2a3a;--sand:#f2e7d1;--terra:#c8553d;--bloom:#d6497b;--grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .5 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");box-sizing:border-box;background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;padding-top:env(safe-area-inset-top,0);font-size:19px;line-height:1.55;position:relative;overflow-x:clip}.invitation[data-theme=mariage-riviera-postcard][data-palette=positano]{--bloom:#d9436b;--terra:#d95d3f}.invitation[data-theme=mariage-riviera-postcard][data-palette=capri]{--bloom:#c4487f;--terra:#c86a3d}.invitation[data-theme=mariage-riviera-postcard] *,.invitation[data-theme=mariage-riviera-postcard] :before,.invitation[data-theme=mariage-riviera-postcard] :after{box-sizing:inherit}.invitation[data-theme=mariage-riviera-postcard]:before{content:"";background:radial-gradient(120% 62% at 50% -12%, #e8b92326, transparent 62%), radial-gradient(100% 52% at 100% 104%, #3e7fa81a, transparent 62%), repeating-linear-gradient(0deg, color-mix(in srgb, var(--seal) 8%, transparent) 0 1.4px, transparent 1.4px 24px), repeating-linear-gradient(90deg, color-mix(in srgb, var(--seal) 8%, transparent) 0 1.4px, transparent 1.4px 24px);pointer-events:none;z-index:0;position:fixed;inset:0}.invitation[data-theme=mariage-riviera-postcard]:after{content:"";background:var(--grain);opacity:.05;pointer-events:none;z-index:100;mix-blend-mode:multiply;position:fixed;inset:0}.invitation[data-theme=mariage-riviera-postcard]>*{z-index:1;position:relative}.invitation[data-theme=mariage-riviera-postcard] button,.invitation[data-theme=mariage-riviera-postcard] input,.invitation[data-theme=mariage-riviera-postcard] select,.invitation[data-theme=mariage-riviera-postcard] textarea{font:inherit;color:inherit}.invitation[data-theme=mariage-riviera-postcard] :focus-visible{outline:2px solid var(--seal);outline-offset:3px}.invitation[data-theme=mariage-riviera-postcard] .script{font-family:var(--script);font-weight:400}.invitation[data-theme=mariage-riviera-postcard] .caps{text-transform:uppercase;letter-spacing:.26em;font-size:.72em}.invitation[data-theme=mariage-riviera-postcard] .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html.invitation-locked,html.invitation-locked body{touch-action:none;overscroll-behavior:none;height:100%;overflow:hidden}.invitation[data-theme=mariage-riviera-postcard] .rp-defs{width:0;height:0;position:absolute;overflow:hidden}.invitation[data-theme=mariage-riviera-postcard] .snap{background:#fffdf7;padding:6% 6% 22%;position:relative;box-shadow:0 14px 28px -12px #1b2a3a6b}.invitation[data-theme=mariage-riviera-postcard] .snap:after{content:"";background:repeating-linear-gradient(90deg, var(--seal) 0 7px, transparent 7px 12px, var(--terra) 12px 19px, transparent 19px 24px);opacity:.75;height:2px;position:absolute;top:2.4%;left:6%;right:6%}.invitation[data-theme=mariage-riviera-postcard] .snap .cap{text-align:center;font-family:var(--script);color:var(--seal);font-size:clamp(12px,4.8cqw,30px);line-height:1;position:absolute;bottom:4%;left:0;right:0}.invitation[data-theme=mariage-riviera-postcard] .photo{aspect-ratio:1/1.05;object-fit:cover;filter:saturate(.9)contrast(1.04)brightness(1.05)sepia(.14);width:100%;box-shadow:none;background:#dceaf1;display:block;position:relative}.invitation[data-theme=mariage-riviera-postcard] .photo-wrap{display:block;position:relative}.invitation[data-theme=mariage-riviera-postcard] .photo-wrap:after,.invitation[data-theme=mariage-riviera-postcard] .postcard .img:after{content:"";opacity:1;mix-blend-mode:multiply;pointer-events:none;background:linear-gradient(200deg,#ffecba42,#3e7fa824);position:absolute;inset:0}.invitation[data-theme=mariage-riviera-postcard] .tape:before{content:"";z-index:2;background:repeating-linear-gradient(135deg,#e8b9236b 0 6px,#ffffff7a 6px 12px);width:34%;height:9%;min-height:14px;position:absolute;top:-4%;left:50%;transform:translate(-50%)rotate(-3deg);box-shadow:0 1px 2px #1b2a3a1f}.invitation[data-theme=mariage-riviera-postcard] .torn{clip-path:polygon(0 3%,7% 0,16% 2.5%,27% .5%,39% 3%,51% 0,63% 2%,75% 0,87% 3%,100% 1%,100% 97%,92% 100%,80% 97.5%,69% 100%,56% 97%,44% 100%,31% 98%,19% 100%,8% 97%,0 100%)}.invitation[data-theme=mariage-riviera-postcard] .stamp{filter:drop-shadow(0 2px 3px #1b2a3a38);background:#fffdf5;padding:4px;display:block;-webkit-mask:linear-gradient(#000 0 0) content-box,radial-gradient(circle,#0000 2px,#000 2.5px) -4px -4px/8px 8px;mask:linear-gradient(#000 0 0) content-box,radial-gradient(circle,#0000 2px,#000 2.5px) -4px -4px/8px 8px}.invitation[data-theme=mariage-riviera-postcard] .stamp .in{aspect-ratio:.8;box-shadow:inset 0 0 0 1.5px var(--seal);background:linear-gradient(175deg,#eaf3f8 0 46%,#fdf3dc 46% 100%);place-items:center;display:grid;position:relative;overflow:hidden}.invitation[data-theme=mariage-riviera-postcard] .stamp .in>svg{width:56%;height:74%}.invitation[data-theme=mariage-riviera-postcard] .stamp i{font-style:normal;font-family:var(--didone);color:var(--seal);font-size:clamp(6px,2.1cqw,12px);position:absolute;bottom:3%;right:7%}.invitation[data-theme=mariage-riviera-postcard] .stamp em{text-align:center;font-style:normal;font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--seal);font-size:clamp(5px,1.9cqw,10px);font-weight:600;position:absolute;top:3%;left:0;right:0}.invitation[data-theme=mariage-riviera-postcard] .st-cypress .in{background:linear-gradient(175deg,#fdf3dc 0 44%,#e7f0e6 44% 100%)}.invitation[data-theme=mariage-riviera-postcard] .st-parasol .in{background:linear-gradient(175deg,#fdf3dc 0 52%,#e3eef6 52% 100%)}.invitation[data-theme=mariage-riviera-postcard] .st-vespa .in{background:linear-gradient(175deg,#f7ecd8 0 60%,#e9e3d4 60% 100%)}.invitation[data-theme=mariage-riviera-postcard] .st-shell .in{background:linear-gradient(175deg,#eaf3f8 0 58%,#f6e9cf 58% 100%)}.invitation[data-theme=mariage-riviera-postcard] .intro{flex-direction:column;justify-content:center;align-items:center;gap:1.4rem;min-height:100svh;padding:2rem 1rem 5rem;display:flex;position:relative}.invitation[data-theme=mariage-riviera-postcard] .kicker{font-family:var(--script);color:var(--seal);text-align:center;margin:0;font-size:clamp(32px,8.4vw,50px);line-height:1.1;transition:opacity .5s}.invitation[data-theme=mariage-riviera-postcard] .intro.opened .kicker{opacity:0}.invitation[data-theme=mariage-riviera-postcard] .env-wrap{aspect-ratio:1.45;cursor:pointer;-webkit-tap-highlight-color:transparent;width:min(84vw,450px);margin-top:min(26vw,150px);position:relative;container-type:inline-size}.invitation[data-theme=mariage-riviera-postcard] .face{border-radius:3px;position:absolute;inset:0}.invitation[data-theme=mariage-riviera-postcard] .front{background:var(--env);overflow:hidden;box-shadow:0 22px 40px -16px #1b2a3a73}.invitation[data-theme=mariage-riviera-postcard] .front:after{content:none}.invitation[data-theme=mariage-riviera-postcard] .air-edge{background:repeating-linear-gradient(135deg, var(--seal) 0 9px, #fff 9px 18px, var(--terra) 18px 27px, #fff 27px 36px);border-radius:3px;position:absolute;inset:0}.invitation[data-theme=mariage-riviera-postcard] .air-edge:after{content:"";background:var(--env);border-radius:2px;position:absolute;inset:2.2cqw}.invitation[data-theme=mariage-riviera-postcard] .stamps{z-index:1;gap:4%;width:34%;display:flex;position:absolute;top:8%;right:5%}.invitation[data-theme=mariage-riviera-postcard] .stamps .stamp{flex:1}.invitation[data-theme=mariage-riviera-postcard] .stamps .st-cypress{transform:rotate(4deg)translateY(6%)}.invitation[data-theme=mariage-riviera-postcard] .postmark{width:26%;color:color-mix(in srgb, var(--seal) 72%, transparent);z-index:2;position:absolute;top:23%;right:32%}.invitation[data-theme=mariage-riviera-postcard] .par-avion{z-index:1;background:var(--seal);color:#fff;font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;border-radius:2px;padding:.7cqw 1.8cqw;font-size:2.2cqw;font-weight:600;position:absolute;top:11%;left:7%;transform:rotate(-1.5deg)}.invitation[data-theme=mariage-riviera-postcard] .addr{color:var(--seal);z-index:1;text-align:left;position:absolute;bottom:16%;left:8%}.invitation[data-theme=mariage-riviera-postcard] .addr .script{font-size:12.5cqw;line-height:1;display:block}.invitation[data-theme=mariage-riviera-postcard] .addr .caps{font-family:var(--didone);letter-spacing:.4em;color:var(--muted);margin-top:2.4cqw;font-size:3.2cqw;display:block}.invitation[data-theme=mariage-riviera-postcard] .lay{transform-origin:50% 100%;z-index:1;width:14%;display:block;position:absolute;bottom:4%;left:60%;transform:rotate(48deg)}.invitation[data-theme=mariage-riviera-postcard] .back{transform:scaleX(0)}.invitation[data-theme=mariage-riviera-postcard] .liner{background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--liner) 16%, #fff) 0 11px, #fff 11px 22px);border-radius:3px;position:absolute;inset:0;box-shadow:0 22px 40px -16px #1b2a3a73}.invitation[data-theme=mariage-riviera-postcard] .pocket{z-index:4;clip-path:polygon(0 0,15% 40%,85% 40%,100% 0,100% 100%,0 100%);background:linear-gradient(180deg, transparent 0 40%, #1e3a5f42 40% 40.9%, transparent 41%), linear-gradient(180deg, transparent 0 41%, #1e3a5f1f 41%, transparent 47%), linear-gradient(160deg, #ffffffb3, transparent 40%), linear-gradient(20deg, #1e3a5f14, transparent 52%), var(--env);border-radius:0 0 3px 3px;position:absolute;inset:0}.invitation[data-theme=mariage-riviera-postcard] .pocket:after{content:"";background:repeating-linear-gradient(135deg, var(--seal) 0 8px, #fff 8px 16px, var(--terra) 16px 24px, #fff 24px 32px);opacity:.9;height:2.4cqw;position:absolute;bottom:0;left:0;right:0}.invitation[data-theme=mariage-riviera-postcard] .flap{z-index:6;background:linear-gradient(180deg, #fff9, transparent 60%), var(--env-2);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:50% 0;width:100%;height:54%;position:absolute;top:0;left:0}.invitation[data-theme=mariage-riviera-postcard] .seal{aspect-ratio:1;z-index:7;background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--seal) 72%, #fff) 0, var(--seal) 52%, color-mix(in srgb, var(--seal) 70%, #000) 100%);width:20%;box-shadow:0 3px 8px #1b2a3a59, inset 0 0 0 .6cqw #ffffff8c, inset 0 0 0 1.1cqw color-mix(in srgb, var(--seal) 85%, #000);color:#fff;font-family:var(--script);border-radius:50%;place-items:center;margin:-10% 0 0 -10%;font-size:6.5cqw;line-height:1;display:grid;position:absolute;top:54%;left:50%}.invitation[data-theme=mariage-riviera-postcard] .card{z-index:3;background:var(--card);width:80%;height:56%;color:var(--card-ink);position:absolute;bottom:3%;left:10%;overflow:hidden;box-shadow:0 6px 18px -6px #1b2a3a59}.invitation[data-theme=mariage-riviera-postcard] .cband{background:repeating-linear-gradient(90deg, var(--seal) 0 5%, transparent 5% 10%, var(--terra) 10% 15%, transparent 15% 20%);height:1.6%;position:absolute;top:0;left:0;right:0}.invitation[data-theme=mariage-riviera-postcard] .cmain{text-align:center;flex-direction:column;align-items:center;display:flex;position:absolute;top:4.5%;left:10%;right:10%}.invitation[data-theme=mariage-riviera-postcard] .c1{font-family:var(--sans);text-transform:uppercase;letter-spacing:.3em;color:var(--muted);margin:0 0 .5cqw;font-size:2.6cqw;font-weight:600;line-height:1.3}.invitation[data-theme=mariage-riviera-postcard] .c2{font-family:var(--didone);letter-spacing:.02em;color:var(--seal);white-space:nowrap;margin:0;font-size:10cqw;line-height:1}.invitation[data-theme=mariage-riviera-postcard] .c3{font-family:var(--script);color:var(--terra);margin:.5cqw 0 0;font-size:5.6cqw;line-height:1.15}.invitation[data-theme=mariage-riviera-postcard] .env-wrap .snap{z-index:2;width:37%;position:absolute;bottom:13%}.invitation[data-theme=mariage-riviera-postcard] .env-wrap .s1{left:7%}.invitation[data-theme=mariage-riviera-postcard] .env-wrap .s2{right:7%}.invitation[data-theme=mariage-riviera-postcard] .tuck{z-index:5;position:absolute}.invitation[data-theme=mariage-riviera-postcard] .tuck1{transform-origin:20% 90%;width:26%;top:-16%;right:-9%}.invitation[data-theme=mariage-riviera-postcard] .tuck2{transform-origin:80% 80%;width:28%;top:14%;left:-8%}.invitation[data-theme=mariage-riviera-postcard] .tuck svg{width:100%;height:auto;display:block;overflow:visible}.invitation[data-theme=mariage-riviera-postcard] .hint{color:var(--muted);text-align:center;margin:0;font-style:normal;transition:opacity .4s}.invitation[data-theme=mariage-riviera-postcard] .intro.opened .hint{opacity:0}.invitation[data-theme=mariage-riviera-postcard] .cue{bottom:calc(1.2rem + env(safe-area-inset-bottom,0));color:var(--muted);letter-spacing:.16em;text-transform:uppercase;opacity:0;pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;font-size:.9rem;font-style:normal;transition:opacity .8s;display:flex;position:absolute;left:50%;transform:translate(-50%)}.invitation[data-theme=mariage-riviera-postcard] .cue span{background:linear-gradient(var(--seal), transparent);width:2px;height:38px;animation:1.8s ease-in-out infinite rp-drop}@keyframes rp-drop{0%{transform-origin:top;transform:scaleY(0)}50%{transform-origin:top;transform:scaleY(1)}51%{transform-origin:bottom}to{transform-origin:bottom;transform:scaleY(0)}}.invitation[data-theme=mariage-riviera-postcard] .intro.ready .cue{opacity:1}.invitation[data-theme=mariage-riviera-postcard] .skip{z-index:20;background:var(--seal);color:#fff;cursor:pointer;appearance:none;border:0;border-radius:40px;padding:.5em 1.2em;font-size:.9rem;font-weight:500;position:absolute;top:1rem;right:1rem}.invitation[data-theme=mariage-riviera-postcard] .chapter{height:var(--len,380vh);position:relative}.invitation[data-theme=mariage-riviera-postcard] .sticky{grid-template-rows:minmax(0,1fr) auto;height:100svh;display:grid;position:sticky;top:0;overflow:hidden}.invitation[data-theme=mariage-riviera-postcard] .board{margin:3svh 4vw 0;position:relative;container-type:size}.invitation[data-theme=mariage-riviera-postcard] .text{padding:1rem 7vw calc(2.2rem + env(safe-area-inset-bottom,0))}.invitation[data-theme=mariage-riviera-postcard] .ch-title{font-family:var(--script);color:var(--seal);margin:0 0 .4rem;font-size:clamp(38px,10vw,64px);font-weight:400;line-height:1.05}.invitation[data-theme=mariage-riviera-postcard] .lines{display:grid}.invitation[data-theme=mariage-riviera-postcard] .line{opacity:0;filter:blur(5px);grid-area:1/1;max-width:26ch;margin:0;font-size:clamp(19px,4.9vw,25px);line-height:1.4;transition:opacity .6s,transform .6s,filter .6s;transform:translateY(14px)}.invitation[data-theme=mariage-riviera-postcard] .line.on{opacity:1;filter:none;transform:none}.invitation[data-theme=mariage-riviera-postcard] .line.past{opacity:0;filter:blur(5px);transform:translateY(-14px)}@media (min-width:820px){.invitation[data-theme=mariage-riviera-postcard] .sticky{grid-template-rows:1fr;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center}.invitation[data-theme=mariage-riviera-postcard] .board{width:min(100%,68svh);height:84svh;margin:0 0 0 4vw}.invitation[data-theme=mariage-riviera-postcard] .text{padding:0 6vw 0 4vw}}.invitation[data-theme=mariage-riviera-postcard] .it{opacity:0;transform:var(--from,translateY(40px));will-change:transform;transition:transform 1.15s cubic-bezier(.16,.84,.24,1),opacity .6s;position:absolute}.invitation[data-theme=mariage-riviera-postcard] .it.on{opacity:1;transform:var(--to,none)}.invitation[data-theme=mariage-riviera-postcard] .shadow{filter:drop-shadow(0 12px 18px #1b2a3a42)}.invitation[data-theme=mariage-riviera-postcard] .it>svg{width:100%;height:100%;display:block;overflow:visible}.invitation[data-theme=mariage-riviera-postcard] .text .it{position:static}.invitation[data-theme=mariage-riviera-postcard] .luggage{color:var(--ink);font-family:var(--sans);clip-path:polygon(9% 0,100% 0,100% 100%,9% 100%,0 50%);background:linear-gradient(170deg,#fdf3de,#f6e7c9);grid-template-columns:1fr auto;gap:2%;padding:6% 7% 6% 20%;display:grid;position:relative;box-shadow:inset 0 0 0 1px #1e3a5f1f}.invitation[data-theme=mariage-riviera-postcard] .luggage .eyelet{aspect-ratio:1;background:var(--bg);width:6.5%;box-shadow:inset 0 0 0 2px var(--seal);border-radius:50%;position:absolute;top:50%;left:8%;transform:translateY(-50%)}.invitation[data-theme=mariage-riviera-postcard] .luggage .route{font-family:var(--didone);color:var(--seal);grid-column:1/-1;margin:0 0 2%;font-size:min(5.6cqw,30px);line-height:1.1}.invitation[data-theme=mariage-riviera-postcard] .luggage small{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:min(2.5cqw,12px);display:block}.invitation[data-theme=mariage-riviera-postcard] .luggage b{font-size:min(3.5cqw,18px);font-weight:600;display:block}.invitation[data-theme=mariage-riviera-postcard] .note{color:var(--seal);font-family:var(--script);text-align:center;background:#fffdf8;margin:0;padding:9%;font-size:min(6.6cqw,36px);line-height:1.15;box-shadow:inset 0 0 0 .9cqw #c8553d1a}.invitation[data-theme=mariage-riviera-postcard] .azulejo{aspect-ratio:1;box-shadow:inset 0 0 0 .6cqw var(--seal), inset 0 0 0 1cqw #fffdf7, inset 0 0 0 1.5cqw color-mix(in srgb, var(--seal) 55%, #fff);background:#fffdf7;align-content:center;justify-items:center;gap:2%;display:grid;position:relative}.invitation[data-theme=mariage-riviera-postcard] .azulejo:before{content:"";background:radial-gradient(circle at 0 0, var(--seal) 0 .55cqw, transparent .6cqw), radial-gradient(circle at 100% 0, var(--seal) 0 .55cqw, transparent .6cqw), radial-gradient(circle at 0 100%, var(--seal) 0 .55cqw, transparent .6cqw), radial-gradient(circle at 100% 100%, var(--seal) 0 .55cqw, transparent .6cqw);opacity:.75;position:absolute;inset:2.4cqw}.invitation[data-theme=mariage-riviera-postcard] .azulejo b{font-family:var(--didone);color:var(--seal);font-variant-numeric:tabular-nums;font-size:min(14cqw,15cqh);font-weight:400;line-height:1}.invitation[data-theme=mariage-riviera-postcard] .azulejo small{font-family:var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-size:min(2.6cqw,13px)}.invitation[data-theme=mariage-riviera-postcard] .az-month b{color:var(--terra)}.invitation[data-theme=mariage-riviera-postcard] .az-year b{color:color-mix(in srgb, var(--seal) 78%, var(--stem))}.invitation[data-theme=mariage-riviera-postcard] .reveal{clip-path:inset(0 100% 0 0);transition:clip-path 1.4s cubic-bezier(.6,0,.2,1),opacity .2s}.invitation[data-theme=mariage-riviera-postcard] .reveal.on{clip-path:inset(0 -10% 0 0)}.invitation[data-theme=mariage-riviera-postcard] .bigscript{font-family:var(--script);white-space:nowrap;color:var(--seal);text-align:center;font-size:min(13cqw,13cqh);line-height:1.1}.invitation[data-theme=mariage-riviera-postcard] .sea{opacity:0}.invitation[data-theme=mariage-riviera-postcard] .sea.on{opacity:.8}.invitation[data-theme=mariage-riviera-postcard] .count{text-align:center;grid-template-columns:repeat(4,1fr);gap:2.5%;display:grid}.invitation[data-theme=mariage-riviera-postcard] .count>div{box-shadow:inset 0 0 0 .4cqw color-mix(in srgb, var(--seal) 60%, #fff);background:#fffdf7;padding:4% 2% 5%}.invitation[data-theme=mariage-riviera-postcard] .count b{font-family:var(--didone);color:var(--seal);font-variant-numeric:tabular-nums;font-size:min(8.5cqw,8cqh);font-weight:400;line-height:1.1;display:block}.invitation[data-theme=mariage-riviera-postcard] .count small{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:min(2.7cqw,14px);font-style:normal}.invitation[data-theme=mariage-riviera-postcard] .menu{--row-size:min(calc(7.6cqw - var(--rows,4) * .25cqw), 30px);color:var(--card-ink);background:#fffdf6;padding:0 0 6%;position:relative;box-shadow:inset 0 0 0 1px #1e3a5f24}.invitation[data-theme=mariage-riviera-postcard] .menu .awning{background:repeating-linear-gradient(90deg, var(--seal) 0 8%, #fffdf6 8% 16%, var(--terra) 16% 24%, #fffdf6 24% 32%);height:5.5cqw;min-height:22px;position:relative}.invitation[data-theme=mariage-riviera-postcard] .menu .awning:after{content:"";background:radial-gradient(circle at 50% 0, var(--seal) 0 62%, transparent 64%) repeat-x;opacity:.85;background-size:3.2cqw 1.6cqw;height:1.6cqw;position:absolute;bottom:-1.5cqw;left:0;right:0}.invitation[data-theme=mariage-riviera-postcard] .menu-kicker{text-align:center;font-family:var(--script);color:var(--terra);margin:4.5cqw 0 1cqw;font-size:min(7cqw,38px);line-height:1}.invitation[data-theme=mariage-riviera-postcard] .menu-list{margin:0;padding:0 7%;list-style:none}.invitation[data-theme=mariage-riviera-postcard] .menu-list .row{border-bottom:1px dotted color-mix(in srgb, var(--seal) 40%, transparent);grid-template-columns:auto 1fr;align-items:baseline;gap:4%;padding:3.4% 0;display:grid}.invitation[data-theme=mariage-riviera-postcard] .menu-list .row:last-child{border-bottom:0}.invitation[data-theme=mariage-riviera-postcard] .it.row{opacity:0;will-change:opacity;transition:transform .7s cubic-bezier(.16,.84,.24,1),opacity .5s;position:static;transform:translate(-10px)}.invitation[data-theme=mariage-riviera-postcard] .it.row.on{opacity:1;transform:rotate(var(--tilt,0deg))}.invitation[data-theme=mariage-riviera-postcard] .menu-list time{font-family:var(--didone);font-size:var(--row-size);color:var(--seal);font-variant-numeric:tabular-nums;line-height:1.1}.invitation[data-theme=mariage-riviera-postcard] .menu-list .what{display:block}.invitation[data-theme=mariage-riviera-postcard] .menu-list strong{font-weight:600;font-size:calc(var(--row-size) * .78);line-height:1.2;display:block}.invitation[data-theme=mariage-riviera-postcard] .menu-list em{font-family:var(--script);color:var(--stem);font-style:normal;font-size:calc(var(--row-size) * .86);line-height:1.15;display:block}.invitation[data-theme=mariage-riviera-postcard] .postcard{background:#fffdf7;padding:3.6%;position:relative;box-shadow:0 16px 30px -12px #1b2a3a6b}.invitation[data-theme=mariage-riviera-postcard] .pc-air{background:repeating-linear-gradient(135deg, var(--seal) 0 8px, #fff 8px 16px, var(--terra) 16px 24px, #fff 24px 32px);position:absolute;inset:0}.invitation[data-theme=mariage-riviera-postcard] .pc-air:after{content:"";background:#fffdf7;position:absolute;inset:1.6cqw}.invitation[data-theme=mariage-riviera-postcard] .postcard .img{z-index:1;aspect-ratio:3/2;filter:saturate(.94)contrast(1.03)brightness(1.03);position:relative;overflow:hidden}.invitation[data-theme=mariage-riviera-postcard] .postcard .img svg,.invitation[data-theme=mariage-riviera-postcard] .postcard .img img{object-fit:cover;width:100%;height:100%;display:block}.invitation[data-theme=mariage-riviera-postcard] .postcard .img img{filter:saturate(.92)contrast(1.04)brightness(1.05)sepia(.12)}.invitation[data-theme=mariage-riviera-postcard] .postcard .img span{font-family:var(--script);color:#fff;z-index:1;text-shadow:0 2px 10px #1b2a3a8c;font-size:min(9.5cqw,56px);line-height:1;position:absolute;bottom:4%;left:4%}.invitation[data-theme=mariage-riviera-postcard] .pc-addr{z-index:1;letter-spacing:.06em;color:var(--muted);gap:.2em;margin:3% 0 0;padding:0 2%;font-size:min(3.1cqw,15px);line-height:1.35;display:grid;position:relative}.invitation[data-theme=mariage-riviera-postcard] .pc-addr span:first-child{color:var(--seal);letter-spacing:.1em;text-transform:uppercase;font-weight:600}.invitation[data-theme=mariage-riviera-postcard] .big-stamp{width:100%}.invitation[data-theme=mariage-riviera-postcard] .inkmark{color:color-mix(in srgb, var(--seal) 74%, transparent)}.invitation[data-theme=mariage-riviera-postcard] .btn{background:var(--seal);color:#fff;cursor:pointer;font-family:var(--sans);letter-spacing:.06em;border:0;border-radius:40px;margin-top:1.1rem;padding:.72em 1.7em;font-size:1.02rem;font-weight:500;text-decoration:none;display:inline-block}.invitation[data-theme=mariage-riviera-postcard] .btn:hover{background:color-mix(in srgb, var(--seal) 82%, #000)}.invitation[data-theme=mariage-riviera-postcard] .btn[disabled]{opacity:.55;cursor:progress}.invitation[data-theme=mariage-riviera-postcard] .plain{max-width:640px;margin:0 auto;padding:16svh 7vw 6svh}.invitation[data-theme=mariage-riviera-postcard] .plain h2{font-family:var(--script);color:var(--seal);text-align:center;margin:0 0 2rem;font-size:clamp(42px,11vw,66px);font-weight:400;line-height:1.05}.invitation[data-theme=mariage-riviera-postcard] .tags{gap:1.7rem;display:grid}.invitation[data-theme=mariage-riviera-postcard] .tag{color:var(--card-ink);clip-path:polygon(2.4rem 0,100% 0,100% 100%,2.4rem 100%,.2rem 50%);opacity:0;background:linear-gradient(170deg,#fdf5e4,#f7ead0);padding:1.4rem 1.6rem 1.4rem 3.6rem;transition:opacity .7s,transform .9s cubic-bezier(.16,.84,.24,1);position:relative;transform:translate(-30px)rotate(-2deg);box-shadow:0 12px 24px -14px #1b2a3a73,inset 0 0 0 1px #1e3a5f1a}.invitation[data-theme=mariage-riviera-postcard] .tag:nth-child(2n){transform:translate(30px)rotate(2deg)}.invitation[data-theme=mariage-riviera-postcard] .tag.on{opacity:1;transform:rotate(var(--r,0deg))}.invitation[data-theme=mariage-riviera-postcard] .tag:before{content:"";background:var(--bg);width:.8rem;height:.8rem;box-shadow:inset 0 0 0 2px var(--seal);border-radius:50%;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.invitation[data-theme=mariage-riviera-postcard] .tag:after{content:"";background:repeating-linear-gradient(180deg, var(--seal) 0 5px, transparent 5px 10px);opacity:.45;width:2px;position:absolute;top:.55rem;bottom:.55rem;left:2.4rem}.invitation[data-theme=mariage-riviera-postcard] .tag h3{font-family:var(--didone);color:var(--seal);margin:0 0 .2rem;font-size:1.32rem;font-weight:500}.invitation[data-theme=mariage-riviera-postcard] .tag p{color:#4a5a68;margin:0;font-size:.95rem}.invitation[data-theme=mariage-riviera-postcard] .rsvp{background:var(--card);color:var(--card-ink);padding:2.6rem 1.6rem 2.4rem;position:relative;box-shadow:0 20px 40px -22px #1b2a3a73}.invitation[data-theme=mariage-riviera-postcard] .rsvp:before{content:"";background:repeating-linear-gradient(135deg, var(--seal) 0 9px, #fff 9px 18px, var(--terra) 18px 27px, #fff 27px 36px);height:10px;position:absolute;top:0;left:0;right:0}.invitation[data-theme=mariage-riviera-postcard] .rsvp form{gap:1.1rem;display:grid}.invitation[data-theme=mariage-riviera-postcard] .rsvp label{color:var(--muted);gap:.25rem;font-size:.98rem;display:grid}.invitation[data-theme=mariage-riviera-postcard] .rsvp input,.invitation[data-theme=mariage-riviera-postcard] .rsvp select,.invitation[data-theme=mariage-riviera-postcard] .rsvp textarea{border:0;border-bottom:1.5px solid color-mix(in srgb, var(--seal) 35%, transparent);width:100%;color:var(--ink);background:0 0;border-radius:0;padding:.45em 0;font-size:1.05rem}.invitation[data-theme=mariage-riviera-postcard] .rsvp input:focus,.invitation[data-theme=mariage-riviera-postcard] .rsvp select:focus,.invitation[data-theme=mariage-riviera-postcard] .rsvp textarea:focus{border-bottom-color:var(--seal);outline:none}.invitation[data-theme=mariage-riviera-postcard] .rsvp textarea{resize:vertical;min-height:4.5rem}.invitation[data-theme=mariage-riviera-postcard] .rsvp fieldset{border:0;margin:0;padding:0}.invitation[data-theme=mariage-riviera-postcard] .rsvp legend{color:var(--muted);margin-bottom:.5rem;font-size:.98rem}.invitation[data-theme=mariage-riviera-postcard] .choice{gap:.7rem;display:flex}.invitation[data-theme=mariage-riviera-postcard] .choice label{cursor:pointer;flex:1;display:block;position:relative}.invitation[data-theme=mariage-riviera-postcard] .choice input{opacity:0;width:1px;height:1px;position:absolute}.invitation[data-theme=mariage-riviera-postcard] .choice span{text-align:center;border:1.5px solid color-mix(in srgb, var(--seal) 40%, transparent);font-family:var(--script);color:var(--seal);border-radius:3px;padding:.5em;font-size:1.55rem;line-height:1.2;display:block}.invitation[data-theme=mariage-riviera-postcard] .choice input:checked+span{background:var(--seal);color:#fff;border-color:var(--seal)}.invitation[data-theme=mariage-riviera-postcard] .choice input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.invitation[data-theme=mariage-riviera-postcard] .trap{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.invitation[data-theme=mariage-riviera-postcard] .rsvp .btn{justify-self:center;margin-top:.6rem}.invitation[data-theme=mariage-riviera-postcard] .notice{color:var(--muted);margin:1.4rem 0 0;font-size:.78rem;line-height:1.5}.invitation[data-theme=mariage-riviera-postcard] .error{color:var(--terra);margin:0;font-style:normal;font-weight:500}.invitation[data-theme=mariage-riviera-postcard] .closed{text-align:center;color:var(--muted);margin:0;font-size:1.1rem;font-style:normal}.invitation[data-theme=mariage-riviera-postcard] .done-seal{aspect-ratio:1;background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--seal) 72%, #fff) 0, var(--seal) 52%, color-mix(in srgb, var(--seal) 70%, #000) 100%);color:#fff;width:124px;font-family:var(--script);box-shadow:0 8px 16px #1b2a3a59, inset 0 0 0 4px #ffffff80, inset 0 0 0 7px color-mix(in srgb, var(--seal) 85%, #000);opacity:0;pointer-events:none;border-radius:50%;place-items:center;font-size:2.6rem;transition:transform .5s cubic-bezier(.5,0,.3,1.4),opacity .3s;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(2.4)}.invitation[data-theme=mariage-riviera-postcard] .rsvp.sent .done-seal{opacity:1;transform:translate(-50%,-80%)scale(1)}.invitation[data-theme=mariage-riviera-postcard] .rsvp.sent form{opacity:.12;pointer-events:none;transition:opacity .6s}.invitation[data-theme=mariage-riviera-postcard] .thanks{text-align:center;color:var(--seal);opacity:0;font-size:1.25rem;font-style:normal;transition:opacity .6s .4s;position:absolute;top:58%;left:0;right:0}.invitation[data-theme=mariage-riviera-postcard] .rsvp.sent .thanks{opacity:1}.invitation[data-theme=mariage-riviera-postcard] .sign{text-align:center;padding:10svh 1rem 16svh}.invitation[data-theme=mariage-riviera-postcard] .sign-waves{width:min(220px,52vw);color:var(--seal);opacity:.72;margin:0 auto 1.4rem;display:block}.invitation[data-theme=mariage-riviera-postcard] .sign .script{color:var(--seal);font-size:clamp(52px,14vw,90px);line-height:1.1;display:block}.invitation[data-theme=mariage-riviera-postcard] .sign p{color:var(--muted);margin:.6rem 0 0;font-style:normal}.invitation[data-theme=mariage-riviera-postcard] .demo-banner{top:calc(.6rem + env(safe-area-inset-top,0));z-index:90;background:var(--seal);color:#fff;letter-spacing:.22em;text-transform:uppercase;opacity:.85;pointer-events:none;border-radius:40px;margin:0;padding:.25rem .85rem;font-size:.62rem;font-weight:600;position:fixed;left:.6rem}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .chapter{height:auto}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .sticky{grid-template-rows:74svh auto;height:auto;position:static;overflow:visible}@media (min-width:820px){.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .sticky{grid-template-rows:1fr}}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .line{opacity:1;filter:none;grid-area:auto;transform:none}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .lines{gap:.7rem}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .it,.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .tag{opacity:1;transform:var(--to,none)}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .it.row{transform:rotate(var(--tilt,0deg))}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .sea{opacity:.8}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .reveal{clip-path:none}.invitation[data-theme=mariage-riviera-postcard][data-reduced=true] .cue{display:none}@media (prefers-reduced-motion:reduce){.invitation[data-theme=mariage-riviera-postcard] *,.invitation[data-theme=mariage-riviera-postcard] :before,.invitation[data-theme=mariage-riviera-postcard] :after{transition-duration:.01ms!important;transition-delay:0s!important;animation:none!important}}
