:root{--paper:#f3eee4;--paper-hi:#faf7f0;--paper-0:#f3eee400;--desk:#6f675d;--ink:#4f4840;--ink-soft:#857c6f;--ink-faint:#a49a8b;--rose:#cd8683;--rose-deep:#a8635f;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--display:"Cormorant Garamond", "Iowan Old Style", Georgia, serif;--hand:"Marck Script", "Segoe Script", cursive;--sheet-pad:clamp(14px, 2.6vw, 34px);--mottle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.011' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 .6 0 0 0 0 .45 0 0 0 0 .28 .19 0 0 0 -.07'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E");--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.86' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.05'/%3E%3C/svg%3E");--tape-0:#e8d8bed1;--tape-1:#e2c6c4c7;--tape-2:#ced6c4c2;--tape-3:#ded2e2b8;--tape-4:#eee2c6cc}*{box-sizing:border-box}html,body{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light only;background:var(--desk);height:100%;color:var(--ink);font-family:var(--display);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;font-weight:400}.sheet{min-height:100vh;min-height:100svh;padding:calc(var(--sheet-pad) + var(--safe-t)) calc(var(--sheet-pad) + var(--safe-r)) calc(var(--sheet-pad) * 1.15 + var(--safe-b)) calc(var(--sheet-pad) + var(--safe-l));opacity:0;flex-direction:column;transition:opacity .7s;display:flex;position:relative}.sheet.is-ready{opacity:1}.sheet,.note,.gallery{background:radial-gradient(120% 80% at 50% 0%, var(--paper-hi), var(--paper-0) 62%), radial-gradient(130% 100% at 50% 110%, #96826414, #96826400 58%), var(--paper)}.sheet:after,.note:after,.gallery:after{content:"";pointer-events:none;mix-blend-mode:multiply;background:var(--grain) 0 0 / 260px, radial-gradient(320px 200px at 21% 24%, #96764800 54%, #9676480d 66%, #96764800 82%), radial-gradient(250px 270px at 84% 62%, #92724600 50%, #9272460b 64%, #92724600 80%), var(--mottle) 0 0 / 600px,  linear-gradient(to right, #785c381a, #785c3800 210px), linear-gradient(to left, #785c381a, #785c3800 210px), linear-gradient(to bottom, #785c3817, #785c3800 190px), linear-gradient(to top, #785c3817, #785c3800 190px);position:absolute;inset:0}@media (min-width:1100px){body{padding:clamp(12px,2.4vh,34px)}.sheet{border-radius:2px;max-width:1340px;min-height:calc(100svh - 2*clamp(12px,2.4vh,34px));margin:0 auto;box-shadow:0 30px 70px -32px #3a32286b}}.deco{--deco:clamp(72px, 16vw, 186px);z-index:0;pointer-events:none;mix-blend-mode:multiply;opacity:.88;position:absolute;inset:0;overflow:hidden}.deco__c{width:var(--deco);aspect-ratio:1;height:auto;position:absolute}.deco__c--tl{top:0;left:0}.deco__c--tr{top:0;right:0;transform:scaleX(-1)}.deco__c--bl{bottom:0;left:0;transform:scaleY(-1)}.deco__c--br{bottom:0;right:0;transform:scale(-1)}.deco__e{opacity:.78;position:absolute}.deco__e--top,.deco__e--bottom{left:var(--deco);right:var(--deco);height:calc(var(--deco) * .19);background:var(--vine) repeat-x center / auto 100%}.deco__e--top{top:calc(var(--deco) * .06)}.deco__e--bottom{bottom:calc(var(--deco) * .06);transform:scaleY(-1)}.deco__e--left,.deco__e--right{top:var(--deco);bottom:var(--deco);width:calc(var(--deco) * .19);background:var(--vine-v) repeat-y center / 100% auto}.deco__e--left{left:calc(var(--deco) * .06)}.deco__e--right{right:calc(var(--deco) * .06);transform:scaleX(-1)}.deco__stem{fill:none;stroke:#87a86e;stroke-width:1.7px;stroke-linecap:round;opacity:.92}.deco__leaf{fill:#bdd3a8;stroke:#87a86e;stroke-width:.8px;opacity:.85}.deco__petal{stroke-width:.7px}.deco__bloom{opacity:.95}.deco__bloom--0 .deco__petal{fill:#f7dd97;stroke:#d9b962}.deco__bloom--0 .deco__eye{fill:#d6ab4f}.deco__bloom--1 .deco__petal{fill:#f4c4ca;stroke:#d48f97}.deco__bloom--1 .deco__eye{fill:#cf8089}.deco__bloom--2 .deco__petal{fill:#c6d9ec;stroke:#93b3cf}.deco__bloom--2 .deco__eye{fill:#8aabc9}.deco__bud{opacity:.8}.deco__bud.deco__bloom--0{fill:#ecd28c}.deco__bud.deco__bloom--1{fill:#eeb9c0}.deco__bud.deco__bloom--2{fill:#bcd2e6}.sheet__head{text-align:center;flex:none}#title{margin:0;text-wrap:balance;letter-spacing:.004em;clip-path:inset(0 100% 0 0);max-width:46ch;margin-inline:auto;font-size:clamp(28px,3.4vw,42px);font-style:italic;font-weight:300;line-height:1.18;transition:clip-path 1.5s cubic-bezier(.25,.6,.3,1) .35s}.is-ready #title{clip-path:inset(0)}.sheet__stage{flex:auto;min-height:0;margin:clamp(8px,1.6vh,20px) 0;position:relative;overflow:clip}.stage{position:absolute;inset:0}.stage svg{touch-action:pan-y;width:100%;height:100%;display:block;position:absolute;inset:0}.stage svg.is-zoomed{cursor:grab;touch-action:none}.sheet-canvas{transform-origin:0 0;pointer-events:none;position:absolute;inset:0}.sheet-canvas--wash{mix-blend-mode:multiply;filter:blur(6px)}.sheet-canvas--detail{opacity:0;transition:opacity .45s}.sheet-canvas--detail.is-on{opacity:1}.route path{fill:none;stroke-linecap:round;stroke-linejoin:round}.route__line{stroke:var(--rose-deep);stroke-opacity:.45;stroke-width:2.1px;stroke-dasharray:4 5.5}.route__reveal{stroke:#fff;stroke-width:7px;fill:none}.heart{cursor:pointer}.heart__hit{fill:#0000}#heart-lit feFlood{flood-color:var(--paper);flood-opacity:.85}.heart__aura{filter:url(#heart-lit);transform-box:fill-box;transform-origin:50%;opacity:.92;pointer-events:none;transform:scale(1)}.hearts.is-alive .heart__aura{animation:4s ease-in-out infinite lit;animation-delay:calc(var(--i) * .16s)}@keyframes lit{0%,to{opacity:.78}5%{opacity:1}18%{opacity:.92}40%{opacity:.84}}.heart__ink{stroke-width:.7px;transform-box:fill-box;transform-origin:50%;transition:transform .18s}.heart__pulse{opacity:0;transform-box:fill-box;transform-origin:50%;pointer-events:none}.hearts .heart:hover .heart__ink,.hearts .heart:focus-visible .heart__ink{animation:none;transform:scale(1.22)}.heart:focus{outline:none}.heart:focus-visible .heart__label{opacity:1}.heart__label{font-family:var(--display);fill:var(--ink-soft);opacity:0;pointer-events:none;paint-order:stroke;stroke:var(--paper);stroke-width:3.5px;stroke-linejoin:round;font-size:13px;font-style:italic;transition:opacity .2s}.heart:hover .heart__label{opacity:1}.heart__year{font-family:var(--display);letter-spacing:.12em;fill:var(--ink-soft);pointer-events:none;paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round;font-size:12.5px;font-style:italic}.heart__ring{fill:none;stroke:var(--rose-deep);stroke-opacity:.68;stroke-width:1.3px;stroke-linecap:round;pointer-events:none}.heart--star .heart__label{font-size:14px}.hearts.is-alive .heart--star .heart__label{opacity:.9}.hearts .heart--star:hover .heart__label,.hearts .heart--star:focus-visible .heart__label{opacity:1}.hearts.is-alive .heart__pulse,.hearts.is-alive .heart__ink{animation:none;animation-delay:calc(var(--i) * .16s)}.hearts.is-alive .heart__pulse{animation-name:beat}.hearts.is-alive .heart__ink{animation-name:throb}@keyframes beat{0%{opacity:0;transform:scale(1)}2%{opacity:.46;transform:scale(1)}15%{opacity:0;transform:scale(2.3)}16%{opacity:0;transform:scale(1)}18%{opacity:.34;transform:scale(1)}34%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}@keyframes throb{0%,40%,to{transform:scale(1)}5%{transform:scale(1.11)}14%{transform:scale(1)}20%{transform:scale(1.07)}30%{transform:scale(1)}}.zoom{z-index:5;opacity:0;flex-direction:column;gap:8px;transition:opacity .6s .3s;display:flex;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.zoom[hidden]{display:none}.is-drawn .zoom{opacity:1}.zoom__btn{width:38px;height:38px;color:var(--ink);cursor:pointer;background:#faf7f0eb;border:1px solid #4f484042;border-radius:50%;padding:0;position:relative;box-shadow:0 2px 8px #30292129}.zoom__btn:before,.zoom__btn:after{content:"";background:currentColor;width:14px;height:1.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.zoom__btn--in:after{transform:translate(-50%,-50%)rotate(90deg)}.zoom__btn--out:after{display:none}.zoom__btn:hover{background:#fff}.zoom__btn:disabled{opacity:.35;cursor:default}.zoom__btn:focus-visible{outline:2px solid var(--rose-deep);outline-offset:2px}@media (max-width:560px){.zoom{gap:6px;right:-6px}.zoom__btn{width:34px;height:34px}.zoom__btn:before,.zoom__btn:after{width:12px}}.sheet__foot{text-align:center;flex:none;margin-top:calc(-1*clamp(10px,3vh,34px));position:relative}#counters{opacity:0;transition:opacity .9s}.is-drawn #counters{opacity:1}.days{justify-content:center;align-items:baseline;gap:.42em;margin:0;display:flex}.days b{letter-spacing:.01em;font-size:clamp(30px,4.4vw,46px);font-weight:500}.days span{letter-spacing:.06em;color:var(--ink-soft);font-size:clamp(13px,1.7vw,16px);font-style:italic}.empty,.fail{text-align:center;color:var(--ink-soft);font-size:18px;font-style:italic;position:absolute;inset:auto 0 45%}.fail{color:var(--rose-deep);padding:0 24px;font-family:ui-monospace,monospace;font-size:13px;font-style:normal}.hint{font-family:var(--display);letter-spacing:.05em;color:var(--ink-faint);pointer-events:none;opacity:0;z-index:20;margin:0;font-size:16px;font-style:italic;transition:opacity .7s,transform .7s;position:absolute;bottom:calc(100% + 6px);left:0;right:0;transform:translateY(8px)}.hint.is-on{opacity:1;transform:translateY(0)}.hint--scroll:after{content:"↓";margin-left:.45em;animation:2.4s ease-in-out infinite nudge;display:inline-block}@keyframes nudge{0%,60%,to{opacity:.75;transform:translateY(0)}30%{opacity:1;transform:translateY(4px)}}.card-layer{z-index:60;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#3e372e6b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.card-layer[hidden]{display:none}.polaroid{filter:drop-shadow(0 18px 26px #30292180);width:min(400px,86vw);transform:rotate(var(--tilt,-1.4deg));margin:0;position:relative}.polaroid__inner{z-index:1;clip-path:var(--tear-in);padding:clamp(18px,5.5%,40px) clamp(18px,5.5%,40px) 0;position:relative}.polaroid__frame{background:#e5ded0;max-height:58svh;overflow:hidden}.shot{aspect-ratio:3/4;background-position:50%;background-size:cover;max-height:58svh;position:relative}.shot img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .35s;display:block}.shot.is-loaded img{opacity:1}.shot--empty{background:#ece5d7;place-items:center;display:grid}.shot--empty svg{opacity:.14;width:100%;height:100%;position:absolute;inset:0}.shot--empty svg path{stroke:var(--ink);stroke-width:1px;fill:none}.shot--empty span{color:var(--ink-soft);font-size:16px;font-style:italic;position:relative}.shot--empty .play{top:38%}.shot--empty span{margin-top:64px}.nav{color:#fff;text-shadow:0 1px 6px #0009;opacity:.8;cursor:pointer;background:0 0;border:0;width:38px;height:52px;font-size:30px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.nav:hover{opacity:1}.nav--prev{left:0}.nav--next{right:0}.dots{justify-content:center;gap:6px;padding:9px 0 0;display:flex}.dots i{background:#4f484038;border-radius:50%;width:5px;height:5px}.dots i.is-on{background:var(--rose)}.polaroid figcaption{text-align:center;padding:14px 8px 20px}.polaroid figcaption b{letter-spacing:.01em;font-size:clamp(21px,5vw,26px);font-weight:500;display:block}.polaroid figcaption time{letter-spacing:.08em;color:var(--ink-soft);margin-top:3px;font-size:13px;font-style:italic;display:block}.polaroid figcaption p{font-family:var(--hand);color:var(--ink);margin:12px 0 0;font-size:clamp(18px,4.4vw,21px);line-height:1.4}.polaroid__close{z-index:3;background:var(--paper);width:36px;height:36px;color:var(--ink);cursor:pointer;border:0;border-radius:50%;font-size:22px;line-height:1;position:absolute;top:-16px;right:-16px;box-shadow:0 3px 10px #3029214d}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.hearts.is-alive .heart__pulse{opacity:.2;animation:none}.hearts.is-alive .heart__ink,.hearts.is-alive .heart__aura{animation:none}}@media (max-width:560px){.heart__label{display:none}:root{--sheet-pad:26px}.sheet__foot{padding-inline:6px}.sheet__head{padding:clamp(10px,3.2vh,34px) 10px clamp(6px,1.6vh,18px)}}@media (max-width:560px) and (max-height:640px){#title{font-size:24px}.sheet__head{padding:clamp(6px,1.8vh,16px) 0 4px}}.note{min-height:56svh;padding:clamp(56px, 12vh, 130px) var(--sheet-pad);text-align:center;align-content:center;display:grid;position:relative}.note[hidden]{display:none}@media (min-width:1100px){.note{border-radius:2px;max-width:1340px;margin:clamp(14px,3vh,36px) auto 0;box-shadow:0 30px 70px -32px #3a32286b}}.letter{text-align:left;-webkit-hyphens:auto;hyphens:auto;text-wrap:pretty;max-width:62ch;margin:0 auto;font-size:clamp(18px,1.9vw,22px);line-height:1.62}.letter p{text-indent:1.6em;white-space:pre-line;margin:0}.letter p:first-child{text-indent:0}.letter p+p{margin-top:.4em}.letter p:first-child{font-size:1.12em}.signature{text-align:right;max-width:62ch;font-family:var(--hand);color:var(--ink-soft);margin:1.4em auto 0;font-size:clamp(19px,2.4vw,26px)}.gallery{padding:0 var(--sheet-pad) clamp(40px, 8vh, 90px);position:relative}.gallery[hidden]{display:none}@media (min-width:1100px){.gallery{border-radius:2px;max-width:1340px;margin:clamp(14px,3vh,36px) auto 0;box-shadow:0 30px 70px -32px #3a32286b}}.gallery__head{text-align:center;padding:clamp(10px,2vh,24px) 0 clamp(20px,4vh,40px)}.gallery__head h2{margin:0;font-size:clamp(24px,3.6vw,38px);font-style:italic;font-weight:300}.ribbon{grid-template-columns:1fr;gap:clamp(24px,4vw,48px);max-width:1040px;margin:0 auto;padding:0;list-style:none;display:grid}@media (min-width:820px){.ribbon{grid-template-columns:1fr 1fr}.shotcard--star{grid-column:1/-1}.shotcard--star .shotcard__inner{grid-template-columns:1.15fr 1fr;align-items:center;gap:clamp(16px,3vw,36px);display:grid}.shotcard--star .shotcard__meta{text-align:left;padding:8px 14px 8px 0}}.shotcard{filter:drop-shadow(0 12px 18px #30292166);transform:rotate(var(--tilt,0deg));transition:transform .3s,filter .3s;position:relative}.shotcard__inner{z-index:1;clip-path:var(--tear-in);padding:clamp(18px,5.5%,40px);position:relative}.shotcard__open{z-index:3}.shotcard:hover{filter:drop-shadow(0 20px 26px #3029217a);transform:rotate(0)translateY(-3px)}.shotcard__frame{aspect-ratio:4/3;background:#e5ded0 50%/cover;max-height:52svh;margin:0 auto;position:relative;overflow:hidden}.shotcard__frame img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .4s;display:block}.shotcard__frame.is-loaded img{opacity:1}.shotcard__frame--empty{background-image:repeating-linear-gradient(-38deg,#4f484017 0 1px,#0000 1px 14px)}.shotcard__meta{text-align:center;padding:14px 6px 2px}.shotcard__meta b{font-size:clamp(19px,2.4vw,24px);font-weight:500;display:block}.shotcard__meta time{letter-spacing:.1em;color:var(--ink-soft);margin-top:3px;font-size:12px;font-style:italic;display:block}.shotcard__meta p{font-family:var(--hand);margin:10px 0 0;font-size:clamp(16px,2vw,19px);line-height:1.4}.shotcard__meta p.story,.polaroid figcaption p.story{font-family:var(--display);color:var(--ink-soft);font-size:clamp(15px,1.9vw,18px);font-style:italic;line-height:1.55}.shotcard__more{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin-top:10px;font-size:11px;display:inline-block}.shotcard__open{cursor:pointer;background:0 0;border:0;position:absolute;inset:0}.shotcard__open:focus-visible{outline:2px solid var(--rose-deep);outline-offset:3px}.shotcard--star .shotcard__frame{aspect-ratio:16/10}.polaroid--star{width:min(460px,90vw)}.paper__burn,.paper__sheet{z-index:0;pointer-events:none;position:absolute;inset:0}.paper__burn{clip-path:var(--tear);opacity:var(--burn,0);filter:blur(6px);background:#a68359}.paper__sheet{background:#fdfaf4 var(--mottle) 0 0 / 380px;clip-path:var(--tear-in)}.tape{z-index:2;width:var(--len,70px);height:25px;transform:rotate(var(--rot,-26deg));pointer-events:none;position:absolute;box-shadow:0 1px 2px #3c302224}.tape--tl{top:-11px;left:-16px}.tape--tr{top:-11px;right:-16px}.tape--bl{bottom:-11px;left:-16px}.tape--br{bottom:-11px;right:-16px}.tape--washi{background-color:var(--tone,var(--tape-0));clip-path:polygon(3% 0,100% 5%,97% 100%,0 95%);background-image:repeating-linear-gradient(90deg,#fff3 0 5px,#fff0 5px 12px)}.tape--clear{clip-path:polygon(0 4%,98% 0,100% 96%,2% 100%);background:linear-gradient(#ffffff80 0 22%,#ece4ca42 22% 100%);border-top:1px solid #ffffff80;border-bottom:1px solid #78684e1f}.tape--torn{clip-path:polygon(6% 0,2% 14%,7% 28%,1% 44%,6% 60%,2% 76%,7% 90%,3% 100%,97% 100%,93% 88%,99% 72%,94% 56%,100% 40%,95% 24%,99% 10%,94% 0);background:#eee6d2db}.tape--corner{clip-path:polygon(0 0,100% 0,0 100%);width:34px;height:34px;box-shadow:none;background:linear-gradient(135deg,#4a3a28ad,#30261ad6)}.tape--corner.tape--tl{top:-1px;left:-1px;transform:rotate(0)}.tape--corner.tape--tr{top:-1px;right:-1px;transform:rotate(90deg)}.tape--corner.tape--bl{bottom:-1px;left:-1px;transform:rotate(-90deg)}.tape--corner.tape--br{bottom:-1px;right:-1px;transform:rotate(180deg)}.shot video{object-fit:cover;opacity:0;background:#2a241d;width:100%;height:100%;transition:opacity .35s;display:block}.shot.is-loaded video{opacity:1}.shot__sound{z-index:2;color:var(--ink);font-family:var(--display);letter-spacing:.02em;cursor:pointer;background:#fdfaf4e0;border:0;border-radius:999px;padding:7px 14px;font-size:14px;font-style:italic;position:absolute;top:10px;left:10px;box-shadow:0 3px 10px #28201840}.shot__sound:hover{background:#fff}.play{z-index:2;pointer-events:none;background:#fdfaf4d1;border-radius:50%;width:54px;height:54px;margin:-27px 0 0 -27px;position:absolute;top:50%;left:50%;box-shadow:0 4px 14px #28201847}.play:after{content:"";border:10px solid #0000;border-right:0;border-left:16px solid var(--rose-deep);position:absolute;top:17px;left:21px}.shotcard__frame video{object-fit:cover;width:100%;height:100%;display:block}.shotcard__dur{z-index:2;color:#fdfaf4;letter-spacing:.04em;background:#2820188c;border-radius:999px;padding:2px 8px;font-size:12px;font-style:italic;position:absolute;bottom:9px;right:9px}@media (max-width:560px){.polaroid .tape,.shotcard .tape{width:min(var(--len,70px), 58px)}.polaroid .tape--tl,.polaroid .tape--bl,.shotcard .tape--tl,.shotcard .tape--bl{left:2px}.polaroid .tape--tr,.polaroid .tape--br,.shotcard .tape--tr,.shotcard .tape--br{right:2px}}
