@font-face{font-family:Manrope;font-style:normal;font-display:block;font-weight:200 800;src:url(/fonts/manrope-latin-variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope;font-style:normal;font-display:block;font-weight:200 800;src:url(/fonts/manrope-cyrillic-variable.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:block;font-weight:300 700;src:url(/fonts/cormorant-garamond-latin-variable.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:block;font-weight:300 700;src:url(/fonts/cormorant-garamond-cyrillic-variable.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Great Vibes;font-style:normal;font-display:block;font-weight:400;src:url(/fonts/great-vibes-latin-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Great Vibes;font-style:normal;font-display:block;font-weight:400;src:url(/fonts/great-vibes-cyrillic-400.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}:root{--bg:#f7f0e7;--surface:#fff9f1b8;--surface-strong:#f3e8d8;--text-strong:#3b2a22;--text-soft:#3b2a22d1;--muted:#48352b8f;--accent:#9f6548;--accent-strong:#bd815d;--olive:#6b7257;--font-display:"Cormorant Garamond", Georgia, serif;--font-script:"Great Vibes", cursive;--font-sans:"Manrope", "Segoe UI", sans-serif;font-family:var(--font-sans);color:var(--text-soft);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at top,#ffffff70,#0000 40%),linear-gradient(#f7f0e7 0%,#f5ecdf 30%,#f3e8dc 70%,#f7f1e8 100%);font-weight:500;line-height:1.5}html{scroll-behavior:smooth;overscroll-behavior:none}body{min-width:320px;min-height:100svh;margin:0}body,button,a{-webkit-tap-highlight-color:transparent}*,:before,:after{box-sizing:border-box}::selection{background:#bf835e38}#root{min-height:100svh}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-display);color:var(--text-strong);font-weight:600}img{max-width:100%;display:block}button,a{font:inherit}.app-shell{--intro-viewport-height:100svh;--intro-viewport-width:100vw;--letter-reveal-top:clamp(22px, 4.5svh, 46px);--letter-sheet-width:min(42rem, calc(100vw - 26px));--opened-background-width:var(--intro-viewport-width);--opened-background-height:var(--intro-viewport-height);--intro-mobile-envelope-width:min(25rem, 96vw);--intro-mobile-envelope-height:17.36rem;position:relative;overflow-x:clip}.desktop-mobile-fallback{display:none}.desktop-mobile-fallback__panel{text-align:center;background:linear-gradient(145deg,#fffdf9eb,#f1e5d9d1),radial-gradient(circle at 18% 0,#bd815d29,#0000 34%);border:1px solid #6f523d1f;border-radius:28px;justify-items:center;gap:16px;width:min(30rem,100vw - 48px);padding:42px;display:grid;box-shadow:inset 0 1px #ffffff80,0 28px 70px #3e2b1f1f}.desktop-mobile-fallback__eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.22em;margin:0;font-size:.72rem}.desktop-mobile-fallback__panel h1{letter-spacing:-.04em;max-width:22rem;margin:0;font-size:clamp(2.6rem,5vw,4rem);line-height:.92}.desktop-mobile-fallback__copy{max-width:23rem;color:var(--text-soft);font-size:1rem}.desktop-mobile-fallback__qr{aspect-ratio:1;background:#fffdf9;border-radius:22px;place-items:center;width:min(280px,64vw);padding:12px;display:grid;box-shadow:0 18px 36px #3e2b1f1f}.desktop-mobile-fallback__qr img,.desktop-mobile-fallback__qr span{aspect-ratio:1;border-radius:12px;width:100%;display:block}.desktop-mobile-fallback__qr span{background:linear-gradient(90deg,#6f523d14,#ffffffad),#6f523d0f}.desktop-mobile-fallback__link{overflow-wrap:anywhere;color:#48352bad;max-width:100%;font-size:.78rem;text-decoration:none}.intro-overlay{z-index:20;color:#704832;background:radial-gradient(circle at 50% 35%,#fffffffa,#0000 38%),radial-gradient(circle at 50% 56%,#e8b97438,#0000 34%),linear-gradient(#fffdf8 0%,#faefd9 100%);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.intro-phase--envelope-ready .intro-overlay,.is-envelope-opened .intro-overlay{display:none}.intro-loader{text-align:center;justify-items:center;gap:14px;display:grid}.intro-loader__monogram{filter:drop-shadow(0 12px 28px #8b563421)drop-shadow(0 0 18px #ffffffb8);width:clamp(138px,32vw,206px);height:auto;display:block;overflow:visible}.intro-loader__monogram-stroke,.intro-loader__monogram-fill{font-family:var(--font-script);letter-spacing:0;font-size:86px}.intro-loader__monogram-stroke{fill:none;stroke:#8b5334c7;stroke-width:1.45px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:720;stroke-dashoffset:720px;animation:3.15s ease-in-out infinite loader-write}.intro-loader__monogram-fill{fill:#7b492fb8;opacity:0;animation:3.15s ease-in-out infinite loader-fill}.intro-loader__text{color:#5d3d2be6;text-transform:uppercase;letter-spacing:.28em;font-size:.78rem}.intro-start{color:#6c3f2c;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:linear-gradient(135deg,#ffffffe6,#fff2dcc7),linear-gradient(135deg,#b8784c,#d9a064);border:1px solid #8f59362e;border-radius:999px;min-width:11rem;min-height:58px;font-weight:800;box-shadow:inset 0 1px #ffffffb3,0 18px 42px #85523138}.intro-start:focus-visible,.music-toggle:focus-visible{outline-offset:5px;outline:2px solid #76482b8a}.music-toggle{top:max(16px, env(safe-area-inset-top));right:max(16px, env(safe-area-inset-right));z-index:12;aspect-ratio:1;color:#553726db;cursor:pointer;-webkit-backdrop-filter:blur(12px)saturate(1.1);backdrop-filter:blur(12px)saturate(1.1);background:#fff8ee94;border:1px solid #ffffff80;border-radius:50%;place-items:center;width:44px;display:grid;position:fixed;box-shadow:inset 0 1px #ffffff94,0 16px 34px #3b271a24}@supports ((-webkit-backdrop-filter:blur(0))){.music-toggle{-webkit-backdrop-filter:blur(12px)saturate(1.1)}}.music-toggle.is-muted{color:#5537266b}@keyframes loader-write{0%{stroke-dashoffset:720px;opacity:.4}48%,76%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:720px;opacity:.36}}@keyframes loader-fill{0%,36%{opacity:0}54%,78%{opacity:1}to{opacity:0}}.film-grain,.ambient{pointer-events:none;position:fixed;inset:0}.film-grain{opacity:.05;mix-blend-mode:multiply;background-image:linear-gradient(#ffffff1f,#ffffff1f),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.24'/%3E%3C/svg%3E")}.ambient{opacity:.72}.ambient--left{background:radial-gradient(circle at 12% 18%,#ba765133,#0000 26%),radial-gradient(circle at 16% 84%,#6e765c24,#0000 22%)}.ambient--right{background:radial-gradient(circle at 84% 14%,#eedbbe9e,#0000 28%),radial-gradient(circle at 80% 74%,#a26f4f1f,#0000 24%)}.invitation-sequence{position:relative}.invitation-camera{height:var(--intro-viewport-height);perspective:2200px;transform-style:preserve-3d;background:radial-gradient(circle at top,#fffbf5e6,#0000 38%),linear-gradient(#f6eee3fa,#eee4d8f0);position:relative;overflow:hidden}.invitation-camera.is-opened{height:auto;min-height:var(--intro-viewport-height);overflow:visible}.app-shell.is-envelope-opened .invitation-camera{perspective:none;transform-style:flat}.proposal-memory{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.proposal-memory__photo{filter:saturate(1.02)contrast(1.04);opacity:.86;background-color:#ead9c8;background-position:50% 74%;background-size:cover;position:absolute;inset:-26px;transform:scale(1.04)}.intro-phase--loading .proposal-memory__photo,.intro-phase--ready .proposal-memory__photo{opacity:0;filter:blur(16px)saturate(1.02)contrast(1.04);transform:scale(1.08)}.proposal-memory__glass{-webkit-backdrop-filter:blur(7px)saturate(1.08);backdrop-filter:blur(7px)saturate(1.08);background:linear-gradient(145deg,#ffffff1f,#fff8ee0a),linear-gradient(#543a2b00,#543a2b0d);border:1px solid #ffffff6b;border-radius:clamp(28px,4vw,48px);position:absolute;inset:clamp(350px,46svh,470px) max(18px,50vw - 35rem) clamp(118px,18svh,164px);box-shadow:inset 0 1px #ffffff75,inset 0 -36px 70px #fff5e714,0 32px 84px #4b32221f}@supports ((-webkit-backdrop-filter:blur(0))){.proposal-memory__glass{-webkit-backdrop-filter:blur(7px)saturate(1.08)}}.intro-phase--loading .proposal-memory__glass,.intro-phase--ready .proposal-memory__glass{opacity:0;transform:translateY(96px)}.stage-floor{pointer-events:none;filter:blur(18px);opacity:.22;background:radial-gradient(circle,#36251a2e,#0000 66%);border-radius:999px;width:min(62rem,92vw);height:18%;position:absolute;bottom:4%;left:50%;transform:translate(-50%)}.opening-note{z-index:6;text-align:center;pointer-events:none;place-items:center;gap:10px;width:min(34rem,100vw - 64px);display:grid;position:absolute;top:clamp(460px,58svh,570px);left:50%;transform:translate(-50%,-50%)}.opening-note__eyebrow{color:#fff9f2c7;text-transform:uppercase;letter-spacing:.22em;text-shadow:0 1px 10px #30231b6b,0 0 20px #fffaf457;margin:0;font-size:.72rem}.opening-note__script{width:100%;max-width:38rem;height:auto;display:block;overflow:visible}.opening-note__stroke,.opening-note__fill{font-family:var(--font-script);letter-spacing:0;font-size:92px}.opening-note__stroke{fill:none;stroke:#fff8eff5;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:980;stroke-dashoffset:980px;text-shadow:0 1px 2px #2e1f186b,0 8px 26px #2e1f1857,0 0 28px #fffaf447}.opening-note__fill{fill:#fff8eff0;opacity:0;filter:drop-shadow(0 1px 2px #2e1f185c)drop-shadow(0 8px 18px #2e1f183d)}.intro-phase--envelope-ready .opening-note__stroke,.is-envelope-opening .opening-note__stroke,.is-envelope-opened .opening-note__stroke{stroke-dashoffset:0}.intro-phase--envelope-ready .opening-note__fill,.is-envelope-opening .opening-note__fill,.is-envelope-opened .opening-note__fill{opacity:1}.intro-phase--loading .opening-note,.intro-phase--ready .opening-note{opacity:0}.envelope-scene{z-index:3;transform-style:preserve-3d;position:absolute;inset:0}.envelope-scene.is-opened{min-height:var(--intro-viewport-height);padding:var(--letter-reveal-top) 0 clamp(56px, 8svh, 88px);position:relative;inset:auto}.letter-sheet{z-index:2;width:var(--letter-sheet-width);will-change:transform;transform-style:preserve-3d;background:linear-gradient(#fffdf9fc,#f6eee4f7),linear-gradient(120deg,#ffffff3d,#0000 24%);border:1px solid #6148361a;border-radius:26px;padding:clamp(40px,5vw,56px) clamp(28px,5.5vw,64px) clamp(46px,6vw,72px);position:absolute;top:106%;left:50%;box-shadow:0 54px 110px #31231929,0 12px 30px #31231914}.letter-sheet.is-opened{width:var(--letter-sheet-width);will-change:auto;margin:0 auto;position:relative;top:auto;left:auto;box-shadow:0 96px 170px #31231942,0 18px 46px #3123191f;transform:none!important}.app-shell.is-envelope-opening .letter-sheet{z-index:6}.letter-sheet:before{content:"";background:linear-gradient(90deg,#0000,#6f523d2e,#0000);height:1px;position:absolute;inset:22px 24px auto}.letter-sheet:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(132deg,#ffffff52,#0000 28%),linear-gradient(#0000 72%,#a079590a);position:absolute;inset:0}.envelope-shell,.envelope-tap-target{aspect-ratio:1.44;width:min(34rem,92vw);position:absolute;bottom:clamp(18px,4vh,34px);left:50%;transform:translate(-50%)}.envelope-shell{z-index:4;transform-style:preserve-3d;will-change:transform, opacity;pointer-events:none}.envelope-tap-target{appearance:none;z-index:8;color:inherit;cursor:pointer;font:inherit;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}.envelope-tap-target:disabled{color:inherit;cursor:default}.envelope-tap-target:focus-visible{outline-offset:10px;outline:2px solid #fff8efc7}.intro-phase--loading .envelope-shell,.intro-phase--ready .envelope-shell{opacity:0;transform:translate(-50%)translateY(92px)scale(.86)rotateX(9deg)rotateY(-7deg)}.intro-phase--loading .envelope-tap-target,.intro-phase--ready .envelope-tap-target,.intro-phase--staging .envelope-tap-target{pointer-events:none}.envelope-shadow{filter:blur(20px);background:radial-gradient(circle,#2d1e1433,#0000 70%);border-radius:50%;height:18%;position:absolute;inset:auto 9% -8%}.envelope-back,.envelope-liner,.envelope-flap-under,.envelope-pocket,.envelope-flap,.envelope-flap-face{border-radius:30px;position:absolute;inset:0}.envelope-back{background:linear-gradient(#f2e5d6,#e5d2bc),linear-gradient(135deg,#ffffff2e,#0000 58%);box-shadow:inset 0 1px #ffffff4d,0 30px 74px #3a281d29}.envelope-back:before{content:"";border:1px solid #ffffff2e;border-radius:22px;position:absolute;inset:10px}.envelope-liner{clip-path:polygon(0 0,100% 0,50% 58%);background:linear-gradient(#fbf5edf5,#e8d6c3f0),linear-gradient(135deg,#ffffff3d,#0000 56%);border-radius:24px 24px 10px 10px;inset:5% 6% 25%}.envelope-flap-under{z-index:2;clip-path:polygon(0 0,100% 0,50% 72%);background:linear-gradient(#dcc2a7,#cfa989),linear-gradient(145deg,#ffffff1f,#0000 36%)}.envelope-pocket{z-index:3;clip-path:polygon(0% 100%,0% 28%,50% 70%,100% 28%,100% 100%);background:linear-gradient(#f5eadb,#ead9c7),linear-gradient(120deg,#ffffff24,#0000 44%);box-shadow:inset 0 1px #ffffff3d,0 -12px 22px #75553c14}.envelope-pocket:before,.envelope-pocket:after{content:"";opacity:.36;width:50%;position:absolute;top:28%;bottom:0}.envelope-pocket:before{clip-path:polygon(0 100%,0 0,100% 54%);background:linear-gradient(135deg,#c5aa8eb3,#fff0);left:0}.envelope-pocket:after{clip-path:polygon(100% 100%,0 54%,100% 0);background:linear-gradient(225deg,#c5aa8eb3,#fff0);right:0}.envelope-flap{z-index:5;transform-style:preserve-3d;-webkit-transform-style:preserve-3d;transform-origin:50% 0;backface-visibility:hidden;will-change:transform}.envelope-flap-face{clip-path:polygon(0 0,100% 0,50% 72%);backface-visibility:hidden;background:linear-gradient(#fbf1e5,#e9d7c3),linear-gradient(145deg,#ffffff38,#0000 34%);box-shadow:0 10px 22px #2a1c1314,inset 0 1px #ffffff3d}.envelope-flap-face:after{content:"";opacity:.7;background:linear-gradient(#0000 58%,#67493514);position:absolute;inset:0}.wax-seal{z-index:6;aspect-ratio:1;color:#f8eadf;width:clamp(68px,8vw,90px);font-family:var(--font-display);letter-spacing:.06em;backface-visibility:hidden;will-change:transform, opacity;background:radial-gradient(circle at 32% 28%,#ffe6d257,#0000 34%),linear-gradient(145deg,#8d5239,#6e3623);border-radius:50%;place-items:center;font-size:clamp(1.3rem,2.6vw,1.8rem);display:grid;position:absolute;top:56%;left:50%;translate:-50% -50%;box-shadow:0 16px 28px #4323173d,inset 0 1px #ffffff2e}.tap-cue,.paper-kicker,.paper-section-label,.countdown-box__label{text-transform:uppercase;letter-spacing:.26em;font-size:.72rem}.tap-cue{z-index:6;color:#432f258a;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.intro-phase--loading .tap-cue,.intro-phase--ready .tap-cue,.intro-phase--staging .tap-cue{opacity:0;transform:translate(-50%,14px)}.app-shell.is-envelope-opened .proposal-memory{width:var(--opened-background-width);height:var(--opened-background-height);position:fixed;inset:0 auto auto 0}.app-shell.is-envelope-opened .proposal-memory__glass{display:none}.paper-kicker,.paper-section-label,.countdown-box__label{color:var(--muted)}.letter-sheet>*+*{margin-top:clamp(34px,5vw,54px)}.paper-hero{gap:18px;display:grid}.paper-title{letter-spacing:-.05em;color:var(--text-strong);margin:0;font-size:clamp(3.2rem,8vw,6.4rem);line-height:.9}.paper-greeting{font-family:var(--font-display);color:var(--accent);margin:0 0 -4px;padding-top:2rem;font-size:clamp(1.65rem,4vw,2.6rem);font-weight:800;line-height:1}.paper-lead,.paper-copy,.paper-copy--single,.timeline-row__body p,.countdown-note,.rsvp-hint{color:var(--text-strong);font-size:clamp(1rem,2vw,1.08rem)}.paper-lead{max-width:34rem}.paper-meta{text-align:center;flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}.paper-meta__badge{color:var(--text-strong);background:linear-gradient(#fffcf8e0,#f7ede2d1),radial-gradient(circle at 50% 0,#bd815d29,#0000 58%);border:1px solid #674d3a29;border-radius:999px;justify-items:center;gap:2px;padding:10px 20px 13px;display:inline-grid;box-shadow:inset 0 1px #ffffffb8,0 10px 26px #46332914}.paper-meta__weekday{color:#48352b94;text-transform:uppercase;letter-spacing:.22em;font-size:.68rem;font-weight:700;line-height:1}.paper-meta__date{font-family:var(--font-display);letter-spacing:0;font-size:clamp(1.7rem,5.6vw,2.2rem);font-weight:700;line-height:.95}.paper-grid{grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr);gap:30px;display:grid}.paper-grid--gifts{grid-template-columns:1fr;gap:22px}.paper-section-title{letter-spacing:-.04em;color:var(--text-strong);margin:8px 0 0;font-size:clamp(2rem,4vw,3.2rem);line-height:.96}.paper-copy{gap:16px;display:grid}.paper-copy--single{max-width:32rem}.paper-photo-strip,.paper-photo{background-color:#ead9c8;background-position:50%;background-size:cover;margin-inline:0;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff52,0 24px 54px #3f2b1e1f}.paper-photo-strip:after,.paper-photo:after{content:"";pointer-events:none;background:linear-gradient(132deg,#ffffff29,#0000 32%),linear-gradient(#0000 58%,#291d1647);position:absolute;inset:0}.paper-photo-strip{border-radius:28px;min-height:clamp(220px,44vw,360px)}.paper-photo{border-radius:24px;min-height:clamp(190px,30vw,260px)}.paper-photo figcaption,.paper-photo-strip figcaption{z-index:1;color:#fffaf5eb;font-family:var(--font-display);text-shadow:0 2px 14px #281c145c;margin:0;font-size:clamp(1.4rem,3.4vw,2rem);line-height:.95;position:absolute;bottom:16px;left:18px}.paper-photo--venue{background-position:50% 45%}.paper-photo-strip--story{background-position:50% 64%}.timeline-rows{gap:18px;display:grid}.timeline-row{border-top:1px solid #6f523d1f;grid-template-columns:minmax(76px,96px) minmax(0,1fr);gap:18px;padding:18px 0;display:grid}.timeline-row:first-child{border-top:none;padding-top:0}.timeline-row__time{font-family:var(--font-display);color:var(--text-strong);margin:0;font-size:clamp(2rem,4vw,3rem);line-height:.88}.timeline-row__body h3{color:var(--text-strong);margin:0 0 6px;font-size:clamp(1.3rem,2.8vw,1.9rem)}.timeline-row__body p{margin:0}.details-column{gap:14px;display:grid}.details-column--countdown{align-content:start;padding-top:2px}.details-column--countdown .paper-section-label{margin-top:8px}.venue-address{font-family:var(--font-display);color:var(--text-strong);margin:0;font-size:clamp(1.4rem,3vw,2.2rem);line-height:.95}.paper-link{width:fit-content;color:var(--accent);align-items:center;gap:10px;font-weight:700;text-decoration:none;display:inline-flex}.paper-link:after{content:"↗";font-size:.9em}.countdown-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.countdown-box{text-align:center;background:#ffffffa3;border:1px solid #6f523d14;border-radius:22px;gap:6px;padding:18px 12px;display:grid}.countdown-box__value{font-family:var(--font-display);color:var(--text-strong);font-size:clamp(2rem,4vw,3rem);line-height:.84}.countdown-note{margin:2px 0 0}.palette{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.palette-chip{min-width:0}.palette-chip__swatch{aspect-ratio:1;border-radius:22px;display:block;box-shadow:inset 0 1px #fff6,0 16px 28px #3c2b1f14}.gift-note{background:linear-gradient(145deg,#fffdf9c7,#efe0d3b3),radial-gradient(circle at 16% 18%,#93503c29,#0000 38%);border:1px solid #89553e29;border-radius:26px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(18px,3vw,28px);padding:clamp(22px,4vw,34px);display:grid;position:relative;box-shadow:inset 0 1px #ffffff6b,0 20px 42px #3e2b1f14}.gift-note:before{content:"";pointer-events:none;border:1px solid #ffffff4d;border-radius:20px;position:absolute;inset:16px}.gift-note__mark{aspect-ratio:1;object-fit:contain;filter:drop-shadow(0 14px 20px #392b2324);width:clamp(72px,12vw,104px);position:relative}.gift-note__copy{z-index:1;color:var(--text-soft);gap:12px;font-size:clamp(1rem,2vw,1.08rem);display:grid;position:relative}.gift-note__copy p:last-child{color:#5f4133ad}.paper-footer{grid-template-columns:minmax(0,1fr) minmax(18rem,22rem);align-items:center;gap:30px;padding-top:6px;display:grid}.rsvp-panel{justify-items:stretch;gap:16px;display:grid}.rsvp-button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff9f3;min-height:74px;font-family:var(--font-sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border:none;border-radius:999px;font-size:.98rem;font-weight:800;position:relative;overflow:hidden;box-shadow:0 20px 36px #7c4f343d}.rsvp-button.is-confirmed{background:linear-gradient(135deg,#6f775c,#899373);box-shadow:0 20px 36px #5a624b3d}.rsvp-button__shine{background:linear-gradient(120deg,#0000 0%,#ffffff47 48%,#0000 100%);position:absolute;inset:0;transform:translate(-120%)}.rsvp-button:hover .rsvp-button__shine,.rsvp-button.is-confirmed .rsvp-button__shine{animation:1.15s ribbon}.rsvp-form{transform-origin:50% 0;background:linear-gradient(145deg,#fffdf9e6,#f1e5d9b8),radial-gradient(circle at 12% 0,#bd815d24,#0000 34%);border:1px solid #6f523d1f;border-radius:24px;gap:18px;padding:18px;display:grid;box-shadow:inset 0 1px #ffffff6b,0 18px 38px #3e2b1f14}.rsvp-form__intro{gap:8px;padding-bottom:2px;display:grid}.rsvp-form__eyebrow{color:#48352b94;text-transform:uppercase;letter-spacing:.2em;margin:0;font-size:.68rem;font-weight:800}.rsvp-form__intro h3{font-family:var(--font-display);letter-spacing:0;color:var(--text-strong);margin:0;font-size:clamp(1.45rem,5vw,2rem);line-height:.98}.rsvp-form__hint{color:#48352ba3;margin:0;font-size:.9rem;line-height:1.45}.rsvp-form__group{border:0;gap:10px;min-width:0;margin:0;padding:0;display:grid}.rsvp-form__group legend,.rsvp-field span{color:#48352bad;text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:800}.rsvp-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-top:8px;display:grid}.rsvp-options--meal{grid-template-columns:repeat(2,minmax(0,1fr))}.rsvp-option{min-width:0;position:relative}.rsvp-option input{z-index:1;opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.rsvp-option span{color:#463329db;text-align:center;background:#ffffff94;border:1px solid #6f523d1f;border-radius:999px;place-items:center;min-height:44px;padding:10px;font-size:.9rem;font-weight:800;transition:border-color .18s,background .18s,color .18s,transform .18s;display:grid}.rsvp-option input:checked+span{color:#fffaf3;background:linear-gradient(135deg,#6f775cf0,#899373e6);border-color:#6f775c6b}.rsvp-option input:focus-visible+span,.rsvp-field textarea:focus-visible,.rsvp-field input:focus-visible,.rsvp-submit:focus-visible{outline-offset:3px;outline:2px solid #76482b6b}.rsvp-field{gap:8px;display:grid}.rsvp-field textarea,.rsvp-field input{width:100%;color:var(--text-strong);font:inherit;background:#ffffffa8;border:1px solid #6f523d1f;border-radius:18px;font-size:.95rem}.rsvp-field textarea{resize:vertical;min-height:72px;padding:12px 14px}.rsvp-field input{min-height:48px;padding:10px 14px}.rsvp-field textarea::placeholder{color:#48352b6b}.rsvp-submit{color:#fffaf3;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:linear-gradient(135deg,#6f775c,#899373);border:0;border-radius:999px;min-height:54px;font-weight:800;box-shadow:0 16px 28px #5a624b33}.rsvp-submit:disabled{cursor:wait;opacity:.68}.rsvp-error{color:#722f20f0;text-align:center;background:#fff6f1c7;border:1px solid #8e3f2c38;border-radius:18px;margin:0;padding:12px 14px;font-size:.92rem;font-weight:700}.rsvp-error button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;font-weight:900;text-decoration:underline}.rsvp-summary{color:#414935e6;text-align:center;background:#ffffff94;border:1px solid #6f775c38;border-radius:18px;margin:0;padding:12px 14px;font-size:.92rem;font-weight:700}@keyframes ribbon{0%{transform:translate(-120%)}to{transform:translate(120%)}}.rsvp-hint{text-align:center;margin:0}.admin-shell{min-height:100svh;color:var(--text-strong);background:radial-gradient(circle at 16% 12%,#bd815d29,#0000 28%),radial-gradient(circle at 84% 0,#6f775c29,#0000 26%),linear-gradient(#fffdf8 0%,#efe1d2 100%);padding:clamp(18px,4vw,48px)}.admin-panel{background:#fffdf9d1;border:1px solid #6f523d24;border-radius:24px;gap:22px;width:min(1180px,100%);margin:0 auto;padding:clamp(20px,4vw,34px);display:grid;box-shadow:inset 0 1px #ffffff80,0 28px 70px #3e2b1f1f}.admin-header{justify-content:space-between;align-items:start;gap:18px;display:flex}.admin-eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.22em;margin:0 0 8px;font-size:.72rem;font-weight:800}.admin-header h1{letter-spacing:-.04em;margin:0;font-size:clamp(2.4rem,6vw,4rem);line-height:.95}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-actions button,.admin-login button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fff9f3;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border:0;border-radius:999px;min-height:44px;padding:0 18px;font-weight:800}.admin-actions button:disabled{cursor:wait;opacity:.62}.admin-login{gap:14px;max-width:26rem;display:grid}.admin-login label{gap:8px;display:grid}.admin-login span{color:#48352bad;text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:800}.admin-login input{width:100%;min-height:50px;color:var(--text-strong);font:inherit;background:#ffffffb8;border:1px solid #6f523d1f;border-radius:18px;padding:10px 14px}.admin-status,.admin-empty,.admin-error{color:var(--text-soft);margin:0;font-size:1rem}.admin-error{color:#722f20f0;font-weight:700}.admin-table-wrap{background:#ffffff85;border:1px solid #6f523d1f;border-radius:18px;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:920px;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #6f523d1a;padding:13px 14px}.admin-table th{color:#48352ba8;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem}.admin-table tr:last-child td{border-bottom:0}@media (width<=900px){.paper-grid,.paper-footer{grid-template-columns:1fr}.admin-header{display:grid}.admin-actions{justify-content:start}}@media (width>=901px){.invitation-mobile-shell{display:none}.desktop-mobile-fallback{place-items:center;min-height:100svh;padding:32px;display:grid}}@media (width<=640px){.app-shell{--letter-sheet-width:calc(100vw - 30px)}.invitation-camera{--mobile-envelope-bottom:max(6px, env(safe-area-inset-bottom));--mobile-envelope-top:calc(var(--intro-viewport-height) - var(--mobile-envelope-bottom) - var(--intro-mobile-envelope-height))}.letter-sheet{border-radius:22px;padding:32px 26px 44px}.letter-sheet:before{inset:16px 20px auto}.paper-title{font-size:clamp(3rem,14vw,4.3rem)}.paper-meta{gap:10px}.paper-meta__badge{padding:9px 17px 12px}.envelope-shell,.envelope-tap-target{width:var(--intro-mobile-envelope-width);bottom:var(--mobile-envelope-bottom)}.envelope-shell{perspective:1200px;perspective-origin:50% 0}.envelope-flap{transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.tap-cue{text-align:center;width:80vw;bottom:18px}.opening-note{top:clamp(410px, calc(var(--mobile-envelope-top) - 76px), 540px);width:min(22rem,100vw - 56px)}.opening-note__script{width:100%;max-width:24rem}.opening-note__stroke,.opening-note__fill{font-size:86px}.timeline-row{grid-template-columns:1fr;gap:8px}.countdown-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gift-note{grid-template-columns:1fr}.gift-note__mark{width:78px}.proposal-memory__glass{inset:clamp(330px, calc(var(--mobile-envelope-top) - 174px), 438px) 14px clamp(104px, 18svh, 138px);border-radius:28px}.proposal-memory__photo{opacity:.9}.paper-photo-strip{border-radius:24px;min-height:230px}}@media (prefers-reduced-motion:reduce){.invitation-camera{perspective:none}.app-shell.is-envelope-opened .invitation-camera{height:auto;padding:24px 10px 64px;overflow:visible}.intro-loader__monogram-stroke,.intro-loader__monogram-fill{animation:none}.intro-loader__monogram-stroke{stroke-dashoffset:0;opacity:1}.intro-loader__monogram-fill{opacity:1}.intro-phase--envelope-ready .proposal-memory__photo{opacity:.9;filter:saturate(1.02)contrast(1.04);transform:scale(1.04)}.intro-phase--envelope-ready .proposal-memory__glass{opacity:1;transform:none}.stage-floor,.app-shell.is-envelope-opened .proposal-memory,.app-shell.is-envelope-opened .tap-cue,.app-shell.is-envelope-opened .opening-note,.app-shell.is-envelope-opened .envelope-shell,.app-shell.is-envelope-opened .envelope-tap-target{display:none}.letter-sheet.is-opened{width:min(44rem,100%);margin:0 auto;position:relative;top:auto;left:auto;transform:none!important}}
