
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&family=Caveat:wght@400;500;600&display=swap');

:root{--cream:#faf7e9;--paper:#fffdf4;--green:#3f533c;--muted:#77806b;--leaf:#c8d4a8;--mint:#e8eddb;--yellow:#efd17b;--blush:#ecc4b4;--line:#dfe1cd;--cocoa:#6d573d;--serif:'DM Serif Display',Georgia,serif;--sans:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--hand:'Caveat','Comic Sans MS',cursive;--ease:cubic-bezier(.2,.75,.25,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--cream);color:var(--green);font-family:var(--sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none}button:focus-visible,a:focus-visible{outline:3px solid #c89948;outline-offset:5px}button:disabled{cursor:default}img{display:block;max-width:100%}svg{display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}em{font-weight:400}button[hidden],[hidden]{display:none!important}.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}.skip-link{position:fixed;top:-100px;left:16px;background:var(--green);color:var(--cream);padding:10px 20px;z-index:300}.skip-link:focus{top:10px}.site-header{max-width:1440px;margin:auto;height:88px;display:flex;justify-content:space-between;align-items:center;padding:0 5.6%;position:relative;z-index:5;border-bottom:1px solid rgba(100,115,80,.12)}.wordmark{font-family:var(--serif);font-size:24px;letter-spacing:-.7px;display:flex;align-items:center;gap:9px}.wordmark-flower{font-family:Georgia;color:#b4bc8c;font-size:30px}.wordmark-heart{font-family:var(--hand);font-size:29px;position:relative;top:2px;margin-left:-2px}.site-header nav{display:flex;gap:31px;font-size:12px;font-weight:500;letter-spacing:.02em}.site-header nav a{position:relative;padding:10px 0}.site-header nav a:after{content:'';position:absolute;bottom:5px;left:0;right:100%;height:1px;background:var(--green);transition:right .25s}.site-header nav a:hover:after{right:0}.sound-button{display:flex;align-items:center;gap:8px;font-size:11px;border:1px solid var(--line);padding:7px 12px;border-radius:30px}.sound-icon{font-size:19px;line-height:1}.sound-button[aria-pressed=true]{background:#e6ebd6}.hero{position:relative;max-width:1600px;margin:auto;text-align:center;min-height:740px;overflow:hidden;padding:62px 20px 120px}.hero-grain{position:absolute;inset:0;pointer-events:none;opacity:.2;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='.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%239fa48d' filter='url(%23n)' opacity='.15' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:10px;font-weight:600;line-height:1.7}.hero>.eyebrow{display:flex;gap:15px;justify-content:center;align-items:center;position:relative}.hero>.eyebrow>span{height:1px;width:26px;background:#c9cfb8}.hero h1{font-family:var(--serif);font-size:clamp(62px,7.6vw,110px);line-height:1.05;letter-spacing:-3.8px;margin:30px auto 23px;position:relative;width:max-content;max-width:100%;z-index:2}.hero h1 em{color:#7d8f60;position:relative}.hero h1 em:after{content:'';position:absolute;left:3px;right:-4px;bottom:0;height:9px;border-bottom:2px solid #bdc69a;border-radius:50%;transform:rotate(-2deg)}.title-flower{width:49px;height:49px;color:var(--blush);position:absolute;right:-53px;top:70px;transform:rotate(-15deg)}.hero-description{font-size:14px;color:#7d826e;line-height:1.9;margin-bottom:27px}.button{display:inline-flex;justify-content:center;align-items:center;gap:28px;min-height:49px;font-size:12px;padding:12px 24px;border-radius:4px;transition:transform .25s,background .25s,box-shadow .25s;line-height:1.5}.button:hover{transform:translateY(-3px)}.primary-button{background:var(--green);color:var(--cream);box-shadow:0 6px 15px #3f533c12;position:relative;z-index:2}.primary-button:hover{background:#536547;box-shadow:0 10px 22px #3f533c20}.button>span{font-size:21px;font-weight:400;line-height:1}.outline-button{border:1px solid #aab396;background:transparent}.outline-button:hover{background:#e8edda}.birthday-ticket{position:absolute;right:14.4%;top:76px;width:108px;transform:rotate(9deg);z-index:3;background:#edc9b6;border:1px dashed #c8a993;outline:5px solid #edc9b6;border-radius:50% 50% 5px 5px;aspect-ratio:1;padding:16px 6px 10px;box-shadow:2px 5px 0 #e7c2ad25}.birthday-ticket span{display:block;font-size:6px;letter-spacing:.13em;line-height:1.3}.birthday-ticket strong{display:block;font-family:var(--hand);font-size:35px;font-weight:500;line-height:1.2;margin:2px 0 4px}.hero-photo{position:absolute;z-index:1;width:200px;top:259px}.hero-photo-left{left:7.8%;transform:rotate(-11deg)}.hero-photo-right{right:6.7%;transform:rotate(10deg);top:302px;width:185px}.photo-paper{background:#fffef7;padding:10px 10px 30px;box-shadow:0 5px 15px #4f593b12;border:1px solid #e9e6d7}.photo-paper:after{content:'';position:absolute;background:#d3d7b994;top:-12px;left:calc(50% - 28px);width:57px;height:26px;transform:rotate(-6deg);clip-path:polygon(3% 0,98% 4%,96% 19%,100% 38%,97% 59%,99% 80%,94% 100%,2% 97%,4% 81%,0 62%,4% 38%,0 21%)}.hero-photo .handwritten{font-size:24px;display:block;margin-top:3px;white-space:nowrap}.postcard-art{width:100%;background:#eee9d7;aspect-ratio:1/.95}.hero-photo .actual-photo{width:100%;height:199px;object-fit:cover}.hero-bunny-scene{background:#eadfc0;min-height:200px;position:relative;overflow:hidden}.hero-usagi{width:133px;height:185px;position:absolute;bottom:-12px;left:12px;transform:rotate(-5deg)}.bunny-flower{position:absolute;width:36px;height:36px;color:#f8edce;right:9px;top:31px}.hero-bunny-scene>span{position:absolute;color:#c9997b;font-size:19px;left:18px;top:22px;transform:rotate(-21deg)}.hero-sprig{position:absolute;font-family:var(--serif);font-size:19px;color:#b6bd91;display:flex;flex-direction:column;gap:7px;line-height:1}.hero-sprig span{font-size:36px;color:#cfb472}.sprig-left{left:20.5%;top:91px;transform:rotate(-17deg)}.sprig-right{right:24%;top:494px;transform:rotate(18deg)}.hero-bottom{position:absolute;bottom:32px;left:5.6%;right:5.6%;display:flex;justify-content:space-between;align-items:center;color:#8d927c;font-size:9px;letter-spacing:.04em}.hero-bottom>a{font-size:8px;letter-spacing:.18em;display:flex;flex-direction:column;align-items:center;position:absolute;left:50%;transform:translateX(-50%);gap:7px;bottom:-3px}.hero-bottom>a>span{font-size:20px;color:#7e8b6b}.hero-period{font-size:8px;letter-spacing:.15em}.handwritten{font-family:var(--hand);font-weight:400}.garden-section{padding:83px 5.5% 69px;background:#edf0e1;position:relative}.section-heading h2{font-family:var(--serif);font-size:clamp(42px,4.6vw,65px);line-height:1.09;letter-spacing:-1.9px;margin:16px 0 20px}.section-heading h2 em{color:#839267}.section-heading>p:last-child,.section-heading>div+p{font-size:13px;line-height:1.85;color:#818774}.centered{text-align:center}.garden-toolbar{max-width:1100px;margin:36px auto 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.memory-filters{display:flex;flex-wrap:wrap;gap:7px}.memory-filters>button{font-size:10px;padding:8px 14px;border:1px solid #d7deca;border-radius:30px;line-height:1.5;transition:.2s}.memory-filters>button.active{background:var(--green);color:var(--paper);border-color:var(--green)}.memory-filters>button:hover{border-color:#9ba88a}.view-switch{display:flex;gap:2px;flex-shrink:0;padding:3px;border:1px solid #d4dcc5;border-radius:6px}.view-switch>button{font-size:10px;padding:5px 10px;border-radius:3px;display:flex;align-items:center;gap:8px}.view-switch>button.active{background:#fffdf3;box-shadow:0 2px 5px #485c3012}.view-switch>button>span{font-size:17px}.garden-frame{max-width:1150px;margin:0 auto;position:relative;min-height:400px}.tree-stage{width:100%;aspect-ratio:1100/820;position:relative;max-height:860px;margin-top:5px}.memory-tree{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.tree-nodes{position:absolute;inset:0}.memory-node{position:absolute;transform:translate(-50%,-50%) rotate(var(--rotation));display:flex;align-items:center;flex-direction:column;padding:0;min-width:70px;max-width:140px;z-index:2;transition:opacity .25s,filter .25s;animation:node-appear .5s var(--ease) both;animation-delay:var(--delay)}.memory-node:before{content:'';width:1px;height:20px;position:absolute;top:-17px;left:50%;background:#8d9f7166}.memory-node:hover{z-index:5}.memory-node .node-orb{height:52px;width:52px;background:var(--node-bg,#fff9e7);border:2px solid #fffef2;box-shadow:0 3px 8px #57684220,0 0 0 1px #bcc99e;display:flex;align-items:center;justify-content:center;font-size:24px;border-radius:50%;position:relative;transition:transform .3s,box-shadow .3s;overflow:visible}.memory-node .node-orb img{width:100%;height:100%;object-fit:cover;border-radius:50%}.memory-node:hover .node-orb{transform:translateY(-6px) rotate(calc(-1 * var(--rotation)));box-shadow:0 6px 16px #57684235,0 0 0 2px #f5d489}.node-star{position:absolute;top:-8px;right:-6px;font-size:16px;color:#c6a655;text-shadow:1px 1px #fffef2}.node-title{font-family:var(--hand);font-size:18px;line-height:1.05;background:#fcfaedee;box-shadow:0 2px 4px #4c5c2c10;padding:4px 9px 5px;border-radius:3px;max-width:140px;margin-top:7px;white-space:normal}.node-date{font-size:7px;letter-spacing:.06em;margin-top:4px;color:#6d7d58;text-transform:uppercase}.memory-node.visited .node-star{background:#657c50;color:#fffdf4;width:17px;height:17px;border-radius:50%;font-size:10px;display:grid;place-items:center;text-shadow:none;top:-4px;right:-4px;border:1px solid #fffdf4}.memory-node.filtered-out{opacity:.12;filter:grayscale(1);pointer-events:none}.garden-usagi{position:absolute;width:99px;height:137px;bottom:7.1%;left:23.6%;padding:0;transform:rotate(-6deg)}.garden-usagi>svg{width:100%;height:100%;filter:drop-shadow(0 5px 0 #aab58f25)}.usagi-speech{position:absolute;background:#fffdf2;padding:5px 13px;font-family:var(--hand);font-size:20px;white-space:nowrap;right:-70px;top:20px;border-radius:50%;transform:scale(0) rotate(9deg);transition:transform .3s;box-shadow:1px 3px 0 #ccd4b8}.usagi-button:hover .usagi-speech,.usagi-button.hopping .usagi-speech{transform:scale(1) rotate(9deg)}.usagi-button.hopping>svg{animation:usagi-hop .65s 2}.tree-plaque{position:absolute;bottom:8%;left:50%;transform:translateX(-50%) rotate(-2deg);text-align:center;padding:7px 16px;background:#fbf7e2;border:1px solid #b4ac88;box-shadow:2px 3px 0 #a7ae8e22;border-radius:4px}.tree-plaque:before,.tree-plaque:after{content:'•';position:absolute;top:5px;font-size:10px;color:#b7ae8d}.tree-plaque:before{left:5px}.tree-plaque:after{right:5px}.tree-plaque>span{font-size:8px;letter-spacing:.19em}.tree-plaque>small{display:block;font-family:var(--hand);font-size:15px;line-height:1.1}.garden-doodle{position:absolute;color:#b0bd95;font-size:32px;pointer-events:none}.doodle-one{left:1%;top:30%}.doodle-two{right:3%;top:66%;font-size:21px}.garden-bottom{border-top:1px solid #d7deca;display:flex;justify-content:space-between;align-items:center;padding:16px 0 0;gap:20px;font-size:9px;color:#8b947c}.garden-key{display:flex;align-items:center;gap:7px}.garden-key>span:first-child{width:8px;height:8px;border:1px solid #c6ae6c;border-radius:50%;background:#f3e7c4}.visited-key{background:#71845e;color:#fff;border-radius:50%;width:10px;height:10px;display:grid;place-items:center;font-size:7px;margin-left:8px}.visited-count{font-size:9px;color:#738363;text-align:right}.garden-footnote{font-size:24px;text-align:center;color:#8b9977;margin-top:35px}.memory-list-view{padding:35px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:15px;min-height:400px}.list-memory{background:#fbfbef;border:1px solid #d9dfcb;border-radius:7px;display:flex;align-items:center;padding:17px;gap:13px;text-align:left;transition:transform .25s,background .25s}.list-memory:hover{transform:translateY(-3px);background:#fffef6}.list-memory>.list-emoji{font-size:25px;width:43px;height:43px;flex-shrink:0;border-radius:50%;background:#f0e8cd;display:grid;place-items:center;overflow:hidden}.list-memory>.list-emoji img{width:100%;height:100%;object-fit:cover}.list-memory .list-text{flex:1}.list-memory small{font-size:8px;letter-spacing:.09em;color:#94a082;text-transform:uppercase;display:block}.list-memory strong{font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.3;display:block}.list-memory>.list-arrow{font-size:18px;color:#9baa8d}.list-memory.visited>.list-arrow{font-size:12px}.garden-empty{text-align:center;padding:80px 20px;color:#859476}.garden-empty>span{font-size:60px}.scrapbook-section{padding:100px 8.6% 90px;max-width:1440px;margin:auto}.scrapbook-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:38px}.scrapbook-heading h2{margin-bottom:0}.scrapbook-heading>p{max-width:275px;padding-bottom:5px}.scrapbook-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px 28px}.scrapbook-card{position:relative;text-align:left;padding:0;display:flex;flex-direction:column;min-width:0;transition:transform .3s;align-self:start}.scrapbook-card:hover{transform:translateY(-5px)}.scrapbook-card:nth-child(3n+2){margin-top:37px}.scrapbook-picture{width:100%;aspect-ratio:1.13;background:#e9e8d4;border-radius:4px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.scrapbook-picture>img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.scrapbook-card:hover .scrapbook-picture>img{transform:scale(1.04)}.scrapbook-picture>.picture-emoji{font-size:52px;z-index:2;filter:drop-shadow(0 5px 0 #ffffff42);transform:rotate(-7deg)}.illustrated-moment{position:relative;background:var(--postcard-bg,#e7ebd8)}.illustrated-moment:before{content:'';position:absolute;inset:20px;border:1px solid #fff9}.illustrated-moment:after{content:'✧';position:absolute;top:24px;right:29px;font-size:29px;color:#8f9c77;transform:rotate(12deg)}.postcard-botanical{position:absolute;width:55%;height:85%;bottom:-23%;left:-7%;border:2px solid #9eaf87;border-radius:60% 0 60% 0;transform:rotate(-20deg);opacity:.4}.postcard-botanical:after{content:'';position:absolute;width:70%;height:80%;border:2px solid #9eaf87;border-radius:0 70% 0 70%;left:130%;top:3%;transform:rotate(45deg)}.scrapbook-chapter{position:absolute;top:12px;left:12px;background:#fffcf0ee;border:1px solid #fffef4;font-size:8px;letter-spacing:.08em;padding:3px 9px;border-radius:30px;z-index:3}.scrapbook-read{position:absolute;bottom:12px;right:12px;width:31px;height:31px;background:#fffcf1e8;border-radius:50%;display:grid;place-items:center;font-size:17px;z-index:3;transition:transform .25s}.scrapbook-card:hover .scrapbook-read{transform:rotate(45deg)}.scrapbook-date{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:#8c977c;margin-top:17px}.scrapbook-card h3{font-family:var(--serif);font-size:26px;line-height:1.2;letter-spacing:-.4px;margin-top:6px}.scrapbook-card .scrapbook-excerpt{font-size:11px;line-height:1.8;color:#90947e;margin-top:8px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-width:95%}.scrapbook-more{display:flex;margin:43px auto 0}.photo-section{padding:70px 6% 85px;position:relative;background:#eee7d7;overflow:hidden}.photo-section .section-heading h2 em{color:#9b9575}.photo-wall{display:grid;grid-template-columns:repeat(5,1fr);align-items:start;gap:24px;max-width:1200px;margin:49px auto 0;padding:0 8px}.photo-polaroid{background:#fffdf4;padding:10px 10px 27px;box-shadow:0 5px 16px #6c61451a;transform:rotate(var(--photo-rotation));text-align:center;position:relative;transition:transform .3s;align-self:start}.photo-polaroid:hover{transform:rotate(0) translateY(-6px);z-index:3}.photo-polaroid:nth-child(3n+2){margin-top:25px}.photo-polaroid:before{content:'';position:absolute;top:-10px;left:calc(50% - 23px);width:46px;height:20px;background:#c6cdaa9c;transform:rotate(-5deg);z-index:2;clip-path:polygon(0 3%,97% 0,100% 95%,4% 100%)}.photo-polaroid img{width:100%;height:180px;object-fit:cover}.photo-polaroid figcaption{font-family:var(--hand);font-size:17px;line-height:1.2;margin-top:13px;color:#80896f;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.photo-note{font-size:24px;text-align:center;color:#9c987c;margin-top:49px}.letter-section{padding:89px 20px 100px;position:relative;overflow:hidden;min-height:650px}.letter-decoration{font-size:57px;color:#d2c6a3;position:absolute;right:22%;top:198px;transform:rotate(15deg)}.letter-envelope{height:270px;width:430px;max-width:85vw;position:relative;margin:65px auto 55px;perspective:1000px}.envelope-back{position:absolute;inset:0;background:#dbd4b7;border:1px solid #c8bfa3;border-radius:5px;box-shadow:0 14px 28px #746c4a12}.envelope-card{position:absolute;left:8%;right:8%;height:220px;top:-27px;background:#fffdf2;padding:25px 32px;transform:rotate(-4deg);box-shadow:0 0 5px #736b4c0d}.envelope-card>.eyebrow{font-size:8px;letter-spacing:.16em}.envelope-card>p{font-family:var(--hand);font-size:25px;line-height:1.4;margin-top:17px}.envelope-card>p em{font-size:34px}.envelope-front{position:absolute;inset:0;overflow:hidden;border-radius:5px;background:linear-gradient(33deg,#eae2c8 49.6%,transparent 50%) left bottom/50.1% 100% no-repeat,linear-gradient(-33deg,#e7dec2 49.6%,transparent 50%) right bottom/50.1% 100% no-repeat;filter:drop-shadow(0 -1px 0 #c6bca242)}.envelope-front:after{content:'';position:absolute;inset:0;background:#efe8d2;clip-path:polygon(0 100%,50% 38%,100% 100%);border-bottom:1px solid #d0c6a9}.wax-seal{position:absolute;top:109px;left:calc(50% - 32px);border-radius:50%;width:64px;height:64px;background:#c7856c;color:#ffedda;box-shadow:inset 0 0 0 5px #c0856e,inset 0 0 0 6px #e2ae93,0 3px 4px #80604a25;z-index:2;transform:rotate(-8deg);transition:transform .3s}.wax-seal:hover{transform:rotate(3deg) scale(1.08)}.wax-seal>span{font-family:var(--hand);font-size:29px;line-height:1.1}.wax-seal>small{display:block;font-size:6px;letter-spacing:.15em;line-height:1}.envelope-caption{position:absolute;bottom:-48px;left:50%;transform:translateX(-50%) rotate(-3deg);font-size:22px;white-space:nowrap;color:#9a9f85}.letter-envelope.opening{animation:envelope-open .6s var(--ease) forwards}.letter-paper{max-width:680px;margin:40px auto 0;background:#fffdf4;padding:65px 65px 40px;position:relative;box-shadow:0 8px 35px #665f4010;border:1px solid #e6e1ce;animation:letter-appear .8s var(--ease)}.letter-paper:before{content:'';position:absolute;left:14px;right:14px;top:14px;bottom:14px;border:1px solid #e8e3d0;pointer-events:none}.letter-flower{position:absolute;width:47px;height:47px;right:48px;top:45px;color:#e9c8b5;transform:rotate(-18deg)}.letter-salutation{font-family:var(--hand);font-size:37px;margin-bottom:30px}.letter-paper #letter-content p{font-size:13px;line-height:2.05;color:#707960;margin-bottom:20px;white-space:pre-line}.letter-signature{margin-top:25px;font-size:12px;color:#899378}.letter-signature strong{font-family:var(--hand);font-size:42px;font-weight:500;display:block;line-height:1.5;color:var(--green)}.letter-signature strong>span{color:#c9a27d;font-size:31px;display:inline-block;transform:rotate(-13deg)}.text-button{font-size:10px;letter-spacing:.02em;padding:10px 0;color:#8a9677;text-decoration:underline;text-underline-offset:5px}.letter-paper .text-button{display:flex;margin:20px auto 0;min-height:30px;gap:15px}.birthday-section{padding:80px 20px 75px;text-align:center;background:#e7ecda;position:relative;overflow:hidden}.birthday-stars{position:absolute;top:56px;left:50%;transform:translateX(-50%);font-size:18px;letter-spacing:13px;color:#b1bb92;white-space:nowrap}.birthday-stars>span{font-size:27px}.birthday-section .section-heading{padding-top:20px}.cake-scene{position:relative;max-width:620px;margin:20px auto 12px;height:300px}.cake{position:absolute;width:260px;height:235px;left:50%;bottom:0;transform:translateX(-50%)}.cake-body{position:absolute;left:15px;right:15px;height:131px;bottom:22px;background:#ead5a3;border-radius:0 0 48% 48%/0 0 16% 16%;border:1.5px solid #c7b582;border-top:0;overflow:hidden;z-index:2}.cake-top{position:absolute;bottom:130px;left:15px;right:15px;height:46px;background:#fff9e5;border-radius:50%;z-index:4;border:1.5px solid #d6c799;transform:rotate(0deg)}.cake-top>span{color:#d8b4a0;font-family:var(--hand);font-size:25px;line-height:1.1;margin-top:6px;display:block}.cake-drip{height:41px;background:#fff9e5;position:absolute;top:-11px;left:-6px;right:-6px;z-index:3;clip-path:polygon(0 0,100% 0,100% 84%,96% 90%,92% 80%,90% 55%,87% 71%,84% 91%,80% 95%,75% 88%,71% 49%,68% 64%,65% 91%,60% 97%,56% 86%,54% 62%,51% 47%,48% 55%,44% 88%,41% 97%,37% 96%,34% 84%,31% 49%,28% 44%,25% 70%,22% 95%,18% 96%,14% 82%,11% 53%,8% 51%,5% 75%,0 88%)}.cake-label{display:block;margin-top:42px;font-family:var(--hand);font-size:23px;line-height:.95;color:#9b865e}.cake-label>em{font-size:29px}.cake-body>i{width:5px;height:10px;border-radius:3px;background:#cba080;position:absolute;bottom:22px;left:21px;transform:rotate(-25deg)}.cake-body>i:nth-of-type(2){left:58px;bottom:12px;transform:rotate(25deg);background:#b2b988}.cake-body>i:nth-of-type(3){left:111px;bottom:8px;transform:rotate(-10deg)}.cake-body>i:nth-of-type(4){left:163px;bottom:12px;transform:rotate(-30deg);background:#b2b988}.cake-body>i:nth-of-type(5){left:201px;bottom:22px;transform:rotate(15deg)}.cake-plate{position:absolute;left:0;bottom:12px;width:100%;height:38px;border-radius:50%;background:#fbf8e9;box-shadow:0 7px 0 #ccd4bb,0 10px 2px #abb89422;border:1px solid #d2d8c2}.candles{position:absolute;left:53px;right:53px;height:90px;bottom:161px;display:flex;align-items:flex-end;justify-content:space-between;z-index:5}.candle{width:34px;height:88px;position:relative;padding:0;border-radius:12px}.candle-body{position:absolute;bottom:0;left:11px;width:12px;height:51px;background:repeating-linear-gradient(-45deg,#e9b5a5 0,#e9b5a5 7px,#f9ebce 8px,#f9ebce 13px);border:1px solid #cda68e;border-radius:3px 3px 1px 1px}.middle-candle .candle-body{background:repeating-linear-gradient(-45deg,#a8b98a 0,#a8b98a 7px,#f9ebce 8px,#f9ebce 13px);height:62px}.middle-candle{transform:translateY(-3px)}.wick{position:absolute;width:2px;height:7px;background:#84744e;left:16px;bottom:50px}.middle-candle .wick{bottom:61px}.flame{position:absolute;width:13px;height:23px;border-radius:70% 30% 60% 40%;background:#ebbd61;bottom:58px;left:11px;transform:rotate(7deg);box-shadow:0 0 16px 6px #edcf7b44;animation:flicker 1.7s ease-in-out infinite;transition:opacity .2s}.flame:after{content:'';position:absolute;bottom:2px;left:3px;width:7px;height:13px;background:#fff2bd;border-radius:70% 30% 60% 40%}.middle-candle .flame{bottom:69px;animation-delay:-.6s}.candle:nth-child(3) .flame{animation-delay:-1.1s}.candle.out .flame{opacity:0;animation:none}.candle.out .smoke{position:absolute;left:16px;bottom:59px;height:23px;width:14px;border-left:2px solid #a8ac9770;border-radius:50%;animation:smoke 1.2s forwards}.candle.middle-candle.out .smoke{bottom:70px}.cake-usagi{position:absolute;width:110px;height:155px;right:31px;bottom:12px;transform:rotate(8deg);z-index:6}.cake-sparkle{position:absolute;color:#c3bd8a;font-family:var(--serif);font-size:39px}.sparkle-left{left:84px;top:97px}.sparkle-right{right:84px;top:29px;font-size:27px}.cake-message{min-height:39px;font-family:var(--hand);font-size:25px;color:#778d60;margin:11px auto 8px}.birthday-section>.outline-button{font-size:11px;padding:10px 21px;min-height:43px;gap:20px}.relight-button{display:block;margin:0 auto;min-height:43px}.wishes-section{padding:90px 8.5% 100px;position:relative;max-width:1400px;margin:auto}.wishes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1100px;margin:42px auto 0}.wish-note{aspect-ratio:1.05;position:relative;perspective:1000px;padding:0;transform:rotate(var(--wish-rotation));transition:transform .3s;min-height:170px}.wish-note:hover{transform:rotate(0) translateY(-5px)}.wish-front,.wish-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;border:1px solid #d8d8bb;backface-visibility:hidden;border-radius:2px;background:var(--wish-bg);transition:transform .6s var(--ease);box-shadow:2px 5px 0 #a4a48410}.wish-front:before,.wish-back:before{content:'';position:absolute;inset:8px;border:1px solid #fffffb88;pointer-events:none}.wish-front{transform:rotateY(0)}.wish-back{transform:rotateY(180deg)}.wish-note.flipped .wish-front{transform:rotateY(-180deg)}.wish-note.flipped .wish-back{transform:rotateY(0)}.wish-front>.wish-icon{font-family:var(--serif);font-size:32px;line-height:1.1;margin-bottom:10px;color:#8f9a71}.wish-front strong{font-family:var(--serif);font-size:22px;font-weight:400;line-height:1.2}.wish-front small{font-size:7px;letter-spacing:.16em;margin-top:17px;color:#939a7c}.wish-back{font-family:var(--hand);font-size:24px;line-height:1.2;color:#667654}.closing-section{padding:72px 20px 88px;text-align:center;background:#f0ecdd;position:relative;overflow:hidden}.closing-usagi{width:90px;height:125px;margin:0 auto 25px;transform:rotate(-6deg)}.closing-section>.eyebrow{font-size:9px;color:#8c987a}.closing-section>h2{font-family:var(--serif);font-size:clamp(38px,4.5vw,62px);line-height:1.11;letter-spacing:-1.7px;margin:18px 0 22px}.closing-section>h2 em{color:#85956b}.closing-section>p:not(.eyebrow){font-size:12px;color:#92967d;line-height:1.9}.closing-section>.handwritten{font-size:28px;color:#889677;display:block;margin:26px 0}.back-to-tree{display:inline-flex;gap:18px;border-bottom:1px solid #c7ceb7;font-size:10px;padding-bottom:4px;color:#818e70}.back-to-tree>span{font-size:15px}footer{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:26px 5.6%;max-width:1440px;margin:auto}footer>.wordmark{font-size:19px}footer>.wordmark>.wordmark-flower{font-size:24px}footer>.wordmark>.wordmark-heart{font-size:24px}footer>span{font-size:9px;color:#a0a58f}.treasure-counter{font-size:8px;display:flex;align-items:center;gap:7px;color:#9aa485;padding:5px}.treasure-counter>svg{width:13px;height:20px}.carrot-secret{position:absolute;width:24px;height:38px;padding:0;transition:transform .3s;z-index:4;opacity:.75}.carrot-secret:hover{transform:rotate(-12deg) scale(1.2);opacity:1}.carrot-secret>svg{width:100%;height:100%}.carrot-one{bottom:11%;right:22%;transform:rotate(48deg)}.carrot-two{bottom:45px;left:9%;transform:rotate(29deg)}.carrot-three{bottom:43px;right:14%;transform:rotate(-24deg)}.carrot-secret.found{opacity:.2;filter:grayscale(.7);pointer-events:none}.toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,25px);background:#40543ceF;color:#fffcef;box-shadow:0 5px 30px #2a392022;padding:11px 23px;border-radius:30px;font-size:12px;z-index:130;opacity:0;pointer-events:none;transition:opacity .3s,transform .3s;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}.confetti-canvas{position:fixed;inset:0;z-index:120;width:100%;height:100%;pointer-events:none}

dialog{color:var(--green);border:0;padding:0;max-width:none;max-height:none;margin:0;background:transparent}dialog::backdrop{background:#27322288;backdrop-filter:blur(7px)}.memory-dialog{position:fixed;inset:0;width:100%;height:100dvh;overflow:auto;align-items:flex-start;justify-content:center;padding:44px 20px}.memory-dialog[open]{display:flex}.modal-card{background:var(--paper);width:760px;max-width:100%;border-radius:8px;position:relative;box-shadow:0 25px 90px #202b2533;overflow:hidden;margin:auto;animation:modal-enter .3s var(--ease)}.modal-close{position:absolute;top:15px;right:15px;width:35px;height:35px;display:grid;place-items:center;background:#fffdf1f2;border:1px solid #f7f2e5;border-radius:50%;font-size:26px;line-height:1;z-index:4;box-shadow:0 2px 8px #47553510}.modal-visual{height:315px;overflow:hidden;background:#e3e8d2;position:relative}.modal-visual>button{width:100%;height:100%;padding:0;display:block}.modal-visual img{height:100%;width:100%;object-fit:cover}.modal-visual.illustrated-moment{display:flex;justify-content:center;align-items:center}.modal-visual .picture-emoji{font-size:83px;transform:rotate(-6deg);position:relative;z-index:1}.modal-visual .modal-visual-caption{position:absolute;left:30px;bottom:22px;font-family:var(--hand);font-size:28px;color:#86956f}.modal-body{padding:33px 45px 22px}.modal-body>.eyebrow{font-size:8px;letter-spacing:.14em;color:#93a07f}.modal-body>h2{font-family:var(--serif);font-size:43px;line-height:1.1;letter-spacing:-1px;margin:12px 0 22px}.modal-description{font-size:13px;line-height:1.95;color:#7a8569;white-space:pre-line}.modal-body blockquote{background:#f0f0df;border-left:2px solid #b9c69d;margin:24px 0 0;padding:19px 24px}.modal-body blockquote p{font-family:var(--hand);font-size:26px;line-height:1.4;white-space:pre-line}.modal-body blockquote cite{display:block;font-size:9px;font-style:normal;margin-top:9px;color:#93a07d}.modal-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:25px}.modal-gallery>button{padding:0;text-align:left;min-width:0;align-self:start}.modal-gallery img{aspect-ratio:1;width:100%;object-fit:cover;border-radius:3px}.modal-gallery span{font-size:9px;line-height:1.4;color:#919b7e;display:block;margin-top:6px}.modal-navigation{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e2e5d2;margin-top:32px;padding-top:17px;font-size:10px}.modal-navigation>button{display:flex;gap:10px;align-items:center;padding:5px 0}.modal-navigation>button:disabled{opacity:.3}.modal-navigation>span{font-size:9px;color:#a4ab95}.lightbox{position:fixed;inset:0;width:100%;height:100dvh;align-items:center;justify-content:center;background:#172016ed;overflow:hidden}.lightbox::backdrop{background:#172016}.lightbox[open]{display:flex}.lightbox figure{width:min(86vw,1250px);height:calc(100dvh - 120px);display:flex;flex-direction:column;justify-content:center;align-items:center}.lightbox figure>img{width:100%;height:calc(100% - 45px);object-fit:contain}.lightbox figcaption{font-family:var(--hand);font-size:24px;line-height:1.3;color:#e1e7d3;text-align:center;margin-top:18px;max-width:85%;min-height:31px}.lightbox-close{position:absolute;top:20px;right:25px;color:#f7f4df;font-size:34px;width:40px;height:40px;line-height:1;z-index:2}.lightbox-prev,.lightbox-next{position:absolute;top:50%;color:#f7f4df;font-size:30px;z-index:2;padding:10px}.lightbox-prev{left:15px}.lightbox-next{right:15px}.lightbox>span{position:absolute;bottom:21px;color:#c4d0b3;font-size:10px;letter-spacing:.1em}.lightbox-prev:disabled,.lightbox-next:disabled{opacity:.15}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.visible{opacity:1;transform:translateY(0)}

@keyframes flicker{0%,100%{transform:rotate(7deg) scale(1)}35%{transform:rotate(-7deg) scale(.9,1.08)}70%{transform:rotate(11deg) scale(1.1,.92)}}@keyframes smoke{0%{opacity:.6;transform:translateY(0) scale(.8)}100%{opacity:0;transform:translateY(-40px) scale(1.5)}}@keyframes usagi-hop{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-19px) rotate(-8deg)}65%{transform:translateY(0) rotate(5deg)}}@keyframes node-appear{from{opacity:0;margin-top:10px}to{opacity:1;margin-top:0}}@keyframes modal-enter{from{opacity:0;transform:translateY(15px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes letter-appear{from{opacity:0;transform:translateY(30px) rotate(-2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}@keyframes envelope-open{to{opacity:0;transform:translateY(30px) rotate(3deg)}}

@media(min-width:1500px){.hero{min-height:800px;padding-top:75px}.hero-photo-left{left:12%}.hero-photo-right{right:11%}.birthday-ticket{right:18%;top:90px}.hero h1{font-size:116px}.hero-description{margin-top:30px}}
@media(max-width:1100px){.site-header{height:76px}.hero{min-height:680px;padding-top:65px}.hero h1{font-size:86px;letter-spacing:-3px}.hero-photo{width:157px;left:4%;top:305px}.hero-photo-right{width:145px;right:4%;left:auto;top:342px}.hero-photo .handwritten{font-size:20px}.hero-bunny-scene{min-height:155px}.hero-usagi{height:150px;width:107px}.hero-photo .actual-photo{height:155px}.birthday-ticket{right:10%;width:93px;top:70px;padding-top:13px}.birthday-ticket strong{font-size:30px}.birthday-ticket span{font-size:5px}.title-flower{width:41px;height:41px;right:-42px;top:55px}.sprig-left{left:16%;top:98px}.sprig-right{right:21%;top:523px}.garden-section{padding-left:4%;padding-right:4%}.node-title{font-size:16px;max-width:110px}.node-date{font-size:6px}.memory-node .node-orb{width:47px;height:47px;font-size:23px}.scrapbook-section{padding:80px 6%}.scrapbook-grid{gap:30px 20px}.scrapbook-card h3{font-size:24px}.photo-wall{gap:17px}.photo-polaroid{padding:8px 8px 20px}.photo-polaroid img{height:150px}.photo-polaroid figcaption{font-size:16px}.wishes-section{padding:80px 6%}.wishes-grid{gap:17px}.wish-front strong{font-size:20px}.wish-back{font-size:22px}}
@media(max-width:800px){.site-header{padding:0 5%;height:70px}.site-header nav{gap:20px;font-size:11px}.wordmark{font-size:22px;gap:6px}.sound-button{padding:6px 9px}.sound-button>#sound-label{display:none}.hero{min-height:750px;padding-top:48px}.hero>.eyebrow{font-size:8px;letter-spacing:.16em;gap:8px}.hero>.eyebrow>span{width:19px}.hero h1{font-size:76px;letter-spacing:-2.8px;margin-top:30px}.title-flower{width:36px;height:36px;right:-37px;top:55px}.hero-description{font-size:12px;margin-bottom:24px}.birthday-ticket{right:8%;top:405px;transform:rotate(12deg);width:83px;padding-top:10px}.birthday-ticket strong{font-size:28px}.birthday-ticket span{font-size:4.5px}.hero-photo-left{width:150px;top:465px;left:16%;transform:rotate(-10deg)}.hero-photo-right{width:140px;top:490px;right:15%;transform:rotate(9deg)}.hero-photo .actual-photo{height:137px}.hero-bunny-scene{min-height:140px}.hero-usagi{height:139px;width:98px;left:11px}.hero-photo .handwritten{font-size:19px}.photo-paper{padding:8px 8px 22px}.hero-bottom{bottom:22px}.hero-bottom>a{bottom:0}.hero-bottom>span{max-width:140px;font-size:8px}.hero-bottom>.hero-period{max-width:105px;text-align:right;font-size:7px}.sprig-left{left:11%;top:164px;font-size:13px}.sprig-left>span{font-size:25px}.sprig-right{right:14%;top:371px;font-size:13px}.sprig-right>span{font-size:25px}.garden-section{padding-top:65px}.section-heading h2{font-size:49px}.section-heading>p:last-child,.section-heading>div+p{font-size:12px}.garden-toolbar{margin-top:28px}.memory-filters{gap:5px}.memory-filters>button{padding:6px 11px;font-size:8px}.view-switch>button{font-size:9px;padding:4px 7px;gap:4px}.tree-stage{aspect-ratio:1.13;min-height:570px}.memory-tree{height:100%;width:120%;left:-10%}.memory-node .node-orb{height:42px;width:42px;font-size:20px}.memory-node{max-width:105px;min-width:58px}.node-title{font-size:15px;max-width:100px;padding:4px 7px;margin-top:5px}.node-date{font-size:6px}.node-star{font-size:13px}.garden-usagi{width:74px;height:103px;bottom:10%;left:18.5%}.tree-plaque{bottom:10%;padding:6px 11px}.tree-plaque>span{font-size:7px}.tree-plaque>small{font-size:14px}.garden-bottom{font-size:8px;gap:8px}.garden-key{font-size:7px;gap:4px}.visited-count{font-size:8px}.garden-footnote{font-size:22px;margin-top:29px}.memory-list-view{grid-template-columns:repeat(2,1fr);gap:10px}.list-memory{padding:13px;gap:10px}.list-memory strong{font-size:18px}.scrapbook-section{padding:70px 6%}.scrapbook-heading{margin-bottom:32px}.scrapbook-heading h2{font-size:47px}.scrapbook-heading>p{max-width:190px;font-size:11px}.scrapbook-grid{grid-template-columns:repeat(2,1fr);gap:30px 21px}.scrapbook-card:nth-child(3n+2){margin-top:0}.scrapbook-card:nth-child(2n){margin-top:30px}.scrapbook-card h3{font-size:24px}.photo-section{padding:65px 5%}.photo-wall{grid-template-columns:repeat(3,1fr);gap:24px 20px;max-width:620px}.photo-polaroid img{height:165px}.photo-polaroid:nth-child(3n+2){margin-top:20px}.photo-note{font-size:22px;margin-top:36px}.letter-section{padding:70px 20px 85px}.letter-decoration{right:14%;top:169px;font-size:42px}.letter-envelope{margin-top:55px}.letter-paper{padding:55px 50px 36px}.birthday-section{padding-top:70px}.birthday-stars{top:43px}.cake-scene{margin-top:0}.wishes-section{padding:70px 6% 80px}.wishes-grid{grid-template-columns:repeat(2,1fr);gap:24px;max-width:520px;margin-top:35px}.wish-note{aspect-ratio:1.2;min-height:165px}.wish-front strong{font-size:24px}.wish-back{font-size:25px}.closing-section{padding:65px 20px 70px}.closing-section>h2{font-size:49px}.carrot-one{right:16%;bottom:14%}.carrot-two{bottom:20px}.carrot-three{bottom:22px;right:10%}.modal-card{width:670px}.modal-visual{height:280px}.modal-body{padding:30px 35px 20px}.modal-body>h2{font-size:37px}.lightbox-prev{left:5px}.lightbox-next{right:5px}.lightbox-prev,.lightbox-next{font-size:24px}.lightbox figure{width:85vw}footer{padding:23px 5%;gap:12px}footer>span{max-width:180px;text-align:center;font-size:8px}}
@media(max-width:520px){html{scroll-padding-top:20px}.site-header{height:65px}.site-header nav{gap:14px;font-size:10px}.site-header nav>a:nth-child(2){display:none}.wordmark{font-size:20px;gap:5px}.wordmark-flower{font-size:26px}.wordmark-heart{font-size:25px}.sound-button{padding:5px 8px}.sound-icon{font-size:17px}.hero{min-height:736px;padding-top:41px}.hero h1{font-size:58px;line-height:1.09;letter-spacing:-2px;margin-top:27px}.title-flower{width:27px;height:27px;right:-19px;top:45px}.hero-description{font-size:11px;line-height:1.85;margin-top:20px}.hero>.eyebrow{font-size:7px}.hero>.eyebrow>span{width:15px}.primary-button{font-size:11px;min-height:45px;padding:12px 18px;gap:24px}.hero-photo-left{width:139px;top:446px;left:11%}.hero-photo-right{width:129px;top:469px;right:10%}.hero-photo .actual-photo{height:126px}.hero-bunny-scene{min-height:128px}.hero-usagi{height:129px;width:92px;left:8px}.birthday-ticket{right:9%;top:371px;width:70px;padding:9px 3px 6px}.birthday-ticket strong{font-size:23px;margin:1px 0 3px}.birthday-ticket span{font-size:4px}.hero-sprig.sprig-left{left:7%;top:167px}.sprig-right{right:10%;top:322px}.hero-bottom{bottom:24px;left:6%;right:6%}.hero-bottom>a{font-size:6px;letter-spacing:.14em;gap:5px}.hero-bottom>span{font-size:6px;max-width:90px}.hero-bottom>.hero-period{font-size:6px;max-width:75px}.hero-bottom>a>span{font-size:18px}.hero-photo .handwritten{font-size:18px}.garden-section{padding:57px 5% 49px}.eyebrow{font-size:8px;letter-spacing:.16em}.section-heading h2{font-size:42px;letter-spacing:-1.3px;margin:13px 0 16px}.section-heading>p:last-child,.section-heading>div+p{font-size:11px;line-height:1.85}.garden-toolbar{margin-top:25px;gap:8px;align-items:flex-start}.memory-filters{gap:5px;flex:1}.memory-filters>button{font-size:7px;padding:5px 8px}.view-switch{gap:0;padding:2px}.view-switch>button{font-size:8px;padding:3px 6px}.view-switch>button>span{font-size:14px}.tree-stage{margin-top:3px;min-height:670px;aspect-ratio:auto}.memory-tree{width:175%;left:-37.5%;height:100%;top:15px}.memory-node{max-width:86px;min-width:58px}.memory-node .node-orb{height:43px;width:43px;font-size:21px}.node-title{max-width:87px;font-size:15px;padding:4px 6px}.node-date{font-size:5.5px;letter-spacing:.04em}.memory-node:before{height:13px;top:-11px}.garden-usagi{width:67px;height:93px;bottom:8.3%;left:10%}.tree-plaque{bottom:8%;padding:5px 9px;left:54%;max-width:143px;white-space:nowrap}.tree-plaque>span{font-size:6px;letter-spacing:.14em}.tree-plaque>small{font-size:13px}.garden-bottom{padding-top:14px;align-items:flex-start;gap:10px}.garden-key{font-size:6px;max-width:220px;line-height:1.7;flex-wrap:wrap;gap:3px}.garden-key>span:first-child{width:6px;height:6px}.visited-key{width:8px;height:8px;font-size:5px;margin-left:4px}.visited-count{font-size:7px;min-width:69px}.garden-footnote{font-size:20px;line-height:1.25;margin-top:26px}.doodle-one{left:0;top:20%;font-size:20px}.doodle-two{right:0;top:76%;font-size:16px}.memory-list-view{padding-top:23px;gap:8px;grid-template-columns:1fr}.list-memory{padding:12px 15px}.list-memory>.list-emoji{width:42px;height:42px;font-size:23px}.list-memory strong{font-size:19px}.list-memory small{font-size:7px}.scrapbook-section{padding:57px 6% 60px}.scrapbook-heading{display:block;margin-bottom:29px}.scrapbook-heading h2{font-size:43px}.scrapbook-heading>p{max-width:none;margin-top:20px;font-size:11px}.scrapbook-heading>p br:nth-child(1){display:none}.scrapbook-grid{gap:28px 16px}.scrapbook-picture{aspect-ratio:.91;border-radius:3px}.scrapbook-card:nth-child(2n){margin-top:32px}.scrapbook-card h3{font-size:21px;line-height:1.15;margin-top:7px}.scrapbook-card .scrapbook-excerpt{font-size:10px;line-height:1.75;margin-top:9px;-webkit-line-clamp:3}.scrapbook-date{font-size:6px;letter-spacing:.09em;margin-top:12px}.scrapbook-chapter{font-size:6px;top:9px;left:8px;padding:2px 6px}.scrapbook-read{width:26px;height:26px;bottom:9px;right:9px;font-size:14px}.scrapbook-picture>.picture-emoji{font-size:40px}.illustrated-moment:before{inset:13px}.illustrated-moment:after{font-size:21px;right:21px;top:18px}.scrapbook-more{font-size:10px;margin-top:33px;min-height:43px}.photo-section{padding:56px 6% 60px}.photo-wall{grid-template-columns:repeat(2,1fr);gap:27px 22px;padding:0 6px;margin-top:35px}.photo-polaroid:nth-child(3n+2){margin-top:0}.photo-polaroid:nth-child(2n){margin-top:25px}.photo-polaroid{padding:8px 8px 21px}.photo-polaroid img{height:157px}.photo-polaroid figcaption{font-size:17px;margin-top:11px}.photo-note{font-size:20px;line-height:1.3;margin:35px auto 0;max-width:240px}.letter-section{padding:56px 20px 65px;min-height:565px}.letter-decoration{right:7%;top:162px;font-size:34px}.letter-envelope{height:216px;width:340px;max-width:85vw;margin-top:50px;margin-bottom:35px}.envelope-card{height:180px;padding:22px 24px;top:-24px}.envelope-card>.eyebrow{font-size:7px}.envelope-card>p{font-size:22px;line-height:1.3;margin-top:17px}.envelope-card>p em{font-size:29px}.wax-seal{width:55px;height:55px;left:calc(50% - 27px);top:88px}.wax-seal>span{font-size:25px}.wax-seal>small{font-size:5px}.envelope-caption{font-size:19px;bottom:-39px}.letter-paper{padding:45px 28px 30px;margin-top:27px}.letter-paper:before{inset:9px}.letter-salutation{font-size:32px;margin-bottom:24px}.letter-paper #letter-content p{font-size:12px;line-height:2;margin-bottom:18px}.letter-flower{width:32px;height:32px;right:25px;top:29px}.letter-signature{font-size:11px}.letter-signature strong{font-size:37px}.birthday-section{padding:60px 20px 56px}.birthday-stars{top:29px;font-size:15px;letter-spacing:10px}.birthday-stars>span{font-size:22px}.birthday-section .section-heading .eyebrow{font-size:7px;letter-spacing:.13em}.birthday-section .section-heading>p:last-child{font-size:11px}.cake-scene{height:265px;margin:8px -10px 10px}.cake{transform:translateX(-50%) scale(.88);transform-origin:bottom center;bottom:2px}.cake-usagi{width:76px;height:105px;right:0;bottom:7px;transform:rotate(8deg)}.sparkle-left{left:4%;top:92px;font-size:30px}.sparkle-right{right:8%;top:36px;font-size:23px}.cake-message{font-size:21px;line-height:1.3;min-height:30px;margin-top:10px;max-width:300px}.birthday-section>.outline-button{font-size:10px;min-height:41px}.wishes-section{padding:57px 6% 66px}.wishes-grid{gap:20px 16px;margin-top:29px}.wish-note{aspect-ratio:.94;min-height:164px}.wish-front,.wish-back{padding:15px}.wish-front>.wish-icon{font-size:27px;margin-bottom:9px}.wish-front strong{font-size:21px}.wish-front small{font-size:6px;letter-spacing:.1em;margin-top:15px}.wish-back{font-size:21px;line-height:1.2}.closing-section{padding:48px 20px 55px}.closing-usagi{width:73px;height:102px;margin-bottom:23px}.closing-section>.eyebrow{font-size:7px}.closing-section>h2{font-size:38px;letter-spacing:-1.3px;margin:16px 0 21px}.closing-section>p:not(.eyebrow){font-size:10px}.closing-section>.handwritten{font-size:24px;margin:22px 0}.back-to-tree{font-size:9px}footer{padding:20px 6%;gap:12px;flex-wrap:wrap}footer>.wordmark{font-size:19px}footer>span{font-size:7px;max-width:138px;text-align:right;margin-left:auto}footer>.treasure-counter{flex-basis:100%;justify-content:center;padding:0;font-size:7px;margin-top:0;gap:5px}.treasure-counter>svg{height:17px;width:11px}.carrot-one{bottom:7.5%;right:7%;width:18px;height:29px}.carrot-two{left:6%;bottom:18px;width:18px;height:29px}.carrot-three{right:6%;bottom:18px;width:18px;height:29px}.toast{font-size:11px;bottom:20px;padding:10px 18px;width:max-content;max-width:90vw}.memory-dialog{padding:18px 13px}.modal-card{border-radius:6px}.modal-close{top:12px;right:12px;width:31px;height:31px;font-size:24px}.modal-visual{height:250px}.modal-body{padding:25px 24px 17px}.modal-body>.eyebrow{font-size:7px}.modal-body>h2{font-size:33px;margin:10px 0 18px}.modal-description{font-size:12px;line-height:1.9}.modal-body blockquote{margin-top:20px;padding:15px 18px}.modal-body blockquote p{font-size:23px}.modal-body blockquote cite{font-size:8px}.modal-gallery{gap:8px;margin-top:22px;grid-template-columns:repeat(2,1fr)}.modal-gallery span{font-size:8px}.modal-navigation{margin-top:25px;padding-top:13px;font-size:9px}.modal-navigation>button{gap:6px}.modal-navigation>span{font-size:8px}.lightbox figure{width:88vw;height:calc(100dvh - 150px)}.lightbox figure>img{height:calc(100% - 55px)}.lightbox figcaption{font-size:21px;margin-top:17px;max-width:95%;min-height:38px}.lightbox-close{top:14px;right:13px}.lightbox-prev,.lightbox-next{font-size:22px;top:auto;bottom:15px;padding:8px 20px}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox>span{bottom:30px}.carrot-secret:after{content:'';position:absolute;inset:-8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}.wish-front,.wish-back{transition:none}}
.tree-pagination{display:flex;align-items:center;justify-content:center;gap:28px;margin:-9px auto 23px;font-size:10px;position:relative;z-index:4}.tree-pagination>button{border-bottom:1px solid #c4ceb4;padding:5px 0}.tree-pagination>button:disabled{opacity:.3}.tree-pagination>span{font-size:8px;color:#8b997a;letter-spacing:.08em}.image-unavailable{background:#e3e8d2}.image-unavailable:after{content:'✿';position:absolute;inset:0;display:grid;place-items:center;font-size:35px;color:#9aab7e}.hero-photo .image-unavailable:after{font-size:42px}.photo-paper.image-unavailable{position:relative}.scrapbook-section{position:relative}
.node-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.modal-subtitle{font-size:12px;line-height:1.5;color:#99a284;margin:-10px 0 22px;letter-spacing:.05em}
@media(max-width:520px){.tree-pagination{font-size:8px;gap:17px;margin:-5px auto 21px}.tree-pagination>span{font-size:7px;letter-spacing:0}}

/* Comfortable reading on a phone as well as a larger screen. */
.hero-description{font-size:16px;color:#626e59}
.section-heading>p:last-child,.section-heading>div+p{font-size:15px;color:#626e59}
.letter-paper #letter-content p{font-size:16px;line-height:1.95;color:#45553f}
.modal-description{font-size:16px;line-height:1.85;color:#526047}
.node-date{font-size:9px;letter-spacing:.025em;color:#526644}
.scrapbook-card p,.modal-gallery span{font-size:13px}
.memory-filters button,.view-switch button{min-height:40px;font-size:12px}
.modal-body>.eyebrow{font-size:11px}.modal-subtitle{font-size:14px;color:#687852}
.modal-body blockquote cite{font-size:12px}.modal-navigation{font-size:13px}
.tree-pagination{font-size:12px}.tree-pagination>span{font-size:11px}
.photo-polaroid figcaption{color:#47583f}
@media(max-width:520px){
 .hero-description{font-size:14px}.section-heading>p:last-child,.section-heading>div+p{font-size:14px}
 .letter-paper{padding:42px 24px 30px}.letter-paper #letter-content p{font-size:15px;line-height:1.85;color:#45553f}
 .modal-description{font-size:15px;line-height:1.8}.modal-body>.eyebrow{font-size:10px}
 .modal-subtitle{font-size:13px}.node-date{font-size:8px}.modal-gallery span{font-size:11px}
 .memory-filters button,.view-switch button{font-size:11px;min-height:42px}
 .modal-navigation{font-size:11px}.modal-navigation>span{font-size:10px}
 .tree-pagination{font-size:11px;gap:12px}.tree-pagination>span{font-size:10px}
 .birthday-section .section-heading>p:last-child{font-size:14px}
 .closing-section>p:not(.eyebrow){font-size:14px}
}

/* Little visits from the real Usagi, with room left for every memory. */
.usagi-sticker{object-fit:contain;user-select:none;pointer-events:none;filter:drop-shadow(0 5px 0 #c4b98722);animation:usagi-bob 4.8s ease-in-out infinite}.hero-usagi-sticker{position:absolute;width:88px;height:88px;right:19%;bottom:100px;transform:rotate(8deg);animation-delay:-1.8s}.hero-usagi{object-fit:contain}.garden-usagi>img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 0 #aab58f25)}.usagi-button.hopping>img{animation:usagi-hop .65s 2}.photo-usagi-sticker{width:78px;height:78px;margin:37px auto 0;animation-delay:-2.2s}.photo-usagi-sticker+.photo-note{margin-top:15px}.letter-companion{display:flex;align-items:center;justify-content:center;gap:16px;margin:29px auto -28px;max-width:370px}.letter-companion>img{width:70px;height:70px;flex-shrink:0;animation-delay:-1s}.letter-companion>span{font-size:23px;line-height:1.2;color:#87936e;max-width:170px;transform:rotate(-3deg)}.cake-usagi{height:auto;width:125px;aspect-ratio:1;object-fit:contain;animation-delay:-3s}.wishes-section:before{content:'';position:absolute;top:60px;left:4%;width:180px;height:180px;background:url('assets/usagi-attached.png') center/contain no-repeat;opacity:.055;pointer-events:none}.wishes-companion{display:flex;align-items:center;justify-content:center;gap:19px;margin:42px auto 0}.wishes-companion>img{width:68px;height:94px;flex-shrink:0;animation-delay:-.6s}.wishes-companion>span{font-size:25px;line-height:1.2;max-width:230px;color:#83936d;transform:rotate(-2deg)}.closing-usagi{width:106px;height:auto;aspect-ratio:1;object-fit:contain;animation-delay:-1.2s}.footer-love{display:flex;align-items:center;gap:9px}.footer-love>img{width:32px;height:32px;object-fit:contain;flex-shrink:0}footer .artwork-credit{display:block;font-size:8px;color:#899278;font-family:var(--sans);line-height:1.5}.photo-gallery-count{text-align:center;color:#727e61;font-size:12px;margin-top:20px}.photo-more{display:flex;margin:44px auto 0;font-size:11px;gap:17px}.photo-capture-date{display:block;font-family:var(--sans);font-size:11px;letter-spacing:.03em;color:#687553;margin-top:7px;font-style:normal;line-height:1.4}.photo-polaroid figcaption{line-height:1.15}.photo-polaroid img{object-position:center 35%}.photo-wall{row-gap:34px}.lightbox figcaption{line-height:1.35}
@keyframes usagi-bob{0%,100%{translate:0 0;rotate:-2deg}50%{translate:0 -6px;rotate:2deg}}

/* The theme remains a visible video player: no hidden soundtrack or automatic start. */
.music-dock{position:fixed;bottom:20px;right:20px;width:min(374px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:auto;z-index:75;padding:17px;background:#fffdf3;border:1px solid #d5d8bb;border-radius:14px;box-shadow:0 15px 70px #40513235;text-align:left}.music-dock-heading{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:13px}.music-dock-heading .eyebrow{font-size:7px;letter-spacing:.15em;color:#98a17f}.music-dock-heading h2{font-family:var(--serif);font-size:25px;line-height:1.3;margin-top:4px}.music-dock-heading h2>span{font-size:17px;font-style:italic;margin-left:5px;color:#91a076}.music-dock-heading>div>p:last-child{font-size:9px;color:#8d957f;margin-top:4px}.music-close{width:29px;height:29px;font-size:25px;line-height:1;background:#ebeedc;border-radius:50%;flex-shrink:0;display:grid;place-items:center}.music-video{width:100%;height:214px;min-width:200px;min-height:200px;background:#272d26;border-radius:7px;overflow:hidden}.music-video>iframe{display:block;width:100%;height:214px;min-width:200px;min-height:200px;border:0}.music-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:10px}.music-control{background:#e6ebd6;border:1px solid #ced7b7;padding:7px 13px;border-radius:5px;line-height:1.5}.music-actions>a{text-decoration:underline;text-underline-offset:3px}.music-hint{font-size:9px;line-height:1.6;color:#8a927b;margin-top:10px}.sound-button[aria-expanded=true]{border-color:#a3b187}.sound-button .sound-icon{width:17px;text-align:center}.music-dock button:focus-visible,.music-dock a:focus-visible{outline-offset:3px}
@media(max-width:1100px){.hero-usagi-sticker{right:22%;bottom:102px;width:74px;height:74px}}
@media(max-width:800px){.hero-usagi-sticker{left:6%;right:auto;top:398px;bottom:auto;width:60px;height:60px}.wishes-section:before{width:128px;height:128px;left:0;top:40px}.footer-love{gap:7px}.footer-love>img{width:28px;height:28px}.sound-button>#sound-label{display:inline;font-size:9px}}
@media(max-width:520px){.hero-usagi-sticker{left:8%;right:auto;top:362px;bottom:auto;width:55px;height:55px}.cake-usagi{width:83px;height:auto;right:-2px;bottom:7px}.closing-usagi{width:88px;height:auto}.letter-companion{margin:23px auto -26px;gap:11px}.letter-companion>img{width:58px;height:58px}.letter-companion>span{font-size:20px;max-width:160px}.wishes-companion{margin-top:34px;gap:14px}.wishes-companion>img{width:58px;height:80px}.wishes-companion>span{font-size:22px;max-width:178px}.photo-usagi-sticker{width:63px;height:63px;margin-top:31px}.photo-gallery-count{font-size:12px;margin-top:17px}.photo-more{margin-top:35px;font-size:10px}.photo-capture-date{font-size:10px}.photo-wall{row-gap:30px}.music-dock{right:14px;bottom:14px;padding:14px}.music-dock-heading h2{font-size:23px}.music-dock-heading h2>span{font-size:15px}.music-actions{font-size:9px}.music-hint{font-size:8px}.sound-button{gap:4px}.sound-button>#sound-label{font-size:8px}.footer-love>img{width:26px;height:26px}footer>span.footer-love{max-width:155px;font-size:7px}.wishes-section:before{width:100px;height:100px;left:-14px;top:72px}}
@media(prefers-reduced-motion:reduce){.usagi-sticker{animation:none;translate:none;rotate:none}.usagi-button.hopping>img{animation:none}}

/* Keep smaller shared-album photographs at their natural resolution. */
.lightbox figure>img{object-fit:scale-down}
.photo-polaroid.landscape-photo img{object-fit:contain;background:#f2efdf}
.supplied-usagi{border-radius:0}.garden-usagi>img.supplied-usagi{object-fit:contain;border-radius:0}
.section-usagi{display:block;width:67px;height:67px;object-fit:contain;margin:12px 0 0 auto;transform:rotate(7deg)}
.usagi-adventure-trail{display:flex;align-items:center;justify-content:center;gap:22px;margin:18px auto 0;max-width:520px;pointer-events:none}
.usagi-adventure-trail>.handwritten{max-width:230px;font-size:25px;line-height:1.25;transform:rotate(-3deg)}
.usagi-adventure-trail>img{width:53px;height:73px;object-fit:contain;transform:rotate(8deg)}

.wish-front>.wish-icon{display:grid;place-items:center;width:70px;height:74px;margin-bottom:10px;font-size:0;flex-shrink:0}
.wish-icon>img{width:70px;height:74px;object-fit:contain;filter:drop-shadow(0 3px 0 #b4a27622)}


@media(max-width:520px){.section-usagi{width:55px;height:55px;margin:10px auto 0}.usagi-adventure-trail{gap:13px;margin-top:15px;max-width:320px}.usagi-adventure-trail>.handwritten{font-size:21px;max-width:160px}.usagi-adventure-trail>img{width:39px;height:54px}.wish-front>.wish-icon{width:51px;height:55px;margin-bottom:8px}.wish-icon>img{width:51px;height:55px}.wish-front strong{font-size:20px}.wish-front small{margin-top:10px}}

@media(max-width:360px){.site-header .wordmark{font-size:18px;gap:4px}.site-header .wordmark-flower{font-size:22px}.site-header .wordmark-heart{font-size:22px}.site-header nav{font-size:9px;gap:10px}.site-header .sound-button{padding:5px 7px;flex-shrink:0}.site-header .sound-button>#sound-label{font-size:8px}.site-header .sound-icon{width:14px;font-size:15px}}

/* Keep the complete supplied Usagi picture visible, including its lettering. */
.usagi-trail-sticker{flex-shrink:0}.usagi-adventure-trail>.usagi-trail-sticker{width:76px;height:auto;aspect-ratio:348/360;transform:rotate(-5deg)}
@media(max-width:520px){.usagi-adventure-trail>.usagi-trail-sticker{width:57px;height:auto}}

.hero-bunny-scene>.hero-usagi{bottom:0;height:auto;aspect-ratio:348/360}
@media(max-width:520px){.wishes-section:before{left:0}}

/* A shared food diary, made from our own album photographs. */
.food-section{padding:85px 7% 80px;background:#f1eddb;position:relative}.food-section .section-heading h2 em{color:#9a815d}.food-diary-intro{max-width:900px;margin:36px auto 0;display:grid;grid-template-columns:210px 1fr;align-items:center;gap:42px}.food-diary-intro>img{width:210px;height:250px;object-fit:contain;background:#fffdf4;padding:9px;box-shadow:0 5px 18px #6c61451a;transform:rotate(-4deg)}.food-diary-intro .handwritten{font-size:29px;color:#8c795d}.food-diary-intro p{font-size:15px;line-height:1.8;margin:12px 0 14px;max-width:530px}.food-diary-intro .text-button{font-size:12px;text-decoration:underline;text-underline-offset:4px}.food-gallery-count{text-align:center;margin:40px 0 0;font-size:12px;letter-spacing:.035em;color:#647257}.food-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 22px;max-width:1160px;margin:24px auto 0}.food-photo{display:block;text-align:left;min-width:0;background:#fffdf4;border-radius:5px;padding:9px;box-shadow:0 4px 12px #6c614510;transition:transform .2s}.food-photo:hover{transform:translateY(-4px)}.food-photo img{width:100%;height:210px;object-fit:contain;background:#eee8d8;border-radius:2px}.food-photo figcaption{font-size:13px;line-height:1.45;color:#47583f;padding:11px 4px 5px}.food-photo time{display:block;font-size:10px;margin-top:5px;color:#69755e}.food-more{display:flex;margin:35px auto 0}.food-diary-signoff{display:flex;align-items:center;justify-content:center;gap:14px;margin:35px auto 0}.food-diary-signoff img{width:64px;height:auto;object-fit:contain}.food-diary-signoff .handwritten{font-size:24px;color:#8c795d}
@media(max-width:800px){.food-section{padding:65px 6%}.food-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 16px}.food-photo img{height:170px}.food-diary-intro{gap:28px;grid-template-columns:170px 1fr}.food-diary-intro>img{width:170px;height:215px}.site-header .food-nav{display:none}}
@media(max-width:520px){.food-section{padding:56px 6% 60px}.food-diary-intro{grid-template-columns:1fr;gap:22px;text-align:center;margin-top:25px}.food-diary-intro>img{width:180px;height:225px;margin:auto}.food-diary-intro .handwritten{font-size:26px}.food-diary-intro p{font-size:14px}.food-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 13px}.food-photo{padding:6px}.food-photo img{height:154px}.food-photo figcaption{font-size:12px;padding:9px 3px 5px}.food-photo time{font-size:10px;line-height:1.4}.food-diary-signoff .handwritten{font-size:21px;max-width:190px}.food-diary-signoff img{width:56px}}
@media(prefers-reduced-motion:reduce){.food-photo{transition:none}.food-photo:hover{transform:none}}

/* Opened memory cards show the complete photograph. */
.modal-visual img{object-fit:contain;background:#eee8d8}

