/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--ink:#18251c;--forest:#132219;--paper:#f3efe5;--warm:#e2d6c6;--gold:#b89b69;--white:#fffdf8;--serif:Georgia, "Times New Roman", "Songti SC", "STSong", serif;--sans:"PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:#101610}body{min-width:320px;color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 15% 20%,#b89b6917,#0000 24%),#101610;margin:0;overflow-x:hidden}body:not(.invitation-open){overflow:hidden}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}.invitation-shell{background:var(--paper);width:min(100%,520px);min-height:100vh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 0 80px #0000006b}.opening-screen{z-index:100;background:var(--forest);place-items:center;width:min(100%,520px);margin:auto;transition:opacity .9s,visibility .9s,transform .9s;display:grid;position:fixed;inset:0}.opening-screen.is-opened{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.04)}.opening-screen>img,.opening-shade{width:100%;height:100%;position:absolute;inset:0}.opening-screen>img{object-fit:cover;object-position:48% center;filter:saturate(.78)brightness(.82);animation:12s ease-out both openingZoom}.opening-shade{background:linear-gradient(#09120c61,#09120c0f 38%,#09120cb8),linear-gradient(90deg,#0a110c38,#0000 50%)}.opening-copy{z-index:1;width:86%;color:var(--white);text-align:center;position:relative}.eyebrow{color:#657264;font-family:var(--serif);letter-spacing:.28em;margin:0 0 18px;font-size:10px}.eyebrow.light{color:#fffdf8b3}.opening-date{color:#ffffffeb;font-family:var(--serif);letter-spacing:.42em;margin:18px 0 10px;font-size:12px}.opening-copy h1{font-family:var(--serif);letter-spacing:.08em;text-shadow:0 3px 30px #00000073;margin:0;font-size:clamp(38px,10vw,53px);font-weight:400}.opening-copy h1 span{color:#e3cda6;margin:0 3px;font-size:.72em;font-style:italic;display:inline-block}.opening-line{font-family:var(--serif);letter-spacing:.32em;margin:18px 0 34px;font-size:15px}.open-button{min-width:152px;min-height:46px;color:var(--white);letter-spacing:.18em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#09120c47;border:1px solid #ffffffa8;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:0 24px;display:inline-flex}.opening-foot{z-index:1;bottom:calc(25px + env(safe-area-inset-bottom));color:#ffffff8c;font-family:var(--serif);letter-spacing:.24em;margin:0;font-size:8px;position:absolute}.music-button{z-index:30;top:calc(16px + env(safe-area-inset-top));color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#101c148c;border:1px solid #ffffff75;border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:fixed;left:calc(50% + min(214px,42vw));transform:translate(-100%);box-shadow:0 4px 18px #0000002e}.music-button.is-playing{animation:7s linear infinite spin}.music-glyph{font-family:var(--serif);font-size:18px}.hero-panel{height:100svh;min-height:640px;color:var(--white);position:relative}.hero-panel>img,.hero-gradient{width:100%;height:100%;position:absolute;inset:0}.hero-panel>img{object-fit:cover;object-position:49% center}.hero-gradient{background:linear-gradient(#08110b2e,#0000 38%,#08110bd1)}.hero-topline{top:calc(22px + env(safe-area-inset-top));font-family:var(--serif);border-bottom:1px solid #ffffff80;justify-content:space-between;padding-bottom:12px;font-size:16px;display:flex;position:absolute;left:23px;right:23px}.hero-title{text-align:center;position:absolute;bottom:78px;left:26px;right:26px}.hero-title>p{font-family:var(--serif);letter-spacing:.34em;margin:0 0 12px;font-size:10px}.hero-title h2{font-family:var(--serif);letter-spacing:.08em;margin:0;font-size:clamp(42px,12vw,60px);font-weight:400;display:inline}.ampersand{color:#e8d3ae;font-family:var(--serif);margin:0 7px;font-size:31px;font-style:italic;display:inline-block}.hero-meta{font-family:var(--serif);letter-spacing:.18em;justify-content:center;align-items:center;gap:16px;margin-top:22px;font-size:9px;display:flex}.hero-meta b{border:1px solid #ffffff94;padding:8px 12px;font-size:11px;font-weight:400}.scroll-hint{color:#ffffffb3;letter-spacing:.18em;justify-content:center;align-items:center;gap:9px;height:46px;font-size:9px;display:flex;position:absolute;bottom:0;left:0;right:0}.scroll-hint span{background:#ffffffb3;width:1px;height:20px;animation:1.8s ease-in-out infinite pulseLine}.paper-section{background:linear-gradient(#b89b690f 1px, transparent 1px), linear-gradient(90deg, #b89b690a 1px, transparent 1px), var(--paper);background-size:24px 24px;position:relative}.intro-section{text-align:center;min-height:570px;padding:102px 30px 84px}.brush-title{font-family:var(--serif);letter-spacing:.1em;margin:0;font-size:47px;font-weight:400;line-height:1.28}.fine-line{background:var(--gold);width:1px;height:54px;margin:31px auto}.intro-copy,.story-quote{font-family:var(--serif);letter-spacing:.14em;margin:0;font-size:14px;line-height:2.2}.signature{color:#7d857c;font-family:var(--serif);margin:32px 0 0;font-size:11px;font-style:italic}.dark-section{background:var(--forest);color:var(--white)}.photo-story{padding:86px 20px 94px}.story-heading{padding:0 12px 55px}.story-heading h2{font-family:var(--serif);letter-spacing:.08em;margin:0;font-size:34px;font-weight:400;line-height:1.45}.photo-frame{margin:0}.photo-frame img{object-fit:cover;background:#0b120d;width:100%}.photo-frame.tall{margin-left:38px}.photo-frame.tall img{object-position:center;height:600px}.photo-frame.landscape{margin-top:60px;margin-right:38px}.photo-frame.landscape img{height:285px}.photo-frame figcaption{color:#ffffff8c;font-family:var(--serif);letter-spacing:.24em;align-items:center;gap:12px;margin-top:12px;font-size:8px;display:flex}.photo-frame figcaption span{color:#dfc79f;font-size:16px}.story-quote{color:#ffffffc7;text-align:right;margin:70px 20px 0;font-size:12px}.portrait-break{background:#d7d0c1;height:760px;position:relative}.portrait-break>img{object-fit:cover;object-position:center 38%;width:100%;height:100%}.portrait-card{background:#f4f0e7f0;width:77%;padding:30px 28px 34px;position:absolute;bottom:0;right:0;box-shadow:0 -10px 35px #00000014}.portrait-card span{color:#737d73;font-family:var(--serif);letter-spacing:.24em;font-size:9px}.portrait-card p{font-family:var(--serif);letter-spacing:.12em;margin:14px 0 0;font-size:15px;line-height:1.9}.date-section{text-align:center;padding:90px 24px 100px}.date-monogram{font-family:var(--serif);justify-content:center;align-items:center;gap:18px;display:flex}.date-monogram span{color:#667366;letter-spacing:.2em;width:62px;font-size:10px}.date-monogram strong{font-size:88px;font-weight:400;line-height:1}.date-note{letter-spacing:.19em;margin:14px 0 42px;font-size:12px}.countdown{border-top:1px solid #18251c38;border-bottom:1px solid #18251c38;grid-template-columns:repeat(4,1fr);margin:0 auto 68px;display:grid}.countdown div{padding:19px 0 16px;position:relative}.countdown div:not(:last-child):after{content:"";background:#18251c29;width:1px;height:31px;position:absolute;top:21px;right:0}.countdown strong,.countdown span{display:block}.countdown strong{font-family:var(--serif);font-size:26px;font-weight:400}.countdown span{color:#758075;margin-top:7px;font-size:9px}.calendar{background:#fffdf8b3;border:1px solid #18251c3d;padding:30px 22px 25px}.calendar-head{font-family:var(--serif);border-bottom:1px solid #18251c2e;justify-content:space-between;align-items:center;padding-bottom:22px;font-size:11px;display:flex}.calendar-head b{letter-spacing:.12em;font-size:18px;font-weight:400}.calendar-grid{grid-template-columns:repeat(7,1fr);row-gap:7px;margin-top:13px;display:grid}.calendar-grid span{min-height:33px;font-family:var(--serif);place-items:center;font-size:12px;display:grid}.calendar-grid.weekday-row{color:#8d968d}.calendar-grid.weekday-row span{min-height:20px;font-family:var(--sans);font-size:9px}.calendar-grid .wedding-day{z-index:1;color:#fff;position:relative}.calendar-grid .wedding-day:before{z-index:-1;background:var(--ink);content:"";border-radius:50% 50% 48% 52%;width:34px;height:34px;position:absolute;transform:rotate(-8deg)}.vow-section,.closing-section{color:#fff;height:760px;position:relative}.vow-section>img,.closing-section>img,.vow-shade,.closing-shade{width:100%;height:100%;position:absolute;inset:0}.vow-section>img,.closing-section>img{object-fit:cover}.vow-copy{position:absolute;bottom:64px;left:29px;right:29px}.vow-copy h2{font-family:var(--serif);letter-spacing:.08em;margin:0;font-size:35px;font-weight:400;line-height:1.55}.vow-copy>p:last-child{color:#ffffffb8;font-family:var(--serif);letter-spacing:.1em;margin:22px 0 0;font-size:12px;line-height:2}.location-section{text-align:center;padding:90px 24px 98px}.section-number{color:#18251c1a;font-family:var(--serif);font-size:98px;line-height:.9}.location-section .eyebrow{margin-top:-22px}.section-title{font-family:var(--serif);letter-spacing:.14em;margin:0;font-size:41px;font-weight:400}.location-name{font-family:var(--serif);letter-spacing:.08em;margin:35px 0 9px;font-size:16px}.location-sub{color:#737c73;margin:0 0 35px;font-size:11px}.map-card{min-height:292px;color:var(--white);text-decoration:none;display:block;position:relative;overflow:hidden;box-shadow:0 20px 45px #18251c29}.map-card>img{object-fit:cover;filter:sepia(.22)saturate(.74)contrast(.94);width:100%;height:292px}.map-card:after{content:"";background:linear-gradient(#0000 52%,#121f16c7);position:absolute;inset:0}.map-pin{z-index:2;background:var(--ink);color:#e7d0a8;border:1px solid #ffffffbf;border-radius:50% 50% 50% 0;place-items:center;width:42px;height:42px;display:grid;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)rotate(-45deg)}.map-pin:first-letter{transform:rotate(45deg)}.map-action{z-index:2;letter-spacing:.16em;padding:21px;font-size:12px;position:absolute;bottom:0;left:0;right:0}.rsvp-section{padding:92px 25px 105px}.rsvp-inner{text-align:center}.rsvp-inner h2{font-family:var(--serif);letter-spacing:.1em;margin:0;font-size:38px;font-weight:400;line-height:1.48}.rsvp-tip{color:#ffffff8a;letter-spacing:.08em;margin:18px 0 40px;font-size:10px}.rsvp-inner form{text-align:left;gap:18px;display:grid}.rsvp-inner label span{color:#ffffff94;letter-spacing:.14em;margin-bottom:8px;font-size:10px;display:block}.rsvp-inner input,.rsvp-inner select{color:#fff;appearance:none;background:#ffffff0f;border:1px solid #ffffff40;border-radius:0;outline:none;width:100%;height:50px;padding:0 15px}.rsvp-inner input::placeholder{color:#ffffff57}.rsvp-inner select option{color:#111}.rsvp-inner form button,.rsvp-card button{min-height:50px;color:var(--ink);letter-spacing:.17em;background:#e6d7bd;border:0;margin-top:8px;font-size:12px}.rsvp-card{background:#ffffff0a;border:1px solid #e6d7bda6;padding:36px 22px 26px}.rsvp-heart{color:#ddc7a2;font-size:22px}.rsvp-card p{color:#ffffff9e;letter-spacing:.14em;margin:14px 0 4px;font-size:10px}.rsvp-card h3{font-family:var(--serif);margin:8px 0;font-size:38px;font-weight:400}.rsvp-card small{color:#d9c39e;font-family:var(--serif);letter-spacing:.1em;margin:24px 0;font-size:10px;display:block}.rsvp-card button{width:100%}.closing-section{height:740px}.closing-section>img{object-position:center}.closing-copy{text-align:center;position:absolute;bottom:55px;left:20px;right:20px}.closing-copy>p{font-family:var(--serif);letter-spacing:.28em;margin:0 0 15px;font-size:9px}.closing-copy h2{font-family:var(--serif);letter-spacing:.2em;margin:0;font-size:49px;font-weight:400}.closing-copy>span{font-family:var(--serif);letter-spacing:.14em;margin-top:16px;font-size:14px;display:block}.closing-copy button{color:#fff;letter-spacing:.16em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a120c38;border:1px solid #ffffffa6;border-radius:999px;min-width:170px;height:46px;margin-top:34px;font-size:11px}footer{padding:28px 20px calc(28px + env(safe-area-inset-bottom));color:#ffffff9e;text-align:center;background:#0e1912}footer span{color:#e0ca9f;font-family:var(--serif);font-size:18px;font-style:italic}footer p{font-family:var(--serif);letter-spacing:.24em;margin:7px 0 0;font-size:8px}.toast{z-index:120;right:50%;bottom:calc(28px + env(safe-area-inset-bottom));color:#fff;white-space:nowrap;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0d1810e6;border:1px solid #ffffff24;border-radius:999px;max-width:82vw;padding:11px 18px;font-size:11px;animation:.25s ease-out toastIn;position:fixed;transform:translate(50%);box-shadow:0 10px 30px #0000003d}.reveal{opacity:0;transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.2,1);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes openingZoom{0%{transform:scale(1.02)}to{transform:scale(1.1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulseLine{0%,to{opacity:.35;transform:scaleY(.65)}50%{opacity:1;transform:scaleY(1)}}@keyframes toastIn{0%{opacity:0;transform:translate(50%,8px)}to{opacity:1;transform:translate(50%)}}@media (width>=521px){.music-button{left:calc(50% + 236px)}}@media (width<=374px){.opening-copy h1{font-size:34px}.hero-title h2{font-size:38px}.photo-frame.tall{margin-left:20px}.photo-frame.landscape{margin-right:20px}.photo-frame.tall img{height:525px}.date-monogram strong{font-size:72px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.monogram{color:var(--ink);font-family:var(--serif);align-items:baseline;gap:4px;line-height:1;display:inline-flex}.monogram b{font-size:21px;font-weight:400}.monogram i{color:var(--gold);font-size:12px;font-style:normal}.monogram small{letter-spacing:.12em;border-left:1px solid;margin-left:5px;padding-left:7px;font-size:7px}.monogram.is-light{color:#fffdf8e6}.forest-opening>img{filter:saturate(.55)brightness(.42)blur(1px);transform:scale(1.08)}.forest-opening .opening-shade{background:radial-gradient(circle at 50% 45%,#0b1a100d,#070f0ab8),linear-gradient(#060d083d,#060d08b8)}.opening-letter-stage{z-index:2;color:#fff;text-align:center;width:100%;padding:0 20px;position:relative}.opening-kicker{color:#ffffffad;font-family:var(--serif);letter-spacing:.26em;margin:0 0 24px;font-size:9px}.envelope-button{width:min(86vw,350px);height:390px;color:var(--ink);cursor:pointer;filter:drop-shadow(0 24px 28px #00000047);background:0 0;border:0;outline:none;margin:0 auto;padding:0;display:block;position:relative}.letter-peek{z-index:1;background-color:#f1eadc;background-image:linear-gradient(#90754e09 1px,#0000 1px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:100% 17px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:1px solid #53432b1f;flex-direction:column;align-items:center;width:84%;height:265px;padding:43px 22px 20px;transition:transform .55s;display:flex;position:absolute;top:0;left:8%;transform:rotate(-1.5deg);box-shadow:inset 0 0 45px #6f573414}.envelope-button:active .letter-peek{transform:translateY(-12px)rotate(-1.5deg)}.letter-peek small{color:#89765b;font-family:var(--serif);letter-spacing:.3em;font-size:11px}.letter-peek strong{font-family:var(--serif);letter-spacing:.12em;margin:17px 0 16px;font-size:31px;font-weight:400}.letter-peek em{color:#81735e;font-family:var(--serif);letter-spacing:.16em;font-size:10px;font-style:normal}.letter-peek:after{background:var(--gold);content:"";width:34px;height:1px;margin-top:23px}.envelope-body{z-index:2;background:linear-gradient(35deg,#ded1bc 49.5%,#0000 50%) 0 0/52% 100% no-repeat,linear-gradient(-35deg,#e6dbc8 49.5%,#0000 50%) 100% 0/52% 100% no-repeat,#ece2d1;border:1px solid #503e281f;height:205px;position:absolute;bottom:10px;left:0;right:0;overflow:hidden}.envelope-flap{z-index:3;clip-path:polygon(0 0,50% 78%,100% 0);background:linear-gradient(160deg,#f0e8da,#dfd1ba);height:145px;position:absolute;inset:0 0 auto}.wax-seal{z-index:5;color:#fff6df;background:radial-gradient(circle at 36% 27%,#d5b979,#9a783e 68%,#75582f);border:2px solid #fff2d28f;border-radius:50% 47% 51% 46%;place-items:center;width:72px;height:72px;display:grid;position:absolute;top:93px;left:50%;transform:translate(-50%)rotate(-5deg);box-shadow:0 5px 12px #442d125c,inset 0 0 0 5px #76542738}.wax-seal b,.wax-seal small{font-family:var(--serif);font-weight:400;display:block;position:absolute}.wax-seal b{letter-spacing:.06em;font-size:17px;top:20px}.wax-seal small{letter-spacing:.15em;font-size:6px;bottom:13px}.open-instruction{color:#ffffffbd;letter-spacing:.16em;justify-content:center;align-items:center;gap:11px;margin:17px 0 0;font-size:9px;display:flex}.open-instruction span{background:#ffffff59;width:27px;height:1px}.forest-hero .hero-topline{font-family:var(--serif);letter-spacing:.2em;align-items:center;font-size:8px}.guest-ribbon{color:var(--ink);font-family:var(--serif);letter-spacing:.14em;background:#f2ebdce6;padding:10px 15px 10px 19px;font-size:11px;position:absolute;top:105px;right:0;box-shadow:0 8px 24px #00000024}.forest-hero-title>p{color:#ffffffb3}.forest-hero-title h2{letter-spacing:.12em;font-size:clamp(56px,15vw,76px);line-height:1.1;display:block}.couple-names{font-family:var(--serif);letter-spacing:.18em;margin-top:18px;font-size:15px}.couple-names i{color:#dfc69a;margin:0 9px;font-style:normal}.forest-letter{text-align:left;min-height:790px;padding:92px 34px 90px;overflow:hidden}.forest-letter:before{content:"";pointer-events:none;border:1px solid #3e4d3e2b;position:absolute;inset:18px}.letter-corner{z-index:1;width:34px;height:34px;font-family:var(--serif);border:1px solid #18251c47;place-items:center;font-size:13px;display:grid;position:absolute}.letter-corner.top-left{top:33px;left:33px}.letter-corner.bottom-right{bottom:33px;right:33px}.letter-index{color:#748074;font-family:var(--serif);letter-spacing:.2em;margin:0 0 65px;font-size:9px}.forest-letter h2{font-family:var(--serif);letter-spacing:.1em;margin:0;font-size:34px;font-weight:400}.letter-lead{font-family:var(--serif);letter-spacing:.12em;margin:17px 0 0;font-size:18px}.letter-rule{background:var(--gold);width:44px;height:1px;margin:36px 0}.letter-body{color:#38443b;font-family:var(--serif);letter-spacing:.08em;margin:0 0 25px;font-size:13px;line-height:2.25}.letter-signoff{font-family:var(--serif);flex-direction:column;align-items:flex-end;margin-top:48px;display:flex}.letter-signoff span{color:#7b837a;font-size:10px}.letter-signoff strong{letter-spacing:.13em;margin-top:10px;font-size:18px;font-weight:400}.chapter-stamp{color:#ffffffb3;font-family:var(--serif);letter-spacing:.18em;border:1px solid #ffffff47;align-items:center;gap:12px;margin:0 0 65px 12px;padding:9px 12px;font-size:8px;display:inline-flex;transform:rotate(-2deg)}.chapter-stamp span{color:#e0c899;font-family:var(--sans);letter-spacing:.08em}.chapter-stamp.ink{color:#687468;border-color:#18251c40;margin-left:0}.chapter-stamp.ink span{color:var(--ink)}.postcard-note{z-index:2;width:78%;color:var(--ink);background:#eee6d8;margin:-24px 12px 0 auto;padding:29px 27px 24px;position:relative;transform:rotate(1.8deg);box-shadow:0 18px 36px #0003}.postcard-note small{color:#788278;letter-spacing:.16em;font-size:9px}.postcard-note p{font-family:var(--serif);letter-spacing:.08em;margin:16px 0 20px;font-size:13px;line-height:2}.postcard-note b{color:#9b8154;font-family:var(--serif);text-align:right;font-size:14px;font-weight:400;display:block}.portrait-card .monogram{margin-top:22px}.calendar-caption{color:#788278;font-family:var(--serif);letter-spacing:.06em;margin:22px 0 0;font-size:10px}.vertical-mark{color:#ffffff7a;font-family:var(--serif);letter-spacing:.25em;writing-mode:vertical-rl;font-size:7px;position:absolute;top:50%;right:14px;transform:translateY(-50%)}.travel-ticket{text-align:left;background:#f8f2e7;border:1px solid #18251c3d;grid-template-columns:64px 1fr;margin:35px 0 27px;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 45px #18251c1f}.travel-ticket:before,.travel-ticket:after{z-index:2;background:var(--paper);content:"";border-radius:50%;width:22px;height:22px;position:absolute;left:52px;transform:translate(-50%)}.travel-ticket:before{top:-11px}.travel-ticket:after{bottom:-11px}.ticket-spine{background:#d9ccb7;border-right:1px dashed #18251c4d;place-items:center;display:grid}.ticket-spine .monogram{white-space:nowrap;transform:rotate(-90deg)}.ticket-main{padding:25px 20px 21px}.ticket-code{color:#687368;font-family:var(--serif);letter-spacing:.18em;margin-bottom:29px;font-size:8px}.ticket-main>p{color:#7e887e;letter-spacing:.15em;margin:0 0 5px;font-size:8px}.ticket-main>h3{font-family:var(--serif);letter-spacing:.1em;margin:0 0 27px;font-size:26px;font-weight:400}.ticket-grid{grid-template-columns:1fr 1fr;gap:18px 14px;display:grid}.ticket-grid span{flex-direction:column;gap:6px;display:flex}.ticket-grid small{color:#899189;font-family:var(--serif);letter-spacing:.15em;font-size:7px}.ticket-grid b{font-family:var(--serif);font-size:11px;font-weight:400}.ticket-grid .ticket-wide{grid-column:1/-1}.ticket-grid .ticket-wide b{font-size:14px}.barcode{background-image:repeating-linear-gradient(90deg, var(--ink) 0 1px, transparent 1px 3px);color:#798279;font-family:var(--serif);letter-spacing:.27em;background-repeat:no-repeat;background-size:100% 11px;margin-top:25px;padding-top:17px;font-size:7px}.location-section .map-card{margin-top:34px}.location-section .map-pin{background:var(--ink);border-radius:50%;font-size:0;transform:translate(-50%,-50%)}.location-section .map-pin:after{content:"";background:#dec89f;border-radius:50%;width:8px;height:8px}.rsvp-inner>.monogram{margin-bottom:28px}.forest-pass{background-color:#ffffff0a;background-image:linear-gradient(#ffffff06 1px,#0000 1px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:100% 15px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:relative;overflow:hidden}.pass-code{color:#ffffff6b;font-family:var(--serif);letter-spacing:.15em;font-size:7px;position:absolute;top:15px;right:15px}.forest-pass .rsvp-heart{font-family:var(--serif);letter-spacing:.13em;font-size:18px}.closing-copy h2{letter-spacing:.13em;font-size:clamp(36px,10vw,50px);line-height:1.35}footer .monogram{justify-content:center}footer>p{font-family:var(--serif);letter-spacing:.13em;margin-top:11px}@media (height<=700px){.envelope-button{height:340px;margin-top:-18px;margin-bottom:-20px;transform:scale(.88)}.opening-kicker{margin-bottom:8px}.opening-foot{bottom:calc(13px + env(safe-area-inset-bottom))}}.forest-hero{aspect-ratio:2/3;background:#132219;height:auto;min-height:0;overflow:hidden}.forest-hero>img{object-fit:contain;object-position:center;filter:saturate(.92)contrast(.98)}.forest-hero .hero-gradient{background:radial-gradient(circle at 50% 42%,#0000 38%,#070f0a1a 72%),linear-gradient(#070f0a2e,#0000 34%,#070f0ad1 94%)}.forest-hero:after{z-index:1;background:var(--paper);content:"";opacity:.98;border-radius:50% 50% 0 0;height:80px;position:absolute;bottom:-35px;left:-8%;right:-8%}.forest-hero .hero-topline,.forest-hero .guest-ribbon,.forest-hero .hero-title,.forest-hero .scroll-hint{z-index:2}.forest-hero .guest-ribbon{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f2ebdcdb;border-radius:18px 0 0 18px}.forest-hero .scroll-hint{bottom:17px}.photo-story{background:radial-gradient(circle at 12% 28%, #d3be9714, transparent 24%), radial-gradient(circle at 88% 72%, #ffffff0a, transparent 26%), var(--forest);padding-top:108px;padding-bottom:118px;position:relative;overflow:hidden}.photo-story:before,.photo-story:after{content:"";pointer-events:none;border-radius:50%;height:78px;position:absolute;left:-9%;right:-9%}.photo-story:before{background:var(--paper);top:-51px}.photo-story:after{background:#e8e1d4;bottom:-53px}.photo-frame{z-index:1;position:relative}.photo-frame img,.photo-frame.tall img,.photo-frame.landscape img{object-fit:contain;background:0 0;border:7px solid #fffdf814;border-radius:4px;width:100%;height:auto;box-shadow:0 22px 55px #0000003d}.photo-frame.landscape{margin-top:72px;margin-left:2px;margin-right:30px}.photo-frame figcaption{padding-left:4px}.postcard-note{border-radius:3px;margin-top:-18px;transform:rotate(.7deg);box-shadow:0 16px 38px #00000029}.portrait-break{background:radial-gradient(circle at 10% 14%, #b89b692e, transparent 25%), linear-gradient(180deg, #e8e1d4, var(--paper));height:auto;padding:72px 22px 96px;overflow:hidden}.portrait-break:before{content:"";border:1px solid #18251c1a;border-radius:50%;width:220px;height:220px;position:absolute;top:36px;right:-85px}.portrait-break>img{z-index:1;object-fit:contain;object-position:center;border-radius:48% 48% 6px 6px;width:100%;height:auto;position:relative;box-shadow:0 26px 60px #18251c2e}.portrait-card{z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f4f0e7eb;border:1px solid #18251c14;border-radius:3px;width:auto;margin:-42px 10px 0 46px;padding:27px 25px 30px;position:relative;bottom:auto;right:auto;box-shadow:0 18px 42px #18251c21}.date-section{background:radial-gradient(circle at 90% 8%, #b89b691f, transparent 18%), var(--paper)}.vow-section{aspect-ratio:2/3;background:var(--forest);height:auto}.vow-section>img{object-fit:contain}.vow-shade{background:linear-gradient(#08110b08,#0000 42%,#08110bc7),radial-gradient(circle at 50% 52%,#0000 48%,#08110b29)}.closing-section{background:#0e1912;flex-direction:column;height:auto;padding-bottom:74px;display:flex}.closing-section>img{object-fit:contain;width:100%;height:auto;position:relative;inset:auto}.closing-shade{aspect-ratio:3/2;background:linear-gradient(#0000 58%,#0e1912 100%);height:auto;inset:0 0 auto}.closing-copy{z-index:2;margin:-58px 20px 0;position:relative;bottom:auto;left:auto;right:auto}.reveal{transition:opacity 1.05s,transform 1.05s cubic-bezier(.2,.72,.2,1);transform:translateY(18px)}@media (width<=374px){.photo-frame.tall img{height:auto}.portrait-break{padding-left:18px;padding-right:18px}.portrait-card{margin-left:30px}}:root{--cn-title:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--latin-display:"Bodoni 72", Didot, Georgia, "Times New Roman", serif}body{font-weight:300}.letter-peek strong,.letter-peek em,.forest-hero-title h2,.couple-names,.forest-letter h2,.letter-lead,.letter-body,.letter-signoff,.story-heading h2,.postcard-note p,.portrait-card p,.date-photo-copy h2,.calendar-head,.calendar-grid span,.calendar-caption,.afterword h2,.afterword>p:last-child,.section-title,.ticket-main>h3,.ticket-grid b,.rsvp-inner h2,.rsvp-card h3,.closing-copy h2,.closing-copy>span{font-family:var(--cn-title);font-weight:300}.eyebrow,.chapter-stamp,.photo-frame figcaption,.date-photo-copy>p,.date-photo-copy>span,.date-photo-copy>strong,.calendar-head b,.ticket-code,.barcode,.closing-copy>p{font-family:var(--latin-display)}.forest-hero-title h2{letter-spacing:.08em;font-size:clamp(52px,14vw,72px);font-weight:300}.forest-letter h2,.story-heading h2,.section-title,.rsvp-inner h2,.closing-copy h2{font-weight:300}.letter-body{letter-spacing:.1em;line-height:2.45}.photo-story{padding-left:0;padding-right:0}.photo-story:before,.photo-story:after{display:none}.photo-story>.chapter-stamp{margin-left:32px}.story-heading{padding-left:32px;padding-right:32px}.story-heading h2{letter-spacing:.11em;font-size:31px;line-height:1.65}.photo-frame.tall{margin-left:0;margin-right:0}.photo-frame img,.photo-frame.tall img,.photo-frame.landscape img{box-shadow:none;border:0;border-radius:0}.photo-frame.tall figcaption{padding:0 28px}.photo-frame.landscape{margin:82px 18px 0}.photo-frame.landscape img{box-shadow:0 24px 60px #00000040}.postcard-note{background:#f4eee2f5;width:76%;margin:-44px 22px 0 auto;padding:27px 26px 23px;box-shadow:0 22px 48px #0003}.portrait-break:before{top:18px}.portrait-break>img{border-radius:0;box-shadow:0 24px 58px #18251c29}.portrait-card{margin:-38px 24px 0 62px;padding:26px 24px 29px}.date-photo-section{background:var(--paper);position:relative;overflow:hidden}.date-photo-media{aspect-ratio:2/3;color:#fff;background:var(--forest);position:relative;overflow:hidden}.date-photo-media>img,.date-photo-shade{width:100%;height:100%;position:absolute;inset:0}.date-photo-media>img{object-fit:cover;object-position:center;filter:saturate(.88)contrast(.98)}.date-photo-shade{background:linear-gradient(#08110b94,#08110b0a 38%,#08110b24 70%,#08110b9e),radial-gradient(circle at 50% 42%,#0000 45%,#08110b29)}.date-photo-copy{z-index:2;text-align:center;position:absolute;top:46px;left:34px;right:34px}.date-photo-copy>p{color:#ffffffa8;letter-spacing:.25em;margin:0 0 26px;font-size:8px}.date-photo-copy>span{color:#ffffffc2;letter-spacing:.27em;font-size:10px;display:block}.date-photo-copy h2{letter-spacing:.18em;text-shadow:0 3px 22px #0000004d;margin:20px 0 14px;font-size:38px;line-height:1.55}.date-photo-copy>strong{letter-spacing:.28em;font-size:14px;font-weight:400}.date-calendar-paper{z-index:3;background:radial-gradient(circle at 90% 24%, #b89b691c, transparent 18%), var(--paper);padding:0 24px 96px;position:relative}.calendar-on-photo{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf7eff0;border:1px solid #18251c1a;border-radius:2px;margin-top:-105px;padding:27px 21px 24px;box-shadow:0 24px 54px #0f1c1333}.calendar-on-photo .calendar-head{padding-bottom:18px}.calendar-on-photo .weekday-row span{min-height:18px;font-size:8px}.calendar-on-photo .calendar-caption{letter-spacing:.05em;border-top:1px solid #18251c1f;margin:18px 0 0;padding-top:17px;font-size:9px;line-height:1.8}.calendar-on-photo .wedding-day:before{background:var(--ink);border-radius:50%;width:31px;height:31px;transform:none;box-shadow:0 0 0 4px #b89b692b}.date-countdown{margin:50px 0 64px}.date-countdown strong{font-family:var(--latin-display);font-size:25px}.afterword{text-align:center;padding:0 10px}.afterword .eyebrow{margin-bottom:22px}.afterword h2{letter-spacing:.12em;margin:0;font-size:34px;line-height:1.65}.afterword>p:last-child{color:#6f796f;letter-spacing:.08em;margin:22px 0 0;font-size:11px;line-height:2}.location-section{padding-top:96px}.travel-ticket,.map-card{border-radius:2px}.rsvp-inner h2{letter-spacing:.12em}@media (width<=374px){.photo-story>.chapter-stamp{margin-left:24px}.story-heading{padding-left:24px;padding-right:24px}.portrait-break{padding-left:0;padding-right:0}.portrait-card{margin-left:42px;margin-right:20px}.date-calendar-paper{padding-left:18px;padding-right:18px}.date-photo-copy h2{font-size:34px}}.photo-frame.tall img{box-shadow:0 30px 70px -38px #000000b8}.photo-frame.landscape{isolation:isolate;position:relative;transform:rotate(-.65deg)}.photo-frame.landscape:before{z-index:-1;content:"";background:#ece5d826;position:absolute;inset:10px -7px -9px 8px;transform:rotate(1.4deg);box-shadow:0 28px 68px #00000061}.photo-frame.landscape img{z-index:1;border:8px solid #faf7eff0;position:relative;box-shadow:0 3px 8px #00000038,0 24px 56px #0000005c}.photo-frame.landscape figcaption{z-index:2;margin-top:16px;position:relative}.portrait-break{padding:70px 18px 112px}.portrait-break>img{border:11px solid #fffcf5f0;transform:rotate(-.45deg);box-shadow:0 2px 7px #18251c1f,0 30px 68px -14px #18251c59}.portrait-card{border:0;margin-top:-46px;transform:rotate(.7deg);box-shadow:0 1px 3px #18251c1a,0 24px 52px -12px #18251c4d}.calendar-on-photo{isolation:isolate;background-color:#faf7eff7;background-image:linear-gradient(#5a492f08 1px,#0000 1px),none;background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:100% 18px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border:0;padding:38px 22px 25px;position:relative;transform:rotate(.45deg);box-shadow:0 2px 5px #18251c1f,0 24px 52px -10px #0f1c135c,0 50px 90px -46px #0f1c1394}.calendar-on-photo:before{z-index:-1;content:"";background:#e5ddce;border:1px solid #18251c14;position:absolute;inset:8px -7px -9px 8px;transform:rotate(-1deg);box-shadow:0 13px 22px #18251c1f}.calendar-binding{z-index:3;justify-content:space-between;display:flex;position:absolute;top:-8px;left:31px;right:31px}.calendar-binding i{background:var(--paper);border:4px solid #b9a887;border-radius:50%;width:16px;height:16px;display:block;position:relative;box-shadow:0 3px 5px #18251c2e}.calendar-binding i:before{content:"";background:#8a7a5d;border-radius:2px;width:2px;height:17px;position:absolute;top:-15px;left:50%;transform:translate(-50%)}.calendar-title-row{border-bottom:1px solid #18251c29;grid-template-columns:58px 1fr auto;align-items:end;gap:13px;padding-bottom:21px;display:grid}.calendar-month-mark{color:var(--ink);align-items:flex-end;gap:3px;display:flex}.calendar-month-mark b{font-family:var(--latin-display);font-size:37px;font-weight:400;line-height:.82}.calendar-month-mark small{font-family:var(--cn-title);font-size:10px}.calendar-title-row>div{text-align:left}.calendar-title-row p{color:#8a9189;font-family:var(--latin-display);letter-spacing:.17em;margin:0 0 5px;font-size:6px}.calendar-title-row h3{font-family:var(--latin-display);letter-spacing:.12em;margin:0;font-size:17px;font-weight:400}.calendar-title-row>strong{color:#7d877e;font-family:var(--latin-display);letter-spacing:.16em;font-size:10px;font-weight:400}.calendar-focus{border-bottom:1px solid #18251c24;grid-template-columns:54px 1fr 60px;align-items:center;min-height:105px;display:grid}.calendar-focus>span{color:#92998f;font-family:var(--latin-display);letter-spacing:.14em;text-align:left;font-size:7px;line-height:1.7}.calendar-focus>strong{color:var(--ink);font-family:var(--latin-display);text-align:center;font-size:72px;font-weight:400;line-height:1;position:relative}.calendar-focus>strong:after{content:"";border:1px solid #9f804a9e;border-radius:50%;width:75px;height:54px;position:absolute;top:51%;left:50%;transform:translate(-50%,-50%)rotate(-9deg)}.calendar-focus>div{text-align:right;flex-direction:column;gap:5px;display:flex}.calendar-focus b{font-family:var(--cn-title);letter-spacing:.12em;font-size:10px;font-weight:400}.calendar-focus small{color:#8b948a;font-family:var(--latin-display);letter-spacing:.15em;font-size:7px}.calendar-on-photo .calendar-grid span{min-height:27px;font-family:var(--latin-display);font-size:10px;position:relative}.calendar-on-photo .calendar-grid:not(.weekday-row) span:not(:empty):after{content:"";background:#18251c33;border-radius:50%;width:2px;height:2px;position:absolute;bottom:2px}.calendar-on-photo .calendar-grid .wedding-day{color:#fff}.calendar-on-photo .calendar-grid .wedding-day:after{display:none}.calendar-on-photo .calendar-caption{font-family:var(--cn-title);text-align:center;margin-top:16px;padding:15px 4px 0}.travel-ticket{transform:rotate(-.35deg);box-shadow:0 3px 8px #18251c1f,0 28px 58px -18px #18251c57}.map-card{box-shadow:0 3px 7px #18251c1f,0 26px 54px -16px #18251c61}@media (width<=374px){.portrait-break{padding-left:15px;padding-right:15px}.calendar-on-photo{padding-left:18px;padding-right:18px}.calendar-title-row{grid-template-columns:52px 1fr auto;gap:9px}.calendar-focus{grid-template-columns:46px 1fr 54px}.calendar-focus>strong{font-size:64px}}.date-photo-media:after{z-index:2;background:linear-gradient(180deg, var(--paper) 0%, #f3efe5fa 18%, #f3efe5e0 36%, #f3efe575 64%, #f3efe51f 84%, transparent 100%);content:"";pointer-events:none;height:190px;position:absolute;top:-2px;left:0;right:0}.date-photo-shade{z-index:1;background:linear-gradient(#08110b14,#08110b05 42%,#08110b24 72%,#08110b99),radial-gradient(circle at 50% 42%,#0000 48%,#08110b21)}.date-photo-copy{z-index:3;top:178px}.date-photo-media .vertical-mark{z-index:3}.portrait-break>img{box-shadow:0 2px 6px #18251c1a,0 25px 54px -20px #18251c4d}@media (width<=374px){.date-photo-media:after{height:170px}.date-photo-copy{top:160px}}.forest-hero:after{background:linear-gradient(180deg, transparent 0%, #f3efe514 24%, #f3efe580 70%, var(--paper) 100%);border-radius:0;height:108px;bottom:-1px;left:0;right:0}.photo-frame.tall{background:var(--forest)}.photo-frame.tall img{box-shadow:none;border:0;-webkit-mask-image:linear-gradient(#0000 0%,#000 12% 86%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 12% 86%,#0000 100%)}.photo-frame.landscape{transform:rotate(-.25deg)}.photo-frame.landscape:before{inset:8px -4px -6px 6px;transform:rotate(.7deg);box-shadow:0 20px 44px -18px #0000007a}.photo-frame.landscape img{border-width:6px;box-shadow:0 2px 6px #00000029,0 20px 42px -20px #0000009e}.portrait-break{background:var(--paper);padding:0 0 104px}.portrait-break:before{display:none}.portrait-break>img{width:100%;box-shadow:none;border:0;transform:none;-webkit-mask-image:linear-gradient(#0000 0%,#000 17% 82%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 17% 82%,#0000 100%)}.portrait-card{z-index:3;margin:-54px 24px 0 64px}.closing-shade{background:linear-gradient(#0e1912 0%,#0e1912b8 8%,#0000 25% 58%,#0e1912 100%)}@media (width<=374px){.portrait-break{padding-left:0;padding-right:0}.portrait-card{margin-left:48px;margin-right:20px}}.date-photo-copy{top:168px}.date-photo-copy>p{margin-bottom:18px}.date-kicker{color:#ffffffc2;font-family:var(--latin-display);letter-spacing:.24em;justify-content:center;align-items:center;gap:12px;font-size:9px;display:flex}.date-kicker i{background:#ffffff75;width:34px;height:1px}.date-photo-copy h2{letter-spacing:.2em;margin:16px 0 8px;font-size:32px;line-height:1.5}.date-hero-number{grid-template-columns:1fr 1px 1fr;align-items:center;width:236px;margin:8px auto 0;display:grid}.date-hero-number>i{background:linear-gradient(#0000,#ffffffb8,#0000);width:1px;height:74px;transform:rotate(17deg)}.date-hero-number span{flex-direction:column;align-items:center;display:flex}.date-hero-number strong{font-family:var(--latin-display);letter-spacing:-.04em;text-shadow:0 8px 26px #00000047;font-size:68px;font-weight:400;line-height:.88}.date-hero-number small{color:#ffffffb3;font-family:var(--latin-display);letter-spacing:.3em;margin-top:10px;font-size:7px}.date-lunar{color:#ffffffb8;font-family:var(--cn-title);letter-spacing:.18em;margin-top:15px;font-size:9px;font-weight:300;display:block}.calendar-on-photo{background:#faf7eff7;border:1px solid #18251c1c;padding:28px 23px 24px;transform:none;box-shadow:0 2px 5px #18251c17,0 24px 52px -20px #0f1c136b}.calendar-on-photo:before{background:#e9e1d3;inset:7px -5px -7px 7px;transform:rotate(-.55deg);box-shadow:0 12px 25px #18251c1a}.calendar-title-row{border-bottom-color:#18251c1f;grid-template-columns:54px 1fr auto;gap:12px;padding-bottom:17px}.calendar-month-mark b{font-size:40px;line-height:.78}.calendar-title-row h3{letter-spacing:.16em;font-size:18px}.calendar-save-row{border-bottom:1px solid #18251c1a;justify-content:space-between;align-items:center;padding:14px 0 12px;display:flex}.calendar-save-row>span{color:#8b948a;font-family:var(--latin-display);letter-spacing:.21em;font-size:7px}.calendar-save-row p{color:var(--ink);font-family:var(--cn-title);letter-spacing:.12em;margin:0;font-size:9px}.calendar-save-row i{color:#8b948a;font-family:var(--latin-display);letter-spacing:.16em;margin-left:7px;font-size:7px;font-style:normal}.calendar-on-photo .calendar-grid{row-gap:3px;margin-top:13px}.calendar-on-photo .calendar-grid span{min-height:28px;font-size:10px}.calendar-on-photo .calendar-grid .wedding-day:before{background:var(--ink);width:29px;height:29px;box-shadow:0 0 0 2px #faf7eff5,0 0 0 4px #9f804a6b,0 6px 14px #18251c33}.calendar-on-photo .calendar-caption{color:#747c74;letter-spacing:.08em;margin-top:13px;padding-top:14px;font-size:8px}@media (width<=374px){.date-photo-copy{top:154px}.date-photo-copy h2{font-size:29px}.date-hero-number{width:218px}.date-hero-number strong{font-size:62px}.calendar-title-row{grid-template-columns:50px 1fr auto;gap:9px}}.personal-letter{color:#59635a;font-family:var(--cn-title);letter-spacing:.08em;text-align:left;white-space:pre-wrap;background:#ffffff47;border:1px solid #18251c1a;margin:27px 8px 30px;padding:24px 20px;font-size:12px;font-style:normal;font-weight:300;line-height:2;position:relative}.personal-letter:before{color:#a28a61;background:var(--paper);content:"A NOTE FOR YOU";font-family:var(--latin-display);letter-spacing:.2em;padding:0 8px;font-size:7px;position:absolute;top:-11px;left:18px}.rsvp-inner textarea{resize:vertical;color:#fff;width:100%;min-height:86px;font:inherit;background:#ffffff0f;border:1px solid #ffffff40;border-radius:0;outline:none;padding:14px 15px}.rsvp-inner textarea::placeholder{color:#ffffff57}.admin-shell{--admin-ink:#1b2a20;--admin-paper:#f5f1e8;--admin-gold:#a88d61;min-height:100vh;color:var(--admin-ink);background:radial-gradient(circle at 0 0, #a88d612b, transparent 26%), radial-gradient(circle at 100% 100%, #1b2a201c, transparent 30%), var(--admin-paper);font-family:var(--cn-title);padding:38px clamp(18px,4vw,56px) 70px}.admin-loading,.admin-login-shell{place-items:center;display:grid}.admin-loading{color:#778078;letter-spacing:.12em;font-size:13px}.admin-login-card{background:#fffdf8cc;border:1px solid #1b2a201c;width:min(430px,100%);padding:48px 42px 42px;box-shadow:0 28px 70px -34px #1b2a2070}.admin-kicker{color:var(--admin-gold);font-family:var(--latin-display);letter-spacing:.22em;margin:0 0 10px;font-size:8px}.admin-login-card h1,.admin-header h1{letter-spacing:.08em;margin:0;font-size:34px;font-weight:300}.admin-login-card>p:not(.admin-kicker){color:#6d766e;margin:16px 0 32px;font-size:12px;line-height:1.8}.admin-login-card form,.admin-editor form{gap:19px;display:grid}.admin-login-card label,.admin-editor label{gap:8px;display:grid}.admin-login-card label>span,.admin-editor label>span{color:#687269;letter-spacing:.08em;font-size:10px}.admin-login-card input,.admin-editor input,.admin-editor textarea{width:100%;color:var(--admin-ink);font:inherit;background:#ffffff9e;border:1px solid #1b2a2029;border-radius:2px;outline:none;transition:border-color .2s,box-shadow .2s}.admin-login-card input,.admin-editor input{height:46px;padding:0 13px}.admin-editor textarea{resize:vertical;padding:12px 13px;line-height:1.7}.admin-login-card input:focus,.admin-editor input:focus,.admin-editor textarea:focus{border-color:#a88d61b8;box-shadow:0 0 0 3px #a88d611a}.admin-login-card button[type=submit],.admin-primary-button{background:var(--admin-ink);color:#fff;letter-spacing:.12em;border:0;min-height:48px;font-size:11px}.admin-login-card button:disabled,.admin-primary-button:disabled,.admin-upload input:disabled+span{cursor:not-allowed;opacity:.55}.admin-header{justify-content:space-between;align-items:flex-end;max-width:1180px;margin:0 auto 34px;display:flex}.admin-ghost-button,.admin-text-button{color:var(--admin-ink);background:0 0;border:1px solid #1b2a2029}.admin-ghost-button{padding:10px 18px;font-size:10px}.admin-summary{grid-template-columns:repeat(3,1fr);gap:14px;max-width:1180px;margin:0 auto 22px;display:grid}.admin-summary article{background:#fffdf894;border:1px solid #1b2a201a;justify-content:space-between;align-items:flex-end;min-height:105px;padding:22px 24px;display:flex}.admin-summary span{color:#6c766e;letter-spacing:.06em;font-size:11px}.admin-summary strong{font-family:var(--latin-display);font-size:38px;font-weight:400}.admin-alert{border:1px solid #0000;max-width:1180px;margin:0 auto 12px;padding:12px 15px;font-size:11px;line-height:1.6}.admin-alert.warning{color:#765c34;background:#dab37421;border-color:#a4743133}.admin-alert.error{color:#8e4842;background:#97443d17;border-color:#97443d33}.admin-alert.success{color:#476d50;background:#40704e17;border-color:#40704e33}.admin-tabs{border-bottom:1px solid #1b2a201f;gap:7px;max-width:1180px;margin:28px auto 18px;display:flex}.admin-tabs button{color:#768078;background:0 0;border:0;padding:12px 18px;font-size:11px;position:relative}.admin-tabs button.active{color:var(--admin-ink)}.admin-tabs button.active:after{background:var(--admin-gold);content:"";height:2px;position:absolute;bottom:-1px;left:12px;right:12px}.admin-workspace{grid-template-columns:minmax(330px,.78fr) minmax(420px,1.22fr);align-items:start;gap:18px;max-width:1180px;margin:0 auto;display:grid}.admin-panel{background:#fffdf8b3;border:1px solid #1b2a201c;box-shadow:0 22px 55px -42px #1b2a207a}.admin-editor,.admin-list-panel,.admin-rsvp-panel{padding:28px}.admin-rsvp-panel{max-width:1180px;margin:0 auto}.admin-panel-title{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.admin-panel-title span{color:var(--admin-gold);font-family:var(--latin-display);letter-spacing:.2em;margin-bottom:5px;font-size:7px;display:block}.admin-panel-title h2{letter-spacing:.08em;margin:0;font-size:20px;font-weight:300}.admin-text-button{padding:7px 10px;font-size:9px}.admin-inline-field{grid-template-columns:1fr auto;display:grid}.admin-inline-field input{border-radius:2px 0 0 2px}.admin-inline-field button{color:var(--admin-ink);background:#eae2d4;border:1px solid #1b2a2029;border-left:0;padding:0 12px;font-size:9px}.admin-upload{color:#687269;cursor:pointer;border:1px dashed #1b2a2040;place-items:center;min-height:42px;position:relative}.admin-upload>span{pointer-events:none}.admin-upload input{cursor:pointer;opacity:0;height:100%;position:absolute;inset:0}.admin-switch{grid-template-columns:auto 1fr;align-items:center;gap:10px!important;display:flex!important}.admin-switch input{width:16px;height:16px;accent-color:var(--admin-ink)}.admin-guest-list{gap:12px;display:grid}.admin-guest-card{background:#ffffff6b;border:1px solid #1b2a2017;grid-template-columns:44px 1fr auto;align-items:start;gap:14px;padding:17px;display:grid}.admin-avatar{background:var(--admin-ink);color:#fff;border-radius:50%;place-items:center;width:44px;height:44px;font-size:16px;font-weight:300;display:grid}.admin-guest-copy{min-width:0}.admin-guest-copy>div{align-items:center;gap:9px;display:flex}.admin-guest-copy h3{margin:0;font-size:15px;font-weight:400}.admin-guest-copy span{padding:2px 6px;font-size:8px}.status-live{color:#426b4b;background:#3770481f}.status-paused{color:#747474;background:#8282821f}.admin-guest-copy p{color:#6f786f;text-overflow:ellipsis;white-space:nowrap;margin:7px 0;font-size:10px;overflow:hidden}.admin-guest-copy a{color:var(--admin-gold);font-family:var(--latin-display);text-overflow:ellipsis;white-space:nowrap;font-size:8px;text-decoration:none;display:block;overflow:hidden}.admin-card-actions{gap:5px;display:flex}.admin-card-actions button{color:#59635b;background:0 0;border:1px solid #1b2a201f;padding:6px 8px;font-size:8px}.admin-card-actions button.danger{color:#9a514a}.admin-empty{color:#7a837b;text-align:center;margin:20px 0;font-size:11px}.admin-table-wrap{overflow-x:auto}.admin-table-wrap table{border-collapse:collapse;width:100%;font-size:11px}.admin-table-wrap th,.admin-table-wrap td{text-align:left;vertical-align:top;border-bottom:1px solid #1b2a2017;padding:14px 12px}.admin-table-wrap th{color:#7b847c;letter-spacing:.08em;font-size:9px;font-weight:400}.admin-table-wrap td strong,.admin-table-wrap td small{display:block}.admin-table-wrap td small{color:#8a928b;font-family:var(--latin-display);margin-top:4px;font-size:8px}@media (width<=860px){.admin-workspace{grid-template-columns:1fr}.admin-summary article{min-height:90px;padding:18px}.admin-summary strong{font-size:31px}}@media (width<=620px){.admin-shell{padding:26px 14px 50px}.admin-login-card{padding:40px 26px 32px}.admin-header{align-items:center}.admin-header h1{font-size:27px}.admin-summary{grid-template-columns:1fr 1fr}.admin-summary article:last-child{grid-column:1/-1}.admin-editor,.admin-list-panel,.admin-rsvp-panel{padding:22px 16px}.admin-guest-card{grid-template-columns:40px 1fr}.admin-avatar{width:40px;height:40px}.admin-card-actions{grid-column:2}.admin-inline-field{grid-template-columns:1fr}.admin-inline-field input{border-radius:2px 2px 0 0}.admin-inline-field button{border-top:0;border-left:1px solid #1b2a2029;min-height:36px}}
