@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/font-0.woff2) format('truetype');
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-1.woff2) format('truetype');
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/font-2.woff2) format('truetype');
}
@font-face {
  font-family: 'Frank Ruhl Libre';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/font-3.woff2) format('truetype');
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(assets/font-4.woff2) format('truetype');
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/font-5.woff2) format('truetype');
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-6.woff2) format('truetype');
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/font-7.woff2) format('truetype');
}
@font-face {
  font-family: 'Heebo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/font-8.woff2) format('truetype');
}
:root{--paper:#f6f2e9;--ink:#343c32;--olive:#566047;--red:#9c4b3c;--sans:'Heebo',Arial,sans-serif;--serif:'Frank Ruhl Libre',Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:58px;overflow-x:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--red);outline-offset:4px}img{display:block;width:100%}[hidden]{display:none!important}.header{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:11px;letter-spacing:.4px}.brand{font-size:16px;font-family:var(--serif)}.header>span{color:#777b70}.letter-nav{font-family:Arial,sans-serif;font-size:22px;min-width:44px;min-height:44px;display:grid;place-items:center}.hero{position:relative;height:calc(100svh - 58px);max-height:1000px;min-height:420px;background:#bba483}.cover{display:block;width:100%;height:100%;padding:0;background:none}.cover img{height:100%;object-fit:cover;object-position:50% 50%}.hero::after{content:'';position:absolute;inset:50% 0 0;pointer-events:none;background:linear-gradient(transparent,#171c174f)}.cover-caption{position:absolute;bottom:42px;right:32px;pointer-events:none;color:#fffdf6;z-index:1;text-shadow:0 2px 18px #0005}.cover-caption h1{font-family:var(--serif);font-size:54px;font-weight:400;line-height:1;margin:0 0 10px;letter-spacing:-1px}.cover-caption>span{font-size:12px}.scroll-hint{position:absolute;bottom:34px;left:32px;z-index:1;color:#fffdf6;font-family:Arial,sans-serif;font-size:26px;padding:12px}.memories{padding:12px}.gallery{columns:3;column-gap:12px}.memory{display:block;width:100%;padding:0;margin:0 0 12px;break-inside:avoid;background:#e8e4da;overflow:hidden}.memory img{height:auto;transition:transform .5s}.memory:hover img{transform:scale(1.025)}.letter-section{text-align:center;padding:55px 20px 28px}.envelope-icon{font:36px Arial,sans-serif;color:var(--red)}.letter-section p{font-size:11px;color:#777b70;margin:12px 0 0}.letter-button{background:transparent;border:1px solid #d4d5c6;padding:18px 30px;font-size:13px}.letter-paper{max-width:640px;margin:30px auto 0;text-align:right;background:#fffcf5;padding:40px;box-shadow:0 5px 25px #343c320b;font-family:var(--serif);font-size:22px;line-height:1.9;white-space:pre-wrap;overflow-wrap:anywhere}.letter-paper .letter-salutation{color:var(--red);font-size:25px;margin:0 0 25px}.letter-sign{display:block;margin-top:35px;color:var(--olive)}footer{text-align:center;padding:12px 0 36px}footer a{font:25px Georgia,serif;color:var(--red);padding:12px}dialog{position:fixed;inset:0;background:#171c17fc;color:#f6f2e9;width:100%;height:100%;max-width:none;max-height:none;border:0;margin:0;padding:20px 4%;overscroll-behavior:contain}dialog::backdrop{background:#171c17}.lightbox-top{display:flex;align-items:center;justify-content:space-between;height:50px;gap:20px;font-size:12px}.lightbox-top button{background:none;color:inherit;padding:12px;min-height:44px}.icon-button{font-size:24px!important}.lightbox-stage{height:calc(100dvh - 120px);display:flex;justify-content:center;align-items:center;gap:30px;direction:rtl}.lightbox-stage img{height:auto;width:auto;max-height:100%;max-width:calc(100% - 150px);object-fit:contain;user-select:none}.photo-arrow{color:var(--paper);font:28px Arial,sans-serif;background:#ffffff10;border-radius:50%;width:48px;height:48px;flex-shrink:0}.lightbox-bottom{display:none}body.modal-open{overflow:hidden}
@media(min-width:1100px){.hero{height:85svh}.cover img{object-position:50% 44%}.gallery{columns:4}.cover-caption{right:5%}}
@media(max-width:700px){.header{height:50px;padding:0 14px;font-size:10px}.brand{font-size:15px}.hero{height:calc(86svh - 50px);max-height:850px;min-height:380px}.cover img{object-position:50% 50%}.cover-caption{bottom:27px;right:23px}.cover-caption h1{font-size:42px;margin-bottom:7px}.cover-caption>span{font-size:10px}.scroll-hint{left:15px;bottom:18px;font-size:23px}.memories{padding:6px}.gallery{columns:2;column-gap:6px}.memory{margin-bottom:6px}.letter-section{padding:40px 20px 20px}.letter-paper{padding:28px 22px;font-size:20px}footer{padding-bottom:25px}dialog{padding:12px 4%}.lightbox-stage{height:calc(100dvh - 100px);position:relative;gap:0}.lightbox-stage img{max-width:100%;width:100%;max-height:100%}.photo-arrow{position:absolute;width:42px;height:42px;font-size:22px;bottom:5px;background:#1c231cca;border:1px solid #fff3;z-index:1}#prev-photo{right:6px}#next-photo{left:6px}.lightbox-top{height:45px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.hero{height:100svh}.cover-caption h1{margin:0;line-height:1.2}
@media(min-width:1100px){.hero{height:85svh}}
@media(max-width:700px){.hero{height:86svh}.cover-caption{right:20px;left:20px}.cover-caption h1{font-size:clamp(28px,9vw,44px);margin:0}}

@font-face {
  font-family: 'Gveret Levin';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/letter-handwriting-0.woff2) format('truetype');
}
.letter-section{padding:52px 18px 24px}.letter-button{font-family:'Gveret Levin',cursive;font-size:23px;padding:18px 35px;border-color:#c9c6b7;background:#fffaf066}.letter-paper{max-width:760px;padding:50px 54px;font-family:'Gveret Levin',cursive;font-weight:400;font-size:25px;line-height:1.95;letter-spacing:0;white-space:pre-wrap;background:#fffdf5;color:#42463d;border:1px solid #e6dfcd;border-radius:2px;box-shadow:0 8px 35px #343c320b;scroll-margin-top:20px}.letter-paper:focus{outline:none}#letter-content::first-line{color:var(--red)}
@media(max-width:700px){.letter-section{padding:38px 12px 20px}.letter-paper{padding:30px 23px;font-size:23px;line-height:1.95;margin-top:8px}.letter-button{font-size:22px}}
.hero{overflow:hidden}.cover-caption h1{position:relative;z-index:1}#title-fireworks{position:absolute;bottom:-24px;right:-30px;width:calc(100% + 60px);height:220px;pointer-events:none}
@media(prefers-reduced-motion:reduce){#title-fireworks{visibility:hidden}}
