/*! 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)}.hidden{display:none}.table{display:table}}:root{--cream:#f7f0dc;--paper:#fffaf0;--ink:#29251f;--forest:#6f2f3f;--forest-light:#9a5c69;--gold:#c99a38;--sunflower:#e0a72f;--rose:#a85d57;--line:#322b1f38}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Georgia,Times New Roman,serif}button,a{font:inherit}a{color:inherit}main{overflow:hidden}.story-cover{z-index:50;min-height:100dvh;color:var(--cream);perspective:1500px;background:radial-gradient(circle at 50% 42%,#eac3671f,#0000 33%),linear-gradient(145deg,#451f2a,#70404c 55%,#35151e);place-items:center;padding:32px 20px;transition:opacity .4s .8s,visibility .4s .8s;display:grid;position:fixed;inset:0;overflow:hidden}.story-cover:before{content:"";pointer-events:none;border:1px solid #d8ae5352;position:absolute;inset:18px}.cover-stars span{color:#e0a72f94;animation:3s ease-in-out infinite twinkle;position:absolute}.cover-stars span:first-child{font-size:2rem;top:16%;left:12%}.cover-stars span:nth-child(2){animation-delay:.7s;top:22%;right:13%}.cover-stars span:nth-child(3){font-size:1.5rem;animation-delay:1.3s;bottom:17%;right:17%}.cover-stars span:nth-child(4){animation-delay:1.9s;bottom:22%;left:15%}@keyframes twinkle{50%{opacity:.25;transform:scale(.8)rotate(12deg)}}.book-shell{aspect-ratio:.78;width:min(530px,84vw);transform-style:preserve-3d;filter:drop-shadow(28px 32px 26px #00000057);animation:.9s cubic-bezier(.2,.75,.25,1) both book-arrive;position:relative}@keyframes book-arrive{0%{opacity:0;transform:translateY(26px)scale(.93)rotate(-1.5deg)}to{opacity:1;transform:translateY(0)scale(1)rotate(0)}}.book-pages,.book-front{border-radius:5px 16px 16px 5px;position:absolute;inset:0}.book-pages{background:repeating-linear-gradient(90deg,#efe4c6 0 3px,#fff8e9 3px 7px);border:2px solid #c9b98e;transform:translate(11px,7px)}.book-front{z-index:2;transform-origin:0;color:#5f2333;text-align:center;background:url(/book-cover-ivy-lineart.png) 50%/cover no-repeat;border:1px solid #54261db8;flex-direction:column;justify-content:center;align-items:center;padding:44px 34px 44px 88px;transition:transform 1s cubic-bezier(.65,0,.25,1);display:flex;overflow:hidden;box-shadow:inset 0 0 0 1px #ffe08b3d,inset 18px 0 25px #49231629}.book-front:before,.book-front:after{content:"❧";z-index:2;color:#7d3042;font-size:2rem;position:absolute;left:50%;transform:translate(-50%)}.book-front:before{top:40px}.book-front:after{bottom:40px;transform:translate(-50%)rotate(180deg)}.book-front__eyebrow,.eyebrow,.detail-label{letter-spacing:.25em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:.68rem;font-weight:600}.book-front>*{z-index:2;position:relative}.book-front__eyebrow{color:#69283a}.book-front__ornament{color:#7d3042;text-shadow:0 1px #ffe59d80;margin:26px 0 15px;font-size:2.4rem}.book-front h1{text-shadow:0 1px #ffe59d5c;margin:0;font-family:Snell Roundhand,Segoe Script,Brush Script MT,cursive;font-size:clamp(3rem,9vw,5rem);font-weight:400;line-height:1.08}.book-front h1 i,.couple-names i,.footer-names i{color:var(--sunflower);font-weight:400}.book-front h1 i{color:#8a3347}.book-front p{color:#6b293b;letter-spacing:.3em;margin:26px 0 18px}.book-front__line{background:#7d3042;width:72px;height:1px;margin-bottom:18px}.book-front small{color:#672638;opacity:.86;font-style:italic}.open-story{z-index:5;color:var(--cream);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;background:#451f2ad6;border:1px solid #e8cf918c;border-radius:99px;align-items:center;gap:16px;padding:13px 22px 13px 25px;font-family:Arial,Helvetica,sans-serif;font-size:.68rem;transition:background .25s,color .25s,transform .25s;display:flex;position:absolute;bottom:clamp(26px,5vh,58px)}.open-story:hover,.open-story:focus-visible{background:var(--cream);color:var(--forest);outline:none;transform:translateY(-2px)}.story-cover--opening .book-front{transform:rotateY(-105deg)}.story-cover--opening{opacity:0;visibility:hidden}.story-cover--opening .open-story{opacity:0;pointer-events:none}.invitation{opacity:0;transition:opacity .7s}.invitation--visible{opacity:1}.music-toggle{z-index:40;color:var(--cream);letter-spacing:.12em;opacity:0;pointer-events:none;text-transform:uppercase;background:#451f2ae6;border:1px solid #e8cf919e;border-radius:99px;align-items:center;gap:10px;padding:9px 15px 9px 9px;font-family:Arial,Helvetica,sans-serif;font-size:.6rem;transition:opacity .35s,transform .35s,background .25s;display:flex;position:fixed;bottom:24px;right:24px;transform:translateY(12px);box-shadow:0 12px 30px #2f121b38}.music-toggle--visible{opacity:1;pointer-events:auto;transform:translateY(0)}.music-toggle:hover,.music-toggle:focus-visible{background:var(--forest-light);outline:none}.music-toggle__disc{aspect-ratio:1;color:#e4c26f;border:1px solid #e8cf918c;border-radius:50%;place-items:center;width:30px;font-size:1rem;display:grid}.music-toggle__disc--playing{animation:1.8s ease-in-out infinite music-pulse}@keyframes music-pulse{50%{transform:scale(.88);box-shadow:0 0 0 6px #e4c26f14}}.hero{background:radial-gradient(circle at 75% 45%,#e1af3829,#0000 32%),linear-gradient(120deg,#f9f2df 0 55%,#f2e1e3 100%);grid-template-columns:minmax(280px,.8fr) minmax(360px,1.1fr);align-items:center;gap:clamp(28px,6vw,90px);min-height:100svh;padding:clamp(70px,10vw,130px) max(6vw,28px) 92px;display:grid;position:relative;overflow:hidden}.hero:before,.quote-section:before,.details-section:before{content:"";pointer-events:none;border:1px solid #70404c33;position:absolute;inset:16px}.hero-copy{z-index:2;text-align:center;justify-self:end;max-width:540px}.eyebrow{color:var(--forest-light);margin:0 0 16px}.couple-names{flex-direction:column;margin:0;font-family:Snell Roundhand,Segoe Script,Brush Script MT,cursive;font-size:clamp(4.1rem,9.5vw,8.5rem);font-weight:400;line-height:.72;display:flex}.couple-names i{margin:.22em 0 .08em;font-size:.34em}.hero-intro{max-width:390px;margin:38px auto 28px;font-size:clamp(1rem,1.8vw,1.25rem);font-style:italic;line-height:1.6}.hero-date{border-top:1px solid var(--line);justify-content:center;align-items:baseline;gap:17px;padding-top:22px;display:flex}.hero-date strong{font-size:2.2rem;font-weight:400}.hero-date span{color:var(--forest-light);font-style:italic}.hero-time{letter-spacing:.18em;text-transform:uppercase;margin:13px 0 0;font-family:Arial,Helvetica,sans-serif;font-size:.72rem}.portrait-stage{z-index:2;justify-self:start;width:min(600px,46vw);position:relative}.portrait-halo{border:1px solid #8f505e4d;border-radius:50%;position:absolute;inset:3% -3%;transform:rotate(8deg)}.portrait-frame{aspect-ratio:.82;border:10px solid var(--paper);border-radius:48% 48% 45% 45%/38% 38% 57% 57%;outline:2px solid #9a8566;position:relative;overflow:hidden;box-shadow:0 28px 60px #3d352533}.portrait-frame img{object-fit:cover;object-position:50% 43%;width:100%;height:100%;transform:scale(1.08)}.portrait-flower{color:var(--sunflower);text-shadow:0 6px 10px #4330122e;font-size:clamp(3.5rem,7vw,6.5rem);position:absolute}.portrait-flower--one{bottom:7%;left:-9%;transform:rotate(-16deg)}.portrait-flower--two{font-size:clamp(2rem,4vw,3.4rem);top:13%;right:-5%;transform:rotate(18deg)}.floating-symbols .symbol{z-index:1;color:#6f2f3f1f;font-size:clamp(2rem,5vw,5.5rem);animation:8s ease-in-out infinite drift;position:absolute}.symbol--one{top:12%;left:5%}.symbol--two{top:8%;left:43%;color:#a85d5721!important;animation-delay:1s!important}.symbol--three{bottom:9%;right:3%;color:#a85d5721!important;animation-delay:2s!important}.symbol--four{bottom:10%;left:10%;animation-delay:3s!important}@keyframes drift{50%{transform:translateY(-14px)rotate(8deg)}}.scroll-cue{z-index:3;letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:12px;font-family:Arial,Helvetica,sans-serif;font-size:.62rem;text-decoration:none;display:flex;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.reveal{opacity:0;transform:translateY(25px)}.invitation--visible .reveal{animation:.9s forwards reveal}.invitation--visible .reveal--two{animation-delay:.18s}@keyframes reveal{to{opacity:1;transform:translateY(0)}}.section{text-align:center;padding:clamp(85px,12vw,150px) max(7vw,28px);position:relative}.chapter-number{aspect-ratio:1;border:1px solid var(--gold);width:42px;color:var(--forest-light);border-radius:50%;place-items:center;margin:0 auto 24px;font-style:italic;display:grid}.quote-section{background:var(--paper)}.quote-section blockquote{max-width:920px;margin:28px auto 0;font-size:clamp(1.65rem,3.5vw,3.4rem);line-height:1.35}.quote-flourish{color:var(--gold);margin-top:34px;font-size:2.2rem}.countdown-section{background:var(--forest);color:var(--cream)}.countdown-section .eyebrow{color:#d7bd7d}.chapter-heading h2{margin:0;font-size:clamp(2.3rem,5vw,4.5rem);font-weight:400}.countdown{border-block:1px solid #e8cf914d;grid-template-columns:repeat(4,1fr);max-width:820px;margin:58px auto 0;display:grid}.countdown-item{border-right:1px solid #e8cf9138;padding:32px 12px}.countdown-item:last-child{border-right:0}.countdown-item strong,.countdown-item span{display:block}.countdown-item strong{font-size:clamp(2.3rem,5vw,4.5rem);font-weight:400}.countdown-item span{color:#d7bd7d;letter-spacing:.2em;text-transform:uppercase;margin-top:8px;font-family:Arial,Helvetica,sans-serif;font-size:.63rem}.details-section{background:radial-gradient(circle at 12% 70%, #e0a72f1a, transparent 25%), var(--cream)}.detail-card{border:1px solid var(--line);text-align:left;background:#fffaf0b8;grid-template-columns:210px 1fr;max-width:900px;margin:58px auto 0;display:grid;box-shadow:0 24px 60px #312a1f14}.detail-date{background:var(--forest);color:var(--cream);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:44px 25px;display:flex}.detail-date span,.detail-date small{letter-spacing:.2em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-size:.63rem}.detail-date strong{color:var(--sunflower);margin:10px 0 4px;font-size:5rem;font-weight:400;line-height:1}.detail-copy{padding:45px clamp(28px,6vw,70px)}.detail-label{color:var(--forest-light);margin:0 0 12px}.detail-copy h3{margin:0 0 8px;font-size:clamp(1.8rem,4vw,3.1rem);font-weight:400}.detail-copy>p:not(.detail-label){margin:0;font-size:1.15rem;font-style:italic}.detail-copy address{color:#5d574e;margin:24px 0 12px;font-style:normal;line-height:1.65}.detail-copy .detail-time{color:var(--forest);letter-spacing:.12em;text-transform:uppercase;font-family:Arial,Helvetica,sans-serif;font-weight:700;margin:0 0 25px!important;font-size:.72rem!important;font-style:normal!important}.map-button{border:1px solid var(--forest);background:var(--forest);color:var(--cream);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:12px;padding:13px 20px;font-family:Arial,Helvetica,sans-serif;font-size:.63rem;text-decoration:none;transition:background .25s,color .25s,transform .25s;display:inline-flex}.map-button:hover,.map-button:focus-visible{color:var(--forest);background:0 0;outline:none;transform:translateY(-2px)}.footer{color:var(--cream);text-align:center;background:#451f2a;padding:90px 24px;position:relative}.footer .eyebrow{color:#d7bd7d}.footer-names{margin:24px 0 18px;font-family:Snell Roundhand,Segoe Script,Brush Script MT,cursive;font-size:clamp(3.5rem,8vw,6.5rem)}.footer>span{color:#d7bd7d;letter-spacing:.3em;font-family:Arial,Helvetica,sans-serif;font-size:.68rem}@media (width<=820px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:80px}.hero-copy{justify-self:center}.portrait-stage{grid-row:1;justify-self:center;width:min(560px,82vw)}.couple-names{font-size:clamp(4.2rem,20vw,7rem)}.scroll-cue{grid-column:1;justify-self:center;margin-top:12px;position:static;transform:none}.detail-card{grid-template-columns:150px 1fr}}@media (width<=560px){.story-cover{padding-bottom:90px}.music-toggle{bottom:16px;right:16px}.book-shell{width:min(355px,78vw)}.book-front{padding:30px 23px 30px 58px}.book-front:before{top:26px}.book-front:after{bottom:26px}.book-front h1{font-size:clamp(2.6rem,13vw,4rem)}.hero{gap:45px;padding-inline:22px}.portrait-stage{width:82vw}.portrait-frame{border-width:7px}.countdown{grid-template-columns:repeat(2,1fr)}.countdown-item:nth-child(2){border-right:0}.countdown-item:nth-child(-n+2){border-bottom:1px solid #e8cf9138}.detail-card{text-align:center;grid-template-columns:1fr}.detail-date{padding:25px}.detail-date strong{font-size:4rem}.detail-copy{padding:36px 24px 42px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
