:root{--ivory:#fcf8f3;--pink:#f5e5e4;--rose:#ac6977;--ink:#56433f;--muted:#85716a;--line:#e5d6cf;--serif:"Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", serif;--sans:"Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{background:var(--ivory);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-break:strict;overflow-wrap:anywhere;margin:0}body:after{content:"";pointer-events:none;z-index:10;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.7' d='M0 0h180v180H0z'/%3E%3C/svg%3E");position:fixed;inset:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--rose);outline-offset:8px}::selection{background:#efd1d6}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}em{color:var(--rose);font-style:normal;font-weight:400}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:98px;margin:0 5.1%;display:flex}.wordmark{font-family:var(--serif);align-items:center;gap:11px;font-size:23px;display:flex}.wordmark svg{width:28px;color:var(--rose)}.header-note{letter-spacing:.06em;color:var(--muted);font-size:11px}.header-note span{color:var(--rose);margin-left:11px;font-size:19px}.hero{text-align:center;background:radial-gradient(at 50% 68%,#f5e7e24a,#0000 60%);min-height:810px;padding:62px 24px 23px;position:relative;overflow:hidden}.eyebrow{letter-spacing:.22em;color:#927367;font-size:10px;font-weight:500;line-height:1.8}.hero-eyebrow{justify-content:center;align-items:center;gap:15px;display:flex}.hero-eyebrow>span{background:#c5a496;width:24px;height:1px}h1{letter-spacing:.08em;margin:24px 0;font-size:clamp(44px,5.2vw,72px);line-height:1.6}h1 em{font-size:1em}.birthday-title-line{white-space:nowrap;margin-inline-end:-.08em;display:inline-block}.birthday-punctuation{letter-spacing:0;inline-size:.5em;display:inline-block}.hero-description{color:var(--muted);font-size:13px;line-height:1.9}.mobile-break{display:none}.hero-flower{color:#b68c84;pointer-events:none;opacity:.6;position:absolute}.hero-flower svg{width:100%;height:100%}.hero-flower-left{width:170px;height:255px;top:224px;left:8.5%;transform:rotate(-23deg)}.hero-flower-right{width:127px;height:200px;top:365px;right:10%;transform:rotate(22deg)}.envelope-button{perspective:1000px;background:0 0;border:0;width:356px;margin:54px auto 0;padding:0;display:block;position:relative}.envelope{background:#d6a4a6;border-radius:3px;width:356px;height:217px;transition:transform .45s;display:block;position:relative;box-shadow:0 17px 40px -14px #a97b7752,0 2px 3px #92605c12}.envelope-button:hover .envelope{transform:translateY(-5px)rotate(-1deg)}.envelope-pocket{z-index:2;background:linear-gradient(150deg,#f0d1ce,#edc9c5);border-radius:3px;position:absolute;inset:0}.envelope-fold{z-index:3;pointer-events:none;position:absolute;inset:0}.envelope-fold-left{clip-path:polygon(0 0,58% 59%,0 100%);background:linear-gradient(145deg,#f5dcd8,#edc9c5)}.envelope-fold-right{clip-path:polygon(100% 0,42% 59%,100% 100%);background:linear-gradient(215deg,#f2d6d2,#ebc5c3)}.envelope-flap{z-index:4;clip-path:polygon(0 0,100% 0,50% 59%);transform-origin:top;filter:drop-shadow(0 2px 2px #a97b7740);background:linear-gradient(#f6deda,#e9c0bf);transition:transform .65s,z-index 0s .32s;position:absolute;inset:0}.wax-seal{z-index:5;color:#f2c9cb;background:linear-gradient(135deg,#c6818d,#a75c6b);border-radius:46% 51% 45% 52%;place-items:center;width:47px;height:47px;transition:opacity .2s;display:grid;position:absolute;top:88px;left:calc(50% - 23px);box-shadow:0 3px 6px #8147523b,inset 0 0 0 3px #ce909770,inset 0 0 0 5px #a95d691c}.wax-seal svg{width:25px}.envelope-address{z-index:4;font-family:var(--serif);color:#946b67;font-size:18px;font-style:normal;position:absolute;bottom:24px;left:0;right:0}.envelope-letter{z-index:1;font-family:var(--serif);background:#fffaf2;border:1px solid #f0e3d8;flex-direction:column;justify-content:center;align-items:center;font-size:20px;line-height:1.8;transition:transform .7s .25s;display:flex;position:absolute;inset:13px 16px 10px}.envelope-letter svg{width:25px;color:var(--rose);margin-bottom:7px}.is-open .envelope-flap{z-index:0;transform:rotateX(180deg)}.is-open .wax-seal,.is-open .envelope-letter{opacity:0}.open-label{letter-spacing:.01em;justify-content:center;align-items:center;gap:15px;margin-top:30px;font-size:12px;display:flex}.open-label>span{color:var(--rose);font-size:20px}.hero-footnote{color:#988079;letter-spacing:.025em;margin-top:8px;font-size:10px}.scroll-cue{color:#a7867e;margin-top:29px;font-size:24px;font-weight:400;display:inline-block}h2{letter-spacing:.04em;margin:19px 0 27px;font-size:clamp(28px,3.3vw,44px);line-height:1.8}.letter-paper{text-align:left;background:#fffcf8;border:1px solid #eaded3;width:100%;max-width:690px;margin:46px auto 0;padding:61px 69px 62px;position:relative;transform:rotate(-.6deg);box-shadow:0 8px 30px #6f4b3510}.letter-paper:before{content:"";pointer-events:none;border:1px solid #ede3da;position:absolute;inset:7px}.letter-corner{color:#b6848b;width:25px;height:25px;position:absolute;top:28px;right:34px}.letter-paper h2{color:#93616b;margin-bottom:25px;font-size:22px}.letter-paper p{color:#78665e;margin-bottom:19px;font-size:14px;line-height:2.2}.signature{z-index:1;flex-direction:column;gap:9px;margin-top:32px;display:flex;position:relative}.signature span:first-child{color:var(--muted);font-size:12px}.signature span+span{font-family:var(--serif);color:var(--rose);font-size:20px;font-style:normal}.letter-flower{color:#bd8f89;opacity:.65;width:96px;position:absolute;bottom:20px;right:28px;transform:rotate(19deg)}.memories-section{text-align:center;background:#f4ebe4;border-top:1px solid #eaddd4;border-bottom:1px solid #eaddd4;padding:88px max(24px,8%) 74px}.memories-section h2{margin-bottom:20px}.section-description{color:var(--muted);font-size:13px;line-height:1.9}.memory-grid{grid-template-columns:repeat(3,1fr);gap:38px;max-width:1120px;margin:56px auto 0;display:grid}.memory{text-align:left}.memory:nth-child(2){padding-top:36px}.memory-image{background:#fffcf7;padding:10px 10px 28px;transition:transform .4s;position:relative;transform:rotate(-2deg);box-shadow:0 4px 15px #614c3c12}.memory:nth-child(2) .memory-image{transform:rotate(2deg)}.memory:nth-child(3) .memory-image{transform:rotate(-1deg)}.memory:hover .memory-image{transform:rotate(0)translateY(-5px)}.place-art,.memory-image img{aspect-ratio:4/3;object-fit:contain;width:100%;height:auto;display:block}.memory-number{color:#997e70;letter-spacing:.08em;font-size:9px;position:absolute;bottom:6px;right:14px}.memory h3{margin:27px 0 10px;font-size:22px}.memory p{color:#827166;max-width:285px;font-size:12px;line-height:1.9}.memory-postscript{font-family:var(--serif);color:#9b7475;text-align:center;margin-top:59px;font-size:20px;font-style:normal;line-height:1.9}.memory-postscript span{white-space:nowrap;display:inline-block}.wish-section{text-align:center;background:radial-gradient(#f7e9e6 0%,#fbf5ef 72%);padding:97px 24px 72px;position:relative;overflow:hidden}.wish-section h2{margin-bottom:25px}.cake{width:150px;height:131px;margin:38px auto 24px;position:relative}.cake-body{z-index:2;background:linear-gradient(90deg,#e3b2b9,#edc8cc 55%,#ddb0b7);border-radius:0 0 50% 50%/0 0 17% 17%;justify-content:space-around;width:120px;height:67px;padding:0 7px;display:flex;position:absolute;top:54px;left:15px}.cake-body span{background:#f7e0de;border-radius:0 0 8px 8px;width:8px;height:25px}.cake-body span:nth-child(2n){height:38px}.cake-top{z-index:3;background:#f7e0de;border-radius:50%;width:120px;height:27px;position:absolute;top:42px;left:15px}.cake-plate{background:#e5d9ca;border:4px solid #f4ede2;border-radius:50%;width:150px;height:27px;position:absolute;bottom:0;left:0;box-shadow:0 3px 5px #87674c14}.candle{z-index:4;background:repeating-linear-gradient(35deg,#fff6e9 0 6px,#bc8891 6px 10px);border-radius:2px;width:8px;height:44px;position:absolute;top:9px;left:71px}.wick{background:#866552;width:1px;height:5px;position:absolute;top:-4px;left:4px}.flame{background:#e8b164;border-radius:60% 40% 55% 45%;width:13px;height:20px;transition:opacity .35s;animation:2s ease-in-out infinite flicker;position:absolute;top:-20px;left:-2px;transform:rotate(9deg);box-shadow:0 0 17px 7px #f2d59840}.wish-made .flame{opacity:0;animation:none}.wish-button{z-index:2;background:0 0;border:1px solid #cba7a9;border-radius:3px;align-items:center;gap:25px;padding:15px 21px;font-size:12px;transition:background .2s,transform .2s;display:inline-flex;position:relative}.wish-button:hover{background:#efdadd;transform:translateY(-2px)}.wish-button span{color:var(--rose);font-size:20px}.wish-result{color:#8c736d;min-height:20px;margin-top:17px;font-size:11px}.petals{pointer-events:none;position:absolute;inset:0}.petals span{top:15%;left:var(--left);opacity:0;width:10px;height:17px;animation:petal-fall 4s var(--delay) ease-out forwards;background:#cf949f;border-radius:80% 0 80% 20%;position:absolute}.petals span:nth-child(3n){background:#d5bb92}.petals span:nth-child(2n){background:#e5b7c2;width:7px;height:12px}footer{text-align:center;border-top:1px solid var(--line);padding:43px 24px 34px}footer>svg{width:25px;color:var(--rose);margin-bottom:13px}footer p{font-family:var(--serif);font-size:23px}footer>span{letter-spacing:.12em;color:#9a8379;margin-top:14px;font-size:11px;display:block}footer a{color:#92796f;margin-top:25px;padding:6px;font-size:10px;display:inline-block}@keyframes flicker{0%,to{transform:rotate(9deg)scale(.95)}50%{transform:rotate(-7deg)scale(1.05)}}@keyframes petal-fall{0%{opacity:0;transform:translateY(-25px)rotate(0)}15%{opacity:.85}85%{opacity:.7}to{opacity:0;transform:translate(50px, 480px) rotate(var(--rotation))}}@media (min-width:1600px){.hero{min-height:870px;padding-top:80px}.hero-flower-left{left:16%}.hero-flower-right{right:17%}}@media (max-width:760px){.mobile-break{display:block}h2{font-size:clamp(23px,6.3vw,34px)}.site-header{height:78px;margin:0 24px}.wordmark{gap:7px;font-size:20px}.wordmark svg{width:24px}.header-note{font-size:9px}.header-note span{margin-left:3px}.hero{min-height:756px;padding-top:53px}h1{font-size:clamp(36px,9vw,56px)}.hero-description{font-size:12px}.hero-flower-left{opacity:.38;width:120px;height:180px;top:283px;left:-36px}.hero-flower-right{opacity:.4;width:93px;height:155px;top:340px;right:-15px}.envelope-button{width:300px;margin-top:57px}.envelope{width:300px;height:185px}.wax-seal{width:43px;height:43px;top:70px;left:calc(50% - 21.5px)}.envelope-address{font-size:17px;bottom:20px}.open-label{margin-top:26px}.scroll-cue{margin-top:29px}.letter-paper{max-width:540px;margin-top:34px;padding:42px 32px 50px}.letter-paper h2{font-size:20px}.letter-paper p{font-size:13px}.letter-corner{top:19px;right:24px}.letter-flower{width:77px;bottom:21px;right:24px}.memories-section{padding:65px 27px 57px}.memories-section h2{max-width:370px;margin-left:auto;margin-right:auto}.memory-grid{grid-template-columns:1fr;gap:42px;max-width:370px;margin-top:37px}.memory:nth-child(2){padding-top:0}.memory-image{padding-bottom:25px}.memory h3{margin-top:23px;font-size:22px}.memory p{max-width:100%;font-size:13px}.memory-postscript{max-width:290px;margin:47px auto 0;font-size:18px;line-height:1.9}.memory-postscript span{display:block}.wish-section{padding:69px 24px 53px}.wish-section h2{font-size:26px}.wish-button{gap:16px;padding:14px 18px;font-size:11px}footer{padding-top:32px}}@media (max-width:380px){.header-note{display:none}h1{font-size:34px}.envelope-button,.envelope{width:270px}.envelope{height:170px}.wax-seal{top:63px}.hero{min-height:720px}.letter-paper{padding:38px 26px 44px}.mobile-break{display:block}}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.letter-stage{max-width:710px;margin:50px auto 0;position:relative}.letter-reveal{z-index:2;visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .8s,visibility 0s .8s;display:grid;position:relative}.letter-reveal-clip{min-height:0;overflow:hidden}.letter-stage .letter-paper{transform-origin:bottom;opacity:0;outline:none;width:calc(100% - 20px);margin:9px auto 23px;transition:transform .8s,opacity .4s;transform:translateY(105%)scale(.7)}.letter-stage.is-open .letter-reveal{visibility:visible;grid-template-rows:1fr;transition:grid-template-rows .9s .3s,visibility}.letter-stage.is-open .letter-paper{opacity:1;transition:transform .9s .3s,opacity .55s .3s;transform:translateY(0)rotate(-.6deg)}.letter-stage .envelope-button{z-index:1;margin:0 auto}.letter-stage .letter-paper h2{letter-spacing:.02em;margin-top:0;line-height:1.7}.hero{padding-bottom:55px}.memory-cover{text-align:left;isolation:isolate;background:0 0;border:0;width:100%;padding:0;display:block;position:relative}.memory-cover .memory-image{display:block}.photo-label{color:var(--muted);font-size:10px;position:absolute;bottom:8px;left:13px}.album-open-label{color:#8b6e65;justify-content:space-between;align-items:center;padding:18px 3px 0;font-size:11px;display:flex}.album-open-label>span{font-size:19px}.memory h3{margin-top:13px;font-size:20px;line-height:1.8}.photo-stack-back{z-index:-1;background:#fdf6ec;border:1px solid #dfcfc2;transition:transform .3s;position:absolute;inset:-3px 0 46px;transform:rotate(3deg)translate(3px,-3px);box-shadow:0 2px 7px #614c3c15}.photo-stack-back.second{z-index:-2;transform:rotate(-5deg)translate(-3px,-7px)}.memory-cover:hover .photo-stack-back{transform:rotate(5deg)translate(4px,-6px)}.memory-cover:hover .photo-stack-back.second{transform:rotate(-7deg)translate(-5px,-9px)}.memory-dialog{border:1px solid var(--line);background:var(--ivory);width:min(1000px,100% - 40px);max-width:none;max-height:calc(100dvh - 40px);color:var(--ink);overscroll-behavior:contain;margin:auto;padding:0;position:fixed;inset:0;box-shadow:0 20px 90px #3828234d}.memory-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#332c29a6}.memory-dialog[open]{animation:.3s both album-appear}.album-sheet{padding:26px 30px}.album-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.album-header h2{margin:8px 0 0;font-size:24px;line-height:1.6}.album-close{background:0 0;border:0;flex-shrink:0;align-items:center;gap:12px;min-height:44px;padding:10px;font-size:12px;display:flex}.album-close span{font-size:26px}.album-photo{margin:0}.album-photo>img{object-fit:contain;background:#f2eae1;width:100%;height:auto;max-height:60dvh;display:block}.album-photo figcaption{margin-top:20px;font-size:13px;line-height:2}.album-navigation{color:var(--muted);justify-content:center;align-items:center;gap:35px;margin-top:15px;font-size:12px;display:flex}.album-navigation button{border:1px solid var(--line);background:0 0;min-height:44px;padding:8px 16px}.album-thumbnails{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:20px;display:flex}.album-thumbnails button{background:0 0;border:2px solid #0000;width:65px;padding:3px}.album-thumbnails button[aria-pressed=true]{border-color:var(--rose)}.album-thumbnails img{object-fit:cover;width:100%;height:45px;display:block}@keyframes album-appear{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media (max-width:760px){.letter-stage{margin-top:40px}.letter-stage .letter-paper{width:calc(100% - 10px);padding:42px 25px 65px}.letter-paper h2{font-size:20px}.letter-flower{width:60px;right:18px}.memory-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px)}.album-sheet{padding:20px 16px}.album-header{gap:10px;margin-bottom:18px}.album-header h2{font-size:19px}.album-close{gap:5px;padding-right:0}.album-photo figcaption{font-size:12px}}[data-scroll-reveal]{--reveal-x:0px;--reveal-y:22px;--reveal-turn:0deg;--reveal-remaining:calc(1 - var(--reveal-progress,1));transform:translate(calc(var(--reveal-x) * var(--reveal-remaining)), calc(var(--reveal-y) * var(--reveal-remaining))) rotate(calc(var(--reveal-turn) * var(--reveal-remaining)))}[data-scroll-reveal=decoration]{opacity:var(--reveal-progress,1)}[data-scroll-reveal]:focus-within{opacity:1;animation:none;transform:none}.memories-section,.wish-section{isolation:isolate;position:relative;overflow:clip}.margin-decoration{z-index:-1;color:#bf939a;pointer-events:none;-webkit-user-select:none;user-select:none;--reveal-y:50px;width:clamp(70px,8vw,110px);position:absolute}.margin-decoration svg{opacity:1;width:100%;display:block}.margin-decoration-left{--reveal-x:-36px;--reveal-turn:-24deg;top:58px;left:12px}.margin-decoration-right{--reveal-x:36px;--reveal-turn:28deg;bottom:14px;right:12px}.margin-petals,.margin-petal-pair{width:clamp(60px,6vw,86px)}.wish-section .margin-decoration-left{color:#d4a48b;top:110px;left:max(22px,50% - 560px)}.wish-section .margin-decoration-right{color:#94a68c;width:clamp(64px,7vw,90px);top:auto;bottom:115px;right:max(28px,50% - 560px)}.wish-section .margin-petal-pair svg{transform:rotate(12deg)}.memories-section .margin-decoration-right{color:#ad9bc6}@media (max-width:760px){[data-scroll-reveal]{--reveal-y:30px}.margin-decoration{--reveal-y:48px;width:48px}.margin-decoration-left{--reveal-x:-22px;--reveal-turn:-30deg;top:24px;left:5px}.margin-decoration-right{--reveal-x:22px;--reveal-turn:32deg;width:38px;bottom:17px;right:5px}.wish-section .margin-decoration-left{width:34px;top:74px;left:10px}.wish-section .margin-decoration-right{width:42px;top:auto;bottom:128px;right:14px}}@media (prefers-reduced-motion:reduce){[data-scroll-reveal]{opacity:1;transform:none}html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.petals{display:none}}
