/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-ink:#0e0b0a;--color-blush:#f2d6ce;--color-champagne:#e8c9a8;--color-rose:#c4787a;--color-gold:#d4af7a;--color-deep:#e8c9a8;--color-card:#2a1f1ce0}}@layer base{*,::backdrop,:after,:before{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}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.contents{display:contents}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border-gold{border-color:var(--color-gold)}.bg-card{background-color:var(--color-card)}.bg-rose{background-color:var(--color-rose)}.text-blush{color:var(--color-blush)}.text-champagne{color:var(--color-champagne)}.text-deep{color:var(--color-deep)}.text-gold{color:var(--color-gold)}.text-ink{color:var(--color-ink)}.text-rose{color:var(--color-rose)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#0e0b0a;--dusk:#2a1f1c;--blush:#f2d6ce;--champagne:#e8c9a8;--rose:#c4787a;--petal:#e8a0a8;--gold:#d4af7a;--mist:#f2d6ce1f;--deep:#e8c9a8;--card:#2a1f1ce0;--leaf:#5b705e;--ease:cubic-bezier(.22,1,.36,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{background:radial-gradient(circle at 50% 36%,#241917 0,var(--dusk) 38%,#16100f 72%,var(--ink) 100%);width:100%;height:100dvh;color:var(--blush);-webkit-font-smoothing:antialiased;font-family:Be Vietnam Pro,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}body:before{content:"";opacity:.14;z-index:12;filter:url(#grain-filter);background:#fff;width:100%;height:100%;inset:0}.grain-filter-svg,body:before{pointer-events:none;position:fixed}.grain-filter-svg{visibility:hidden;width:0;height:0}main{perspective:1200px;width:100%;max-width:520px;height:100dvh;min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);justify-content:center;align-items:center;margin:0 auto;display:flex;position:relative}.bokeh,main{overflow:hidden}.bokeh{pointer-events:none;z-index:1;position:fixed;inset:0}.bokeh-dot{filter:blur(14px);will-change:transform;background:radial-gradient(circle,#e8c9a873 0,#d4af7a29 55%,#0000 100%);border-radius:50%;animation:bokehDrift ease-in-out infinite alternate;position:absolute}@keyframes bokehDrift{0%{transform:translate(0)scale(1)}50%{transform:translate(30px,-40px)scale(1.15)}to{transform:translate(-25px,35px)scale(.88)}}.dot-1{background:radial-gradient(circle,#e8c9a880 0,#d4af7a33 60%,#0000 100%);width:180px;height:180px;animation-duration:22s;animation-delay:0s;top:8%;left:12%}.dot-2{background:radial-gradient(circle,#c4787a59 0,#e8a0a826 60%,#0000 100%);width:120px;height:120px;animation-duration:26s;animation-delay:-4s;top:18%;right:15%}.dot-3{width:220px;height:220px;animation-duration:30s;animation-delay:-8s;bottom:12%;left:8%}.dot-4{width:140px;height:140px;animation-duration:24s;animation-delay:-2s;bottom:20%;right:12%}.dot-5{width:90px;height:90px;animation-duration:18s;animation-delay:-6s;top:45%;left:5%}.dot-6{background:radial-gradient(circle,#c4787a59 0,#e8a0a826 60%,#0000 100%);width:160px;height:160px;animation-duration:28s;animation-delay:-10s;top:60%;right:8%}.dot-7{background:radial-gradient(circle,#e8c9a880 0,#d4af7a33 60%,#0000 100%);width:110px;height:110px;animation-duration:20s;animation-delay:-3s;top:5%;left:55%}.dot-8{width:200px;height:200px;animation-duration:32s;animation-delay:-12s;bottom:5%;left:45%}.dot-9{width:85px;height:85px;animation-duration:19s;animation-delay:-7s;top:30%;left:22%}.dot-10{width:130px;height:130px;animation-duration:25s;animation-delay:-5s;top:70%;left:28%}.dot-11{background:radial-gradient(circle,#e8c9a880 0,#d4af7a33 60%,#0000 100%);width:105px;height:105px;animation-duration:21s;animation-delay:-1s;top:35%;right:26%}.dot-12{width:175px;height:175px;animation-duration:29s;animation-delay:-9s;bottom:28%;right:35%}.dot-13{width:95px;height:95px;animation-duration:23s;animation-delay:-11s;top:80%;right:22%}.dot-14{background:radial-gradient(circle,#c4787a59 0,#e8a0a826 60%,#0000 100%);width:150px;height:150px;animation-duration:27s;animation-delay:-13s;top:15%;left:35%}.stage-initial{z-index:10;text-align:center;transition:opacity .8s var(--ease),transform .8s var(--ease);flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:relative}.eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:.75rem;font-family:Be Vietnam Pro,sans-serif;font-size:clamp(.72rem,2.5vw,.84rem);font-weight:500}.guest-name{color:var(--blush);word-break:break-word;text-shadow:0 4px 24px #0009,0 0 35px #e8c9a840;margin-bottom:.75rem;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.5rem,8vw,4.2rem);font-style:italic;font-weight:600;line-height:1.15}.guest-subtitle{color:var(--champagne);letter-spacing:.04em;opacity:.9;margin-bottom:1.5rem;font-family:Be Vietnam Pro,sans-serif;font-size:clamp(.85rem,2.8vw,.98rem);font-weight:300}.rose-container{justify-content:center;align-items:center;width:200px;height:260px;display:flex;position:relative}.closed-rose{width:100%;height:100%;overflow:visible}.bud-petal{transform-box:fill-box;transform-origin:50% 90%;transition:transform 1.6s var(--ease),opacity 1.6s var(--ease)}.svg-seal{transform-origin:100px 84px;transition:transform .6s var(--ease),opacity .6s var(--ease)}main.is-open .bud-petal-1{transition-delay:50ms;transform:translate(-32px,-14px)rotate(-44deg)scale(1.08)}main.is-open .bud-petal-2{transition-delay:.15s;transform:translate(32px,-14px)rotate(44deg)scale(1.08)}main.is-open .bud-petal-3{transition-delay:.25s;transform:translate(-20px,-26px)rotate(-24deg)scale(1.05)}main.is-open .bud-petal-4{transition-delay:.35s;transform:translate(20px,-26px)rotate(24deg)scale(1.05)}main.is-open .bud-petal-5{transition-delay:.45s;transform:translateY(-36px)rotate(3deg)scale(1.15)}main.is-open .svg-seal{opacity:0;transform:scale(0)}button{cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;outline:none;font-family:inherit}button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@keyframes sealPulse{0%,to{transform:translate(-50%,-50%)scale(1);box-shadow:0 8px 24px #00000080,0 0 20px #c4787a59}50%{transform:translate(-50%,-50%)scale(1.04);box-shadow:0 10px 28px #0009,0 0 28px #d4af7a73}}.seal-button{background:var(--rose);min-width:48px;min-height:48px;color:var(--blush);letter-spacing:.04em;border:1px solid var(--gold);transition:opacity .6s var(--ease),transform .6s var(--ease),background .25s ease,box-shadow .25s ease;z-index:15;border-radius:999px;justify-content:center;align-items:center;padding:0 1.8rem;font-size:.95rem;font-weight:500;animation:sealPulse 2.8s ease-in-out infinite;display:inline-flex;position:absolute;top:84px;left:100px;transform:translate(-50%,-50%);box-shadow:0 8px 24px #00000080,0 0 20px #c4787a59}.seal-button:hover{background:#b56769;box-shadow:0 10px 28px #0009,0 0 26px #d4af7a73}.seal-button:active{transform:translate(-50%,-50%)scale(.96)}main.is-open .eyebrow,main.is-open .guest-name,main.is-open .guest-subtitle{opacity:0;transition:opacity .5s var(--ease)}main.is-open .seal-button{opacity:0;pointer-events:none;animation:none;transform:translate(-50%,-50%)scale(.7)}.audio-mute-button{top:max(env(safe-area-inset-top,16px),16px);right:max(env(safe-area-inset-right,16px),max(16px,calc(50vw - 260px + 16px)));-webkit-backdrop-filter:blur(14px);width:48px;min-width:48px;height:48px;min-height:48px;color:var(--champagne);z-index:50;cursor:pointer;background:#2a1f1cd1;border:1px solid #d4af7a66;border-radius:999px;justify-content:center;align-items:center;transition:background .25s,transform .25s,border-color .25s,box-shadow .25s;display:flex;position:fixed;box-shadow:0 4px 18px #0000008c,0 0 12px #d4af7a33}.audio-mute-button:hover{border-color:var(--gold);background:#3e2d28eb;transform:scale(1.05);box-shadow:0 6px 22px #000000a6,0 0 18px #d4af7a59}.audio-mute-button:active{transform:scale(.95)}.letter-card{-webkit-backdrop-filter:blur(20px);box-sizing:border-box;z-index:20;width:calc(100% - 36px);max-width:min(440px,100% - 36px);height:fit-content;transform-style:preserve-3d;backface-visibility:hidden;background:#261b18e6;border:1px solid #d4af7a59;border-radius:28px;margin:auto;padding:clamp(1.4rem,4.5vw,2.2rem);inset:0;overflow:hidden;box-shadow:0 24px 60px -10px #000000b3,0 0 35px #d4af7a1f}.letter-card,.letter-card:after{opacity:0;pointer-events:none;position:absolute}.letter-card:after{content:"";background:linear-gradient(105deg,#0000,#ffffff0a 20%,#e8c9a847 50%,#ffffff0a 80%,#0000);width:60%;height:200%;top:-50%;left:0;transform:translate(-200%)rotate(25deg)}main.is-open .letter-card:after{animation:sheen 1.3s cubic-bezier(.22,1,.36,1) .45s forwards}@keyframes sheen{0%{opacity:0;transform:translate(-200%)rotate(25deg)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translate(400%)rotate(25deg)}}.letter-content{flex-direction:column;display:flex}.letter-greeting{color:var(--champagne);margin-bottom:1.1rem;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(1.8rem,5.5vw,2.3rem);font-style:italic;font-weight:600}.letter-p1{margin-bottom:.9rem}.letter-p1,.letter-p2{color:var(--blush);font-size:clamp(.95rem,3.2vw,1.05rem);font-weight:400;line-height:1.7}.letter-p2{margin-bottom:1.2rem}.time-block{border-left:3px solid var(--gold);background:#ffffff0d;border-radius:14px;flex-direction:column;gap:.35rem;margin:.75rem 0 1.25rem;padding:1.1rem 1.3rem;display:flex}.time-hour{color:var(--champagne);letter-spacing:.04em;font-size:1.35rem}.time-hour,.time-place{font-family:Be Vietnam Pro,sans-serif;font-weight:500}.time-place{color:var(--rose);font-size:1rem}.time-address{color:var(--blush);opacity:.85;font-family:Be Vietnam Pro,sans-serif;font-size:.88rem;font-weight:400}.letter-closing{color:var(--champagne);margin-bottom:1.75rem;font-size:clamp(.95rem,3.2vw,1.05rem);font-weight:400;line-height:1.7}.letter-actions{justify-content:center;display:flex}.confirm-button{background:var(--rose);min-width:48px;min-height:48px;color:var(--blush);border:1px solid var(--gold);letter-spacing:.03em;transition:transform .25s var(--ease),background .25s ease,box-shadow .25s ease;border-radius:999px;justify-content:center;align-items:center;padding:.75rem 2.75rem;font-size:1.05rem;font-weight:500;display:inline-flex;box-shadow:0 8px 26px #0006,0 0 20px #c4787a4d}.confirm-button:hover{background:#b56769;transform:scale(1.03);box-shadow:0 10px 30px #00000080,0 0 26px #d4af7a73}.confirm-button:active{transform:scale(.97)}main.is-blooming .stage-initial{opacity:0;pointer-events:none;transition:opacity .6s var(--ease),transform .6s var(--ease);transform:scale(.85)}.bloom-roses-container{pointer-events:none;z-index:18;opacity:0;transition:opacity .8s var(--ease);position:absolute;inset:0;overflow:visible}.bloom-roses-container.is-active{opacity:1}.bloom-rose{pointer-events:none;filter:drop-shadow(0 14px 32px #000000a6);position:absolute}.bloom-rose.rose-left{top:10%;left:max(-30px,50% - 280px)}.bloom-rose.rose-right{bottom:8%;right:max(-30px,50% - 280px)}#garden{pointer-events:none;opacity:0;z-index:15;width:100%;height:100%;transition:opacity .8s var(--ease);position:fixed;inset:0}main.is-blooming #garden{opacity:1}.final-message{text-align:center;z-index:25;opacity:0;pointer-events:none;width:min(90vw,32rem);height:fit-content;margin:auto;padding:1.5rem;position:fixed;inset:0}.final-line1{color:var(--champagne);text-shadow:0 2px 18px #000c,0 0 30px #e8c9a859;margin-bottom:.75rem;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(2.4rem,6.5vw,3.8rem);font-style:italic;font-weight:600;line-height:1.15}.final-line2{color:var(--gold);letter-spacing:.05em;text-shadow:0 2px 14px #000c,0 0 20px #d4af7a4d;margin-bottom:1rem;font-size:clamp(.95rem,3.5vw,1.18rem);font-weight:500}.final-line2,.final-line3{font-family:Be Vietnam Pro,sans-serif}.final-line3{color:var(--blush);text-shadow:0 2px 14px #000c;font-size:clamp(.9rem,3vw,1.05rem);font-weight:400;line-height:1.6}.text-deep{color:var(--champagne)}.text-ink{color:var(--blush)}.text-rose{color:var(--rose)}.text-gold{color:var(--gold)}.text-champagne{color:var(--champagne)}@media (max-height:700px){body,html,main{height:auto;min-height:100dvh;overflow-y:auto}}@media (min-width:900px){main{max-width:min(720px,92vw)}.letter-card{border-radius:32px;max-width:520px;padding:clamp(1.8rem,3.5vw,2.5rem)}.guest-name{font-size:clamp(3.2rem,5.5vw,4.8rem)}.letter-greeting{font-size:clamp(2rem,3.2vw,2.5rem)}.letter-closing,.letter-p1,.letter-p2{font-size:clamp(1.05rem,1.8vw,1.15rem);line-height:1.75}.time-hour{font-size:1.45rem}.time-place{font-size:1.08rem}.time-address{font-size:.95rem}.bloom-rose.rose-left{top:8%;left:2%}.bloom-rose.rose-right{bottom:6%;right:2%}.audio-mute-button{right:calc(50vw - min(360px,46vw) + 16px)}.final-message{width:min(90vw,38rem)}.final-line1{font-size:clamp(2.8rem,4.5vw,4.2rem)}.final-line2{font-size:clamp(1.05rem,2vw,1.25rem)}.final-line3{font-size:clamp(.98rem,1.8vw,1.12rem)}}@media (min-width:1200px){main{max-width:min(820px,88vw)}.letter-card{border-radius:34px;max-width:560px;padding:clamp(2rem,3vw,2.8rem)}.guest-name{font-size:clamp(3.6rem,5.2vw,5.2rem)}.letter-greeting{font-size:clamp(2.2rem,3vw,2.75rem)}.bloom-rose.rose-left{top:7%;left:2.5%}.bloom-rose.rose-right{bottom:5%;right:2.5%}.audio-mute-button{right:calc(50vw - min(410px,44vw) + 20px)}}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.bokeh-dot,.seal-button{animation:none!important}main.is-blooming .letter-card,main.is-blooming .stage-initial,main.is-open .bud-petal,main.is-settled .final-message{transition:none!important}.letter-card:after{animation:none!important;display:none!important}.bloom-roses-container{transition:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}