:root{--ea-night: #0d0f12;--ea-fg: #ece7df;--ea-mist: #8d96a1;--ea-line-dark: rgba(236, 231, 223, .13);--ea-data: #a9c3d3;--ea-ember: #1a120d;--ea-ember-2: #24170f;--ea-warm-mist: #a8957f;--ea-gold: #d9ad6f;--ea-gold-hi: #f0d3a2;--ea-paper: #f4ede2;--ea-paper-2: #ebe1d1;--ea-card: #fbf7f0;--ea-ink: #241b14;--ea-ink-soft: #6a5b4d;--ea-copper: #94562a;--ea-line-paper: rgba(36, 27, 20, .14);--ea-sans: "Inter Tight", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ea-serif: "Newsreader", "Iowan Old Style", Georgia, "Times New Roman", serif;--ea-gutter: 20px;--ea-ease: cubic-bezier(.22, 1, .36, 1)}@media(min-width:720px){:root{--ea-gutter: 40px}}body.ea *,body.ea *:before,body.ea *:after{box-sizing:border-box}html:has(body.ea){background:var(--ea-night)}body.ea{margin:0;background:var(--ea-night);color:var(--ea-fg);font-family:var(--ea-sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:clip;font-variant-numeric:lining-nums}:where(.ea) a{color:inherit}.ea :focus-visible{outline:1px solid var(--ea-gold);outline-offset:4px}.ea-invite :focus-visible{outline-color:var(--ea-copper)}.ea-invite:focus{outline:none}:where(.ea) p,:where(.ea) h1,:where(.ea) h2{margin:0;font-weight:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.ea-skip{position:fixed;left:12px;top:12px;z-index:100;padding:10px 16px;border-radius:6px;background:var(--ea-gold);color:var(--ea-ink)!important;font-size:.78rem;text-decoration:none;transform:translateY(-160%)}.ea-skip:focus-visible{transform:none}.ea-js:not(.ea-intro) [data-intro]{opacity:0}.ea-progress{position:fixed;inset:0 0 auto;z-index:50;height:2px;display:none;pointer-events:none;transition:opacity .8s ease}.ea-motion .ea-progress{display:block}.ea-past-story .ea-progress{opacity:0}.ea-progress span{display:block;height:100%;background:linear-gradient(90deg,var(--ea-data),var(--ea-gold));transform:scaleX(0);transform-origin:0 50%}.ea-label{font-size:.7rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--ea-copper)}.ea-label-gold{color:var(--ea-gold)}.ea-sec-title{margin-top:.7rem;font-family:var(--ea-serif);font-weight:300;font-size:clamp(2rem,5.4vw,3.2rem);line-height:1.08;letter-spacing:-.01em}.ea-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:13px 26px;border:1px solid color-mix(in srgb,var(--ea-ink) 28%,transparent);border-radius:999px;background:transparent;color:var(--ea-ink);font:inherit;font-size:.74rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .3s ease,color .3s ease,border-color .3s ease,transform .15s ease}.ea-btn:active{transform:scale(.98)}.ea-btn-solid{background:var(--ea-ink);border-color:var(--ea-ink);color:var(--ea-paper)}.ea-btn-gold{background:var(--ea-gold);border-color:var(--ea-gold);color:var(--ea-ink)}@media(hover:hover){.ea-btn:hover{border-color:var(--ea-ink);background:#241b140d}.ea-btn-solid:hover{background:#3a2c21;border-color:#3a2c21}.ea-btn-gold:hover{background:var(--ea-gold-hi);border-color:var(--ea-gold-hi)}}.ea-open{position:relative;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.4rem;padding:12svh var(--ea-gutter);text-align:center}.ea-mark{font-size:.68rem;font-weight:500;letter-spacing:.42em;text-transform:uppercase;color:var(--ea-mist)}.ea-open-title{max-width:13ch;font-family:var(--ea-serif);font-weight:250;font-size:clamp(2.6rem,8vw,5.8rem);line-height:1.04;letter-spacing:-.015em;text-wrap:balance}.ea-open-sub{font-family:var(--ea-serif);font-style:italic;font-weight:300;font-size:clamp(1.1rem,2.4vw,1.4rem);color:var(--ea-mist)}.ea-cue{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px;font-size:.62rem;letter-spacing:.36em;text-transform:uppercase;text-decoration:none;color:var(--ea-mist)}.ea-cue-line{position:relative;width:1px;height:52px;overflow:hidden;background:var(--ea-line-dark)}.ea-cue-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(transparent,var(--ea-data),transparent);animation:ea-fall 2.6s var(--ea-ease) infinite}@keyframes ea-fall{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.ea-stats{list-style:none;margin:0;padding:0}.ea-stat{min-height:100svh;max-width:1180px;margin:0 auto;padding:10svh var(--ea-gutter);display:grid;align-content:center;justify-items:center;gap:clamp(28px,6vw,56px);text-align:center}.ea-stat-copy{display:grid;justify-items:center;gap:.9rem}.ea-stat-index{display:flex;align-items:center;gap:12px;font-size:.66rem;font-weight:500;letter-spacing:.3em;color:var(--ea-mist);font-variant-numeric:tabular-nums}.ea-stat-index i{display:block;width:32px;height:1px;background:var(--ea-line-dark)}.ea-stat-num{font-family:var(--ea-serif);font-weight:200;font-size:clamp(5.4rem,24vw,11.5rem);line-height:.92;letter-spacing:-.035em;font-variant-numeric:lining-nums tabular-nums;font-optical-sizing:auto}.is-one .ea-stat-num{font-style:italic;color:var(--ea-gold-hi);letter-spacing:-.02em}.ea-stat-label{font-size:.8rem;font-weight:500;letter-spacing:.36em;text-transform:uppercase;color:var(--ea-data)}.is-one .ea-stat-label{color:var(--ea-gold)}.ea-stat-note{max-width:26ch;font-family:var(--ea-serif);font-style:italic;font-weight:300;font-size:1.15rem;line-height:1.45;color:var(--ea-mist)}.ea-stat-viz{width:100%;max-width:320px;color:var(--ea-data)}.is-one .ea-stat-viz{color:var(--ea-gold)}.is-line .ea-stat-viz,.is-timeline .ea-stat-viz,.is-grid .ea-stat-viz{max-width:380px}.ea-viz-svg{display:block;width:100%;height:auto;overflow:visible}@media(min-width:900px){.ea-stat{max-width:1100px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;text-align:left;gap:clamp(56px,7vw,112px)}.ea-stat-copy{justify-items:start;justify-self:end;min-width:min(100%,360px)}.ea-stat-viz,.is-line .ea-stat-viz,.is-timeline .ea-stat-viz,.is-grid .ea-stat-viz{max-width:420px;justify-self:start}.ea-stat:nth-child(2n) .ea-stat-viz{order:-1;justify-self:end}.ea-stat:nth-child(2n) .ea-stat-copy{justify-self:start}}.ea-ring-track{fill:none;stroke:var(--ea-line-dark);stroke-width:1}.ea-seg{fill:none;stroke:currentColor;stroke-width:7;stroke-dasharray:1}.ea-core{fill:currentColor}.ea-viz-tick{fill:var(--ea-mist);font-family:var(--ea-sans);font-size:9px;font-weight:500;letter-spacing:.12em;text-anchor:middle;dominant-baseline:middle}.ea-cell{fill:currentColor;fill-opacity:.88}.ea-cell:nth-child(7n+3){fill-opacity:.55}.ea-cell.is-empty{fill:none;stroke:var(--ea-line-dark);stroke-width:1}.ea-gridline{stroke:var(--ea-line-dark);stroke-width:1;stroke-dasharray:2 5}.ea-curve{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-dasharray:1}.ea-area{color:var(--ea-data)}.ea-end{fill:var(--ea-fg)}.ea-halo{fill:currentColor;fill-opacity:.22}.ea-base{stroke:var(--ea-mist);stroke-opacity:.6;stroke-width:1;stroke-dasharray:1}.ea-stem{stroke:currentColor;stroke-opacity:.55;stroke-width:1}.ea-pin{fill:currentColor}.ea-pin.is-last{fill:var(--ea-gold)}.ea-unity{fill:none;stroke:currentColor;stroke-opacity:.45;stroke-width:1;stroke-dasharray:1}.ea-dot{fill:currentColor}.ea-core.is-warm{fill:var(--ea-gold-hi)}.ea-turn{background:linear-gradient(var(--ea-night),var(--ea-ember))}.ea-dedication{background:var(--ea-ember)}.ea-motion .ea-turn,.ea-motion .ea-dedication{background:none}.ea-turn-line{min-height:80svh;display:flex;align-items:center;justify-content:center;margin:0 auto;max-width:17ch;padding:10svh var(--ea-gutter);font-family:var(--ea-serif);font-weight:300;font-size:clamp(2.1rem,6.4vw,4.6rem);line-height:1.12;letter-spacing:-.01em;text-align:center;text-wrap:balance}.ea-turn-line+.ea-turn-line{font-style:italic;color:var(--ea-gold-hi)}@media(min-width:900px){.ea-turn-line{max-width:20ch}}.ea-w{display:inline-block}.ea-dedication{position:relative;min-height:110svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.4rem;padding:14svh var(--ea-gutter);overflow:hidden;text-align:center;isolation:isolate}.ea-glow{position:absolute;left:50%;top:50%;z-index:-1;width:130vmin;height:130vmin;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,rgba(217,173,111,.22) 0%,rgba(217,173,111,.07) 38%,transparent 68%);pointer-events:none}.ea-ded-title{display:grid;gap:.1em;font-family:var(--ea-sans);font-weight:300;font-size:clamp(2.7rem,12vw,8.4rem);line-height:.98;letter-spacing:.06em;text-transform:uppercase;color:var(--ea-fg)}.ea-ded-line{display:block}.ea-ded-title em{font-family:var(--ea-serif);font-style:italic;font-weight:300;letter-spacing:.02em;color:var(--ea-gold)}.ea-ded-sub{font-family:var(--ea-serif);font-style:italic;font-weight:300;font-size:clamp(1.15rem,2.6vw,1.5rem);color:var(--ea-warm-mist)}.ea-invite{position:relative;background:var(--ea-paper);color:var(--ea-ink)}.ea-invite:before{content:"";display:block;height:36svh;background:linear-gradient(var(--ea-ember),#6b4f39 35%,var(--ea-paper-2) 78%,var(--ea-paper))}.ea-hero{max-width:1080px;margin:0 auto;padding:6svh var(--ea-gutter) 12svh;display:flex;flex-direction:column;align-items:center;text-align:center}.ea-hero-title{margin-top:1.2rem;max-width:14ch;font-family:var(--ea-serif);font-weight:300;font-size:clamp(2.6rem,7.6vw,5.8rem);line-height:1.02;letter-spacing:-.02em;text-wrap:balance}.ea-hero-sub{margin-top:1.2rem;max-width:30ch;font-family:var(--ea-serif);font-style:italic;font-weight:300;font-size:clamp(1.15rem,2.4vw,1.45rem);color:var(--ea-ink-soft)}.ea-rule{display:flex;align-items:center;gap:14px;margin:2.6rem 0 2.4rem}.ea-rule:before,.ea-rule:after{content:"";width:64px;height:1px;background:var(--ea-line-paper)}.ea-rule i{width:6px;height:6px;rotate:45deg;background:var(--ea-copper)}.ea-facts{width:100%;margin:0;display:grid;grid-template-columns:1fr;gap:0;text-align:left}.ea-facts>div{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--ea-line-paper)}.ea-facts>div:last-child{border-bottom:1px solid var(--ea-line-paper)}.ea-facts dt{padding-top:.45rem;font-size:.66rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--ea-copper)}.ea-facts dd{margin:0;display:grid;gap:2px}.ea-fact-big{font-family:var(--ea-serif);font-size:1.45rem;line-height:1.2}.ea-fact-small{font-size:.86rem;color:var(--ea-ink-soft)}@media(min-width:900px){.ea-facts{grid-template-columns:repeat(4,1fr);gap:32px}.ea-facts>div,.ea-facts>div:last-child{grid-template-columns:1fr;gap:.6rem;padding:1.4rem 0 0;border-bottom:0}.ea-facts dt{padding-top:0}}.ea-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:2.6rem;width:100%}@media(max-width:559px){.ea-actions{display:grid;grid-template-columns:1fr 1fr}.ea-actions .ea-btn-solid{grid-column:1 / -1}}.ea-sec{max-width:1080px;margin:0 auto;padding:10svh var(--ea-gutter);display:flex;flex-direction:column;align-items:center;text-align:center}.ea-paper{width:100%;max-width:720px;padding:clamp(30px,7vw,68px) clamp(22px,7vw,72px);background:var(--ea-card);border:1px solid var(--ea-line-paper);border-radius:4px;box-shadow:0 1px #ffffffb3 inset,0 40px 70px -50px #5a371973;text-align:left}.ea-letter-body{margin-top:1.8rem;display:grid;gap:1.1rem;font-family:var(--ea-serif);font-size:clamp(1.1rem,2.2vw,1.25rem);line-height:1.65;color:#3a2d22}.ea-letter-body p:first-child{font-style:italic}.ea-sign{display:grid;gap:4px;margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--ea-line-paper)}.ea-sign-name{font-family:var(--ea-serif);font-style:italic;font-size:1.6rem}.ea-sign-role{font-size:.82rem;color:var(--ea-ink-soft)}.ea-prog{list-style:none;width:100%;max-width:620px;margin:2.4rem 0 0;padding:0;text-align:left}.ea-prog li{display:grid;grid-template-columns:5rem 1fr;align-items:baseline;gap:1rem;padding:1.1rem 0;border-top:1px solid var(--ea-line-paper)}.ea-prog li:last-child{border-bottom:1px solid var(--ea-line-paper)}.ea-prog time{font-size:.86rem;font-weight:500;letter-spacing:.08em;color:var(--ea-copper);font-variant-numeric:tabular-nums}.ea-prog span{font-family:var(--ea-serif);font-size:1.3rem;line-height:1.3}.ea-address{margin:1.4rem 0 .8rem;font-style:normal;font-family:var(--ea-serif);font-size:1.25rem;line-height:1.5}.ea-venue-note{margin-bottom:1.8rem;font-size:.9rem;color:var(--ea-ink-soft)}.ea-rsvp-sec{padding-bottom:14svh}.ea-rsvp-card{max-width:560px;text-align:center}.ea-rsvp{margin-top:1.8rem;display:grid;gap:.8rem;text-align:left}.ea-rsvp label{font-size:.66rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--ea-ink-soft)}.ea-rsvp input{width:100%;padding:15px 18px;font:inherit;font-size:1rem;color:var(--ea-ink);background:#fff;border:1px solid var(--ea-line-paper);border-radius:12px;outline:none;transition:border-color .2s,box-shadow .2s}.ea-rsvp input:focus{border-color:var(--ea-copper);box-shadow:0 0 0 4px #94562a24}.ea-rsvp .answers{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:.4rem}.ea-rsvp .answers button{min-height:52px;padding:12px 10px;font:inherit;font-size:.9rem;font-weight:500;border-radius:999px;cursor:pointer;transition:opacity .25s,transform .15s,background .2s}.ea-rsvp .answers button[value=ACCEPTED]{background:var(--ea-ink);color:var(--ea-paper);border:1px solid var(--ea-ink)}.ea-rsvp .answers button[value=DECLINED]{background:transparent;color:var(--ea-ink);border:1px solid color-mix(in srgb,var(--ea-ink) 30%,transparent)}.ea-rsvp .answers button:active:not(:disabled){transform:scale(.98)}.ea-rsvp .answers button:disabled{opacity:.38;cursor:default}.ea-rsvp #status{min-height:1.4em;margin-top:.3rem;text-align:center;font-family:var(--ea-serif);font-style:italic;font-size:1.1rem;color:var(--ea-copper)}.ea-close{position:relative;display:grid;gap:clamp(10px,2.4vw,22px);padding:14svh 0 10svh;overflow:hidden;background:radial-gradient(ellipse 70% 45% at 50% 50%,rgba(217,173,111,.12),transparent 70%),linear-gradient(var(--ea-paper) 0,var(--ea-paper-2) 3svh,#5a4130 10svh,var(--ea-ember) 18svh,var(--ea-ember) 100%);color:var(--ea-fg);isolation:isolate}.ea-drift{display:grid;gap:clamp(10px,2.4vw,22px)}.ea-row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}.ea-track{display:flex;width:max-content}.ea-motion .ea-track{animation:ea-drift var(--ea-dur, 80s) linear infinite}.ea-motion .ea-row.is-rev .ea-track{animation-direction:reverse}@keyframes ea-drift{to{transform:translate(-50%)}}.ea-set{display:flex;align-items:center}.ea-word{white-space:nowrap}.is-names .ea-word{padding:0 1.1em;font-size:.76rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--ea-warm-mist);opacity:.75}.is-values .ea-word{display:inline-flex;align-items:center;gap:.55em;padding-right:.55em;font-family:var(--ea-serif);font-weight:300;font-size:clamp(2.2rem,7vw,4.6rem);line-height:1.1;letter-spacing:.06em;text-transform:uppercase;color:var(--ea-gold-hi)}.is-values .ea-word:nth-child(2n){color:transparent;-webkit-text-stroke:1px rgba(217,173,111,.75);font-style:italic}.is-values .ea-word:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--ea-gold);opacity:.6;-webkit-text-stroke:0}.ea-close-inner{display:flex;flex-direction:column;align-items:center;gap:1.1rem;padding:clamp(6svh,9vw,11svh) var(--ea-gutter);text-align:center}.ea-close-title{font-family:var(--ea-serif);font-style:italic;font-weight:300;font-size:clamp(3.2rem,11vw,7.4rem);line-height:1;letter-spacing:-.02em}.ea-close-sub{margin-bottom:.8rem;font-size:.74rem;font-weight:500;letter-spacing:.36em;text-transform:uppercase;color:var(--ea-gold)}.ea-close .ea-btn:not(.ea-btn-gold){color:var(--ea-fg)}.ea-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;padding:36px var(--ea-gutter) max(36px,env(safe-area-inset-bottom));background:var(--ea-ember);color:var(--ea-warm-mist);font-size:.68rem;letter-spacing:.3em;text-transform:uppercase}.ea-foot a{text-decoration:none;padding:6px;margin:-6px}@media(hover:hover){.ea-foot a:hover{color:var(--ea-gold-hi)}}@media(prefers-reduced-motion:reduce){.ea-cue-line:after{animation:none;opacity:0}.ea-track{animation:none!important}.ea-btn{transition:none}}
