/*! tailwindcss v4.2.1 | 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)))){*,:before,:after,::backdrop{--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--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{:root,:host{--spacing:.25rem;--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-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{.visible{visibility:visible}.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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,)}}:root{--forest-950:#07130e;--forest-900:#0b2118;--forest-800:#133326;--moss:#667b45;--sage:#a9b68b;--parchment:#f5ead3;--parchment-deep:#dfc89d;--ink:#2d2b20;--gold:#c6a15b;--gold-light:#ead39d;--wine:#6f2633;--rose:#a85c62;--serif:"Palatino Linotype", "Book Antiqua", Palatino, Georgia, serif}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--forest-950)}body{background:var(--forest-950);color:var(--parchment);font-family:var(--font-geist-sans), Arial, sans-serif;margin:0;overflow-x:hidden}body[data-invitation=closed],body[data-invitation=opening]{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--gold-light);outline-offset:5px}.invitation{isolation:isolate;background:radial-gradient(circle at 50% 9%,#dcbd7c1f,#0000 30%),linear-gradient(#081a12 0%,#0a1c15 38%,#06110d 100%);min-height:100svh;position:relative;overflow:clip}.forest-atmosphere{z-index:-3;pointer-events:none;background:linear-gradient(#020b0914,#02090738),url(/images/enchanted-forest.webp) 50%/cover no-repeat;position:fixed;inset:0;overflow:hidden}.forest-atmosphere:before{content:"";background:radial-gradient(at 50% 48%,#0000 25%,#02090742 100%);position:absolute;inset:0}.forest-atmosphere:after{content:"";background:linear-gradient(#02090726,#0000 30% 66%,#02080661);position:absolute;inset:0}.moon-glow,.branch{display:none}.moon-glow{aspect-ratio:1;filter:blur(44px);background:#ecdca624;border-radius:50%;width:min(70vw,620px);position:absolute;top:-20%;left:50%;transform:translate(-50%)}.mist{filter:blur(28px);background:#c5d5be0f;border-radius:50%;width:150%;height:19%;animation:16s ease-in-out infinite alternate mistDrift;position:absolute;left:-25%}.mist-one{top:58%}.mist-two{animation-duration:21s;animation-delay:-7s;top:77%}.branch{opacity:.7;filter:drop-shadow(0 18px 14px #00000059);width:46vw;height:30vh;position:absolute;top:-4%}.branch:before,.branch:after{content:"";background:radial-gradient(at 8% 35%,#12251a 0 8%,#0000 9%),radial-gradient(at 20% 18%,#1b3020 0 8%,#0000 9%),radial-gradient(at 34% 42%,#102419 0 10%,#0000 11%),radial-gradient(at 52% 16%,#19301f 0 9%,#0000 10%),radial-gradient(at 70% 39%,#11251a 0 9%,#0000 10%),linear-gradient(24deg,#0000 46%,#101c14 47% 51%,#0000 52%);position:absolute;inset:0}.branch-left{left:-5%;transform:rotate(8deg)}.branch-right{right:-5%;transform:scaleX(-1)rotate(8deg)}.fireflies{z-index:20;pointer-events:none;position:fixed;inset:0;overflow:hidden}.fireflies span{opacity:0;background:#ffe8a5;border-radius:50%;width:4px;height:4px;animation:ease-in-out infinite firefly;position:absolute;box-shadow:0 0 7px 2px #ffe08794,0 0 18px 5px #deb85d3d}.envelope-stage{z-index:10;text-align:center;place-content:center;justify-items:center;gap:1.2rem;padding:8vh 1.2rem 4vh;transition:opacity .85s,visibility .85s,transform .85s;display:grid;position:fixed;inset:0}.phase-open .envelope-stage{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.08)}.opening-kicker{color:#f5ead3c2;max-width:26rem;font-family:var(--serif);letter-spacing:.14em;text-transform:uppercase;text-wrap:balance;font-size:clamp(.9rem,3.5vw,1.08rem);animation:1.2s .2s both fadeUp}.envelope-button{aspect-ratio:1.48;cursor:pointer;perspective:1200px;filter:drop-shadow(0 30px 35px #0000008c);background:0 0;border:0;width:min(84vw,380px);padding:0;animation:1.2s cubic-bezier(.2,.75,.2,1) both envelopeArrive;position:relative}.envelope-button:disabled{cursor:default}.envelope-shadow{filter:blur(16px);background:#00000080;border-radius:50%;height:18%;position:absolute;inset:auto 8% -9%}.envelope{transform-style:preserve-3d;position:absolute;inset:0}.envelope-back{background:linear-gradient(115deg,#0000 49.6%,#63472529 50%,#0000 50.5%),linear-gradient(245deg,#0000 49.6%,#63472529 50%,#0000 50.5%),linear-gradient(145deg,#dfc89f,#f2e4c8 55%,#d5b987);border:1px solid #5d432352;border-radius:5px;position:absolute;inset:0;box-shadow:inset 0 0 40px #704f253b}.envelope-back:after{content:"";pointer-events:none;border:1px solid #7e592b38;position:absolute;inset:10px}.letter-preview{z-index:1;color:#4a3f2d;background:linear-gradient(#ffffff26,#fff0),repeating-linear-gradient(0deg,#0000 0 18px,#5d3e1b06 19px 20px),#f6ecd8;border:1px solid #63482733;flex-direction:column;align-items:center;height:88%;padding-top:1.35rem;transition:transform 1s cubic-bezier(.2,.75,.2,1) .26s;display:flex;position:absolute;bottom:9%;left:8%;right:8%}.letter-leaf{color:#708252;font-size:1.6rem}.letter-names{font:italic 1.52rem var(--serif);margin-top:.3rem}.letter-date{letter-spacing:.23em;margin-top:.4rem;font-size:.67rem}.envelope-pocket{z-index:2;border-radius:5px;position:absolute;inset:0;overflow:hidden}.envelope-pocket:before,.envelope-pocket:after{content:"";background:linear-gradient(150deg,#dec59b,#f0dfbd);border-top:1px solid #6a4a2433;width:76%;height:82%;position:absolute;bottom:-3%}.envelope-pocket:before{transform-origin:0 100%;left:-23%;transform:skew(25deg)rotate(31deg)}.envelope-pocket:after{transform-origin:100% 100%;right:-23%;transform:skew(-25deg)rotate(-31deg)}.envelope-flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;backface-visibility:hidden;background:linear-gradient(165deg,#efdcb8,#d8bb8a 82%);border-top:1px solid #ffffff59;height:62%;transition:transform .72s cubic-bezier(.2,.7,.2,1),z-index 0s .35s;position:absolute;top:0;left:0;right:0}.wax-seal{z-index:6;color:#e6c692;background:radial-gradient(circle at 38% 31%,#b9565f 0 5%,#0000 6%),radial-gradient(circle,#9b3e4b 0 54%,#702530 72%,#4f1822 100%);border:2px solid #5e1d29;border-radius:48% 52% 45% 55%/52% 45% 55% 48%;place-items:center;width:72px;height:72px;transition:transform .35s,opacity .38s;display:grid;position:absolute;top:51%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 4px #e6a19121,0 6px 12px #37160d66}.wax-seal:after{content:"";border:1px solid #eec79580;border-radius:50%;position:absolute;inset:8px}.wax-seal span{z-index:1;font:700 1.02rem var(--serif);letter-spacing:.04em;position:relative}.phase-opening .wax-seal{animation:.55s both sealBreak}.phase-open .wax-seal{opacity:0;animation:none;transform:translate(-42%,-38%)scale(.2)rotate(18deg)}.phase-opening .envelope-flap,.phase-open .envelope-flap{z-index:0;transform:rotateX(180deg)}.phase-opening .letter-preview,.phase-open .letter-preview{transform:translateY(-61%)}.phase-opening .envelope-button{animation:1.35s both envelopeOpenLift}.phase-open .envelope-button{animation:none;transform:translateY(15px)scale(.96)}.open-instruction{color:var(--gold-light);font:italic clamp(1.1rem, 4vw, 1.35rem) var(--serif);cursor:pointer;background:0 0;border:0;align-items:center;gap:.65rem;animation:1s .7s both fadeUp;display:inline-flex}.open-instruction:disabled{cursor:default}.instruction-spark{font-style:normal;animation:1.8s ease-in-out infinite sparkle}.opening-status{color:#f5ead3a3;min-height:1.5rem;font:italic .95rem var(--serif);margin:-.6rem 0 0}.story{z-index:2;opacity:0;visibility:hidden;transition:opacity 1.1s .35s,visibility 1.1s .35s;position:relative}.phase-open .story{opacity:1;visibility:visible}.chapter{min-height:100svh;position:relative;overflow:hidden}.chapter-once{align-content:end;justify-items:center;padding:5.5rem 1.2rem 5rem;display:grid}.hero-photo-frame{opacity:.88;position:absolute;inset:0}.hero-photo-frame img{object-fit:cover;object-position:53% center;width:100%;height:100%;animation:12s ease-in-out infinite alternate heroBreathe;transform:scale(1.03)}.photo-vignette{background:linear-gradient(#040d0959 0%,#0000 31%,#040d0926 56%,#040c08e8 100%),radial-gradient(circle,#0000 38%,#040c0885 100%);position:absolute;inset:0}.hero-copy{z-index:2;text-align:center;text-shadow:0 2px 18px #000000c2;width:min(92vw,680px);animation:1.15s .55s both storyReveal;position:relative}.eyebrow{color:var(--gold-light);font:italic clamp(1.3rem, 5vw, 1.8rem) var(--serif);margin:0 0 .25rem}.hero-copy h1{font:500 clamp(3.2rem, 15vw, 6.5rem)/.92 var(--serif);letter-spacing:-.055em;margin:0}.hero-copy h1 span{color:var(--gold);font-size:.74em;font-style:italic}.fairy-line{color:#f8eedbe6;width:min(90%,32rem);font:italic clamp(1.02rem, 4vw, 1.3rem)/1.55 var(--serif);text-wrap:balance;margin:1.1rem auto 0}.scroll-cue{z-index:3;color:#edd8aeb3;letter-spacing:.16em;text-transform:uppercase;flex-direction:column;align-items:center;gap:.5rem;margin-top:2.2rem;font-size:.68rem;text-decoration:none;display:flex;position:relative}.scroll-cue i{background:linear-gradient(var(--gold), transparent);width:1px;height:38px;animation:1.8s ease-in-out infinite scrollLine}.chapter-portraits{background:radial-gradient(circle at 20% 15%,#b097571c,#0000 32%),linear-gradient(#05110cfa,#0f281cfa 52%,#06130dfa);align-content:center;gap:1.15rem;padding:5rem 1rem;display:grid}.chapter-heading{text-align:center;max-width:34rem;margin:0 auto .6rem}.ornament{color:var(--gold);font-size:1.15rem}.chapter-heading p{color:var(--sage);letter-spacing:.22em;text-transform:uppercase;margin:.4rem 0 0;font-size:.7rem}.chapter-heading h2{font:500 clamp(2rem, 9vw, 3.3rem)/1 var(--serif);text-wrap:balance;margin:.35rem 0 0}.portrait-card{border:1px solid #e0c08061;border-radius:50% 50% 9px 9px/16% 16% 9px 9px;width:min(100%,450px);min-height:46svh;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 20px 55px #00000061}.portrait-card:before{content:"";z-index:3;border-radius:inherit;pointer-events:none;border:1px solid #f0d59c40;position:absolute;inset:9px}.portrait-card img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.portrait-fernando img{object-position:50% 35%}.portrait-ruth img{object-position:50% 33%}.portrait-overlay{background:linear-gradient(#0000 38%,#040f0ae6 100%);position:absolute;inset:0}.portrait-copy{z-index:2;text-shadow:0 2px 10px #000000b3;position:absolute;bottom:1.6rem;left:1.8rem;right:1.8rem}.portrait-copy span{color:var(--gold-light);font:italic 1.05rem var(--serif)}.portrait-copy h3{font:500 clamp(2.6rem, 12vw, 4rem)/1 var(--serif);margin:.05rem 0 .3rem}.portrait-copy p{color:#f5ead3cc;max-width:24rem;font:italic 1rem/1.4 var(--serif);margin:0}.chapter-bouquet{text-align:center;place-items:center;display:grid}.bouquet-image{background:url(/images/el-ramo.webp) 50%/cover no-repeat;position:absolute;inset:0;transform:scale(1.06)}.bouquet-shade{background:radial-gradient(circle at 50% 48%,#0000 10%,#05100b38 48%,#040d09cc 100%),linear-gradient(#040e099e,#0000 32% 60%,#040e09c2);position:absolute;inset:0}.bouquet-copy{z-index:2;text-shadow:0 3px 20px #000;width:min(88vw,700px);padding:2rem;position:relative}.bouquet-copy p{color:var(--gold-light);font:italic 1.35rem var(--serif);margin:.8rem 0 .1rem}.bouquet-copy h2{font:500 clamp(2.6rem, 11vw, 5.3rem)/1 var(--serif);text-wrap:balance;margin:0}.chapter-date{background:radial-gradient(circle,#9a7a3f29,#0000 48%),linear-gradient(#07150f,#102c20 46%,#07140e);place-items:center;min-height:112svh;padding:5rem 1rem;display:grid}.date-card{width:min(92vw,520px);color:var(--ink);text-align:center;background:radial-gradient(circle at 50% 15%,#ffffff85,#0000 27%),repeating-linear-gradient(0deg,#0000 0 21px,#5c3e1c06 22px 23px),linear-gradient(135deg,#ead8b7,#f8efd9 42%,#e4cba2);border:1px solid #b89250;border-radius:3px;padding:2.6rem 1.4rem 2rem;position:relative;box-shadow:0 35px 80px #00000080,inset 0 0 60px #7d58261f}.date-card:before,.date-card:after{content:"";pointer-events:none;position:absolute}.date-card:before{border:1px solid #74532c47;inset:10px}.date-card:after{z-index:-1;border:1px solid #cba55e38;inset:-16px;transform:rotate(-1.2deg)}.tiny-crown{color:#8a6b34;font-size:1.35rem;display:block}.save-label{color:#76623e;letter-spacing:.26em;text-transform:uppercase;margin:.5rem 0 1.25rem;font-size:.68rem;font-weight:700}.names-lockup{font:500 clamp(2.3rem, 10vw, 4rem)/1 var(--serif);letter-spacing:-.05em;justify-content:center;align-items:center;gap:.5rem;display:flex}.names-lockup i{color:var(--wine);font-size:.65em;font-weight:400}.date-divider{color:#9c7b3f;align-items:center;gap:.7rem;width:70%;margin:1.4rem auto;display:flex}.date-divider:before,.date-divider:after{content:"";background:linear-gradient(90deg,#0000,#a98849);flex:1;height:1px}.date-divider:after{background:linear-gradient(90deg,#a98849,#0000)}.weekday{color:#665638;letter-spacing:.31em;margin:0;font-size:.73rem;font-weight:700}.big-date{color:#3b3525;font:500 clamp(6.7rem, 29vw, 9.4rem)/.95 var(--serif);margin:-.12rem 0 -.24rem}.month{color:var(--wine);font:700 .9rem var(--serif);letter-spacing:.18em;margin:0}.countdown{grid-template-columns:repeat(4,1fr);gap:.42rem;margin:1.45rem 0 .2rem;display:grid}.countdown div{background:#fffaeb61;border:1px solid #70522838;min-width:0;padding:.72rem .25rem .58rem;box-shadow:inset 0 0 18px #7e5c2c0d}.countdown strong{color:#3f3827;font:600 clamp(1.5rem, 7vw, 2rem)/1 var(--serif);font-variant-numeric:tabular-nums;display:block}.countdown span{color:#7b6847;letter-spacing:.12em;text-transform:uppercase;margin-top:.35rem;font-size:.55rem;font-weight:700;display:block}.countdown-complete{color:var(--wine);font:italic 1.1rem var(--serif);border-top:1px solid #70522838;border-bottom:1px solid #70522838;margin:1.45rem 0 .2rem;padding:.85rem}.event-facts{border-top:1px solid #5b442347;border-bottom:1px solid #5b442347;grid-template-columns:1fr 1fr;margin:1.8rem 0 1.4rem;display:grid}.event-facts div{flex-direction:column;gap:.2rem;padding:.9rem .6rem;display:flex}.event-facts div+div{border-left:1px solid #5b442347}.event-facts span{color:#84714f;letter-spacing:.16em;text-transform:uppercase;font-size:.64rem;font-weight:700}.event-facts strong{font:600 1.18rem var(--serif)}.calendar-button{color:#fff5e5;letter-spacing:.07em;cursor:pointer;background:linear-gradient(135deg,#812f3d,#5b202c);border:1px solid #6b2934;border-radius:999px;justify-content:center;align-items:center;gap:.7rem;width:min(100%,320px);min-height:48px;padding:.85rem 1.1rem;font-weight:700;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 9px 22px #4f21243d}.calendar-button:hover{transform:translateY(-2px);box-shadow:0 12px 26px #4f212457}.calendar-button:active{transform:translateY(0)}.calendar-note{color:#78694d;font:italic .84rem var(--serif);margin:.85rem 0 0}.calendar-choices{background:#fff8e6b8;border:1px solid #64482247;margin:1rem auto 0;padding:1rem;box-shadow:inset 0 0 22px #704f2612}.calendar-choices>p{color:#4b412d;font:600 1rem var(--serif);margin:0 0 .75rem}.calendar-choice{color:#3f3827;text-align:left;background:#fffdf4cc;border:1px solid #664a263d;grid-template-rows:auto auto;grid-template-columns:36px 1fr;align-items:center;column-gap:.65rem;min-height:54px;padding:.65rem .75rem;text-decoration:none;display:grid}.calendar-choice+.calendar-choice{margin-top:.55rem}.calendar-choice>span{color:#fff8eb;background:var(--wine);width:34px;height:34px;font:700 1rem var(--serif);border-radius:50%;grid-row:1/3;place-items:center;display:grid}.calendar-choice strong{font:600 .93rem var(--serif)}.calendar-choice small{color:#7a6a4d;font-size:.67rem}.calendar-choice:hover{border-color:var(--wine);background:#fffaf0}.calendar-close{color:#695a3f;cursor:pointer;background:0 0;border:0;min-height:44px;margin-top:.65rem;padding:.55rem 1rem;font-size:.75rem;text-decoration:underline}.chapter-ending{text-align:center;background:linear-gradient(#020a0794,#020b07ad 52%,#020806c7),radial-gradient(circle at 50% 55%,#0000 5%,#0209063d 72%),url(/images/enchanted-forest.webp) 50% 56%/cover no-repeat;flex-direction:column;justify-content:center;align-items:center;gap:1.1rem;min-height:92svh;padding:5rem 1.4rem 3rem;display:flex}.ending-branches{opacity:.65;background:radial-gradient(at 13% 65%,#71804f 0 6%,#0000 7%),radial-gradient(at 28% 42%,#87935f 0 7%,#0000 8%),radial-gradient(at 72% 42%,#87935f 0 7%,#0000 8%),radial-gradient(at 87% 65%,#71804f 0 6%,#0000 7%),linear-gradient(168deg,#0000 47%,#8e7b4e 48% 50%,#0000 51%),linear-gradient(12deg,#0000 47%,#8e7b4e 48% 50%,#0000 51%);width:min(70vw,340px);height:72px}.chapter-ending>p{color:var(--gold-light);font:italic 1.2rem var(--serif);margin:0}.chapter-ending h2{max-width:40rem;font:500 clamp(2.3rem, 10vw, 4.3rem)/1.08 var(--serif);text-wrap:balance;margin:0}.signature{color:#d7be84;font:italic clamp(1.8rem, 7vw, 2.7rem) var(--serif);margin-top:1rem}.replay-button{min-height:46px;color:var(--parchment);letter-spacing:.08em;cursor:pointer;background:#0a1f158c;border:1px solid #d6b77880;border-radius:999px;margin-top:1.4rem;padding:.7rem 1.2rem;font-size:.78rem}.chapter-ending small{color:#d6dcc175;letter-spacing:.18em;text-transform:uppercase;margin-top:1.4rem;font-size:.63rem}@keyframes firefly{0%,to{opacity:0;transform:translate(0)scale(.55)}18%{opacity:.85}50%{opacity:.25;transform:translate(18px,-28px)scale(1.25)}72%{opacity:.9}}@keyframes forestBreathe{to{transform:scale(1.04)translateY(-1.2%)}}@keyframes mistDrift{to{opacity:.5;transform:translate(12%)scaleY(.8)}}@keyframes envelopeArrive{0%{opacity:0;transform:translateY(45px)rotate(-2deg)scale(.92)}to{opacity:1;transform:none}}@keyframes sealBreak{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}55%{transform:translate(-50%,-50%)scale(1.2)rotate(-8deg)}to{opacity:0;transform:translate(-42%,-38%)scale(.2)rotate(18deg)}}@keyframes envelopeOpenLift{0%,66%{transform:none}to{transform:translateY(15px)scale(.96)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes sparkle{0%,to{opacity:.35;transform:scale(.8)rotate(0)}50%{opacity:1;transform:scale(1.2)rotate(90deg)}}@keyframes heroBreathe{to{transform:scale(1.09)translateY(-.6%)}}@keyframes storyReveal{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes scrollLine{0%,to{opacity:.2;transform-origin:top;transform:scaleY(.55)}50%{opacity:1;transform:scaleY(1)}}@media (width>=760px){.chapter-portraits{grid-template-rows:auto 1fr;grid-template-columns:minmax(280px,430px) minmax(280px,430px);justify-content:center;gap:1.5rem;padding:6rem 2rem}.chapter-heading{grid-column:1/-1}.portrait-card{align-self:start;height:68vh;min-height:68vh}.portrait-ruth{margin-top:0}.hero-photo-frame{background:#06120d;border-radius:36px;inset:3vh max(3vw,2rem);overflow:hidden}.hero-photo-frame:before{display:none}.hero-photo-frame img{z-index:1;object-fit:cover;object-position:center 25%;transform-origin:50% 25%;filter:none;animation:none;position:relative;transform:scale(1.02)}.hero-photo-frame .photo-vignette{z-index:2;background:linear-gradient(#040d0933,#0000 30%,#040c0826 55%,#040c08e6 100%),radial-gradient(circle,#0000 38%,#040c087a 100%)}.chapter-once{padding-bottom:7rem}.bouquet-image{border-radius:30px;inset:4vh 4vw}}@media (height<=690px) and (width<=500px){.envelope-stage{gap:.75rem;padding-top:4vh}.envelope-button{width:min(75vw,330px)}.opening-kicker{font-size:.78rem}.portrait-card{min-height:500px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.fireflies{display:none}}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@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}
