:root{--ink: #3f2610;--ink-soft: #5e4326;--gold: #a9792c;--gold-deep: #8a5f1c;--gold-pale: #e7cf9c;--cream: #fdf7e9;--mist: rgba(255, 251, 240, .74);--line: rgba(169, 121, 44, .38);--error: #9b2c1f;--sky-top: #bcd5e6;--sky-mid: #f6e2c8;--sky-low: #fff6e4;--serif: "EB Garamond", Georgia, "Times New Roman", serif;--display: "Playfair Display", Georgia, serif;--script: "Pinyon Script", "Brush Script MT", cursive;--dock-h: 72px}*{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent}a,button,input,select,textarea,label{touch-action:manipulation}html{scroll-behavior:smooth;scroll-padding-top:24px;overflow-x:clip}body{margin:0;color:var(--ink);background:var(--sky-low);font:400 1.125rem/1.6 var(--serif);-webkit-font-smoothing:antialiased;overflow-x:hidden}html.play-intro body{overflow:hidden;background:#050403}#art-defs{position:absolute}[hidden]{display:none!important}.sky-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--sky-top) 0%,#dbe3df 26%,var(--sky-mid) 52%,var(--sky-low) 82%)}#sky{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden}.sun{position:absolute;left:50%;top:40%;width:150vmax;height:150vmax;transform:translate(-50%,-50%)}.rays{position:absolute;left:50%;top:40%;width:190vmax;height:190vmax;margin:-95vmax 0 0 -95vmax;will-change:transform;animation:spin 160s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sky-gold{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;will-change:opacity;background:linear-gradient(180deg,#f5dcb0,#fbe7c2 40%,#fff3d8)}.sun-rig{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.sky-layer{position:absolute;left:0;right:0;top:0;will-change:transform}.cloud{position:absolute;animation:drift var(--dur, 90s) ease-in-out infinite alternate;will-change:transform}@keyframes drift{0%{transform:translate(calc(var(--dx, 40px) * -1))}to{transform:translate(var(--dx, 40px))}}#petals{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:5;pointer-events:none}.fly-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none;overflow:hidden}html.play-intro #petals{z-index:60}.dove{position:absolute;left:0;top:0;width:112px;height:75px;margin:-37px 0 0 -56px;will-change:transform,opacity}.dove>div{position:absolute;top:0;right:0;bottom:0;left:0}.dove svg{display:block;width:100%;height:100%;overflow:visible}.wing{transform-origin:60% 51%;will-change:transform;animation:flap var(--flap, .62s) ease-in-out infinite alternate}.wing.far{animation-delay:-.05s}@keyframes flap{0%{transform:scaleY(1) rotate(-4deg)}to{transform:scaleY(-.72) rotate(6deg)}}.bloom{animation:bloom 1.25s cubic-bezier(.2,.85,.3,1.2) var(--d, 0ms) both}.lotus-petal{animation:lotus-open 2s cubic-bezier(.3,.8,.3,1) var(--d, 0ms) both}@keyframes lotus-open{0%{transform:rotate(0) scale(.28);opacity:0}25%{opacity:1}to{transform:rotate(var(--a)) scale(1);opacity:1}}@keyframes bloom{0%{transform:scale(0) rotate(-70deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}#gate-root{display:none}html.play-intro #gate-root{display:block}.gate-skip{position:absolute;right:12px;top:10px;z-index:3;min-width:60px;min-height:44px;padding:0 14px;border:1px solid rgba(138,95,28,.55);border-radius:22px;background:#fffaeec7;color:var(--ink);font:500 1rem var(--serif);cursor:pointer}.gate-skip:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}.sound-btn{position:fixed;left:12px;top:10px;z-index:70;display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:0 14px 0 12px;border:1px solid rgba(138,95,28,.55);border-radius:22px;background:#fffaeed1;color:var(--ink);font:500 1rem var(--serif);cursor:pointer}.sound-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.sound-btn .waves{display:none}.sound-btn.on .waves{display:block}.sound-btn.on .mute{display:none}.sound-btn:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}.film{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;overflow:hidden;background:#050403;color:#fbf1da}.film-clip{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.film-clip.lamp{transition:opacity 1.8s ease-in-out}.film.dawn .film-clip.lamp{opacity:0}.film-text{position:absolute;left:0;right:0;padding:0 24px;text-align:center}.film-scrim{position:absolute;left:0;right:0;bottom:0;height:38%;opacity:0;background:linear-gradient(180deg,#05040300,#050403e6 62%);transition:opacity 1.4s ease-in-out;pointer-events:none}.film.reading .film-scrim{opacity:1}.film.dawn .film-scrim{opacity:0;transition-duration:.9s}@media(min-aspect-ratio:3 / 4){.film-clip{left:50%;width:56.25dvh;margin-left:-28.125dvh}.film-text,.film-scrim{left:50%;right:auto;width:56.25dvh;margin-left:-28.125dvh;padding:0 24px}}.film-text p{margin:0}.film-text,.film-verse p{pointer-events:none}.film-om,.film-caption,.film-verse p{opacity:0;transition:opacity 1.4s ease-in-out}.film-om.show,.film-caption.show,.film-verse p.show{opacity:1}.film-om{top:max(9svh,70px);margin:0;font:500 .95rem/1.2 var(--serif);letter-spacing:.34em;text-indent:.34em;text-transform:uppercase;color:#d9c8a4}.film-verse{bottom:max(5svh,30px)}.film-verse p{font:italic 400 clamp(1.3rem,5.4vw,1.75rem)/1.35 var(--serif);color:#f6e8cc;text-wrap:balance}.film-verse p+p{margin-top:.3em}.film.dawn .film-verse{opacity:0;transition:opacity .9s ease-out}.film-caption{top:max(13svh,84px);text-shadow:0 1px 16px rgba(10,30,45,.55);color:#fff}.film-caption .remember{font:italic 400 1.15rem/1.3 var(--serif)}.film-caption .name{margin-top:6px;font:500 clamp(1.6rem,6.6vw,2.3rem)/1.2 var(--display);text-wrap:balance}.film-caption .span{margin-top:8px;font:400 1.05rem/1.3 var(--serif)}#page{position:relative;z-index:10;width:100%;max-width:760px;margin:0 auto;padding:68px 34px 0;text-align:center}@media(min-width:761px){#page{padding-left:72px;padding-right:72px}}#page>:not(#vines):not(.bank):not(.hero-lake){position:relative;z-index:2}.hero-lake{--lake-w: 100vw;position:absolute;top:0;left:50%;z-index:1;width:var(--lake-w);height:max(100svh,880px);margin-left:calc(var(--lake-w) / -2);background:#17161a;-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 110px),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 110px),transparent)}.hero-lake img{display:block;width:100%;height:100svh;object-fit:cover}.hero-lake:after{content:"";position:absolute;left:0;right:0;top:0;height:100svh;background:linear-gradient(180deg,#17161a00 36%,#17161a80 50%,#17161aad 68%,#17161a)}@media(min-aspect-ratio:3 / 4){.hero-lake{--lake-w: max( 56.25dvh , 440px);-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 110px),transparent),linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(180deg,#000 calc(100% - 110px),transparent),linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-composite:intersect}}.confirm-float{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));z-index:29;padding:12px 24px;border-radius:26px;border:2px solid #fff8e8;background:#1f6b3f;box-shadow:0 8px 24px #143c2373;color:#fff;font:600 1rem/1.2 var(--display);text-decoration:none;white-space:nowrap;opacity:0;pointer-events:none;transform:translate(-50%,12px);transition:opacity .35s ease-out,transform .35s ease-out}.confirm-float.shown{opacity:1;pointer-events:auto;transform:translate(-50%)}.confirm-float:focus-visible{outline:2px solid #1f6b3f;outline-offset:2px}#page{padding-top:54px}.hero .om{margin-bottom:10px}.hero .portrait{width:min(66vw,300px,calc((100svh - 430px)*.8));min-width:150px}.hero .script.gathering{margin-top:12px}.hero .honouring{margin-top:8px}.hero .amp{font-style:normal}.hero .rule{margin:10px auto}@media(min-aspect-ratio:3 / 4){.hero{width:calc(max(56.25dvh,440px) - 48px);margin-left:auto;margin-right:auto}.hero .portrait{width:min(300px,calc((100svh - 510px)*.8))}.hero .script.gathering{font-size:clamp(2rem,6.4svh,3rem)}.hero h1{font-size:clamp(1.8rem,4.6svh,2.6rem)}}.hero .om,.hero .script,.hero h1,.hero .honouring,.hero .dates{color:#fff;text-shadow:0 1px 14px rgba(10,30,45,.6)}.hero .om{color:#fbf1da}.hero .script{color:#fbe9c0}.hero .rule{color:#e7c98a}.hero .rule:before,.hero .rule:after{background:linear-gradient(90deg,transparent,#e7c98a)}.mist{border-radius:44px;background:var(--mist);box-shadow:0 0 34px 26px var(--mist)}#vines{position:absolute;left:0;right:0;top:0;bottom:0;z-index:1;pointer-events:none;overflow:clip}#vines svg{display:block}.page-vine{fill:none;stroke:#7d9659;stroke-width:2;stroke-linecap:round}.v-bloom{transform:scale(0) rotate(-60deg);opacity:0;transition:transform 1s cubic-bezier(.2,.85,.3,1.2),opacity .5s ease-out}.v-bloom.open{transform:none;opacity:1}.bank{position:relative;z-index:1;left:50%;width:100vw;height:190px;margin:-10px 0 -30px -50vw;pointer-events:none}.bank canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.bank-lotus{position:absolute;left:50%;top:56%;width:118px;height:66px;transform:translate(-50%,-50%);overflow:visible}.bank:not(.seen) .lotus-petal,.bank:not(.seen) .bloom{animation-play-state:paused}.om{margin:0 0 18px;font:600 1.05rem/1.2 var(--display);letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--gold-deep)}.portrait{position:relative;width:min(66vw,300px);margin:0 auto 8px;aspect-ratio:4 / 5}.portrait-oval{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;overflow:hidden;padding:5px;background:linear-gradient(145deg,#f3dfa8,#b98a3a 42%,#f5e4b4 68%,#a9792c);box-shadow:0 12px 40px #78562847,0 0 0 7px #fffcf099}.portrait-oval img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:50% 21%}.portrait-flowers{position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;width:112%;height:112%;overflow:visible;pointer-events:none}html.play-intro .portrait-flowers .bloom,html.play-intro .portrait-flowers .lotus-petal{animation-play-state:paused}.script{margin:18px 0 0;font:400 clamp(2.3rem,10.4vw,4rem)/1.15 var(--script);color:var(--gold-deep);white-space:nowrap}h1{margin:4px 0 12px;font:600 clamp(1.8rem,7.2vw,2.9rem)/1.15 var(--display);color:var(--ink);text-wrap:balance}h2{margin:0 0 12px;font:500 clamp(1.5rem,5.6vw,2rem)/1.2 var(--display);color:var(--ink);text-wrap:balance}.rule{display:flex;align-items:center;gap:12px;margin:22px auto;max-width:340px;color:var(--gold)}.rule:before,.rule:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}.rule:after{transform:scaleX(-1)}.rule svg{width:34px;height:26px;flex:none}.dates{margin:0;font-size:1.3rem}.script.gathering{font-size:clamp(2rem,8.8vw,3.4rem);line-height:1.16;white-space:normal;text-wrap:balance}.honouring{margin:14px 0 0;font-size:1.15rem;font-style:italic;color:var(--ink-soft)}.forever{font-size:1.25rem;font-style:italic;color:var(--ink-soft)}.tribute{margin-top:28px}.tribute p{margin:0 0 1em;text-wrap:pretty}.tribute p:last-child{margin-bottom:0}.details{margin:6px 0 0}.tba{margin:0;font-size:1.2rem;font-style:italic;color:var(--ink-soft);text-wrap:balance}.detail-list{margin:16px 0 0}.detail-list dt{margin-top:16px;font:600 .82rem/1.3 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-deep)}.detail-list dd{margin:3px 0 0;font-size:1.2rem;white-space:pre-line}.details-note{margin:16px 0 0;font-style:italic;color:var(--ink-soft)}.pill-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin-top:16px;padding:0 22px;border:1px solid var(--gold);border-radius:22px;color:var(--ink);text-decoration:none}.pill-link:hover{background:#e7cf9c4d}.rsvp{padding:26px 22px 28px;border:1px solid var(--gold-pale);border-radius:50% 50% 16px 16px/130px 130px 16px 16px;background:#fffdf6f5;box-shadow:0 0 0 5px #ffffff8c,0 0 0 6px var(--line),0 14px 44px #7856282e;text-align:left}.rsvp-crown{width:56px;margin:0 auto 10px;color:var(--gold)}.rsvp-crown svg{width:56px;height:40px;display:block}.rsvp h2,.rsvp-lead{text-align:center}.rsvp-lead{margin:0 0 22px;color:var(--ink-soft);text-wrap:pretty}fieldset{margin:0;padding:0;border:0}legend,label,.label{display:block;padding:0;margin-bottom:6px;font-weight:500}.opt{font-weight:400;color:var(--ink-soft)}.field{margin-top:18px}.hint{margin:5px 0 0;font-size:1rem;line-height:1.35;color:var(--ink-soft)}.err{margin:5px 0 0;font-size:1rem;line-height:1.35;color:var(--error)}.err:empty{display:none}input[type=text],input[type=tel],select,textarea{display:block;width:100%;min-height:48px;padding:10px 14px;border:1px solid rgba(138,95,28,.6);border-radius:8px;background:#fff;color:var(--ink);font:400 1.125rem/1.4 var(--serif)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}[aria-invalid=true]{border-color:var(--error)}.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice legend{grid-column:1 / -1;float:left;width:100%;margin-bottom:8px}.choice .err{grid-column:1 / -1;margin:0}.choice-opt{position:relative;margin:0;cursor:pointer}.choice-opt input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:pointer}.choice-opt span{display:flex;align-items:center;justify-content:center;height:100%;min-height:56px;padding:8px 10px;border:1px solid rgba(138,95,28,.6);border-radius:8px;background:#fff;text-align:center;line-height:1.25;transition:background .2s,color .2s,border-color .2s}.choice-opt input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff8e8}.choice-opt input:focus-visible+span{outline:2px solid var(--gold-deep);outline-offset:2px}.stepper{display:inline-flex;align-items:center;border:1px solid rgba(138,95,28,.6);border-radius:8px;background:#fff}.stepper button{width:52px;height:48px;border:0;background:none;color:var(--ink);font:500 1.5rem/1 var(--serif);cursor:pointer;border-radius:8px}.stepper button:hover:not(:disabled){background:#e7cf9c59}.stepper button:disabled{color:#3f26104d;cursor:default}.stepper output{min-width:48px;text-align:center;font-size:1.25rem;font-weight:500}.collapse{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .32s cubic-bezier(.3,.7,.3,1),opacity .24s ease-out,visibility 0s linear .32s}.collapse.open{grid-template-rows:1fr;opacity:1;visibility:visible;transition:grid-template-rows .32s cubic-bezier(.3,.7,.3,1),opacity .3s ease-out .06s,visibility 0s}.collapse-inner{min-height:0;overflow:hidden;padding:0 3px 3px;margin:0 -3px -3px}.submit{width:100%;min-height:54px;margin-top:24px;border:0;border-radius:8px;background:var(--ink);color:#fff8e8;font:500 1.2rem var(--serif);cursor:pointer;transition:background .2s}.submit:hover:not(:disabled){background:#5b3a1b}.submit:disabled{opacity:.65;cursor:progress}.form-err{text-align:center}.thanks{text-align:center;outline:none}.thanks .script{margin-top:0}.thanks p:not(.script){margin:8px 0 0;text-wrap:pretty}.thanks-dove{position:relative;height:84px}.thanks-dove .dove{left:50%;top:50%;animation:hover-bob 3s ease-in-out infinite alternate}@keyframes hover-bob{0%{transform:translateY(5px)}to{transform:translateY(-5px)}}.link-btn{min-height:44px;margin-top:12px;padding:0 14px;border:0;background:none;color:var(--gold-deep);font:500 1.05rem var(--serif);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.closing{margin-top:10px;margin-bottom:calc(110px + env(safe-area-inset-bottom))}.closing-thanks{margin:0 0 22px;text-wrap:pretty}.verse{margin:0;font-style:italic;color:var(--ink-soft);font-size:1.2rem;text-wrap:balance}@media(max-width:560px){.verse br{display:none}}.shanti{margin:0;font:500 1.4rem/1.3 var(--display);font-style:italic}.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease-out,transform .9s ease-out}.js .reveal.seen{opacity:1;transform:none}.count-title{margin:22px 0 10px;font-style:italic;color:var(--ink-soft)}.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,76px));justify-content:center;gap:10px}.count-unit{padding:16px 2px 10px;border:1px solid var(--gold-pale);border-radius:40px 40px 10px 10px;background:#fffdf6eb;box-shadow:0 0 0 3px #ffffff8c,0 6px 18px #78562824}.count-unit b{display:block;font:600 clamp(1.5rem,6.4vw,2.1rem)/1.1 var(--display);font-variant-numeric:tabular-nums;color:var(--ink)}.count-unit span{display:block;margin-top:3px;font:600 .68rem/1.2 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}.dock-wrap{position:fixed;left:0;right:0;bottom:0;z-index:30;max-width:560px;margin:0 auto;color:#fff8e8}.dock{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;background:#3f2610;box-shadow:0 -8px 28px #3c260e47}.dock button,.dock a{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:48px;border:0;border-radius:24px;background:none;color:#fff8e8;font:500 1.05rem var(--serif);text-decoration:none;cursor:pointer}.dock button,.dock a,.panel-links a,.submit,.pill-link,.link-btn,.stepper button,.sound-btn,.gate-skip,.choice-opt span{transition:transform .14s ease-out,background-color .2s,color .2s,border-color .2s}.dock button:active,.dock a:active,.panel-links a:active,.submit:active:not(:disabled),.pill-link:active,.stepper button:active:not(:disabled),.sound-btn:active,.gate-skip:active,.choice-opt input:active+span{transform:scale(.96)}.dock button[aria-expanded=true]{background:#fff8e829}.dock a.primary{background:#fff8e8;color:var(--ink);font-weight:600}.dock svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dock-panel{position:absolute;left:0;right:0;bottom:calc(100% - 18px);padding:18px 18px 26px;border-radius:18px 18px 0 0;background:#4a2f15;box-shadow:0 -8px 28px #3c260e47;text-align:center;opacity:0;visibility:hidden;transform:translateY(26px);transition:opacity .2s ease-in,transform .22s ease-in,visibility 0s linear .22s;will-change:transform,opacity}.dock-panel.open{opacity:1;visibility:visible;transform:none;transition:opacity .26s ease-out,transform .32s cubic-bezier(.2,.85,.3,1),visibility 0s}.dock-panel h3{margin:0 0 2px;font:500 1.15rem/1.3 var(--display)}.dock-panel p{margin:0 0 12px;color:#f0e2c4;white-space:pre-line}.panel-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:10px}.panel-links a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:10px;background:#fff8e8;color:var(--ink);font-weight:500;text-decoration:none}.dock-wrap :focus-visible{outline:2px solid #f3d98f;outline-offset:2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rays,.cloud{animation:none}.bloom,.lotus-petal{animation-duration:1ms;animation-delay:0ms}.v-bloom,.collapse,.dock-panel,.confirm-float{transition:none}.js .reveal{opacity:1;transform:none;transition:none}.thanks-dove .dove,.wing{animation:none}}.sound-btn.compact{padding:0;width:44px;justify-content:center}.sound-btn.compact span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
