:root,.ephoa-root{--tex-fiber:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25' filterUnits='userSpaceOnUse'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.04 .3' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.353  0 0 0 0 0.275  0 0 0 0 0.157  0 0 0 0.07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E");--tex-grain-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n' x='0' y='0' width='100%25' height='100%25' filterUnits='userSpaceOnUse'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.157  0 0 0 0 0.118  0 0 0 0 0.078  0 0 0 0.11 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url%28%23n%29'/%3E%3C/svg%3E");--oat:#efe8dc;--paper:#fbf8f2;--ink:#2c3a37;--ink-2:#66706c;--teal:#4f8a86;--line:#2c3a3724;--g:clamp(16px, 4vw, 56px);--f-serif:var(--font-serif), Georgia, serif;--f-type:var(--font-type), ui-monospace, monospace}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}html.is-locked,html.is-locked body{overflow:hidden}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}img{max-width:100%;display:block}h1,h2,h3,p,figure,ul,ol,dl,dd,blockquote{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button{font:inherit;color:inherit}[tabindex="-1"]:focus{outline:none}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.nowrap{white-space:nowrap}.skip{z-index:300;color:#111;background:#fff;padding:10px 16px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip:focus{transform:none}h1,h2,h3{text-wrap:balance;font-weight:400}p{text-wrap:pretty}.site{transition:opacity .7s}.site--closed,.site--opening{opacity:0}.op__hit{z-index:5;cursor:pointer;position:absolute;inset:0}.opener--done{pointer-events:none}.has-amb{isolation:isolate;position:relative;overflow:clip}.fall{z-index:-1;pointer-events:none;position:absolute;inset:0;overflow:hidden;container-type:size}.fall__i{left:var(--x);animation:fallY var(--d) linear var(--dl) infinite;position:absolute;top:0}.fall--rise .fall__i{animation-name:riseY}.fall__s{width:26px;height:26px;animation:fallSway calc(var(--d) / 3) ease-in-out var(--dl) infinite alternate;display:block}.fall__s svg{width:100%;height:100%;transform:scale(var(--s)) rotate(var(--r0));display:block;overflow:visible}@keyframes fallY{0%{transform:translateY(-40px)}to{transform:translateY(calc(100cqh + 40px))}}@keyframes riseY{0%{transform:translateY(calc(100cqh + 40px))}to{transform:translateY(-40px)}}@keyframes fallSway{0%{translate:calc(var(--sw) * -1) 0;rotate:-30deg}to{translate:var(--sw) 0;rotate:30deg}}.drift{z-index:-2;pointer-events:none;will-change:transform;position:absolute;inset:-20% 0}@media (prefers-reduced-motion:reduce){.fall{display:none}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--oat);color:var(--ink);font-family:var(--f-serif);-webkit-font-smoothing:antialiased;margin:0;font-size:19px;line-height:1.7;overflow-x:clip}::selection{background:#4f8a8640}:focus-visible{outline:1.5px solid var(--teal);outline-offset:4px}.opener{z-index:100;background:radial-gradient(70% 60% at 50% 45%,#f6f1e8,#e2d9ca);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.ev{aspect-ratio:1.45;perspective:1200px;width:min(80vw,420px);position:relative;container-type:inline-size}.ev__body{background:#e8e1d3;border-radius:1cqw;position:absolute;inset:0;box-shadow:0 5cqw 8cqw -4cqw #2c3a3766}.ev__sheet{z-index:1;background:var(--paper);grid-template-columns:1fr auto;align-content:start;gap:1cqw 3cqw;height:90%;padding:6cqw 7cqw;display:grid;position:absolute;top:7%;left:6%;right:6%;box-shadow:0 1cqw 3cqw #2c3a371f}.ev__date{font-family:var(--f-type);letter-spacing:.06em;color:var(--ink-2);grid-column:1;font-size:2.6cqw}.ev__to{font-family:var(--f-serif);grid-column:1;font-size:9cqw;font-style:italic;line-height:1}.ev__flower{grid-area:1/2/span 3;width:16cqw;height:auto}.ev__front{z-index:2;-webkit-backdrop-filter:blur(1.4px);backdrop-filter:blur(1.4px);background:linear-gradient(160deg,#f6f2eac7,#ece6dbdb);border-radius:1cqw;place-items:end center;padding-bottom:6cqw;display:grid;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #2c3a371a}.ev__front span{font-family:var(--f-type);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);font-size:2.6cqw}.ev__flap{z-index:3;transform-origin:50% 0;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 .6cqw .6cqw #2c3a371f);background:linear-gradient(#e9e3d8f2,#f4efe6eb);height:56%;position:absolute;top:0;left:0;right:0}.eh{min-height:100svh;padding:72px var(--g);align-items:center;display:grid}.eh__grid{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:clamp(28px,6vw,96px);width:100%;max-width:1160px;margin:0 auto;display:grid}.eh__plate{border:1px solid var(--ink);font-family:var(--f-type);letter-spacing:.12em;text-transform:uppercase;gap:0;font-size:12px;line-height:1;display:inline-flex}.eh__plate span{padding:7px 10px}.eh__plate span+span{border-left:1px solid var(--ink)}.eh__text h1{font-family:var(--f-serif);letter-spacing:-.01em;margin-top:24px;font-size:clamp(64px,9vw,132px);line-height:.95}.eh__text h1 em{color:var(--teal)}.eh__lead{max-width:380px;color:var(--ink-2);margin-top:20px;font-style:italic}.eh__sig{border-top:1px solid var(--line);font-family:var(--f-type);color:var(--ink-2);margin-top:26px;padding-top:14px;font-size:13px}.eh__photo{border-radius:2px;overflow:hidden;box-shadow:0 34px 60px -40px #2c3a3799}.eh__photo img{aspect-ratio:4/5;object-fit:cover;width:100%}@media (max-width:820px){.eh__grid{grid-template-columns:minmax(0,1fr)}.eh__photo{order:-1}.eh__photo img{aspect-ratio:4/3}}.wm-grid{background:linear-gradient(#2c3a370d 1px,#0000 1px) 0 0/100% 32px,linear-gradient(90deg,#2c3a370d 1px,#0000 1px) 0 0/32px 100%}.ty{padding:clamp(80px, 10vw, 130px) var(--g);background:#e9e1d3}.ty__grid{grid-template-columns:minmax(0,4fr) minmax(0,6fr);align-items:center;gap:clamp(28px,5vw,72px);max-width:1160px;margin:0 auto;display:grid}.ty__photo img{aspect-ratio:3/4;object-fit:cover;width:100%}.ty__sheet{background:repeating-linear-gradient(transparent 0 33px, #4f8a8624 33px 34px) 0 43px, var(--paper);min-height:520px;padding:44px clamp(22px,5vw,56px) 44px clamp(40px,6vw,76px);position:relative;box-shadow:0 30px 50px -36px #2c3a378c}.ty__sheet:before{content:"";background:#b8606059;width:1px;position:absolute;top:0;bottom:0;left:clamp(26px,4vw,52px)}.ty__text{font-family:var(--f-type);white-space:pre-wrap;font-size:clamp(14.5px,1.35vw,16.5px);line-height:34px}.ty__text p+p{margin-top:34px}.ty__caret{vertical-align:-3px;background:var(--teal);width:.6em;height:1.1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (max-width:820px){.ty__grid{grid-template-columns:minmax(0,1fr)}.ty__photo img{aspect-ratio:16/10}.ty__sheet{min-height:0}}.hb{padding:clamp(96px, 12vw, 150px) var(--g) 40px}.hb__head{text-align:center;max-width:560px;margin:0 auto clamp(36px,5vw,56px)}.hb__head h2{font-family:var(--f-serif);margin-top:18px;font-size:clamp(48px,6vw,76px);font-style:italic;line-height:1}.hb__head>p:last-child{color:var(--ink-2);margin-top:10px;font-size:17px}.hb__grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,32px);max-width:1160px;margin:0 auto;display:grid}.sheet{cursor:pointer;perspective:1200px;text-align:left;background:0 0;border:0;width:100%;padding:0;display:block}.sheet__inner{aspect-ratio:3/4.3;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.3,.7,.2,1);display:block;position:relative}.sheet.is-flipped .sheet__inner{transform:rotateY(180deg)}.sheet:hover .sheet__inner{translate:0 -4px}.sheet__face{-webkit-backface-visibility:hidden;backface-visibility:hidden;background:var(--paper);position:absolute;inset:0;box-shadow:0 24px 40px -30px #2c3a378c,0 0 0 1px #2c3a370f}.sheet__face--front{grid-template-rows:minmax(0,1fr) auto;padding:10px 10px 0;display:grid}.sheet__face--front img{object-fit:cover;width:100%;height:100%;min-height:0}.sheet__tape{z-index:1;background:#d6c8aab3;width:64px;height:20px;margin-left:-32px;position:absolute;top:-8px;left:50%;rotate:-3deg}.sheet__label{border:1px solid var(--line);font-family:var(--f-type);color:var(--ink-2);gap:2px;margin:10px 0 12px;padding:8px 10px;font-size:11px;line-height:1.45;display:grid}.sheet__label b{font-family:var(--f-serif);color:var(--ink);font-size:19px;font-style:italic;font-weight:500}.sheet__label i{color:var(--teal);font-style:normal}.sheet__face--back{background:repeating-linear-gradient(transparent 0 29px, #4f8a861f 29px 30px), var(--paper);align-content:center;gap:14px;padding:24px 20px;display:grid;transform:rotateY(180deg)}.sheet__msg{font-family:var(--f-serif);font-size:21px;font-style:italic;line-height:1.45}.sheet__from{font-family:var(--f-type);color:var(--teal);font-size:13px}@media (max-width:900px){.hb__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:420px){.sheet__msg{font-size:17px}.sheet__label b{font-size:16px}.sheet__label small{display:none}}.hb__end{grid-template-columns:minmax(0,4fr) minmax(0,5fr);align-items:center;gap:clamp(24px,5vw,64px);max-width:1000px;margin:clamp(80px,10vw,120px) auto 0;display:grid}.hb__closing img{aspect-ratio:4/5;object-fit:cover;width:100%}.hb__love{font-family:var(--f-serif);color:var(--teal);font-size:clamp(40px,5vw,60px);font-style:italic;line-height:1.05}.hb__who{font-family:var(--f-type);margin-top:10px;font-size:14px}.hb__credit{border-top:1px solid var(--line);color:var(--ink-2);margin-top:28px;padding-top:14px;font-size:14px}@media (max-width:820px){.hb__end{grid-template-columns:minmax(0,1fr)}}.quill{z-index:40;cursor:pointer;opacity:0;background:0 0;border:0;width:34px;padding:0;transition:opacity .4s,transform .4s;position:fixed;bottom:16px;right:18px;transform:translateY(16px)rotate(8deg)}.quill.is-shown{opacity:1;transform:rotate(8deg)}.quill:hover{transform:rotate(-6deg)}.quill svg{width:100%;height:auto;display:block}.fb{min-height:100svh;padding:56px var(--g);background:var(--oat);align-items:center;display:grid}.fb__grid{grid-template-columns:minmax(0,4fr) minmax(0,5fr);align-items:center;gap:clamp(24px,5vw,80px);width:100%;max-width:1160px;margin:0 auto;display:grid}.fb__text h2{font-family:var(--f-serif);margin-top:18px;font-size:clamp(44px,5.4vw,72px);font-style:italic;line-height:1}.fb__text>p:not(.eh__plate):not(.fb__count){max-width:380px;color:var(--ink-2);margin-top:16px}.fb__count{font-family:var(--f-type);color:var(--teal);margin-top:22px;font-size:14px}.fb__book{aspect-ratio:3/4;background:var(--paper);width:min(100%,440px,75svh - 105px);box-shadow:4px 4px 0 -1px var(--paper), 4px 4px 0 0 var(--line), 8px 8px 0 -1px var(--paper), 8px 8px 0 0 var(--line), 0 34px 60px -40px #2c3a3799;justify-self:center;padding:12px 12px 30px;position:relative}.fb__frame{opacity:0;transition:opacity .18s;position:absolute;inset:12px 12px 30px}.fb__frame.is-on{opacity:1}.fb__frame img{object-fit:cover;width:100%;height:100%}.fb__edge{background:var(--line);height:2px;position:absolute;bottom:12px;left:12px;right:12px}.fb__edge i{background:var(--teal);height:100%;transition:width .2s;display:block}.fb--static .fb__book{aspect-ratio:auto;gap:10px;display:grid}.fb--static .fb__frame{opacity:1;position:static}@media (max-width:820px){.fb__grid{grid-template-columns:minmax(0,1fr)}.fb__book{width:min(100%,75svh - 247.5px)}.fb__text>p:not(.eh__plate):not(.fb__count){display:none}}body{background-image:var(--tex-fiber), var(--tex-grain-dark)}body:after{content:"";z-index:2147483000;pointer-events:none;background:var(--tex-grain-dark);mix-blend-mode:multiply;opacity:.5;position:fixed;inset:0}.ev__sheet,.sheet__face,.fb__book{background:var(--tex-fiber), var(--tex-grain-dark), var(--paper)}@media (prefers-reduced-transparency:reduce){body:after{display:none}}.ephoa-root{font-family:var(--f-serif);color:inherit}
