@import url('fonts.css');
:root{--serif:'Cormorant Garamond',Georgia,serif;--script:'Great Vibes',cursive;--sans:'Manrope',Arial,sans-serif;color:#48413a;background:#f5f1e9;font-family:var(--sans);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold,#a47d4e);outline-offset:5px}button:disabled{cursor:default}[hidden]{display:none!important}.invite{--paper:#fbf7ef;--soft:#f3eadd;--ink:#5d4b3d;--muted:#897565;--accent:#b49276;--gold:#b5965a;--line:#d8c7ab;--petal:#e5c6ae;--env:#dfc8ad;--env-dark:#b39877;--env-light:#efdeca;--seal:#c4a56e;--hero-text:#5b493b;--hero-shadow:0 2px 15px #fff8;--visual:url('soz.webp');background:var(--paper);color:var(--ink)}.theme-sage{--paper:#f8f8ef;--soft:#eaf0e3;--ink:#354b3d;--muted:#6e7a65;--accent:#80906b;--gold:#a99360;--line:#cdd6bb;--petal:#ece8d7;--env:#c4c8b5;--env-dark:#7c886d;--env-light:#dfe3cc;--seal:#b9a574;--hero-text:#324834;--visual:url('nisan.webp')}.theme-wine{--paper:#fbf3ee;--soft:#f3e5df;--ink:#65313d;--muted:#8c6466;--accent:#ac7777;--gold:#b99c60;--line:#ddbeb8;--petal:#86313d;--env:#792d3c;--env-dark:#361521;--env-light:#af6470;--seal:#c5a760;--hero-text:#faead0;--hero-shadow:0 2px 20px #1c070acc;--visual:url('kina.webp')}.theme-ivory{--paper:#faf8f0;--soft:#f1eee1;--ink:#52513c;--muted:#7e8069;--accent:#999b75;--gold:#b59a66;--line:#dcd6bc;--petal:#ede9de;--env:#e3ddcd;--env-dark:#b0a992;--env-light:#faf2e1;--seal:#bdab79;--hero-text:#4e4a37;--visual:url('dugun.webp')}.theme-twilight{--paper:#faf5f0;--soft:#ede4e2;--ink:#614753;--muted:#927d83;--accent:#ad8896;--gold:#b2976d;--line:#d7c4c6;--petal:#c3a7b3;--env:#aea0a8;--env-dark:#6f5c6c;--env-light:#d8c8cd;--seal:#c2a776;--hero-text:#63484a;--visual:url('kina-dugun.webp')}.eyebrow{text-transform:uppercase;letter-spacing:.26em;font-family:var(--sans);font-size:10px;font-weight:600;line-height:1.8}.flourish{display:block;width:142px;height:36px;flex-shrink:0;margin:20px auto;color:var(--gold)}
/* A sealed, tactile invitation. */
.intro{position:fixed;inset:0;z-index:40;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--soft);transition:opacity .65s,visibility .65s;isolation:isolate}.intro-backdrop{position:absolute;inset:-20px;background-image:linear-gradient(#eee3dccc,#eee3dccc),var(--visual);background-size:cover;background-position:center;filter:blur(8px);z-index:-2}.intro:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,#fff3,transparent 70%);z-index:-1}.theme-wine .intro-backdrop{background-image:linear-gradient(#20080ae0,#280e14d9),var(--visual)}.intro-content{text-align:center;position:relative;padding:64px 18px 95px;width:100%;max-width:640px}.intro .eyebrow{color:var(--muted);margin:0 0 13px;font-size:9px}.theme-wine .intro .eyebrow,.theme-wine .intro-line,.theme-wine .open-instruction,.theme-wine .intro-credit{color:#dbc4a7}.intro-names{font:400 clamp(46px,7vw,70px)/1.25 var(--script);color:var(--hero-text);margin:0}.intro-line{font:italic 400 19px/1.6 var(--serif);margin:9px auto 0;color:var(--muted)}.intro-languages{position:absolute;right:26px;top:24px}.lang-switch{display:inline-flex;border:1px solid var(--line);border-radius:30px;padding:3px;background:#fffaf1e6;gap:2px;box-shadow:0 2px 10px #33261607}.lang-switch button{border:0;background:none;color:var(--muted);min-width:36px;min-height:32px;border-radius:24px;font-size:10px;font-weight:700;letter-spacing:.04em;transition:color .2s,background .2s}.lang-switch button.selected{background:var(--ink);color:#fff9ec}.theme-wine .intro-languages .lang-switch{background:#34151cbf}.theme-wine .intro-languages button{color:#eedabb}.theme-wine .intro-languages button.selected{background:#bd9c69;color:#35101b}.intro-credit{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.1em;text-decoration:none;color:var(--muted);opacity:.72;padding:8px}.envelope{position:relative;display:block;width:min(84vw,390px);height:250px;margin:58px auto 30px;border:0;padding:0;background:transparent;perspective:1200px;isolation:isolate;transform-style:preserve-3d;transition:transform .5s;filter:drop-shadow(0 18px 21px #30201829);touch-action:manipulation}.envelope:hover{transform:translateY(-3px)}.envelope-back{position:absolute;inset:0;background:linear-gradient(150deg,var(--env-dark),var(--env));border-radius:4px;box-shadow:inset 0 1px 1px #ffffff45,inset 0 0 0 1px #36261214}.envelope-letter{position:absolute;inset:16px 22px 17px;background:linear-gradient(115deg,#fffdf5,#f3eadb);z-index:2;box-shadow:0 0 10px #432d1c21;transition:transform 1.05s cubic-bezier(.23,.8,.2,1),opacity .3s;transition-delay:.5s;padding:11px}.letter-border{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;border:1px solid #d7c196;color:#584633;overflow:hidden}.letter-monogram{font:italic 25px/1 var(--serif);color:#a88952;letter-spacing:-.08em;margin:4px}.letter-line{height:1px;background:#cbb891;width:29px;margin:8px 0 10px}.letter-caption{font-size:7px;letter-spacing:.18em;text-transform:uppercase;max-width:230px;line-height:1.4}.letter-title{font:400 33px/1.4 var(--script);padding-top:9px}.letter-date{font-size:8px;letter-spacing:.09em;margin-top:12px}.envelope-sides{position:absolute;inset:0;z-index:3;clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);background:linear-gradient(110deg,var(--env-light) 0%,var(--env) 40%,var(--env-dark) 100%);border-radius:4px}.envelope-bottom{position:absolute;inset:0;z-index:4;clip-path:polygon(0 100%,50% 44%,100% 100%);background:linear-gradient(135deg,var(--env-light),var(--env) 55%,var(--env-light));border-radius:4px;filter:drop-shadow(0 -1px 1px #231b1826)}.envelope-sides:after,.envelope-bottom:after,.envelope-lid:after{content:'';position:absolute;inset:0;background-image:url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22180%22 height=%22180%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%22.55%22 numOctaves=%223%22 stitchTiles=%22stitch%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22 opacity=%22.14%22/%3E%3C/svg%3E');mix-blend-mode:multiply;pointer-events:none;opacity:.65}.envelope-lid{position:absolute;inset:0;z-index:5;background:linear-gradient(160deg,var(--env-light),var(--env) 45%,var(--env-dark));clip-path:polygon(0 0,100% 0,50% 57%);transform-origin:center top;transition:transform .8s cubic-bezier(.3,.5,.25,1),filter .8s;backface-visibility:visible;filter:drop-shadow(0 3px 3px #3b211726)}.wax-seal{position:absolute;z-index:6;top:calc(57% - 31px);left:calc(50% - 28px);width:56px;height:57px;display:grid;place-items:center;background:radial-gradient(circle at 32% 24%,#eddaa1,var(--seal) 42%,#907443 100%);border-radius:48% 45% 46% 42%;box-shadow:0 3px 6px #2918083b,inset 0 0 0 2px #b49350,inset 0 0 0 5px #f6e3b450;transition:opacity .3s,transform .4s}.wax-seal span{height:40px;width:40px;display:grid;place-items:center;border:1px solid #9577467a;border-radius:50%;font:italic 23px var(--serif);letter-spacing:-.07em;color:#74572e;text-shadow:0 1px 1px #f9dfb0}.envelope-shadow{position:absolute;inset:auto 15px -12px;height:16px;border-radius:50%;background:#30231a2e;filter:blur(12px);z-index:-1;transition:opacity .8s}.open-instruction{color:var(--muted);font-size:11px;letter-spacing:.075em;margin:0}.open-line{display:block;width:1px;height:23px;background:var(--gold);opacity:.55;margin:15px auto 0;transform-origin:top;animation:hint 2.5s ease-in-out infinite}.intro.opening .wax-seal{opacity:0;transform:scale(1.13) translateY(5px)}.intro.opening .envelope-lid{transform:rotateX(180deg);filter:brightness(.83);z-index:1}.intro.opening .envelope-letter{transform:translateY(-185px) scale(1.025);z-index:2}.intro.opening .intro-names,.intro.opening .intro-line,.intro.opening .eyebrow,.intro.opening .open-instruction,.intro.opening .open-line{opacity:0;transition:opacity .35s}.intro.departing{opacity:0;visibility:hidden}.intro.departing .envelope{transform:scale(1.18) translateY(-20px);transition:transform .75s}.intro-languages button:disabled{opacity:.5}
/* The invitation itself. */
.invitation{animation:arrive 1s ease both}.floating-controls{position:fixed;right:22px;top:20px;z-index:20;display:flex;gap:8px;align-items:center}.music-toggle{border:1px solid var(--line);border-radius:30px;display:flex;align-items:center;gap:7px;background:#fffaf1e6;min-height:40px;color:var(--ink);padding:0 13px;font-size:10px;box-shadow:0 2px 10px #33261607}.music-toggle>svg{width:17px;height:17px}.music-bars{display:flex;align-items:center;gap:2px;height:12px}.music-bars i{width:2px;height:5px;background:currentColor;border-radius:1px}.music-toggle[aria-pressed=true] .music-bars i{animation:music-bar 1s ease-in-out infinite alternate}.music-toggle[aria-pressed=true] .music-bars i:nth-child(2){animation-delay:.3s}.music-toggle[aria-pressed=true] .music-bars i:nth-child(3){animation-delay:.7s}.music-toggle[aria-pressed=false] .music-bars{opacity:.35}.invitation-layout{display:grid;grid-template-columns:46% 54%;max-width:1500px;margin:auto;position:relative;box-shadow:0 0 100px #5f4a3120}.cover{position:sticky;top:0;height:100svh;min-height:620px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--hero-text);isolation:isolate}.cover-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-3}.cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,#fff6,transparent 30%,transparent 76%,#2c201b25);z-index:-2}.theme-wine .cover-shade{background:linear-gradient(#15020722,#15020700,#13010766)}.cover-frame{position:absolute;inset:18px;pointer-events:none;border:1px solid #a78b5b70;z-index:-1}.cover-frame:before{content:'';position:absolute;inset:5px;border:1px solid #e2d0a470}.theme-wine .cover-frame{border-color:#c9a96880}.cover-content{width:100%;padding:35px 40px 200px;text-align:center;text-shadow:var(--hero-shadow)}.monogram{display:flex;align-items:center;justify-content:center;border:1px solid var(--gold);width:62px;height:62px;border-radius:50%;margin:0 auto 34px;font:italic 27px var(--serif);letter-spacing:-.08em;color:var(--hero-text)}.cover .eyebrow{font-size:9px;max-width:330px;margin:0 auto 24px;letter-spacing:.2em}.cover h1{margin:0;display:flex;flex-direction:column;align-items:center;font-weight:400}.cover h1 .name{font:400 clamp(70px,6.6vw,110px)/1.16 var(--script);padding:0 15px}.cover h1 .amp{font:italic 34px/.9 var(--serif);color:var(--gold);margin:5px 0 10px}.cover .flourish{margin:24px auto 17px;width:125px}.hero-date{font:500 17px/1.6 var(--serif);letter-spacing:.06em;margin:0;max-width:390px;margin-inline:auto}.hero-city{font-size:9px;letter-spacing:.25em;text-transform:uppercase;margin:9px 0 0}.scroll-cue{position:absolute;bottom:29px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;text-decoration:none;color:var(--hero-text);text-shadow:var(--hero-shadow)}.scroll-cue>span:first-child{font-size:8px;letter-spacing:.2em;white-space:nowrap}.scroll-stroke{position:relative;display:block;width:1px;height:42px;background:currentColor;opacity:.6;overflow:hidden}.scroll-stroke:after{content:'';position:absolute;inset:0;background:var(--paper);animation:scroll 2s cubic-bezier(.5,0,.5,1) infinite}.invitation-body{min-width:0;padding-top:65px;background:var(--paper);background-image:radial-gradient(var(--line) .35px,transparent .35px);background-size:5px 5px;overflow:hidden}.content-section{padding:69px 10%;text-align:center}.script-label{font:400 33px/1.5 var(--script);color:var(--accent);margin:0 0 8px}.content-section h2{font:500 clamp(31px,3vw,43px)/1.15 var(--serif);letter-spacing:-.025em;margin:0;color:var(--ink)}.invitation-copy{font:400 23px/1.75 var(--serif);max-width:420px;margin:0 auto;color:var(--ink)}.welcome{padding-top:50px;padding-bottom:58px}.visual-interlude{height:210px;margin:0 10%;position:relative;overflow:hidden;border-radius:140px 140px 0 0;box-shadow:0 10px 35px #3b26160f;isolation:isolate}.visual-interlude img{width:100%;height:100%;object-fit:cover;object-position:center bottom}.visual-interlude:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 35%,#28170c7a);z-index:0}.interlude-caption{position:absolute;left:25px;right:25px;bottom:25px;color:#fff7e8;font:italic 22px/1.5 var(--serif);text-align:center;z-index:1;text-shadow:0 2px 8px #220e03}.family-section{padding-top:70px}.family-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:30px auto 22px;max-width:430px}.family-card{padding:26px 9px 24px;border:1px solid var(--line);background:linear-gradient(135deg,#fffcf0b3,transparent);position:relative;border-radius:3px}.family-card:before{content:'';position:absolute;inset:5px;border:1px solid var(--line);opacity:.35;pointer-events:none}.family-card>span{font-size:8px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:12px;font-weight:600}.family-card .family-surname{font:500 26px/1.1 var(--serif);letter-spacing:.03em;text-transform:uppercase;margin:0 0 13px}.family-card .family-names{font:400 16px/1.6 var(--serif);margin:0}.family-grid.single{grid-template-columns:1fr;max-width:270px}.family-note{font:italic 20px/1.65 var(--serif);max-width:400px;color:var(--muted);margin:24px auto 0}.countdown-section{background:linear-gradient(150deg,var(--soft),var(--paper));position:relative;margin:10px 5%;padding:51px 5%;border:1px solid var(--line)}.countdown-section:after{content:'';position:absolute;inset:6px;border:1px solid var(--line);opacity:.35;pointer-events:none}.countdown-section .script-label{font-size:28px}.countdown-section h2{font-size:34px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;max-width:400px;margin:19px auto 0}.countdown div{display:flex;flex-direction:column;align-items:center;gap:7px;border-right:1px solid var(--line)}.countdown div:last-child{border:0}.countdown strong{font:400 43px/1.2 var(--serif);font-variant-numeric:tabular-nums;color:var(--ink)}.countdown span{font-size:8px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.event-section{padding-top:73px;padding-bottom:70px}.event-card{text-align:center;padding:31px 21px 34px;border:1px solid var(--line);background:#fffaf45c;position:relative;margin-top:18px}.event-card+.event-card{margin-top:28px}.event-card:after{content:'';position:absolute;inset:6px;border:1px solid var(--line);opacity:.32;pointer-events:none}.event-number{font-size:8px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.event-card h3{font:500 30px var(--serif);margin:10px 0 23px}.event-icon{width:22px;height:22px;display:block;margin:0 auto 9px;color:var(--gold)}.event-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.event-date{font:500 22px/1.3 var(--serif);margin:0}.event-day{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:8px 0}.event-time{font:400 20px/1.5 var(--serif);margin:3px 0 0}.event-divider{height:1px;width:45px;background:var(--line);margin:24px auto}.venue{font:500 24px/1.25 var(--serif);margin:12px auto 9px;max-width:290px}.address{font-size:11px;line-height:1.9;max-width:270px;margin:0 auto 22px;color:var(--muted)}.route-link{display:inline-flex;align-items:center;justify-content:center;gap:16px;text-decoration:none;border:1px solid var(--gold);color:var(--ink);padding:13px 17px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;position:relative;z-index:1;transition:background .2s}.route-link:hover{background:var(--soft)}.route-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4}.closing{position:relative;text-align:center;min-height:440px;isolation:isolate;display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:var(--ink);border-top:1px solid var(--line)}.closing-bg{position:absolute;inset:0;background-image:linear-gradient(var(--paper),#fffcf3dd 65%,#fffcf3c4),var(--visual);background-position:center,bottom;background-size:cover;z-index:-1}.theme-wine .closing-bg{background-image:linear-gradient(#fbf3eefc,#fbf3eee0 65%,#fbf3eeaa),var(--visual)}.closing-inner{padding:62px 10% 52px}.closing .script-label{font-size:29px}.closing-names{font:400 48px/1.4 var(--script);margin:13px 0 0;color:var(--ink)}.closing .flourish{margin:15px auto}.closing-copy{font:italic 21px/1.6 var(--serif);max-width:350px;margin:0 auto;color:var(--ink)}.credit{font-size:9px;line-height:1.7;color:var(--muted);padding:0 16px;margin:0 0 22px;opacity:.85}.credit a{text-decoration:none;border-bottom:1px solid #aaa5}
/* Gentle individual petals: no emoji, no interaction obstruction. */
.petals{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:15;contain:strict}.petal{position:absolute;top:-50px;width:12px;height:17px;border-radius:80% 8% 75% 20%;background:radial-gradient(ellipse at 30% 20%,#ffffffbb,var(--petal));opacity:0;box-shadow:inset -1px -1px 2px #8a4b4b12;animation:petal-fall var(--duration,18s) linear var(--delay,0s) infinite;will-change:transform;left:var(--left,10%)}.intro-active .petals{opacity:0}.petals{transition:opacity .8s}.reveal{opacity:1}.js-motion .reveal{opacity:0;transform:translateY(15px);transition:opacity .85s ease,transform .85s ease}.js-motion .reveal.in-view{opacity:1;transform:none}@keyframes petal-fall{0%{transform:translate3d(0,-30px,0) rotate(0) rotateY(0);opacity:0}8%{opacity:.48}45%{transform:translate3d(var(--drift,45px),48svh,0) rotate(120deg) rotateY(140deg);opacity:.4}92%{opacity:.32}100%{transform:translate3d(calc(var(--drift,45px) * -.5),110svh,0) rotate(270deg) rotateY(240deg);opacity:0}}@keyframes music-bar{to{height:12px}}@keyframes hint{0%,100%{transform:scaleY(.6);opacity:.3}50%{transform:scaleY(1);opacity:.65}}@keyframes scroll{0%{transform:translateY(-105%)}100%{transform:translateY(105%)}}@keyframes arrive{from{opacity:0}to{opacity:1}}
/* Collection: only this page speaks as the product. */
.catalog{background:#f5f1e9;color:#453e34}.catalog-header,.catalog-footer{max-width:1250px;display:flex;justify-content:space-between;align-items:center;padding:30px 5%;margin:auto}.catalog-header a{text-decoration:none;font-size:16px;letter-spacing:-.04em;font-weight:700}.catalog-header>span{font-size:9px;letter-spacing:.18em;color:#958574}.catalog main{max-width:1250px;margin:auto;padding:0 5%}.catalog-intro{text-align:center;padding:62px 0 70px;position:relative}.catalog-intro .eyebrow{color:#9e866a;font-size:9px}.catalog-intro h1{font:500 clamp(45px,5.5vw,74px)/1.05 var(--serif);letter-spacing:-.03em;margin:22px 0}.catalog-intro h1 em{font-weight:400;color:#9a7d5e}.catalog-intro>p:last-child{font-size:12px;line-height:1.9;color:#887b6c;margin:0}.samples{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 22px}.sample-card{text-decoration:none;display:block;transition:transform .35s}.sample-card:hover{transform:translateY(-5px)}.card-cover{aspect-ratio:3/4;position:relative;overflow:hidden;isolation:isolate;color:var(--hero-text)}.card-cover:after{content:'';position:absolute;inset:10px;border:1px solid #ad916451;pointer-events:none}.card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.sample-card:hover img{transform:scale(1.035)}.card-collection{position:absolute;top:29px;left:15px;right:15px;text-align:center;font-size:8px;letter-spacing:.22em;text-transform:uppercase;color:var(--hero-text)}.card-names{position:absolute;top:37%;left:15px;right:15px;text-align:center;font:400 clamp(33px,3.5vw,50px)/1.3 var(--script);text-shadow:var(--hero-shadow)}.card-info{padding:18px 0 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dacebd}.card-info>div{display:flex;align-items:center;gap:14px}.card-number{font:italic 24px var(--serif);color:#ad947a}.card-info strong{font-size:10px;letter-spacing:.045em;font-weight:600}.card-arrow svg{width:19px;height:19px;color:#876f53}.catalog-note{font-size:10px;line-height:1.8;color:#91816d;max-width:670px;text-align:center;margin:48px auto}.catalog-footer{font-size:13px;letter-spacing:-.04em;border-top:1px solid #ded2c1;padding-top:25px;padding-bottom:30px}.catalog-footer span{font:italic 20px var(--serif);color:#a08464;letter-spacing:0}
@media(min-width:1600px){.cover h1 .name{font-size:112px}}@media(max-width:1000px){.invitation-layout{grid-template-columns:43% 57%}.cover-content{padding:35px 16px 160px}.cover h1 .name{font-size:76px}.content-section{padding-inline:7%}.floating-controls{right:15px}.script-label{font-size:29px}.family-grid{gap:10px}.card-names{font-size:39px}}
@media(max-width:760px){.invitation-layout{display:block;max-width:560px}.cover{position:relative;height:100svh;min-height:660px}.cover-content{padding:35px 35px 205px}.cover h1 .name{font-size:94px}.invitation-body{padding-top:0}.floating-controls{top:14px;right:15px}.content-section{padding:67px 9%}.welcome{padding-top:75px;padding-bottom:52px}.visual-interlude{height:195px}.cover-frame{inset:13px}.cover-frame:before{inset:4px}.countdown-section{padding:43px 5%;margin:0 5%}.family-grid{gap:12px}.family-section{padding-top:60px}.event-section{padding-top:66px}.petal:nth-child(n+6){display:none}.samples{grid-template-columns:repeat(2,1fr);gap:24px 16px}.card-names{font-size:39px}.catalog-intro{padding:45px 0 49px}.catalog-header{padding:23px 5%}.catalog-intro h1{font-size:57px}}
@media(max-width:430px){.intro-content{padding-bottom:83px}.intro-languages{top:18px;right:17px}.intro-names{font-size:54px}.intro-line{font-size:17px;max-width:290px}.envelope{width:calc(100vw - 60px);height:calc((100vw - 60px)*.641);margin:52px auto 28px}.intro.opening .envelope-letter{transform:translateY(-155px) scale(1.025)}.letter-caption{font-size:6px}.letter-title{font-size:28px;padding-top:6px}.letter-date{margin-top:8px;font-size:7px}.letter-monogram{font-size:23px}.wax-seal{width:50px;height:51px;left:calc(50% - 25px);top:calc(57% - 27px)}.wax-seal span{width:35px;height:35px;font-size:21px}.open-instruction{font-size:10px}.cover-content{padding:45px 20px 205px}.cover h1 .name{font-size:86px}.cover .eyebrow{font-size:8px;max-width:265px}.monogram{width:57px;height:57px;margin-bottom:28px}.hero-date{font-size:16px;max-width:255px}.scroll-cue{bottom:23px}.lang-switch button{min-width:31px;min-height:29px}.music-toggle{min-height:37px;padding:0 10px}.music-toggle>span#musicLabel{display:none}.music-toggle>svg{width:16px;height:16px}.content-section h2{font-size:34px}.invitation-copy{font-size:22px;line-height:1.7}.family-card{padding:25px 8px}.family-card .family-surname{font-size:24px}.family-card .family-names{font-size:16px}.family-note{font-size:19px}.countdown-section h2{font-size:32px}.countdown strong{font-size:39px}.countdown span{font-size:7px;letter-spacing:.11em}.event-card{padding:29px 12px 31px}.closing-names{font-size:43px}.closing-copy{font-size:20px}.samples{grid-template-columns:1fr;max-width:390px;margin:auto}.card-cover{aspect-ratio:4/5}.card-names{font-size:53px;top:36%}.catalog-header>span{font-size:7px}.catalog-intro h1{font-size:46px}.catalog-intro>p:last-child{font-size:11px}.catalog-note{padding-inline:10px}}
@media(max-height:720px) and (min-width:761px){.cover-content{padding-bottom:115px}.cover h1 .name{font-size:72px}.monogram{margin-bottom:23px}.cover .flourish{margin-top:15px}}@media(max-height:720px) and (max-width:760px){.intro-names{font-size:46px}.intro-content{padding-top:45px}.envelope{margin-top:38px}.intro .eyebrow{font-size:8px}.intro-line{font-size:16px}}


/* Keep the cover composition within short phone screens. */
.cover-content{position:absolute;top:11%;left:0;padding:0 27px}
.cover-content .monogram{width:49px;height:49px;margin:0 auto 22px;font-size:24px}
.cover-content .eyebrow{margin-bottom:20px}
.cover-content h1 .name{font-size:clamp(70px,6.6vw,106px);line-height:1.06}
.cover-content h1 .amp{font-size:27px;line-height:1;margin:3px 0 6px}
.cover-content .flourish{height:27px;margin:16px auto 10px}
.cover-content .hero-date{line-height:1.4}
.sample-kina .cover-content{top:20%}
.sample-kina .cover-content h1 .name{font-size:120px}
@media(max-width:760px){.cover-content{top:12%;padding:0 24px}.cover-content h1 .name{font-size:86px}.sample-kina .cover-content{top:23%}}
@media(max-width:430px){.cover-content{top:12%;padding:0 22px}.cover-content h1 .name{font-size:78px}.cover-content .eyebrow{font-size:8px}.cover-content .hero-date{font-size:16px}.sample-kina .cover-content h1 .name{font-size:110px}}
@media(max-height:700px){.cover-content{top:10%}.cover-content .monogram{width:43px;height:43px;margin-bottom:17px}.cover-content h1 .name{font-size:72px}.cover-content .eyebrow{margin-bottom:14px}.cover-content .flourish{margin-top:12px}}

/* V2: readable information and complete, flexible names. */
:root{color:#3d4031}.invite{--ink:#353b2d;--muted:#5b6252;--accent:#646f50;--gold:#927444;--line:#d6ceb8;--hero-text:#30382a;--hero-shadow:none}
.eyebrow{font-size:12px;letter-spacing:.15em}.intro .eyebrow{font-size:12px;color:#515548}.intro-line{color:#555a4b;font-size:20px}.intro-backdrop{background-image:linear-gradient(#f2ece1ec,#f2ece1e5),var(--visual);filter:blur(5px)}
.intro{position:absolute;min-height:100svh;height:auto}.intro-content{padding:92px 24px 88px;max-width:660px}.intro-names{font:400 clamp(40px,7vw,62px)/1.13 var(--script);color:var(--ink);overflow-wrap:anywhere}.intro-names>span{display:block}.intro-names .intro-amp{font:italic 24px/1.3 var(--serif);color:var(--gold);margin:5px 0}.intro-line{max-width:330px}.envelope{margin:38px auto 24px}.open-instruction{font-size:13px;letter-spacing:.025em;color:#515548}.intro-credit{font-size:12px;opacity:1;color:#565b4d}.intro-languages{top:20px;right:20px}.lang-switch{background:#fffdf6f5;border-color:#bcb39d;padding:3px}.lang-switch button{font-size:12px;min-height:40px;min-width:40px;color:#535a48}.letter-title{font-size:24px;line-height:1.2;padding:6px 12px;overflow-wrap:anywhere}.letter-caption{font-size:9px;letter-spacing:.07em}.letter-date{font-size:10px}.letter-monogram{font-size:26px}.letter-border{padding:7px}.floating-controls{right:18px;top:16px;gap:7px}.music-toggle{min-height:48px;padding:0 14px;font-size:12px;background:#fffdf6f5;border-color:#bcb39d}.music-bars{display:none}.music-toggle>span#musicLabel{display:inline}
.cover{min-height:760px}.cover-shade{background:linear-gradient(180deg,#faf7ed20,#faf7ed44 15%,#faf7ed22 62%,#faf7ed88)}.cover-content{position:relative;top:auto;left:auto;padding:100px 40px 165px;align-self:flex-start;margin-top:4vh}.cover-content:before{content:'';position:absolute;inset:110px 12% 135px;background:radial-gradient(ellipse,#fbf8eef0 0%,#fbf8eea8 45%,#fbf8ee00 74%);filter:blur(14px);z-index:-1}.cover-content .monogram{width:48px;height:48px;margin-bottom:20px;font-size:25px}.cover-content .eyebrow{font-size:12px;max-width:100%;margin-bottom:20px;letter-spacing:.12em}.cover-content h1 .name{font-size:clamp(48px,4.8vw,76px);line-height:1.17;max-width:100%;padding:0 6px;overflow-wrap:anywhere}.cover-content h1 .amp{font-size:28px;margin:10px 0}.cover-content .hero-date{font:600 23px/1.5 var(--serif);letter-spacing:.025em}.cover-content .hero-city{font-size:13px;letter-spacing:.06em;line-height:1.5;margin-top:6px}.cover-content .flourish{margin:20px auto 15px}.scroll-cue{bottom:32px;gap:10px;background:#fbf8eee8;border-radius:30px;padding:12px 20px;color:var(--ink)}.scroll-cue>span:first-child{font-size:11px;letter-spacing:.08em}.scroll-stroke{height:20px}
.invitation-body{padding-top:58px;background-image:none}.content-section{padding:42px 9%}.script-label{font-size:32px;color:#667151;margin-bottom:8px}.content-section h2{font-size:38px;line-height:1.2}.flourish{width:110px;height:26px;margin:18px auto}.invitation-copy{font-size:23px;line-height:1.6;max-width:470px}.welcome{padding-top:38px;padding-bottom:26px}.event-section{padding-top:24px;padding-bottom:42px;scroll-margin-top:85px}.event-card{margin-top:24px;padding:28px 24px;background:#fffdf8;border-radius:130px 130px 8px 8px;box-shadow:0 6px 24px #3b402208}.event-card:after{border-radius:124px 124px 4px 4px}.event-number{font-size:12px;letter-spacing:.08em;color:var(--muted)}.event-card h3{font-size:30px;margin:9px 0 20px}.event-date{font-size:27px;line-height:1.3}.event-day{font-size:13px;letter-spacing:.06em;line-height:1.5}.event-time{font:600 21px/1.5 var(--serif)}.venue{font-size:27px;line-height:1.3;max-width:100%;overflow-wrap:anywhere}.address{font-size:14px;line-height:1.75;max-width:360px;color:#535b49;overflow-wrap:anywhere}.route-link{font-size:13px;font-weight:600;letter-spacing:.025em;text-transform:none;min-height:48px;min-width:175px;background:var(--ink);color:#fffdf3;border-color:var(--ink);border-radius:6px;padding:12px 20px}.route-link:hover{background:#4e593f}.event-icon{width:24px;height:24px}.family-section{padding-top:28px;padding-bottom:35px}.family-grid{max-width:100%;gap:18px;margin:25px auto 20px}.family-card{padding:25px 18px;background:#fffdf680;min-width:0}.family-card>span{font-size:12px;letter-spacing:.06em;margin-bottom:15px}.family-card .parent-name{font:500 22px/1.4 var(--serif);margin:0;overflow-wrap:anywhere;text-wrap:balance}.family-card .parent-and{display:block;font:italic 18px/1.2 var(--serif);color:var(--gold);margin:8px 0}.family-note{font-size:20px;line-height:1.55;color:#535b49;margin-top:18px}.countdown-section{padding:32px 6%;margin:8px 6% 36px;background:var(--soft)}.countdown-section h2{font-size:31px}.countdown-section .script-label{font-size:28px}.countdown{gap:0;max-width:430px;margin-top:18px}.countdown strong{font-size:42px}.countdown span{font-size:12px;letter-spacing:0;text-transform:none;color:#535b49}.countdown-section .flourish{margin:14px auto}
.closing{min-height:0}.closing-inner{padding:35px 9% 22px}.closing-names{font:400 43px/1.2 var(--script);overflow-wrap:anywhere}.closing-names>span{display:block}.closing-names .closing-amp{font:italic 23px/1.2 var(--serif);margin:5px 0;color:var(--gold)}.closing-copy{font-size:21px;line-height:1.5;max-width:390px}.closing .script-label{font-size:28px}.share-link{align-self:center;display:inline-flex;justify-content:center;align-items:center;gap:10px;margin:0 20px 27px;border:1px solid #a8b69d;border-radius:6px;min-height:48px;padding:12px 22px;font-size:14px;font-weight:600;text-decoration:none;color:#35492e;background:#fffdf4}.share-link:hover{background:#e9efdf}.credit{font-size:12px;opacity:1;line-height:1.6;color:#555d4b;margin-bottom:22px}.closing-bg{background-image:linear-gradient(#faf8f0,#faf8f0eb),var(--visual)}.petals{display:none}
@media(max-width:1000px){.cover-content{padding:100px 25px 160px}.cover-content h1 .name{font-size:58px}.family-grid{grid-template-columns:1fr;max-width:380px}.content-section{padding-inline:8%}}
@media(max-width:760px){.invitation-layout{max-width:560px}.cover{height:auto;min-height:100svh}.cover-content{margin-top:0;padding:125px 35px 190px;align-self:center}.cover-content h1 .name{font-size:64px}.cover-content .hero-date{font-size:23px}.invitation-body{padding-top:0}.floating-controls{right:14px;top:12px}.content-section{padding-inline:24px}.welcome{padding-top:44px}.family-grid{grid-template-columns:1fr 1fr;gap:12px}.family-card{padding:23px 12px}.family-card .parent-name{font-size:21px}.countdown-section{padding:30px 14px}.intro-content{padding-top:100px;padding-bottom:85px}.intro-names{font-size:48px}.letter-title{font-size:23px}.envelope{margin-top:32px}}
@media(max-width:430px){.cover-content{padding:105px 27px 185px}.cover-content h1 .name{font-size:58px}.cover-content .eyebrow{font-size:12px}.cover-content .hero-date{font-size:23px}.cover-content .hero-city{font-size:13px}.content-section h2{font-size:34px}.invitation-copy{font-size:22px}.family-grid{grid-template-columns:1fr;max-width:350px}.family-card{padding:23px 22px}.family-card .parent-name{font-size:23px}.countdown strong{font-size:36px}.countdown span{font-size:12px}.countdown-section h2{font-size:29px}.music-toggle{min-height:48px;padding:0 11px}.lang-switch button{min-height:40px;min-width:36px}.intro-names{font-size:44px}.intro-line{font-size:19px}.envelope{width:calc(100vw - 64px);height:calc((100vw - 64px)*.641)}.letter-title{font-size:20px}.letter-caption{font-size:8px}.letter-date{font-size:9px}.closing-names{font-size:40px}}
@media(max-width:350px){.cover-content h1 .name{font-size:50px}.cover-content{padding-inline:25px}.intro-names{font-size:39px}.intro-content{padding-inline:16px}.letter-title{font-size:18px}.event-card{padding:26px 14px}.countdown strong{font-size:31px}.countdown span{font-size:11px}.content-section h2{font-size:31px}.closing-names{font-size:36px}}
@media(max-height:720px){.intro-names{font-size:40px}.intro-content{padding-top:85px;padding-bottom:80px}.envelope{margin-top:28px}.cover-content{padding-top:90px;padding-bottom:140px}.cover-content h1 .name{font-size:54px}.cover{min-height:680px}.intro .eyebrow{font-size:12px}.intro-line{font-size:18px}}

/* Give controls their own strip so they do not sit on invitation text. */
.floating-controls{position:sticky;top:0;right:auto;min-height:72px;padding:10px 18px;justify-content:flex-end;background:#faf8f0f5;border-bottom:1px solid #d6ceb866;backdrop-filter:blur(8px)}
.cover{top:72px;height:calc(100svh - 72px)}
.cover-content h1 .name{text-wrap:balance}
@media(max-width:760px){.cover{top:auto;height:auto;min-height:calc(100svh - 72px)}.cover-content{padding-top:65px;padding-bottom:155px}.floating-controls{padding:10px 14px}}
.intro{inset:0 0 auto}
@media(max-height:720px){.intro{align-items:flex-start}.intro-content{padding-top:95px;padding-bottom:85px}}

/* V3: quiet controls, paired name lines and restrained petals. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.floating-controls{position:fixed;top:18px;right:18px;min-height:0;padding:0;border:0;background:none;backdrop-filter:none;gap:8px;z-index:25}
.lang-switch{padding:0;background:#fffdf4d9;border:1px solid #c7bea9;border-radius:22px;box-shadow:none;gap:0;overflow:hidden}
.lang-switch button{min-width:38px;min-height:38px;border-radius:0;font-size:11px;padding:0 9px}.lang-switch button.selected{background:transparent;color:#303b2a;box-shadow:inset 0 -2px #67714f}
.music-toggle{width:40px;height:40px;min-height:40px;padding:0;justify-content:center;border-radius:50%;background:#fffdf4df;border:1px solid #c7bea9;box-shadow:none}.music-toggle>svg{width:18px;height:18px}.music-toggle[aria-pressed=false]>svg{opacity:.45}.music-toggle[aria-pressed=false]:after{content:'';position:absolute;width:21px;height:1px;background:#535b48;transform:rotate(-45deg);pointer-events:none}
.intro-languages{top:18px;right:18px}.intro-credit{font-size:11px}
.cover{top:0;height:100svh;min-height:850px}.cover-content{margin-top:0;padding:92px 36px 130px}.cover-content:before{inset:140px 6% 120px;background:radial-gradient(ellipse,#fbf8eed9,#fbf8ee44 60%,transparent 77%)}
.cover-content .monogram{width:65px;height:65px;font:italic 23px/1 var(--serif);letter-spacing:0;margin-bottom:22px}.wax-seal span{font:italic 15px/1 var(--serif);letter-spacing:0}.letter-monogram{letter-spacing:0;font-size:23px}
.cover-content h1 .name{font:italic 500 clamp(48px,4.6vw,68px)/1.03 var(--serif);padding:0 5px;max-width:100%;letter-spacing:-.025em;overflow-wrap:anywhere;display:flex;flex-direction:column;justify-content:center}.name-line{display:block}.cover-content h1 .name.two-lines{min-height:2.06em}.cover-content h1 .amp{font:italic 29px/1 var(--serif);margin:13px 0}.cover-content .eyebrow{font-size:12px;letter-spacing:.10em;line-height:1.6;margin-bottom:22px}
.intro-names{font:italic 500 43px/1.08 var(--serif);letter-spacing:-.02em}.intro-names>.person{display:flex;flex-direction:column;justify-content:center}.intro-names .two-lines{min-height:2.16em}.intro-names .intro-amp{font-size:23px;margin:10px 0}.intro-content{padding-top:86px;padding-bottom:80px}.intro-line{font-size:19px;margin-top:15px}.envelope{margin-top:30px}.letter-title{font:italic 500 22px/1.12 var(--serif)}
.hero-time{font:500 20px/1.4 var(--serif);margin:5px 0}.hero-venue{font:500 23px/1.4 var(--serif);margin:6px auto 0;max-width:100%;overflow-wrap:anywhere}.cover-content .hero-date{font-size:24px}.cover-content .flourish{margin:22px auto 17px}
.scroll-cue{bottom:27px;padding:0;background:transparent;border-radius:0;gap:12px;color:#3a4530;text-shadow:0 1px 5px #fffcf7;letter-spacing:0}.scroll-cue>span:first-child{font-size:12px;letter-spacing:.06em;font-weight:600}.scroll-stroke{height:35px;width:1px;background:#7d865f;opacity:1}.scroll-stroke:after{background:#faf8f0;animation:scroll 2.4s ease-in-out infinite}
.invitation-body{padding-top:16px}.welcome{padding-top:38px;padding-bottom:32px}.welcome h2{font-size:36px}.welcome .script-label{font-size:30px}.event-section{padding-top:24px;padding-bottom:32px;scroll-margin-top:85px}.event-card{padding-top:36px}.event-card .event-number,.event-card h3{display:none}.family-section{padding-top:30px;padding-bottom:30px}.family-grid{margin-bottom:0;gap:20px}.family-card{border:0;background:none;padding:20px 10px;border-top:1px solid #d8d0bc;border-bottom:1px solid #d8d0bc;border-radius:0}.family-card:before{display:none}.family-card>span{font-size:12px;margin-bottom:15px;letter-spacing:.06em}.family-card .parent-name{font-size:23px;line-height:1.35}.family-card .parent-and{margin:9px 0}.family-section .flourish{margin-bottom:23px}.countdown-section{margin-top:13px;margin-bottom:28px;padding-top:28px;padding-bottom:28px}.closing-inner{padding:32px 9% 23px}.closing .script-label{font-size:30px;margin-bottom:15px}.closing-copy{font-size:22px}.closing .flourish{display:none}.credit{font-size:11px}
/* Petals remain in narrow edge lanes, behind content and away from text. */
.petals{display:block;z-index:0;isolation:isolate;opacity:1}.intro-active .petals{opacity:0}.petal{width:8px;height:12px;opacity:0;background:radial-gradient(ellipse at 35% 25%,#fff9f1,#d6b3a1);box-shadow:none;border-radius:75% 12% 70% 25%;animation:rose-drift var(--duration,25s) linear var(--delay,0s) infinite;left:var(--left,1%);will-change:transform;pointer-events:none}.petal:nth-child(n+6){display:none}.invitation{position:relative;z-index:1;background:transparent}.invitation-layout{box-shadow:none}
@keyframes rose-drift{0%{transform:translate3d(0,-35px,0) rotate(0deg);opacity:0}12%{opacity:.30}48%{transform:translate3d(var(--drift,5px),49svh,0) rotate(95deg);opacity:.34}87%{opacity:.25}100%{transform:translate3d(0,110svh,0) rotate(210deg);opacity:0}}
/* The edge overlay is clipped out of the reading area. */
.petals{z-index:12;mask-image:linear-gradient(to right,#000 0 18px,transparent 18px calc(100% - 18px),#000 calc(100% - 18px) 100%)}
@media(max-width:1000px){.cover-content{padding:96px 25px 130px}.cover-content h1 .name{font-size:57px}.family-grid{max-width:410px}}
@media(max-width:760px){.cover{top:auto;height:auto;min-height:100svh}.cover-content{padding:93px 34px 130px;align-self:flex-start}.cover-content h1 .name{font-size:61px}.cover-content .monogram{width:60px;height:60px}.floating-controls{top:14px;right:14px}.invitation-body{padding-top:0}.intro-content{padding-top:85px;padding-bottom:78px}.intro-names{font-size:42px}.family-grid{grid-template-columns:1fr;max-width:390px}.family-card{padding:21px 14px}.family-card .parent-name{font-size:24px}.cover-frame{inset:12px}}
@media(max-width:430px){.cover-content{padding:89px 28px 125px}.cover-content h1 .name{font-size:53px}.cover-content h1 .amp{margin:10px 0;font-size:27px}.cover-content .eyebrow{font-size:11px;letter-spacing:.08em;margin-bottom:19px}.cover-content .hero-date{font-size:23px}.hero-time{font-size:20px}.hero-venue{font-size:22px}.intro-names{font-size:38px}.intro-line{font-size:18px}.intro-content{padding-top:85px}.letter-title{font-size:20px}.music-toggle{width:38px;height:38px;min-height:38px}.lang-switch button{min-height:36px;min-width:35px}.welcome h2{font-size:32px}.cover-content .monogram{margin-bottom:20px}.scroll-cue>span:first-child{font-size:11px}}
@media(max-width:350px){.cover-content h1 .name{font-size:48px}.cover-content{padding-inline:26px}.intro-names{font-size:35px}.intro-content{padding-inline:16px}.letter-title{font-size:18px}.family-card .parent-name{font-size:22px}.hero-venue{font-size:21px}}
@media(max-height:720px){.cover{min-height:790px}.cover-content{padding-top:90px}.cover-content h1 .name{font-size:49px}.intro-names{font-size:34px}.intro-content{padding-top:90px}.intro{align-items:flex-start}}


/* A single opening scene: release, lift, expand, then reveal. */
html{scroll-behavior:smooth}
.wax-seal .seal-flower{font:28px/1 var(--serif);letter-spacing:0;opacity:.65}
.cover-content{padding-top:150px}
.cover-content .eyebrow{margin-bottom:30px}
.scroll-stroke{width:2px;height:42px;background:#485537;box-shadow:0 0 0 3px #fffaf15c;overflow:hidden;opacity:1}
.scroll-stroke:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#faf6e8 45%,#faf6e8 60%,transparent);animation:scroll 2.1s ease-in-out infinite}
.scroll-cue{color:#303d26;text-shadow:0 1px 4px #fff9eb}
.intro-backdrop{animation:quiet-breath 16s ease-in-out infinite alternate}
.envelope{animation:envelope-float 5s ease-in-out infinite;transform-origin:50% 55%}
.intro.opening .envelope{animation:none;transform:translateY(8px) rotate(-2deg);transition:transform 1.3s cubic-bezier(.22,.75,.18,1);filter:drop-shadow(0 24px 26px #30201833)}
.intro.opening .wax-seal{transform:translate(28px,-42px) rotate(25deg) scale(1.08);opacity:0;transition:transform .65s ease,opacity .5s ease .25s}
.intro.opening .envelope-lid{transform:rotateX(178deg);transition:transform 1.05s cubic-bezier(.25,.6,.2,1) .2s,filter 1s;z-index:1}
.intro.opening .envelope-letter{transform:translateY(-165px) rotate(2deg) scale(1.06);transition:transform 1s cubic-bezier(.2,.7,.2,1) .6s;z-index:2;opacity:1}
.intro.opening .intro-names,.intro.opening .intro-line,.intro.opening .eyebrow{opacity:0;transform:translateY(-18px);transition:opacity .7s ease .35s,transform .9s ease .35s}
.intro.opening .open-instruction,.intro.opening .open-line,.intro.opening .intro-languages,.intro.opening .intro-credit{opacity:0;transition:opacity .4s}
.intro.departing{opacity:0;visibility:visible;transform:scale(1.035);transition:opacity 1.2s ease,transform 1.5s ease;pointer-events:none}
.welcome{scroll-margin-top:80px}
.opening-scene{overflow:hidden}
.opening-card{position:fixed;z-index:50;pointer-events:none;background:linear-gradient(115deg,#fffdf5,#f3eadb);box-shadow:0 12px 50px #48391a25;padding:11px;overflow:hidden;display:grid;place-items:center}
.opening-card .letter-border{width:100%;height:100%;transition:opacity .6s ease}
.opening-card.dissolving{opacity:0;transition:opacity .55s ease}
.opening-card.dissolving .letter-border{opacity:0}
.opening-scene .cover-content>*{opacity:0}
.opening-scene .scroll-cue,.opening-scene .floating-controls{opacity:0}
.arriving .cover-image{animation:cover-arrive 2.4s cubic-bezier(.2,.7,.2,1) both}
.arriving .cover-content>*{animation:words-arrive 1.1s cubic-bezier(.2,.7,.2,1) both}
.arriving .cover-content .eyebrow{animation-delay:.18s}
.arriving .cover-content h1{animation-delay:.4s}
.arriving .cover-content .flourish{animation-delay:.65s}
.arriving .hero-date{animation-delay:.85s}
.arriving .hero-time{animation-delay:1s}
.arriving .hero-venue{animation-delay:1.15s}
.arriving .scroll-cue,.arriving .floating-controls{animation:words-arrive 1s ease 1.5s both}
.invitation-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.invitation-ready .reveal.in-view{opacity:1;transform:none}
.petals{display:block}
@keyframes quiet-breath{from{transform:scale(1)}to{transform:scale(1.045)}}
@keyframes envelope-float{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-5px) rotate(.4deg)}}
@keyframes words-arrive{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes cover-arrive{from{transform:scale(1.065);filter:brightness(1.08)}to{transform:scale(1);filter:brightness(1)}}
@media(max-width:760px){.cover-content{padding-top:152px}}
@media(max-width:430px){.cover-content{padding-top:135px}}
@media(max-height:720px){.cover-content{padding-top:115px}}

/* Keep horizontal centering separate from the entrance's vertical movement. */
.arriving .scroll-cue{animation:cue-arrive 1s ease 1.5s both}
@keyframes cue-arrive{from{opacity:0;transform:translate(-50%,22px)}to{opacity:1;transform:translate(-50%,0)}}
.petals{mask-image:none;-webkit-mask-image:none;z-index:12;opacity:1;pointer-events:none}
.petal,.petal:nth-child(n+6){display:block;width:var(--size,14px);height:calc(var(--size,14px)*1.4);top:-50px;left:var(--left);border-radius:80% 12% 74% 26%;background:radial-gradient(ellipse at 30% 20%,var(--light),var(--dark));box-shadow:inset -1px -1px 2px #79304822;opacity:0;animation:visible-rose-fall var(--duration,10s) linear var(--delay,0s) infinite}
.petal.petal-burst{animation-iteration-count:1}
@keyframes visible-rose-fall{
  0%{opacity:0;transform:translate3d(0,0,0) rotate(var(--turn)) rotateY(0deg)}
  7%{opacity:.88}
  30%{transform:translate3d(var(--drift),36svh,0) rotate(calc(var(--turn) + 70deg)) rotateY(35deg)}
  60%{transform:translate3d(calc(var(--drift)*-.45),72svh,0) rotate(calc(var(--turn) + 155deg)) rotateY(-30deg)}
  90%{opacity:.88}
  100%{opacity:0;transform:translate3d(var(--drift),120svh,0) rotate(calc(var(--turn) + 230deg)) rotateY(15deg)}
}

.cover-content{color:var(--hero-text)}
.intro-names,.cover-content h1 .name,.cover-content h1 .amp,.cover-content .eyebrow,.cover-content .hero-date,.hero-time,.hero-venue,.hero-event-label{color:var(--hero-text)}
.hero-events{width:100%;text-align:center}.hero-event{display:flex;flex-direction:column;align-items:center}.cover-content .hero-date{width:100%;max-width:none;margin:0 auto;text-align:center}.hero-time,.hero-venue,.hero-event-label{width:100%;text-align:center}.hero-event+.hero-event{margin-top:18px}.hero-event-label{font:600 10px/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase;margin:0 0 3px}
.arriving .hero-events{animation-delay:.85s}
.events{display:grid;gap:25px}.event-card h3.event-heading{display:block;font:500 30px/1.2 var(--serif);margin:0 0 24px;color:var(--ink)}
.content-section,.content-section h2,.family-card .parent-name,.event-date,.event-time,.venue,.closing-copy{color:var(--ink)}
.script-label{color:var(--muted)}.route-link{background:var(--ink);color:var(--paper)}.share-link{color:var(--ink);border-color:var(--line)}.family-card{border-color:var(--line)}.credit{color:var(--muted)}
.scroll-cue{color:var(--hero-text)}.scroll-stroke{background:var(--ink)}
.theme-rose{--ink:#60463d;--hero-text:#60463d;--muted:#836454;--gold:#9b784a;--line:#dbc9b4;--paper:#fbf7ef;--visual:url('soz.webp')}
.theme-sage{--ink:#354b3d;--hero-text:#324834;--muted:#5a6a53;--gold:#9a8150;--line:#cdd6bb}
.theme-twilight{--ink:#614753;--hero-text:#593a4b;--muted:#806675;--gold:#96744d;--line:#d7c4c6}
.theme-wine{--ink:#65313d;--hero-text:#faead0;--muted:#81555e;--gold:#b99c60;--line:#ddbeb8;--hero-shadow:0 2px 10px #190506}
.theme-wine .cover-shade{background:linear-gradient(#21070920,#21070910 65%,#21070966)}
.theme-wine .cover-content:before{background:radial-gradient(ellipse,#23060a66,transparent 72%)}
.theme-wine .scroll-cue{color:#ffe8b9;text-shadow:0 1px 4px #230509}
.theme-wine .scroll-stroke{background:#efc985;box-shadow:0 0 0 3px #41101c44}.theme-wine .scroll-stroke:after{background:linear-gradient(transparent,#fff4dc 45%,#fff4dc 60%,transparent)}
.theme-sage .scroll-cue,.theme-twilight .scroll-cue{color:#fffbea;text-shadow:0 1px 3px #303424,0 0 6px #303424,0 0 10px #303424}
.theme-sage .scroll-stroke,.theme-twilight .scroll-stroke{background:#fff1c6;box-shadow:0 0 0 2px #39432b77}
.theme-wine .intro-languages .lang-switch{background:#fff4e7}.theme-wine .intro-languages button{color:#784354}.theme-wine .intro-languages button.selected{background:transparent;color:#512232;box-shadow:inset 0 -2px #854a5a}
.theme-wine .countdown-section{background:#f2e6df}.theme-wine .countdown strong{color:#65313d}
.theme-sage .cover-content .eyebrow{position:relative;isolation:isolate;color:#2d4430;text-shadow:0 1px 3px #fff9ed}
.theme-sage .cover-content .eyebrow:before{content:'';position:absolute;inset:-12px -22px;z-index:-1;background:radial-gradient(ellipse,#fff9edf5 30%,#fff9edde 65%,transparent 100%);filter:blur(8px);pointer-events:none}
.theme-wine .closing-bg{background-image:linear-gradient(#fbf3eef7,#fbf3eef7),var(--visual)}
.theme-wine .credit{color:#65313d;font-size:12px;font-weight:500;opacity:1;text-shadow:none}
.sample-kina .cover-content{padding-top:215px}.sample-kina .cover-content h1 .name{font-size:86px}.sample-kina .intro-names{font-size:67px}.sample-kina .intro-line{max-width:310px}
.sample-kina-dugun .cover-content{padding-top:100px;padding-bottom:130px}.sample-kina-dugun .hero-date{font-size:21px}.sample-kina-dugun .hero-time{font-size:17px;margin:2px 0}.sample-kina-dugun .hero-venue{font-size:20px;margin-top:1px}
.sample-kina-dugun .cover-content .flourish{margin:17px auto}.sample-kina-dugun .cover-content .eyebrow{max-width:270px;margin-bottom:24px}
.sample-kina-dugun .cover-content:before{inset:65px 0 95px;background:radial-gradient(ellipse,#fff9eef5 0%,#fff9eee8 55%,#fff9ee66 78%,transparent 95%);filter:blur(18px)}
@media(max-width:760px){.sample-kina .cover-content{padding-top:200px}.sample-kina-dugun .cover-content{padding-top:105px}.sample-kina-dugun .cover{min-height:850px}}
@media(max-width:350px){.sample-kina-dugun .cover-content{padding-top:100px}.sample-kina-dugun .cover-content h1 .name{font-size:45px}}

/* Multiple celebrations: a quiet cover and separate event details. */
.sample-coklu-etkinlik .cover-content{padding-top:175px;padding-bottom:180px}
.sample-coklu-etkinlik .cover-content .eyebrow{max-width:290px;margin:0 auto 30px;line-height:1.8}
.multi-cover-note{font:italic 24px/1.5 var(--serif);max-width:290px;margin:12px auto 0;color:var(--hero-text)}
.sample-coklu-etkinlik .cover-content:before{inset:90px 0 130px;background:radial-gradient(ellipse,#fff9eef0 0%,#fff9eec9 55%,transparent 90%);filter:blur(18px)}
.countdown-event{font:500 20px/1.5 var(--serif);color:var(--ink);margin:13px 0 0}
.intro-credit img{display:block;width:104px;height:auto}.credit a{display:inline-block;border:0;vertical-align:middle;margin:0 3px}.credit a img{width:85px;height:auto;display:block}
@media(max-width:760px){.sample-coklu-etkinlik .cover-content{padding-top:170px}.sample-coklu-etkinlik .cover{min-height:100svh}}
@media(max-height:720px){.sample-coklu-etkinlik .cover-content{padding-top:140px}.multi-cover-note{font-size:22px}}

/* Optional order notes occupy space only when explicitly enabled. */
.event-note{margin:27px 0 0;padding:21px 0 0;border-top:1px solid var(--line);font:500 22px/1.6 var(--serif);color:var(--ink);text-align:center;white-space:pre-line;overflow-wrap:anywhere}
.event-note p{margin:0}.event-note.long-note,.common-note .long-note{text-align:left;font-size:21px}
.common-note{padding-top:22px;padding-bottom:22px}.common-note p{margin:0 auto;max-width:500px;font:500 22px/1.6 var(--serif);color:var(--ink);white-space:pre-line;overflow-wrap:anywhere}

/* Touch focus and scroll cues share consistent behavior across every palette. */
#coupleNames:focus,a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none;box-shadow:none}
#coupleNames{-webkit-tap-highlight-color:transparent}
.scroll-stroke{background:var(--ink);box-shadow:0 0 0 3px #fffaf15c}
.scroll-stroke::after{background:linear-gradient(transparent,#faf6e8 45%,#faf6e8 60%,transparent);animation:scroll 2.1s ease-in-out infinite}
.theme-wine .scroll-stroke{background:#734324;box-shadow:0 0 0 3px #fff1c677}
.theme-sage .scroll-stroke{background:#354b3d;box-shadow:0 0 0 3px #fffaf1b3}
.theme-twilight .scroll-stroke{background:#614753;box-shadow:0 0 0 3px #fffaf1b3}
.theme-wine .scroll-stroke::after,.theme-sage .scroll-stroke::after,.theme-twilight .scroll-stroke::after{background:linear-gradient(transparent,#fff4dc 45%,#fff4dc 60%,transparent)}
.countdown-group+.countdown-group{margin-top:34px;padding-top:30px;border-top:1px solid var(--line)}
.countdown-complete{font:500 18px/1.5 var(--serif);color:var(--muted);margin:16px 0 0}
.event-schedule{margin-top:28px;padding-top:25px;border-top:1px solid var(--line);text-align:left}
.event-schedule h4{font:500 28px/1.3 var(--serif);text-align:center;margin:0 0 23px;color:var(--ink)}
.event-schedule ol{list-style:none;padding:0;margin:0}.event-schedule li{display:grid;grid-template-columns:58px minmax(0,1fr);gap:15px;position:relative;padding:0 0 20px}
.event-schedule li:last-child{padding-bottom:0}.event-schedule time{font:600 18px/1.6 var(--serif);color:var(--ink)}
.event-schedule p{font:500 20px/1.5 var(--serif);margin:0;color:var(--ink);overflow-wrap:anywhere;white-space:pre-line}

/* Fit the opening composition to the visible screen, including browser bars. */
.cover,.sample-kina-dugun .cover,.sample-coklu-etkinlik .cover{height:var(--invite-screen-height,100vh);height:min(100svh,var(--invite-screen-height,100svh));min-height:0}
.cover .cover-content{position:absolute;top:var(--cover-top,100px);left:0;margin:0;padding:0 28px;align-self:auto;transform:scale(var(--cover-scale,1));transform-origin:top center}
.cover .cover-content:before{inset:-30px 0 -20px}
.scroll-cue{bottom:max(22px,env(safe-area-inset-bottom));padding:0;background:none;border:0;border-radius:0;box-shadow:none;outline:none;gap:10px}
.cover .scroll-stroke{width:2px;height:42px;opacity:1;border:0;border-radius:0;box-shadow:none;outline:none;background:var(--ink)}
.cover .scroll-stroke::after{background:linear-gradient(transparent,#fff4dc 45%,#fff4dc 60%,transparent);animation:scroll 2.1s ease-in-out infinite}
.theme-wine .cover .scroll-stroke{background:#efc985}
.theme-sage .cover .scroll-stroke{background:#354b3d}
.theme-twilight .cover .scroll-stroke{background:#614753}
@media(max-width:760px){.cover .cover-content{padding-inline:24px}.scroll-cue{bottom:max(20px,env(safe-area-inset-bottom))}}
