/*
Theme Name: Aurore & Grégory — Passeport
Description: Invitation de mariage, couverture passeport et page unique. Contenus éditables dans Apparence > Personnaliser > Invitation de mariage.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: aurore-gregory
*/
@font-face{font-family:Cardo;src:url('assets/fonts/cardo-regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Cardo;src:url('assets/fonts/cardo-italic.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
:root{--wine:#511b27;--wine-dark:#36121b;--gold:#d8b879;--ink:#452630;--paper:#f5efe4;--muted:#735b52;--rule:#cdbb9d;--space:clamp(4rem,8vw,7.5rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0;color:var(--ink);background:var(--paper);font-family:Cardo,Georgia,serif;font-size:18px;line-height:1.65}::selection{background:var(--wine);color:var(--paper)}a{color:inherit;text-underline-offset:.3em}a:hover{text-decoration-thickness:2px}a:focus-visible{outline:2px solid currentColor;outline-offset:6px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;line-height:1.15;text-wrap:balance}h1{font-size:clamp(3rem,7.5vw,6rem)}h2{font-size:clamp(2.2rem,4vw,3.5rem);margin-bottom:2rem}h3{font-size:1.6rem}p{white-space:pre-line;overflow-wrap:anywhere}svg{display:block}img{max-width:100%;height:auto}a,button{-webkit-tap-highlight-color:transparent}.section{max-width:1120px;margin-inline:auto;padding:var(--space) 2rem;scroll-margin-top:1rem}.script{font-style:italic}.screen-reader-text,.skip-link:not(:focus){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link:focus{position:fixed;z-index:1000;top:1rem;left:1rem;background:var(--paper);padding:.8rem 1.2rem}
.departure{min-height:100svh;padding:1.5rem 2rem 2.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eae1d2}.departure-top{width:100%;display:flex;justify-content:space-between;max-width:1400px;color:var(--muted);font-size:.85rem;letter-spacing:.15em;margin-bottom:1.8rem}.passport-wrap{perspective:1400px;width:min(375px,83vw);margin:0 auto}.passport{background:var(--wine-dark);color:var(--gold);border-radius:11px 24px 24px 11px;padding:14px 15px 14px 12px;box-shadow:8px 16px 30px #36121b33;position:relative;transform-origin:left center;transition:transform .42s cubic-bezier(.16,1,.3,1),box-shadow .42s}.passport:before{content:'';position:absolute;left:7px;top:10px;bottom:10px;border-left:1px solid #d8b87938}.passport-content{border:1px solid #d8b879a6;border-radius:7px 16px 16px 7px;text-align:center;padding:25px 13px 22px;background:var(--wine)}.passport-title{font-size:2.45rem;line-height:1.2;text-transform:uppercase;letter-spacing:.13em}.passport-subtitle{font-size:.65rem;letter-spacing:.17em;text-transform:uppercase;margin-top:8px}.passport-names{font-size:1.25rem;letter-spacing:.08em;text-transform:uppercase;margin-top:10px}.passport-date{letter-spacing:.3em;font-size:.9rem;margin-top:12px}.heart{width:15px;height:15px;fill:currentColor;margin:14px auto 0}.open-invitation{display:flex;align-items:center;gap:1rem;min-height:48px;margin-top:1.7rem;font-size:1.05rem;text-decoration:none;border-bottom:1px solid var(--wine);padding:0 .25rem .2rem}.open-invitation svg{height:22px;width:22px;fill:none;stroke:currentColor;stroke-width:1.3}.open-invitation:hover svg{transform:translateY(3px)}.departure-note{font-size:.9rem;font-style:italic;color:var(--muted);text-align:center;margin-top:1rem}.is-opening .passport{transform:rotateY(-48deg) rotateZ(-3deg);box-shadow:22px 25px 38px #36121b26}
.art{position:relative;overflow:hidden}.art-original img{position:absolute;max-width:none;height:auto}.art-cover{width:100%;aspect-ratio:1.06;margin:18px auto 0}.art-original.art-cover{mix-blend-mode:lighten}.art-original.art-cover img{width:374.6%;left:-19.5%;top:-47.8%}.art-story{width:100%;aspect-ratio:3.09}.art-original.art-story img{width:301.2%;left:-112.75%;top:-191%}.art-venue{width:min(600px,100%);aspect-ratio:2.85;margin:0 auto 2rem}.art-original.art-venue img{width:415%;left:-306.5%;top:-296%}.art-custom img{display:block;max-width:100%;width:100%;height:100%;object-fit:contain}.art-custom.art-cover{aspect-ratio:1.06}.art-custom.art-story{aspect-ratio:2.5}.art-custom.art-venue{aspect-ratio:2.15}.art-original.art-story,.art-original.art-venue{mix-blend-mode:multiply;filter:grayscale(1) brightness(1.16) contrast(1.08)}
.navigation{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.1rem max(2rem,calc((100vw - 1056px)/2));background:var(--paper);border-bottom:1px solid var(--rule)}.admin-bar .navigation{top:32px}.monogram{font-size:1.5rem;letter-spacing:.12em;text-decoration:none;white-space:nowrap}.navigation>div{display:flex;gap:2rem}.navigation>div a{font-size:.9rem;text-decoration:none}.navigation>div a:hover{text-decoration:underline}.welcome{text-align:center;padding-top:5rem;padding-bottom:5rem}.welcome-script{font-size:1.8rem;margin-top:1rem}.flight{width:min(330px,90%);margin:1.4rem auto}.flight svg{width:100%;height:auto}.flight-path{fill:none;stroke:var(--wine);stroke-width:1.3;stroke-dasharray:3 4}.plane{fill:var(--wine)}.wedding-date{font-size:1.45rem}.welcome-place{font-size:1.05rem;margin-top:.5rem}.welcome-message{font-size:1.05rem;font-style:italic;color:var(--muted);margin-top:1.5rem}.story{display:grid;grid-template-columns:1fr 1fr;gap:3.5rem 4rem;border-top:1px solid var(--rule)}.story-copy p+p{margin-top:1.25rem}.story-picture{align-self:center}.story-picture figcaption{text-align:center;font-size:.8rem;letter-spacing:.05em;margin-top:1rem}.faith{grid-column:1/-1;text-align:center;max-width:700px;margin:1rem auto 0}.faith>.script{font-size:1.6rem;line-height:1.5;margin-bottom:2rem}blockquote{margin:0;padding:2rem;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}blockquote p{font-size:1.15rem}cite{display:block;font-style:normal;font-size:.85rem;margin-top:1rem;letter-spacing:.08em}.venue{text-align:center;border-top:1px solid var(--rule)}.venue h3{font-size:2.3rem}.location{letter-spacing:.1em;text-transform:uppercase;font-size:.85rem;margin-top:.75rem}.venue-description{max-width:580px;margin:1.5rem auto}.text-link{display:inline-flex;gap:.75rem;align-items:center}.text-link svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}.schedule{max-width:none;background:var(--wine);color:var(--paper);text-align:center}.schedule h2{margin-bottom:4rem}.timeline{list-style:none;margin:0 auto;padding:0;max-width:1056px;display:grid;grid-template-columns:repeat(3,1fr)}.timeline li{padding:0 2rem;position:relative}.timeline li+li{border-left:1px solid #d8b87970}.event-mark svg{width:48px;height:48px;margin:0 auto 1.5rem;stroke:var(--gold);stroke-width:1.2;fill:none}.event-time{font-size:2.6rem;color:var(--gold);font-variant-numeric:tabular-nums}.timeline h3{font-size:1.25rem;line-height:1.5;margin:1rem auto 0;max-width:230px}.practical h2{text-align:center}.practical-columns{display:grid;grid-template-columns:1fr 1fr;gap:4rem;margin-top:3rem}.practical h3{margin-bottom:1.2rem}.closing{text-align:center;border-top:1px solid var(--rule);padding:4rem 2rem}.closing>.monogram{font-size:2.2rem}.closing>.script{font-size:1.35rem;max-width:560px;margin:1.7rem auto}.closing>p:not(.script):not(.monogram){font-size:.85rem;letter-spacing:.06em}.closing>a{display:inline-block;font-size:.85rem;margin-top:1.8rem}.document{min-height:80vh}.document article{margin-bottom:3rem}.document h1{margin-bottom:2rem}
@media(min-width:1000px) and (min-height:850px){.passport-wrap{width:410px}.departure-top{margin-bottom:2.4rem}.passport-content{padding-top:30px;padding-bottom:26px}.passport-title{font-size:2.7rem}}
@media(max-width:700px){body{font-size:17px}.departure{padding:1rem 1.25rem 2rem}.departure-top{margin-bottom:1.5rem;font-size:.72rem}.passport-wrap{width:min(330px,83vw)}.passport-content{padding:22px 10px}.passport-title{font-size:2.1rem}.passport-subtitle{font-size:.58rem}.passport-names{font-size:1.1rem}.departure-note{max-width:280px}.section{padding-inline:1.4rem}.navigation{position:relative;top:auto;display:block;padding:1.2rem 1rem;text-align:center}.admin-bar .navigation{top:auto}.navigation>.monogram{display:none}.navigation>div{justify-content:center;gap:1.1rem;flex-wrap:wrap}.navigation>div a{font-size:.82rem}.welcome{padding-top:4rem}.welcome h1{font-size:clamp(2.7rem,10vw,4rem)}.welcome-script{font-size:1.5rem}.wedding-date{font-size:1.25rem}.story{grid-template-columns:1fr;gap:2.5rem}.story h2{text-align:center}.story-picture{width:100%}.faith{margin-top:0}.faith>.script{font-size:1.35rem}blockquote{padding:1.5rem .3rem}.venue h3{font-size:2rem}.timeline{grid-template-columns:1fr;max-width:420px;text-align:left;gap:2rem}.timeline li{display:grid;grid-template-columns:55px 1fr;column-gap:1.4rem;padding:0 0 2rem}.timeline li+li{border-left:0;border-top:1px solid #d8b87970;padding-top:2rem}.event-mark{grid-row:1/3;align-self:center}.event-mark svg{margin:0}.event-time{font-size:2.2rem}.timeline h3{margin:.4rem 0 0;max-width:none;font-size:1.15rem}.schedule h2{margin-bottom:3rem}.practical-columns{grid-template-columns:1fr;gap:2.5rem}.closing{padding-inline:1.4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.is-opening .passport{transform:none}}
.welcome.section{max-width:none;min-height:100svh;padding:32px 24px;display:grid;place-items:center}
.welcome-page{width:min(600px,calc(100vw - 48px),calc((100svh - 64px)*.6666667));aspect-ratio:2/3;container-type:inline-size;border:1px solid var(--rule);background:var(--paper);text-align:center}
.welcome-content{min-height:150cqw;padding:11cqw 8cqw 8cqw;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:5cqw}
.welcome h1,.welcome-page h1{font-size:8.8cqw;line-height:1.12}
.welcome-page .welcome-script{font-size:5cqw;margin-top:3cqw;line-height:1.3}
.welcome-page .flight{width:70%;margin:0}
.welcome-page .wedding-date{font-size:5cqw;line-height:1.35}
.welcome-page .welcome-place{font-size:3.8cqw;line-height:1.5;margin-top:2cqw}
.welcome-page .welcome-message{font-size:4cqw;line-height:1.5;margin:0;max-width:28ch}
.welcome-illustration{width:100%;margin:0}
.welcome-illustration .art-venue{margin:0;width:100%}
.passport-journey{position:fixed;inset:0;z-index:10000;overflow:hidden;background:#eae1d2;pointer-events:none}
.journey-book{position:absolute;left:0;top:0;transform-origin:top left;perspective:6000px;perspective-origin:50% 50%}
.journey-paper{position:absolute;top:0;background:var(--paper)}
.journey-paper .welcome-page{width:100%;height:100%;margin:0}
.journey-cover{position:absolute;top:0;transform-origin:left center;transform-style:preserve-3d}
.journey-front,.journey-back{position:absolute;inset:0;width:100%;height:100%;backface-visibility:hidden}
.journey-front{transform:translateZ(1px)}
.journey-front *{backface-visibility:hidden}
.journey-front>.passport{position:absolute;top:0;left:0;margin:0}
.journey-front .passport-content{height:100%}
.journey-back{transform:rotateY(180deg) translateZ(1px);background:var(--paper);border:3px solid var(--wine-dark);border-radius:0 14px 14px 0;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 12px var(--paper),inset 0 0 0 13px var(--rule);color:var(--wine)}
.journey-back span{font-size:3rem;letter-spacing:.15em}
.journey-flat-back{left:0;top:0;width:50%;height:100%;transform:none;border-radius:14px 0 0 14px}
@media(max-width:700px){.welcome.section{padding:24px 16px}.welcome-page{width:min(100vw - 32px,calc((100svh - 48px)*.6666667))}.welcome-page .welcome-place,.welcome-page .welcome-message{font-size:max(16px,4cqw)}}
.passport-trigger{display:block;position:relative;text-decoration:none;cursor:pointer;outline-offset:12px;isolation:isolate}
html{scroll-padding-top:0}
.section{scroll-margin-top:6rem}
.welcome.section{scroll-margin-top:0}
.welcome h1:focus{outline:none}
.section[tabindex="-1"]:focus{outline:none}
.passport-trigger:before{content:'';position:absolute;inset:9px -4px 2px 9px;border-radius:10px 23px 23px 10px;background:linear-gradient(90deg,#b7a080,#f2e7d4 85%,#d4c2a6);border-right:3px solid var(--wine-dark);border-bottom:4px solid var(--wine-dark);z-index:-1}
.passport-trigger .passport{transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-style:preserve-3d;transition:transform .2s ease-out,box-shadow .2s ease-out;box-shadow:11px 25px 45px #36121b3d,inset 1px 1px 1px #f3d79c44,inset -2px -2px 3px #17070d99}
.passport-trigger .passport:before{width:14px;left:3px;top:6px;bottom:6px;background:linear-gradient(90deg,#16070b66,#ad667b16 45%,#16070b44);border-left:1px solid #d8b87938;border-radius:5px 0 0 5px;pointer-events:none}
.passport-content{position:relative}
.passport-content:before{content:'';position:absolute;inset:0;border-radius:inherit;background:var(--cover-grain,url('assets/burgundy-grain.webp')) center/256px 256px;opacity:.3;mix-blend-mode:soft-light;pointer-events:none}
.passport-content:after{content:'';position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse at var(--light-x,30%) var(--light-y,15%),#ffe4b226,transparent 64%);pointer-events:none;opacity:.65;transition:opacity .2s ease-out}
.passport-content>*{position:relative}
.passport-title,.passport-names{color:#ddbd7c;text-shadow:0 1px 1px #1e0817,0 -1px 0 #ffe4a326}
.passport-corner{position:absolute;right:21px;bottom:25px;color:var(--gold);width:22px;height:22px;opacity:.75}
.passport-corner svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2}
.passport-trigger:hover .passport,.passport-trigger:focus-visible .passport{box-shadow:15px 30px 52px #36121b47,inset 1px 1px 1px #f3d79c55,inset -2px -2px 3px #17070d99}
.passport-trigger:hover .passport-content:after,.passport-trigger:focus-visible .passport-content:after{opacity:1}
.passport-trigger:focus-visible{outline:2px solid var(--wine)}
.passport-trigger.is-launching .passport{transform:none;transition:none}
.departure-note{margin-top:2rem}
.welcome.section{position:relative;padding:24px 24px 72px}
.welcome-page{width:min(600px,calc(100vw - 48px),calc((100svh - 112px)*.6666667))}
.welcome-scroll{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);width:48px;height:48px;display:grid;place-items:center;text-decoration:none;color:var(--wine)}
.welcome-scroll svg{width:26px;height:34px;fill:none;stroke:currentColor;stroke-width:1.3;transition:transform .2s ease-out}
.welcome-scroll:hover svg,.welcome-scroll:focus-visible svg{transform:translateY(3px)}
.invitation{position:relative}
.scroll-guide{position:absolute;left:0;top:0;z-index:1;pointer-events:none;overflow:hidden}
.scroll-guide-route{fill:none;stroke:var(--rule);stroke-width:.8;stroke-dasharray:2 7}
.scroll-guide-stop{fill:var(--paper);stroke:var(--muted);stroke-width:.8}
.scroll-guide-plane{fill:var(--wine)}
.scroll-guide[data-focus="programme"] .scroll-guide-plane{fill:var(--gold)}
@media(max-width:700px){.welcome.section{padding:24px 16px 72px}.welcome-page{width:min(100vw - 32px,calc((100svh - 112px)*.6666667))}.passport-corner{width:18px;height:18px;right:18px;bottom:23px}}
@media(prefers-reduced-motion:reduce){.passport-trigger .passport{transform:none!important}.passport-content:after{background:linear-gradient(135deg,#ffe4b218,transparent 65%)}.scroll-guide{display:none}.welcome-scroll:hover svg,.welcome-scroll:focus-visible svg{transform:none}}
@media(max-width:360px){.passport-title{font-size:clamp(1.4rem,8.75vw,1.75rem);letter-spacing:.1em;overflow-wrap:normal}}
:root{--ink-gold:#8a6937}
.welcome-page,.inner-story-page{position:relative;background-color:var(--paper);background-image:linear-gradient(#f5efe4b8,#f5efe4b8),var(--paper-grain,url('assets/ivory-paper.webp'));background-size:auto,320px 320px}
.welcome-page:before,.inner-story-page:before{content:'';position:absolute;inset:1.8%;border:1px solid #bba375;pointer-events:none}
.welcome-content{padding:8cqw 9cqw 7cqw;gap:3cqw;position:relative}
.welcome h1,.welcome-page h1{font-size:12cqw;line-height:.98;letter-spacing:-.025em}
.invitation-name{display:block}
.invitation-ampersand{display:block;font-style:italic;font-size:.52em;line-height:1.1;color:var(--ink-gold);padding:.05em 0}
.welcome-page .welcome-script{font-size:4.4cqw;margin-top:3cqw}
.welcome-page .flight{width:55%;color:var(--ink-gold)}
.welcome-page .flight-path{stroke:currentColor}
.welcome-page .plane{fill:currentColor}
.welcome-details{width:100%;padding:2.5cqw 0;border-block:1px solid var(--rule)}
.welcome-page .wedding-date{font-size:4.8cqw}
.welcome-illustration .art-original.art-venue{filter:grayscale(1) sepia(.4) brightness(1.14) contrast(1.08)}
.journey-back{display:block;box-shadow:none}
.inner-story-page{width:100%;height:100%;container-type:inline-size}
.inner-story-content{height:100%;padding:7cqw 9cqw 6cqw;display:flex;flex-direction:column;justify-content:space-between;align-items:center;gap:4cqw;text-align:center;position:relative}
.inner-stamp{width:20cqw;height:20cqw;border:1px solid var(--ink-gold);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1cqw;transform:rotate(-8deg);color:var(--ink-gold)}
.inner-stamp>span{font-size:5.8cqw;line-height:1.2;letter-spacing:.08em}
.inner-stamp svg{width:3cqw;height:3cqw;fill:currentColor}
.inner-story-heading{font-size:7cqw;line-height:1.2;text-wrap:balance}
.inner-story-copy{font-size:3.8cqw;line-height:1.6}
.inner-landscape{width:100%}
.inner-landscape .art-original.art-story{filter:grayscale(1) sepia(.4) brightness(1.14) contrast(1.08)}
.inner-landscape figcaption{font-size:2.9cqw;letter-spacing:.03em;margin-top:2cqw;color:var(--muted)}
.inner-faith{width:100%;padding:3cqw 0;border-block:1px solid var(--rule)}
.inner-faith p{font-size:4.4cqw;font-style:italic;line-height:1.5}
.inner-faith>span{display:block;margin-top:2cqw;font-size:3cqw;letter-spacing:.06em;color:var(--ink-gold)}
.inner-signature{font-size:4.5cqw;font-style:italic;color:var(--ink-gold)}
.journey-book:after{content:'';position:absolute;left:50%;top:0;bottom:0;width:20px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#511b2714 48%,#511b2726 50%,transparent);pointer-events:none}
@media(max-width:700px){.welcome-page .welcome-script{font-size:max(16px,4.4cqw)}.welcome-page .wedding-date{font-size:max(18px,4.8cqw)}}
@media(max-width:360px){.welcome-content{padding:6cqw 9cqw;gap:2cqw}.welcome h1,.welcome-page h1{font-size:8.8cqw;line-height:1.15}.invitation-name{display:inline}.invitation-ampersand{display:inline;font-size:1em;line-height:inherit;padding:0 .15em}.welcome-details{padding:1.5cqw 0}.welcome-page .welcome-place,.welcome-page .welcome-message{line-height:1.4}.welcome-illustration{width:70%}}
