@font-face{font-family:Bodoni Moda;font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/fonts/bodoni-moda-latin.woff2)format(woff2)}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/source-sans-3-latin-400.woff2)format(woff2)}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/source-sans-3-latin-600.woff2)format(woff2)}:root{color:#fff8e8;font-synthesis:none;--paper:#fff8e8;--ink:#24334a;--ribbon:#b93845;--gold:#c4a15a;--fir:#385c4f;--night:#182d45;background:#182d45;font-family:"Source Sans 3",sans-serif}*{box-sizing:border-box}body{min-width:280px;margin:0}button,input{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait}a{color:inherit}button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}a:focus-visible{outline:3px solid var(--gold);outline-offset:5px}input:focus-visible{outline:3px solid var(--gold);outline-offset:5px}summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}select:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1,h2,p{margin:0}h1,h2{font-family:Bodoni Moda,Georgia,serif;font-weight:400}h1:focus,h2:focus{outline:none}.page{max-width:1152px;margin:auto;padding:0 16px}.masthead{display:flex;border-bottom:1px solid #617083;justify-content:space-between;align-items: center;gap:16px;padding:28px 0 24px}.wordmark{display:flex;text-decoration:none;align-items: center;gap:10px;font-size:16px}.postal-mark{color:var(--gold);font-size:30px;line-height:1}.edition{color:#cbd1d6;font-size:14px}.page-heading{display:flex;justify-content:space-between;align-items: center;gap:32px;padding:45px 0 32px}h1{letter-spacing:-.04em;font-size:clamp(54px,6.5vw,88px);line-height:1.02}.title-stop{color:var(--gold)}.lede{color:#d7dde2;max-width:45ch;margin-top:22px;font-size:18px;line-height:1.5}.postmark{display:flex;border:1px solid var(--gold);outline:1px solid var(--gold);outline-offset:-8px;color:#dfc48e;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items: center;gap:0;width:160px;height:160px;font-size:14px;transform:rotate(12deg)}.postmark strong{font-family:Bodoni Moda,serif;font-size:40px;font-weight:400}.postmark span:last-child{font-size:11px}.page-footer{display:flex;color:#cbd1d6;border-top:1px solid #617083;justify-content:space-between;gap:16px;margin-top:36px;padding:24px 0 26px;font-size:14px}.entry-layout{display:grid;grid-template-columns:1fr 1fr;align-items: center;gap:70px;padding:10px 0 30px}.entry-note{position:relative;display:flex;flex-direction:column;justify-content:center;align-self:stretch;gap:22px;padding:25px 0 15px;font-size:24px;line-height:1.4}.entry-note .availability-note{color:#cbd1d6;max-width:35ch;font-size:16px}.handwritten{color:#dfc48e;margin-top:10px;font-family:Bodoni Moda,Georgia,serif;font-size:24px;transform:rotate(-4deg)}.drawn-branch{display:block;background:url(/assets/postmark.svg) 50%/contain no-repeat;width:240px;height:100px;margin-left:-20px}.entry-letter{position:relative;background:var(--paper);color:var(--ink);border:1px solid #e5d6b7;padding:48px 38px 28px;transform:rotate(-1.5deg);box-shadow:8px 10px #0f2237}.entry-letter:after{position:absolute;content:"";pointer-events:none;border:1px solid #d2bb8b;inset:10px}.letter-corner{position:absolute;border-top:30px solid var(--night);border-left:30px solid #e5d6b7;top:-1px;right:-1px}.letter-seal{display:grid;position:absolute;background:var(--ribbon);color:var(--paper);border-radius:50%;place-items: center;width:46px;height:46px;font-size:28px;top:-21px;left:36px;box-shadow:inset 0 0 0 4px #a32e3b}.entry-letter h2{font-size:35px;line-height:1.2}.entry-letter>p{max-width:34ch;margin-top:12px;font-size:17px;line-height:1.5}.entry-letter form{margin-top:26px}.entry-letter label{display:block;margin-bottom:8px;font-weight:600}.entry-letter input{display:block;color:var(--ink);background:#fffdf6;border:1px solid #817665;border-radius:2px;width:100%;min-height:48px;padding:10px 12px;font-size:18px}.entry-letter [aria-invalid=true]{border-color:var(--ribbon)}#password-error{color:#9f2536;min-height:25px;margin-top:5px;font-size:15px}.primary-button,.surprise-content button,.state-error button{background:var(--ribbon);color:var(--paper);border:1px solid var(--ribbon);border-radius:3px;min-height:48px;padding:10px 24px;font-weight:600}.primary-button{width:100%;margin-top:6px}.primary-button:hover{background:#9c2936}.letter-signoff{display:block;text-align:center;color:#625b51;margin-top:24px;font-size:14px}.closed-letter{background:var(--paper);color:var(--ink);text-align:center;outline:1px solid var(--gold);outline-offset:-10px;max-width:650px;margin:26px auto 70px;padding:45px 24px}.closed-letter h2{margin:18px 0 12px;font-size:38px}.closed-letter p{font-size:18px;line-height:1.5}.closed-letter .small-note{color:#625b51;margin-top:16px;font-size:15px}.closed-seal{display:grid;background:var(--fir);color:var(--paper);border-radius:50%;place-items: center;width:54px;height:54px;margin:auto;font-size:25px}.state-error{max-width:700px;margin:70px auto}.state-error h1{font-size:40px}.state-error p{margin:22px 0;font-size:18px;line-height:1.5}.page-calendar .page-heading{padding:34px 0 30px}.page-calendar h1{font-size:clamp(48px,5vw,66px)}.page-calendar h1 br{display:none}.page-calendar .postmark{width:118px;height:118px}.page-calendar .postmark strong{font-size:30px}.page-calendar .postmark span{font-size:12px}.page-calendar .postmark span:last-child{font-size:9px}.page-calendar .lede{margin-top:14px;font-size:17px}.calendar-meta{display:flex;color:#d7dde2;justify-content:space-between;align-items: center;gap:24px;padding:16px 0 24px;font-size:15px}.availability-note{max-width:68ch;line-height:1.5}.opened-count{color:#e6d2ab;font-variant-numeric:tabular-nums;flex-shrink:0}.envelope-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:26px 22px;padding:4px 0 16px}.envelope{position:relative;isolation:isolate;display:flex;color:var(--ink);background:var(--paper);text-align:left;overflow:visible;border:1px solid #e3d5ba;border-radius:3px;justify-content:space-between;align-items: flex-start;min-width:0;min-height:136px;padding:16px;box-shadow:0 5px #102238}.envelope:before,.envelope:after{position:absolute;content:"";pointer-events:none;z-index:-1;inset:0}.envelope:before{clip-path:polygon(0 0,50% 58%,0 100%,100% 100%,50% 58%,100% 0,100% 100%,0 100%);background:#f0e6d1}.envelope:after{background:linear-gradient(35deg,#0000 49.5%,#d6c4a6 50%,#0000 50.5%) 0 100%/50% 60% no-repeat,linear-gradient(-35deg,#0000 49.5%,#d6c4a6 50%,#0000 50.5%) 100% 100%/50% 60% no-repeat;inset:0}.envelope-flap{position:absolute;clip-path:polygon(0 0,100% 0,50% 55%);transform-origin:50% 0;z-index:-1;backface-visibility:visible;background:#f6eedb;inset:0}.envelope-number{letter-spacing:-.04em;font-family:Bodoni Moda,Georgia,serif;font-size:38px;line-height:1}.envelope-seal{position:absolute;display:grid;background:var(--ribbon);color:var(--paper);border-radius:50%;place-items: center;width:33px;height:33px;font-size:21px;top:45%;left:50%;transform:translate(-50%,-20%);box-shadow:inset 0 0 0 3px #a32e3b}.envelope-state{position:absolute;text-align:center;font-size:12px;font-weight:600;bottom:10px;left:8px;right:8px}.envelope[data-state=future]{color:#4d5c65;background:#d8d8d0;border-color:#bbbfb9;box-shadow:0 5px #102238}.envelope[data-state=future] .envelope-flap{background:#dfe0d8}.envelope[data-state=future]:before{background:#cdd1cb}.envelope[data-state=future] .envelope-seal{color:#465761;box-shadow:none;background:#bfc5bc;font-size:18px}.envelope[data-state=future] .envelope-seal:before{content:"";position:absolute;border:1.5px solid;border-bottom:0;border-radius:6px 6px 0 0;width:8px;height:7px;top:7px}.envelope[data-state=future] .envelope-seal{font-size:0}.envelope[data-state=future] .envelope-seal:after{content:"";position:absolute;background:inherit;border:1.5px solid;border-radius:2px;width:13px;height:10px;top:13px}.envelope[data-state=opened] .envelope-flap{opacity:.6;transform:scaleY(-.35)}.envelope[data-state=opened] .envelope-seal{background:var(--fir);font-size:18px;box-shadow:inset 0 0 0 3px #2b4b40}.envelope-finale .envelope-seal{outline:1px solid;outline-offset:3px;border-radius:30%}.envelope[aria-disabled=false]:hover{border-color:var(--gold);box-shadow:0 5px 0 #102238,0 0 0 2px var(--gold)}.music-toggle{position:fixed;z-index:4;display:flex;background:var(--paper);color:var(--ink);border:1px solid #d3be94;border-radius:24px;align-items: center;gap:10px;min-height:44px;padding:10px 15px;font-size:14px;bottom:16px;right:20px;box-shadow:0 3px 12px #10223866}.music-toggle:before{content:"♫";font-size:20px}.page-calendar .page-footer{padding-bottom:70px}.surprise-dialog{border:1px solid var(--gold);background:var(--paper);color:var(--ink);overflow:auto;overscroll-behavior:contain;border-radius:3px;width:min(640px,100% - 32px);max-height:calc(100dvh - 32px);padding:26px 34px 36px;box-shadow:0 20px 90px #07152388}.surprise-dialog::backdrop{background:#0d1b2bd9}.dialog-top{display:flex;border-bottom:1px solid #d2bb8b;justify-content:space-between;align-items: center;gap:14px;margin-bottom:24px;padding-bottom:15px}.dialog-day{color:#625b51;font-size:14px}.close-button{display:flex;color:var(--ink);background:0 0;border:1px solid #b6a68b;border-radius:3px;flex-shrink:0;align-items: center;gap:10px;min-height:44px;padding:8px 12px}.close-button span{font-size:26px;line-height:1}.surprise-dialog h2{margin-bottom:24px;font-size:clamp(30px,5vw,42px);line-height:1.15}.surprise-content{max-width:62ch;font-size:19px;line-height:1.65}.surprise-content p+p{margin-top:16px}.surprise-content figure{margin:24px 0}.surprise-content img{display:block;object-fit:contain;aspect-ratio:5/3;background:#e8dfcc;border:1px solid #d2bb8b;width:100%;height:auto}.surprise-content figcaption{color:#625b51;margin-top:8px;font-size:14px;line-height:1.5}.surprise-link{display:block;color:#9f2536;text-underline-offset:4px;margin:22px 0;font-weight:600}.surprise-link span{display:block;color:#625b51;font-size:14px;font-weight:400}.surprise-audio{border-top:1px solid #d2bb8b;margin-top:24px;padding-top:18px}.surprise-audio label{display:block;margin-bottom:10px;font-size:16px}.surprise-audio audio{display:block;width:100%;max-width:100%}.reveal-envelope{position:fixed;pointer-events:none;z-index:20;margin:0}.confetti{position:fixed;background:var(--ribbon);pointer-events:none;z-index:21;width:6px;height:11px}.confetti:nth-of-type(3n){background:var(--gold)}.confetti:nth-of-type(3n+1){background:var(--fir)}@media (max-width:1023px){.envelope-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 18px}.entry-layout{gap:35px}.entry-letter{padding:40px 28px 25px}.entry-letter h2{font-size:30px}.page-heading{gap:20px}.postmark{width:130px;height:130px}.page-calendar h1{max-width:10ch}.page-calendar h1 br{display:block}.envelope{min-height:140px}}@media (max-width:599px){.masthead{padding:20px 0 16px}.wordmark{gap:7px;font-size:14px}.edition{font-size:12px}.postal-mark{font-size:25px}.page-heading{position:relative;align-items: flex-start;gap:8px;padding:34px 0 25px}.page-heading h1{font-size:clamp(48px,13vw,65px)}.lede{max-width:25ch;margin-top:18px;font-size:16px}.postmark{outline-offset:-5px;width:90px;height:90px;margin-top:13px;font-size:10px}.postmark strong{font-size:25px}.postmark span:last-child{font-size:7px}.entry-layout{display:flex;flex-direction:column;align-items:stretch;gap:20px;padding:0 0 25px}.entry-note{gap:12px;padding:0;font-size:20px}.drawn-branch{position:absolute;opacity:.75;width:135px;height:70px;top:-10px;right:0}.entry-note>p:first-of-type{padding-right:75px;font-size:19px}.entry-note .availability-note{max-width:30ch;font-size:15px}.handwritten{display:none}.entry-letter{margin:24px 4px 4px;padding:38px 24px 24px;transform:rotate(-1deg);box-shadow:5px 6px #0f2237}.entry-letter h2{font-size:29px}.entry-letter>p{font-size:16px}.entry-letter form{margin-top:20px}.page-footer{gap:20px;margin-top:24px;font-size:12px;line-height:1.5}.footer-year{white-space:nowrap}.page-calendar .page-heading{padding:26px 0 16px}.page-calendar h1{font-size:clamp(43px,11vw,60px)}.page-calendar .postmark{width:85px;height:85px;margin-top:10px}.page-calendar .postmark strong{font-size:24px}.page-calendar .postmark span{font-size:10px}.page-calendar .postmark span:last-child{font-size:6px}.page-calendar .lede{margin-top:14px;font-size:15px}.calendar-meta{display:block;padding:8px 0 23px;font-size:14px}.opened-count{display:block;margin-top:8px;font-size:13px}.envelope-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 12px}.envelope{min-height:112px;padding:12px 10px}.envelope-number{font-size:31px}.envelope-seal{width:28px;height:28px;font-size:18px}.envelope-state{font-size:10px;bottom:8px;left:2px;right:2px}.envelope[data-state=future] .envelope-seal:before{top:5px}.envelope[data-state=future] .envelope-seal:after{top:11px}.surprise-dialog{padding:19px 20px 26px}.dialog-top{gap:6px;margin-bottom:20px}.dialog-day{font-size:12px}.close-button{padding:6px 10px;font-size:14px}.surprise-content{font-size:17px}.music-toggle{padding:8px 14px;bottom:12px;right:12px}.closed-letter{margin-top:18px}.closed-letter h2{font-size:30px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}.dialog-top{position:sticky;background:var(--paper);z-index:3;flex-wrap:wrap;padding-top:8px;top:-27px}.dialog-top .music-toggle{position:static;box-shadow:none;margin-left:auto;padding:8px 12px;font-size:13px}.dialog-top .dialog-day{flex-basis:100%}.dialog-top .close-button{order:2}.dialog-top .music-toggle{order:1;margin-left:0;margin-right:auto}@media (max-width:599px){.dialog-top{top:-20px}}.focus-sentinel{position:fixed;opacity:0;pointer-events:none;width:1px;height:1px}
