:root{--paper:#fff;--cream:#ebe1c6;--cream-2:#e5dcb1;--sage-pale:#d4d3b3;--sage-soft:#cbd1a1;--sage:#aac05c;--olive-soft:#8d926f;--olive:#5f6c4a;--olive-deep:#4e5138;--ink:var(--olive-deep);--ink-soft:var(--olive);--rose:var(--sage);--rose-soft:var(--sage-soft);--gold:var(--sage);--gold-deep:var(--olive);--shadow:0 30px 80px -30px #4e513859;--serif:"Cormorant Garamond", "Times New Roman", serif;--sans:"Inter", -apple-system, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--gutter:22px}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--ink);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overflow-x:hidden}body{background:var(--cream);width:100%;min-height:100vh;position:relative}img,svg{max-width:100%;display:block}.grain{pointer-events:none;z-index:200;opacity:.08;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='3'/><feColorMatrix values='0 0 0 0 0.1  0 0 0 0 0.08  0 0 0 0 0.07  0 0 0 0.6 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");position:fixed;inset:0}.vignette{pointer-events:none;z-index:199;position:fixed;inset:0;box-shadow:inset 0 0 120px 30px #4e513859}.progress{background:var(--gold);z-index:250;width:0%;height:1px;box-shadow:0 0 8px var(--gold);position:fixed;top:0;left:0}.chrome{z-index:240;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--sage-soft);mix-blend-mode:difference;font-size:10px;position:fixed}.chrome--tl{top:18px;left:18px}.chrome--tr{text-align:right;top:18px;right:18px}.chrome--bl{bottom:18px;left:18px}.chrome--br{text-align:right;bottom:18px;right:18px}.chrome .dot{background:var(--rose);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:6px;animation:2.4s infinite pulse;display:inline-block}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}.scene{isolation:isolate;width:100%;min-height:100vh;position:relative;overflow:hidden}.scene__bg{z-index:0;position:absolute;inset:0}.scene__layer{z-index:1;will-change:transform, opacity;position:absolute;inset:0}.scene__inner{z-index:5;width:100%;min-height:100vh;padding:0 var(--gutter);flex-direction:column;justify-content:center;display:flex;position:relative}.eyebrow{font-family:var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--ink-soft);font-size:10.5px}.eyebrow--cream{color:var(--cream);opacity:.7}.display{font-family:var(--serif);letter-spacing:-.01em;font-style:italic;font-weight:400;line-height:.95}.kicker{font-family:var(--serif);letter-spacing:.005em;font-style:italic;font-weight:400}.body{font-family:var(--serif);color:var(--ink-soft);text-wrap:pretty;font-size:17px;line-height:1.55}.rule{vertical-align:middle;opacity:.5;background:currentColor;height:1px;display:inline-block}.split .ch,.split .word{will-change:transform, opacity;display:inline-block}#scene-opening{background:var(--olive-deep);color:var(--cream)}#scene-opening .scene__inner{text-align:center;justify-content:center;align-items:center;padding:0 32px}.opening-leaves{z-index:0;color:var(--olive);opacity:.55;pointer-events:none;position:absolute;inset:0}.opening-leaves .leaf{width:180px;height:240px;position:absolute}.opening-leaves .l1{top:-40px;left:-40px;transform:rotate(-25deg)}.opening-leaves .l2{width:200px;height:260px;top:-20px;right:-50px;transform:rotate(35deg)scaleX(-1)}.opening-leaves .l3{opacity:.7;width:220px;height:280px;bottom:-30px;left:-60px;transform:rotate(155deg)}.opening-leaves .l4{bottom:-50px;right:-40px;transform:rotate(-160deg)}.opening-frame{z-index:1;pointer-events:none;position:absolute;inset:48px 32px 110px}.opening-frame .frame-corner{border-color:var(--sage);border-style:solid;width:28px;height:28px;position:absolute}.opening-frame .tl{border-width:1px 0 0 1px;top:0;left:0}.opening-frame .tr{border-width:1px 1px 0 0;top:0;right:0}.opening-frame .bl{border-width:0 0 1px 1px;bottom:0;left:0}.opening-frame .br{border-width:0 1px 1px 0;bottom:0;right:0}#scene-opening .credits-stamp{font-family:var(--mono);letter-spacing:.4em;color:var(--sage);opacity:.85;z-index:5;margin-bottom:24px;font-size:10px;position:relative}#scene-opening .opening-portrait{z-index:5;aspect-ratio:3/4;border-radius:2px;width:clamp(240px,70vw,360px);margin:0 auto 24px;position:relative;overflow:hidden}#scene-opening .opening-portrait__img{object-fit:contain}#scene-opening h1.title{font-family:var(--serif);color:var(--cream);z-index:5;margin:0;font-style:italic;font-weight:300;position:relative}#scene-opening h1.title .preline{font-family:var(--mono);letter-spacing:.45em;text-transform:uppercase;color:var(--sage-soft);margin-bottom:22px;font-size:12px;font-style:normal;display:block}#scene-opening h1.title .nameline{font-family:var(--serif);color:var(--paper);letter-spacing:-.02em;white-space:nowrap;flex-wrap:nowrap;justify-content:center;align-items:baseline;gap:.2em;font-size:clamp(40px,11vw,72px);font-style:italic;font-weight:500;line-height:1;display:flex}#scene-opening h1.title .nameline .name-mar,#scene-opening h1.title .nameline .name-zai{display:inline-block}#scene-opening h1.title .amp{font-family:var(--serif);color:var(--sage);margin:0;font-size:.78em;font-style:italic;font-weight:300;line-height:1;display:inline-block;transform:translateY(-.04em)}#scene-opening h1.title .dateline{font-family:var(--mono);letter-spacing:.4em;color:var(--sage-soft);margin-top:16px;font-size:13px;font-style:normal;display:block}#scene-opening .reel-strip{background:repeating-linear-gradient(90deg,#0000 0 28px,#ebe1c62e 28px 32px);border-top:1px solid #ebe1c633;border-bottom:1px solid #ebe1c633;width:200%;height:28px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}#scene-opening .scroll-cue{font-family:var(--mono);letter-spacing:.4em;color:var(--cream);opacity:.7;text-transform:uppercase;font-size:9.5px;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}#scene-opening .scroll-cue:after{content:"";background:var(--cream);transform-origin:top;width:1px;height:32px;margin:12px auto 0;animation:2.2s ease-in-out infinite drip;display:block}@keyframes drip{0%{opacity:0;transform:scaleY(.2)}40%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}#scene-quote{background:var(--cream)}#scene-quote .scene__inner{padding:0 28px}#scene-quote .quote-mark{font-family:var(--serif);color:var(--rose);opacity:.35;margin-bottom:-30px;margin-left:-8px;font-size:180px;font-style:italic;line-height:.6}#scene-quote .quote{font-family:var(--serif);color:var(--ink);letter-spacing:-.005em;text-wrap:balance;font-size:clamp(28px,8vw,44px);font-style:italic;font-weight:300;line-height:1.18}#scene-quote .quote em{color:var(--rose);font-style:italic}#scene-quote .quote-attrib{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);margin-top:32px;font-size:10px}#scene-quote .quote-attrib:before{content:"";background:var(--ink-soft);vertical-align:middle;width:28px;height:1px;margin-right:10px;display:inline-block}.petal{pointer-events:none;opacity:.5;width:28px;height:28px;position:absolute}#scene-cast{background:var(--cream-2)}#scene-cast .scene__inner{padding:0}.cast-stage{grid-template-rows:1fr 1fr;width:100%;height:100vh;display:grid;position:relative}.cast-half{position:relative;overflow:hidden}.cast-half__plate{background:var(--ink-soft);flex-direction:column;display:flex;position:absolute;inset:0;overflow:hidden}.cast-half__plate:before{content:"";background:var(--olive);position:absolute;inset:0}.cast-half__placeholder{font-family:var(--mono);letter-spacing:.25em;color:#ebe1c68c;text-transform:uppercase;font-size:9px;position:absolute;bottom:14px;left:14px}.cast-half__img{z-index:2;object-fit:contain;flex:1;width:100%;min-height:0;position:relative}.cast-half__info{z-index:5;flex-direction:column;gap:7px;padding:0 22px 28px;display:flex;position:relative}.cast-half--bride .cast-half__info{text-align:left;align-items:flex-start}.cast-half--groom .cast-half__info{text-align:right;order:-1;align-items:flex-end;padding:22px 22px 0}.cast-half__name{font-family:var(--serif);color:var(--paper);letter-spacing:-.02em;font-size:clamp(28px,7.5vw,96px);font-style:italic;font-weight:300;line-height:.95}.cast-half__parents{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cream);font-size:10px;line-height:1.65}.cast-half__role{font-family:var(--mono);letter-spacing:.4em;text-transform:uppercase;color:var(--gold);z-index:6;padding:22px;font-size:9.5px;position:relative}.cast-half--bride .cast-half__role{text-align:left;order:-1}.cast-half--groom .cast-half__role{text-align:right}.cast-half__scrim{z-index:4;pointer-events:none;width:75%;height:65%;position:absolute}.cast-half--bride .cast-half__scrim{background:radial-gradient(at 0 100%,#140f0a99,#0000 70%);bottom:0;left:0}.cast-half--groom .cast-half__scrim{background:radial-gradient(at 100% 0,#140f0a99,#0000 70%);top:0;right:0}.cast-divider{background:var(--cream);z-index:10;transform-origin:50%;height:1px;position:absolute;top:50%;left:0;right:0}.cast-amp{background:var(--cream);width:56px;height:56px;color:var(--rose);font-family:var(--serif);z-index:11;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;margin-top:-28px;margin-left:-28px;padding-bottom:6px;font-size:38px;font-style:italic;line-height:1;display:flex;position:absolute;top:50%;left:50%}#scene-story{background:var(--paper)}#scene-story .scene__inner{padding:0}.story-stage{width:100%;height:100vh;position:relative;overflow:hidden}.story-track{will-change:transform;align-items:center;height:100%;display:flex;position:absolute;top:0;left:0}.story-card{flex-direction:column;flex:0 0 100vw;justify-content:space-between;height:100%;padding:42px 28px;display:flex;position:relative}.story-card__year{font-family:var(--serif);color:var(--rose);opacity:.9;letter-spacing:-.03em;font-size:clamp(80px,28vw,160px);font-style:italic;font-weight:300;line-height:.85}.story-card__year .small{font-size:11px;font-style:normal;font-family:var(--mono);letter-spacing:.18em;color:var(--ink-soft);text-transform:uppercase;max-width:200px;margin-top:18px;line-height:1.4;display:block}.story-card__body{max-width:320px}.story-card__title{font-family:var(--serif);color:var(--ink);margin-bottom:12px;font-size:28px;font-style:italic;line-height:1.1}.story-card__copy{font-family:var(--serif);color:var(--ink-soft);padding-bottom:20px;font-size:16px;line-height:1.5}.story-card__plate{border-radius:2px;width:100%;max-width:400px;height:260px}.story-card__plate .tag{font-family:var(--mono);letter-spacing:.2em;color:var(--ink-soft);text-transform:uppercase;font-size:9px;position:absolute;bottom:10px;left:10px}.story-card__plate img{object-fit:contain;border-radius:2px;width:100%;height:100%;position:absolute;inset:0}.map-btn{background:var(--olive-deep);width:100%;color:var(--paper);font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;border:0;border-radius:2px;align-items:center;gap:12px;padding:16px 18px;font-size:11px;text-decoration:none;transition:background .25s,transform .15s;display:flex;position:relative}.map-btn:hover{background:var(--olive)}.map-btn:active{transform:scale(.99)}.map-btn__icon{background:var(--sage);width:28px;height:28px;color:var(--olive-deep);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.map-btn__text{text-align:left;flex:1}.map-btn__arrow{font-family:var(--serif);letter-spacing:0;text-transform:none;font-size:18px;font-style:italic}.story-progress{z-index:5;align-items:center;gap:10px;display:flex;position:absolute;bottom:28px;left:28px;right:28px}.story-progress__bar{background:#4e513826;flex:1;height:1px;position:relative}.story-progress__bar:after{content:"";width:var(--p,0%);background:var(--rose);position:absolute;top:0;bottom:0;left:0}.story-progress__label{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);font-size:9.5px}#scene-proposal{background:linear-gradient(180deg, var(--olive-deep) 0%, var(--olive) 100%);color:var(--cream)}#scene-proposal .scene__inner{text-align:center;align-items:center;padding:0 28px}#scene-proposal .moonlight{filter:blur(20px);z-index:1;background:radial-gradient(circle,#ebe1c61f,#0000 60%);border-radius:50%;width:480px;height:480px;position:absolute;top:28%;left:50%;transform:translate(-50%,-50%)}#scene-proposal .ring{z-index:2;margin-bottom:36px;position:relative}#scene-proposal .proposal-line{font-family:var(--serif);color:var(--cream);text-wrap:balance;z-index:2;font-size:clamp(30px,9vw,50px);font-style:italic;line-height:1.15;position:relative}#scene-proposal .proposal-line em{color:var(--gold);font-style:italic}#scene-proposal .stamp{font-family:var(--serif);color:var(--cream);z-index:2;margin-top:40px;font-size:20px;line-height:1.5}#scene-invite{background:var(--cream);overflow:hidden}#scene-invite .scene__inner{z-index:2;justify-content:flex-start;padding:90px 22px 70px;position:relative}.invite-deco-img{z-index:1;opacity:.3;pointer-events:none;-webkit-user-select:none;user-select:none;width:clamp(150px,44vw,220px);max-width:none;position:absolute;top:52px;right:20px}.invite-eyebrow{font-family:var(--mono);letter-spacing:.35em;color:var(--rose);text-transform:uppercase;margin-bottom:24px;font-size:10px}.invite-headline{font-family:var(--serif);color:var(--ink);letter-spacing:-.01em;text-wrap:balance;margin-bottom:36px;font-size:clamp(36px,11vw,60px);font-style:italic;font-weight:300;line-height:1.05}.invite-headline em{color:var(--rose);font-style:italic}.date-grid{text-align:center;border-top:1px solid #4e51382e;border-bottom:1px solid #4e51382e;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;margin-bottom:28px;padding:24px 0;display:grid}.date-grid .label{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-size:9.5px}.date-grid .value{font-family:var(--serif);color:var(--ink);font-size:38px;font-style:italic;line-height:1}.date-grid .sep{background:#4e513833;width:1px;height:40px}.countdown{grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:36px;display:grid}.countdown__cell{background:var(--cream-2);text-align:center;border:1px solid #4e513814;border-radius:2px;padding:14px 6px 10px}.countdown__num{font-family:var(--serif);color:var(--ink);font-variant-numeric:tabular-nums;font-size:32px;font-style:italic;line-height:1}.countdown__lbl{font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft);margin-top:6px;font-size:8px}.venue-card{background:var(--paper);border:1px solid #4e513814;margin-bottom:22px;padding:24px 20px;position:relative}.venue-card .corner{border-color:var(--rose);border-style:solid;width:16px;height:16px;position:absolute}.venue-card .corner.tl{border-width:1px 0 0 1px;top:-1px;left:-1px}.venue-card .corner.tr{border-width:1px 1px 0 0;top:-1px;right:-1px}.venue-card .corner.bl{border-width:0 0 1px 1px;bottom:-1px;left:-1px}.venue-card .corner.br{border-width:0 1px 1px 0;bottom:-1px;right:-1px}.venue-card .label{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--rose);font-size:9px}.venue-card .name{font-family:var(--serif);color:var(--ink);margin:8px 0 6px;font-size:28px;font-style:italic;line-height:1.1}.venue-card .addr{font-family:var(--serif);color:var(--ink-soft);font-size:15px;line-height:1.4}.venue-card .times{border-top:1px dashed #4e51382e;gap:12px;margin-top:16px;padding-top:14px;display:flex}.venue-card .times .times-resepsi{border-left:1px dashed #4e51382e;padding-left:10px}.venue-card .times>div .t-lbl{font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft);font-size:9px}.venue-card .times>div .t-val{font-family:var(--serif);color:var(--ink);margin-top:2px;font-size:20px;font-style:italic}#scene-dresscode{background:var(--cream-2)}#scene-dresscode .scene__inner{padding:80px 22px 60px}.dc-eyebrow{font-family:var(--mono);letter-spacing:.35em;color:var(--ink-soft);text-transform:uppercase;margin-bottom:18px;font-size:10px}.dc-title{font-family:var(--serif);color:var(--ink);margin-bottom:28px;font-size:42px;font-style:italic;line-height:1}.dc-title em{color:var(--rose)}.swatches{grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:22px;display:grid}.swatch{aspect-ratio:3/4;border-radius:1px;position:relative;overflow:hidden}.swatch span{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#4e51388c;font-size:7.5px;position:absolute;bottom:6px;left:6px}.swatch.s1{background:var(--cream)}.swatch.s2{background:var(--cream-2)}.swatch.s3{background:var(--sage-pale)}.swatch.s4{background:var(--sage-soft)}.swatch.s5{background:var(--olive-soft);color:var(--paper)}.swatch.s5 span{color:#ffffffbf}.dc-note{font-family:var(--serif);color:var(--ink-soft);border-left:1px solid var(--rose);padding-left:16px;font-size:16px;line-height:1.5}.dc-avoid{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.dc-pill{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);border:1px solid #4e513833;border-radius:100px;padding:7px 11px;font-size:9px}.dc-pill .x{color:var(--rose);margin-right:6px}#scene-rsvp{background:var(--ink);color:var(--cream)}#scene-rsvp .scene__inner{padding:80px 22px 60px}.rsvp-eyebrow{font-family:var(--mono);letter-spacing:.35em;color:var(--gold);text-transform:uppercase;margin-bottom:18px;font-size:10px}.rsvp-title{font-family:var(--serif);color:var(--cream);margin-bottom:18px;font-size:44px;font-style:italic;line-height:1}.rsvp-sub{font-family:var(--serif);color:#ebe1c6b3;max-width:320px;margin-bottom:28px;font-size:16px;line-height:1.5}.rsvp-form{flex-direction:column;gap:14px;display:flex}.field{position:relative}.field label{font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;color:#ebe1c680;margin-bottom:6px;font-size:9px;display:block}.field input,.field textarea{width:100%;color:var(--cream);font-family:var(--serif);background:0 0;border:0;border-bottom:1px solid #ebe1c640;outline:none;padding:8px 0 10px;font-size:18px;transition:border-color .3s}.field input:focus,.field textarea:focus{border-color:var(--gold)}.field textarea{resize:none;min-height:64px;line-height:1.4}.attend-toggle{grid-template-columns:1fr 1fr;gap:8px;margin-top:4px;display:grid}.attend-toggle button{color:var(--cream);font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #ebe1c640;padding:14px 0;font-size:11px;transition:all .25s;position:relative}.attend-toggle button:hover{border-color:var(--gold)}.attend-toggle button[aria-pressed=true]{background:var(--gold);color:var(--ink);border-color:var(--gold)}.attend-toggle button .glyph{font-family:var(--serif);text-transform:none;letter-spacing:0;margin-right:8px;font-size:14px;font-style:italic}.send-btn{background:var(--cream);color:var(--ink);font-family:var(--mono);letter-spacing:.35em;text-transform:uppercase;cursor:pointer;border:0;margin-top:8px;padding:16px 0;font-size:11px;transition:transform .2s,background .3s}.send-btn:hover{background:var(--gold)}.send-btn:active{transform:scale(.98)}.rsvp-thanks{border:1px solid var(--gold);font-family:var(--serif);color:var(--gold);background:#d4af7a14;margin-top:14px;padding:22px;font-size:18px;font-style:italic;line-height:1.4;display:none}.rsvp-thanks.show{display:block}.wall{border-top:1px solid #ebe1c626;margin-top:56px;padding-top:28px}.wall__head{justify-content:space-between;align-items:baseline;margin-bottom:18px;display:flex}.wall__head h3{font-family:var(--serif);color:var(--cream);font-size:24px;font-style:italic;font-weight:400}.wall__count{font-family:var(--mono);letter-spacing:.3em;color:var(--gold);text-transform:uppercase;font-size:10px}.wall__count .live-dot{background:var(--gold);vertical-align:middle;border-radius:50%;width:6px;height:6px;margin-right:6px;animation:1.6s infinite pulse;display:inline-block}.wall__list{flex-direction:column;gap:14px;display:flex}.greet{border-left:1px solid var(--gold);opacity:0;background:#ebe1c60a;padding:14px 16px;position:relative;transform:translateY(12px)}.greet.in{opacity:1;transition:all .7s ease-out;transform:translateY(0)}.greet__head{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.greet__name{font-family:var(--serif);color:var(--cream);font-size:17px;font-style:italic}.greet__att{font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;font-size:8.5px}.greet__att.yes{color:var(--gold)}.greet__att.no{color:var(--rose-soft);opacity:.7}.greet__msg{font-family:var(--serif);color:#ebe1c6cc;font-size:15px;line-height:1.5}.wall__empty{text-align:center;color:#ebe1c659;padding:40px 0 28px}.wall__empty-icon{opacity:.5;margin-bottom:12px;font-size:28px}.wall__empty p{font-family:var(--serif);font-size:15px;font-style:italic;line-height:1.5}.wall__pagination{border-top:1px solid #ebe1c61a;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding-top:20px;display:flex}.wall__page-btn{width:32px;height:32px;color:var(--cream);cursor:pointer;background:0 0;border:1px solid #ebe1c633;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:background .2s,border-color .2s;display:flex}.wall__page-btn:hover:not(:disabled){background:#ebe1c614;border-color:#ebe1c666}.wall__page-btn:disabled{opacity:.25;cursor:default}.wall__page-info{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:#ebe1c680;font-size:10px}#scene-closing{background:var(--cream)}#scene-closing .scene__inner{z-index:2;padding:80px 22px;position:relative}.close-eyebrow{font-family:var(--mono);letter-spacing:.35em;color:var(--rose);text-transform:uppercase;margin-bottom:18px;font-size:10px}.close-title{font-family:var(--serif);color:var(--ink);margin-bottom:18px;font-size:44px;font-style:italic;line-height:1}.close-copy{font-family:var(--serif);color:var(--ink-soft);max-width:340px;margin-bottom:32px;font-size:17px;line-height:1.55}.closing-gift-img{z-index:1;opacity:.5;filter:sepia(.1)brightness(.72);pointer-events:none;-webkit-user-select:none;user-select:none;width:clamp(160px,46vw,240px);max-width:none;position:absolute;top:44px;right:0;transform:rotate(16deg)}.gift-stack{flex-direction:column;gap:12px;margin-bottom:36px;display:flex}.gift{background:var(--paper);border:1px solid #4e513814;padding:18px 18px 16px;position:relative}.gift__lbl{font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;color:var(--rose);margin-bottom:6px;font-size:9px}.gift__bank{font-family:var(--serif);color:var(--ink);margin-bottom:10px;font-size:22px;font-style:italic}.gift__row{background:var(--cream-2);font-family:var(--mono);letter-spacing:.05em;color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:6px;padding:10px 12px;font-size:13px;display:flex}.gift__copy{font-family:var(--mono);letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #4e513833;border-radius:100px;padding:5px 9px;font-size:8px}.gift__copy:active{background:var(--ink);color:var(--cream)}.gift__name{font-family:var(--serif);color:var(--ink-soft);margin-top:4px;font-size:14px}.signoff{text-align:center;border-top:1px solid #4e51382e;margin-top:28px;padding-top:36px}.signoff__words{font-family:var(--serif);color:var(--ink);text-wrap:balance;margin-bottom:22px;font-size:22px;font-style:italic;line-height:1.3}.signoff__sig{font-family:var(--serif);color:var(--rose);font-size:36px;font-style:italic;line-height:1}.signoff__sig .amp{color:var(--gold);margin:0 4px}.signoff__date{font-family:var(--mono);letter-spacing:.4em;text-transform:uppercase;color:var(--ink-soft);margin-top:22px;font-size:9.5px}.endcard{text-align:center;font-family:var(--mono);color:var(--ink-soft);border-top:1px dashed #4e513833;border-bottom:1px dashed #4e513833;margin-top:42px;padding:18px 0;font-size:9.5px}@media (min-width:720px){.scene__inner{max-width:640px;margin:0 auto;padding-left:48px;padding-right:48px}#scene-opening h1.title .nameline{font-size:clamp(48px,6.5vw,84px)}.story-card{padding-left:48px;padding-right:48px}.cast-stage{grid-template-rows:1fr;grid-template-columns:1fr 1fr}.cast-divider{width:1px;height:100%;top:0;left:50%;right:auto}.invite-deco-img{right:max(20px,50vw - 320px)}.closing-gift-img{right:max(0px,50vw - 320px)}}@media (min-width:1024px){.scene__inner{max-width:760px}.story-card{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-content:center;gap:40px 64px;padding:100px max(80px,50vw - 600px) 96px;display:grid}.story-card>div:first-child{grid-area:1/1;align-self:end}.story-card__body{grid-area:2/1;align-self:start;max-width:520px}.story-card__plate{grid-area:1/2/span 2;align-self:center;width:100%;max-width:none;height:min(60vh,460px)}.story-card__title{font-size:34px}#scene-opening .scene__inner{text-align:left;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:center;gap:24px 88px;max-width:1280px;padding:0 56px;display:grid}#scene-opening .credits-stamp{grid-area:1/1;align-self:end;margin-bottom:0;font-size:12px}#scene-opening h1.title{text-align:left;grid-area:2/1;align-self:start}#scene-opening h1.title .preline{margin-bottom:28px;font-size:15px}#scene-opening h1.title .nameline{justify-content:flex-start;font-size:clamp(64px,7.5vw,104px)}#scene-opening h1.title .dateline{margin-top:22px;font-size:16px}#scene-opening .opening-portrait{grid-area:1/2/span 2;width:clamp(380px,38vw,520px);margin:0}.invite-deco-img{right:max(20px,50vw - 380px)}.closing-gift-img{right:max(0px,50vw - 380px)}}.desktop-notice{z-index:900;-webkit-backdrop-filter:blur(6px);background:#4e5138b8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.desktop-notice__box{background:var(--olive-deep);text-align:center;border:1px solid #ebe1c62e;border-radius:4px;width:100%;max-width:400px;padding:40px 36px 36px;box-shadow:0 32px 80px #00000080}.desktop-notice__eyebrow{font-family:var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--sage-soft);margin-bottom:20px;font-size:9.5px}.desktop-notice__title{font-family:var(--serif);color:var(--cream);margin-bottom:16px;font-size:clamp(26px,5vw,34px);font-style:italic;font-weight:300;line-height:1.1}.desktop-notice__body{font-family:var(--serif);color:#ebe1c6a6;margin-bottom:32px;font-size:15px;line-height:1.6}.desktop-notice__btn{color:var(--cream);font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #ebe1c64d;border-radius:100px;padding:11px 28px;font-size:9.5px;transition:background .2s,border-color .2s;display:inline-block}.desktop-notice__btn:hover{background:#ebe1c614;border-color:#ebe1c680}.music-player{z-index:200;background:var(--ink);color:var(--cream);cursor:pointer;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;border:1px solid #ebe1c624;border-radius:100px;align-items:center;gap:8px;max-width:260px;padding:7px 10px 7px 9px;font-size:9px;transition:background .3s,opacity .2s;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000073}.music-player:hover{opacity:.82}.music-player--playing{background:var(--olive-deep)}.music-player__indicator{flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;display:flex}.music-player__label{white-space:nowrap;width:160px;position:relative;overflow:hidden}.music-player__static{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.music-player__ticker{white-space:nowrap;animation:16s linear infinite musicTicker;display:inline-flex}.music-player__ticker span{white-space:nowrap;flex-shrink:0}@keyframes musicTicker{0%{transform:translate(0)}to{transform:translate(-50%)}}.music-player__bars{align-items:flex-end;gap:2px;height:14px;display:flex}.music-player__bars span{background:currentColor;border-radius:1px;width:2px;animation:.75s ease-in-out infinite alternate musicEq;display:block}.music-player__bars span:first-child{height:6px;animation-delay:0s}.music-player__bars span:nth-child(2){height:10px;animation-delay:-.4s}.music-player__bars span:nth-child(3){height:4px;animation-delay:-.2s}.music-player__bars span:nth-child(4){height:8px;animation-delay:-.55s}@keyframes musicEq{0%{height:3px}to{height:14px}}body.intro-locked{overflow:hidden}.intro-overlay{z-index:800;background:radial-gradient(ellipse at 50% 12%, #aac05c1a, transparent 55%), radial-gradient(ellipse at 50% 100%, #aac05c0f, transparent 50%), var(--olive-deep);color:var(--cream);will-change:clip-path, opacity;clip-path:inset(0);justify-content:center;align-items:center;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.intro-overlay .intro-leaves{z-index:1;color:var(--olive);opacity:.55;pointer-events:none;position:absolute;inset:0}.intro-overlay .intro-leaves .leaf{width:180px;height:240px;position:absolute}.intro-overlay .intro-leaves .l1{top:-40px;left:-40px;transform:rotate(-25deg)}.intro-overlay .intro-leaves .l2{width:200px;height:260px;top:-20px;right:-50px;transform:rotate(35deg)scaleX(-1)}.intro-overlay .intro-leaves .l3{opacity:.7;width:220px;height:280px;bottom:-30px;left:-60px;transform:rotate(155deg)}.intro-overlay .intro-leaves .l4{bottom:-50px;right:-40px;transform:rotate(-160deg)}.intro-overlay .intro-frame{z-index:2;pointer-events:none;position:absolute;inset:40px 26px}.intro-overlay .intro-frame .frame-corner{border-color:var(--sage);border-style:solid;width:24px;height:24px;position:absolute}.intro-overlay .intro-frame .tl{border-width:1px 0 0 1px;top:0;left:0}.intro-overlay .intro-frame .tr{border-width:1px 1px 0 0;top:0;right:0}.intro-overlay .intro-frame .bl{border-width:0 0 1px 1px;bottom:0;left:0}.intro-overlay .intro-frame .br{border-width:0 1px 1px 0;bottom:0;right:0}.intro-content{z-index:5;text-align:center;flex-direction:column;align-items:center;width:100%;max-width:460px;padding:56px 32px;display:flex;position:relative}.intro-title{font-family:var(--serif);color:var(--cream);will-change:transform;margin:0;display:block}.intro-line{display:block}.intro-preline{font-family:var(--mono);letter-spacing:.45em;text-transform:uppercase;color:var(--sage-soft);margin-bottom:18px;font-size:11px;font-style:normal;font-weight:400}.intro-nameline{font-family:var(--serif);color:var(--paper);letter-spacing:-.02em;font-size:clamp(54px,16vw,96px);font-style:italic;font-weight:500;line-height:.92;overflow:hidden}.intro-name-mar,.intro-name-zai{display:block;overflow:hidden}.intro-amp{font-family:var(--serif);color:var(--sage);margin:.02em 0;font-size:clamp(36px,11vw,64px);font-style:italic;font-weight:300;line-height:1;display:block}.intro-dateline{font-family:var(--mono);letter-spacing:.4em;color:var(--sage-soft);margin-top:22px;font-size:12px;font-style:normal;font-weight:400;display:block}.intro-divider{background:#ebe1c659;width:56px;height:1px;margin:32px 0 22px}.intro-greeting{flex-direction:column;align-items:center;gap:8px;display:flex}.intro-greet{font-family:var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--sage-soft);opacity:.85;font-size:9.5px}.intro-greet-name{font-family:var(--serif);color:var(--cream);text-wrap:balance;max-width:320px;font-size:clamp(22px,6.5vw,30px);font-style:italic;font-weight:400;line-height:1.2}.intro-cta{color:var(--cream);border:1px solid var(--sage);font-family:var(--mono);letter-spacing:.3em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:100px;align-items:center;gap:14px;margin-top:36px;padding:14px 26px 14px 28px;font-size:11px;transition:background .3s,color .3s,transform .18s,box-shadow .3s;display:inline-flex;position:relative;box-shadow:0 0 #aac05c00}.intro-cta:hover{background:var(--sage);color:var(--olive-deep);box-shadow:0 12px 36px -12px #aac05c8c}.intro-cta:active{transform:scale(.97)}.intro-cta__arrow{font-family:var(--serif);letter-spacing:0;text-transform:none;font-size:16px;font-style:italic;transition:transform .3s}.intro-cta:hover .intro-cta__arrow{transform:translate(5px)}@media (min-width:720px){.intro-content{max-width:540px;padding:72px 48px}.intro-overlay .intro-frame{inset:56px 48px}}
