*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;min-height:100dvh;line-height:1.6;-webkit-font-smoothing:antialiased}img,picture,svg,video{display:block;max-width:100%}[hidden]{display:none!important}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3{overflow-wrap:break-word}:root{--paper: #f7f2e9;--paper-deep: #ede4d6;--ink: #3a2c25;--ink-soft: #6b5749;--terracotta: #c1694f;--terracotta-deep: #96482f;--sage: #8a9a7b;--sage-pale: #c4ceb9;--white-line: #fbf8f3;--focus: var(--terracotta-deep);--font-display: "Display", "Cormorant Garamond", "Apple Garamond", Garamond, "Times New Roman", serif;--font-body: "Body", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-ui: system-ui, -apple-system, "Segoe UI", sans-serif;--step--1: clamp(.83rem, .8rem + .15vw, .94rem);--step-0: clamp(1rem, .96rem + .2vw, 1.13rem);--step-1: clamp(1.2rem, 1.13rem + .35vw, 1.5rem);--step-2: clamp(1.44rem, 1.32rem + .6vw, 2rem);--step-3: clamp(1.73rem, 1.53rem + 1vw, 2.66rem);--step-4: clamp(2.07rem, 1.75rem + 1.6vw, 3.55rem);--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-s: 1rem;--space-m: 1.5rem;--space-l: 2.5rem;--space-xl: 4rem;--space-2xl: 6rem;--measure: 62ch;--page-max: 44rem;--radius: 2px;--rule: 1px solid color-mix(in srgb, var(--ink) 15%, transparent);--ease: cubic-bezier(.22, .61, .36, 1)}body{background-color:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0)}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.15;text-wrap:balance}h1{font-size:var(--step-4)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1)}p{max-width:var(--measure);text-wrap:pretty}a{color:var(--terracotta-deep);text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:var(--radius)}.button{display:inline-block;padding:var(--space-xs) var(--space-l);font-family:var(--font-ui);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;border:1px solid var(--terracotta);border-radius:var(--radius);cursor:pointer;transition:background-color .2s var(--ease),color .2s var(--ease)}.button--primary{background:var(--terracotta);color:var(--paper)}.button--primary:hover{background:var(--terracotta-deep);border-color:var(--terracotta-deep);color:var(--paper)}.button--secondary{background:transparent;color:var(--terracotta-deep)}.button--secondary:hover{background:color-mix(in srgb,var(--terracotta) 10%,transparent);color:var(--terracotta-deep)}.button[disabled],.button[aria-disabled=true]{opacity:.55;cursor:not-allowed}.divider{display:flex;align-items:center;justify-content:center;gap:var(--space-s);margin-block:var(--space-l);color:var(--sage)}.divider:before,.divider:after{content:"";flex:1;max-width:6rem;height:1px;background:color-mix(in srgb,var(--sage) 45%,transparent)}.divider svg{flex:none;width:1.5rem;height:1.5rem}.visually-hidden:not(:focus):not(:active){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;top:var(--space-2xs);left:var(--space-2xs);z-index:10;padding:var(--space-2xs) var(--space-s);background:var(--paper);border:1px solid var(--ink)}.skip-link:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.invitation-page{background-color:var(--paper)}.invitation{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding:var(--space-l) var(--space-m);overflow-x:hidden}.envelope-stage,.letter{grid-area:1 / 1}.envelope-stage{display:grid;place-items:center;gap:var(--space-m);transition:opacity .5s var(--ease),transform .5s var(--ease)}.envelope{--w: min(22rem, 78vw);--h: calc(var(--w) * .66);position:relative;width:var(--w);height:var(--h);padding:0;background:none;border:none;cursor:pointer;animation:envelope-float 6s var(--ease) infinite}@keyframes envelope-float{0%,to{transform:translateY(0) rotate(-.6deg)}50%{transform:translateY(-6px) rotate(.6deg)}}.envelope__scene{position:absolute;top:0;right:0;bottom:0;left:0;perspective:1200px}.envelope__scene>*{position:absolute}.envelope__back,.envelope__card,.envelope__front{will-change:transform}.envelope__back{top:0;right:0;bottom:0;left:0;z-index:1;background:var(--paper-deep);border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:var(--radius);box-shadow:0 12px 32px -18px color-mix(in srgb,var(--ink) 65%,transparent)}.envelope__card{z-index:2;left:6%;right:6%;bottom:4%;height:86%;background:var(--paper);border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:var(--radius);transform:translateY(0);transition:transform .65s var(--ease) .65s}.envelope__front{top:0;right:0;bottom:0;left:0;z-index:3;background:var(--paper-deep);border-radius:var(--radius);clip-path:polygon(0 0,40% 60%,60% 60%,100% 0,100% 100%,0 100%)}.envelope__front:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom right,transparent calc(50% - 1px),color-mix(in srgb,var(--ink) 12%,transparent) 50%,transparent calc(50% + 1px)),linear-gradient(to bottom left,transparent calc(50% - 1px),color-mix(in srgb,var(--ink) 12%,transparent) 50%,transparent calc(50% + 1px));clip-path:polygon(0 0,40% 60%,60% 60%,100% 0,100% 100%,0 100%)}.envelope__flap{inset:0 0 auto 0;z-index:4;height:72%;background:linear-gradient(170deg,color-mix(in srgb,var(--paper-deep) 94%,var(--ink)),color-mix(in srgb,var(--paper-deep) 82%,var(--ink)));clip-path:polygon(0 0,2% 20%,50% 100%,98% 20%,100% 0);transform-origin:top center;transform:rotateX(0);transition:transform .8s var(--ease) .1s,z-index 0s linear .5s,filter .8s var(--ease) .1s;filter:drop-shadow(0 3px 5px color-mix(in srgb,var(--ink) 28%,transparent))}.envelope__seal{z-index:5;left:50%;top:60%;width:3.5rem;height:3.5rem;margin-left:-1.75rem;display:grid;place-items:center;border-radius:50%;background:var(--terracotta);color:var(--white-line);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--white-line) 45%,transparent),0 3px 8px -3px color-mix(in srgb,var(--ink) 70%,transparent);transition:opacity .25s var(--ease),transform .35s var(--ease)}.envelope__seal svg{width:60%;height:60%}.envelope__prompt{font-family:var(--font-ui);font-size:var(--step--1);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);animation:fade-in .6s var(--ease) both;transition:opacity .3s var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.envelope.is-opening{animation:none;cursor:default}.envelope.is-opening .envelope__seal{opacity:0;transform:scale(.75)}.envelope.is-opening .envelope__flap{transform:rotateX(158deg);z-index:0;filter:drop-shadow(0 0 0 transparent)}.envelope.is-opening .envelope__card{transform:translateY(-58%)}.envelope-stage.is-leaving{opacity:0;transform:translateY(-4%);pointer-events:none}.envelope-stage.is-leaving .envelope__prompt{opacity:0}.letter{width:min(38rem,92vw);padding:clamp(var(--space-m),5vw,var(--space-xl));background:var(--paper);border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);box-shadow:0 18px 50px -30px color-mix(in srgb,var(--ink) 70%,transparent);text-align:center}.letter.is-entering{animation:letter-in .6s var(--ease) both}@keyframes letter-in{0%{opacity:0;transform:translateY(3%) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.letter.is-entering>*{animation:line-in .5s var(--ease) both}.letter.is-entering>*:nth-child(1){animation-delay:.2s}.letter.is-entering>*:nth-child(2){animation-delay:.28s}.letter.is-entering>*:nth-child(3){animation-delay:.36s}.letter.is-entering>*:nth-child(4){animation-delay:.44s}.letter.is-entering>*:nth-child(5){animation-delay:.52s}.letter.is-entering>*:nth-child(6){animation-delay:.6s}@keyframes line-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.letter__eyebrow,.letter__request{font-family:var(--font-ui);font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-inline:auto}.letter__names{margin-block:var(--space-s);font-size:var(--step-4);letter-spacing:.02em}.letter__names .amp{color:var(--terracotta);font-style:italic}.letter .divider{margin-block:var(--space-m)}.letter__greeting{margin-top:var(--space-m);margin-inline:auto;font-size:var(--step-1)}.letter__blurb{margin-top:var(--space-s);margin-inline:auto}.letter__blurb:empty{display:none}.letter__date{margin-inline:auto;font-size:var(--step-1);line-height:1.4}.letter__place{margin-top:var(--space-2xs);margin-inline:auto;font-family:var(--font-ui);font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.letter__venue-note{margin-top:var(--space-3xs);margin-inline:auto;font-size:var(--step--1);font-style:italic;color:var(--ink-soft)}.letter__actions{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--space-s);margin-top:var(--space-l)}
