@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap";@import"https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap";:root{font-family:DM Sans,sans-serif;color:#242820;background:#f7f8f4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-weight:400}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{margin:0;min-width:320px;min-height:100vh}button,a{font:inherit}a{color:inherit}::selection{background:#d8e7ca;color:#293623}.birthday-page{--ink:#3e4439;--soft-ink:#666e60;--accent:#758a5d;--accent-ink:#52673f;--paper:#fffdf7;--edge:#e9e5d8;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100svh;overflow:hidden;padding:0 clamp(18px,5vw,70px);color:var(--ink);background:#f8f5ea;font-family:Caveat,Segoe Print,cursive;transition:background-color 1.5s ease,color 1.5s ease}.birthday-page *,.birthday-page *:before,.birthday-page *:after{box-sizing:border-box}.birthday-page button,.birthday-page a{font:inherit}.birthday-page a{color:inherit}.birthday-page button:focus-visible,.birthday-page a:focus-visible{outline:3px solid #718952;outline-offset:4px}.birthday-page strong{color:var(--accent-ink);font-weight:700}.birthday-page h1,.birthday-page h2,.birthday-page h3,.birthday-page p{margin-top:0}.birthday-page h1{color:var(--ink)}.birthday-page[data-mood=bright]{--accent:#dc9e62;--accent-ink:#9a643b;background-color:#fbf1df}.birthday-page[data-mood=curious]{--accent:#839668;--accent-ink:#586e43;background-color:#f1f3e8}.birthday-page[data-mood=singing]{--accent:#bf87a1;--accent-ink:#88536d;background-color:#f6eaf0}.birthday-page[data-mood=grateful]{--accent:#8d9d77;--accent-ink:#5e704e;background-color:#edf1e5}.birthday-page[data-mood=sorry]{--accent:#9c8d81;--accent-ink:#746356;background-color:#f1ece6}.birthday-page[data-mood=thoughtful]{--accent:#8999a2;--accent-ink:#5c707b;background-color:#eaf0f1}.birthday-page[data-mood=hopeful]{--accent:#d0a16e;--accent-ink:#956b43;background-color:#f7f0e3}.birthday-page[data-mood=celebrating]{--accent:#d29363;--accent-ink:#9b6240;background-color:#fbefdc}.birthday-page[data-mood=playful]{--accent:#c6879a;--accent-ink:#92576b;background-color:#f7e9ed}.breathing-light{position:absolute;z-index:-1;pointer-events:none;top:-18%;right:-18%;bottom:-18%;left:-18%;opacity:.48;background:radial-gradient(ellipse at 54% 50%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 59%);animation:breathe 7s ease-in-out infinite;transition:background 1.8s ease}.tiny-label,.note-count,.chapter-kicker,.paper-footer,.asset-label{font-family:DM Mono,monospace;letter-spacing:.1em}.chapter-kicker i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.note-scene{position:relative;width:min(770px,100%);margin:auto;padding:42px 0 34px}.floating-doodle{position:absolute;color:var(--accent);opacity:.66;pointer-events:none;animation:doodle-float 4.5s ease-in-out infinite;transition:color 1.5s}.doodle-one{left:-8%;top:22%;font-size:25px}.doodle-two{right:-5%;top:35%;font-size:22px;animation-delay:-2s}.note-heading{display:flex;align-items:center;justify-content:space-between;margin:0 2px 9px}.tiny-label{color:#858a7c;font-size:8px}.note-count{color:#888d80;font-size:9px}.note-count i{margin:0 4px;color:#b0b3a8;font-style:normal}.note-progress{height:2px;margin-bottom:13px;overflow:hidden;background:#e4e2d7}.note-progress span{display:block;height:100%;background:var(--accent);transition:width .65s ease}.note-paper{position:relative;min-height:445px;padding:clamp(28px,5.7vw,53px) clamp(24px,6vw,61px) 30px;overflow:hidden;border:1px solid var(--edge);border-radius:4px 21px 5px 19px;background:var(--paper);box-shadow:0 22px 65px #53574412,0 3px 10px #53574409;transition:background-color 1.4s,border-color 1.4s}.note-paper:before{content:"";position:absolute;inset:0 auto 0 39px;width:1px;background:#f0e8dd}.note-paper:after{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;z-index:0;border:1px solid #f4f0e7;border-radius:2px 14px 3px 13px;pointer-events:none}.note-cover,.active-note,.all-note{position:relative;z-index:1;min-height:358px;padding-bottom:27px}.chapter-kicker{display:inline-flex;align-items:center;gap:9px;color:#818879;font-size:8px}.birthday-page .note-paper h1{max-width:600px;margin:20px 0 11px;font-family:Caveat,Segoe Print,cursive;font-size:clamp(47px,8vw,76px);font-weight:600;line-height:.88;letter-spacing:-.035em}.birthday-page .note-paper h1 em{color:var(--accent-ink);font-weight:600}.note-cover>p{max-width:390px;margin:21px 0 0;color:var(--soft-ink);font-size:clamp(20px,3vw,25px);line-height:1.2}.cover-doodle{position:absolute;top:48%;right:21%;color:#cf9e76;font-size:43px;transform:rotate(13deg);animation:doodle-wiggle 4s ease-in-out infinite}.active-note{padding-right:125px}.birthday-page .active-note h1{max-width:530px;margin-top:21px;font-size:clamp(38px,6vw,55px);line-height:.96}.written-line{display:flex;align-items:flex-start;min-height:148px;padding-top:11px}.handwritten-line{max-width:560px;margin:0;color:#50594b;font-family:Caveat,Segoe Print,cursive;font-size:clamp(27px,4vw,39px);font-weight:500;line-height:1.12;overflow-wrap:anywhere}.handwritten-line.complete{color:#465141}.write-caret{display:inline-block;margin-left:2px;color:var(--accent);font-family:DM Mono,monospace;font-size:.72em;font-weight:400;animation:caret-blink .72s steps(2,start) infinite;vertical-align:.06em}.paper-footer{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;padding-top:10px;border-top:1px dashed #e9e5da;color:#a0a293;font-size:7px}.paper-footer span:last-child{color:var(--accent);font-size:12px}.note-character{position:absolute;z-index:2;right:27px;bottom:23px;width:139px;height:153px;filter:drop-shadow(0 10px 10px #5b63421a);transform-origin:center bottom;pointer-events:none;transition:filter .8s}.note-character svg{display:block;width:100%;height:100%;overflow:visible}.char-shadow{fill:#68734a1d}.char-shirt{fill:#84956c;transition:fill 1s}.char-neck{fill:#d9a079}.char-face{fill:#d9a079;stroke:#a87656;stroke-width:1.3;stroke-linejoin:round}.char-hair{fill:#3c3936;stroke:#3c3936;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.char-brows,.char-eyes,.char-nose,.char-mouth{fill:none;stroke:#4b3d34;stroke-linecap:round;stroke-width:2.6;transition:transform .35s,d .35s}.char-eyes{fill:#493b33;stroke:none}.char-nose{stroke-width:1.6;opacity:.65}.char-mouth{stroke-width:2.8}.char-shirt-detail{fill:none;stroke:#dce4d1;stroke-width:2.3;stroke-linecap:round}.char-blush{fill:#e8998d;opacity:.25;transition:opacity .35s}.char-spark{position:absolute;color:var(--accent);font-size:18px;transition:color .8s,transform .35s}.char-spark-a{right:-3px;top:24%}.char-spark-b{left:-8px;top:42%;color:#c79d79;font-size:13px}.mood-bright .char-mouth,.mood-celebrating .char-mouth{d:path("M96 140 Q111 158 128 140")}.mood-bright .char-blush,.mood-sorry .char-blush{opacity:.57}.mood-curious .char-brows{transform:translateY(-3px) rotate(-3deg)}.mood-curious .char-mouth{d:path("M103 145 Q111 149 119 145")}.mood-singing .char-mouth{d:path("M102 140 Q111 157 120 140")}.mood-singing .char-eyes{transform:scaleY(.72);transform-origin:center}.mood-grateful .char-mouth,.mood-hopeful .char-mouth{d:path("M99 143 Q111 154 124 143")}.mood-sorry .char-brows{transform:translateY(3px)}.mood-sorry .char-mouth,.mood-thoughtful .char-mouth{d:path("M101 147 Q111 142 121 147")}.mood-thoughtful .char-brows{transform:translateY(1px)}.mood-playful .char-brows{transform:rotate(7deg)}.mood-playful .char-mouth{d:path("M98 143 Q112 157 126 140")}.mood-celebrating .char-spark,.mood-singing .char-spark{transform:scale(1.3) rotate(18deg)}.note-controls{display:flex;justify-content:flex-end;align-items:center;gap:8px;min-height:62px}.open-note-button,.pause-button,.quiet-button,.moment-toggle,.preview-close{cursor:pointer}.open-note-button,.pause-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:17px;padding:0 19px;border:1px solid var(--accent-ink);border-radius:4px 14px;color:#fff;background:var(--accent-ink);box-shadow:0 6px 15px color-mix(in srgb,var(--accent-ink) 20%,transparent);font-size:18px!important;font-weight:600;transition:transform .2s,background-color .7s,border-color .7s,box-shadow .2s}.open-note-button:hover,.pause-button:hover{transform:translateY(-2px) rotate(-.5deg);box-shadow:0 9px 20px color-mix(in srgb,var(--accent-ink) 25%,transparent)}.open-note-button span,.pause-button span{font-family:DM Mono,monospace;font-size:15px}.pause-button{color:var(--accent-ink);background:#fffdf7}.quiet-button{min-height:39px;padding:0 9px;border:0;color:#818577;background:transparent;font-size:16px}.quiet-button:hover{color:var(--accent-ink)}.quiet-button:disabled{opacity:.35;cursor:default}.reveal-all-button{margin-right:auto;text-decoration:underline;text-decoration-color:#c3c5b9;text-underline-offset:4px}.pace-note{min-height:20px;margin:-2px 0 0;color:#97998e;font-family:DM Mono,monospace;font-size:8px;letter-spacing:.02em;text-align:right}.moment-card{position:relative;z-index:1;margin:0 0 2px;padding:13px;border:1px solid color-mix(in srgb,var(--accent) 25%,#e8e3d7);border-radius:4px 13px;background:color-mix(in srgb,var(--accent) 8%,#fffdf7)}.moment-card h3{margin:3px 0;color:var(--accent-ink);font-family:Caveat,cursive;font-size:24px}.moment-card p{margin:3px 0;color:#697060;font-size:17px;line-height:1.15}.asset-label{color:#89907e;font-size:7px}.asset-note{color:#999b8f!important;font-family:DM Mono,monospace;font-size:7px!important}.moment-toggle{display:inline-flex;gap:8px;align-items:center;margin-top:7px;padding:3px 0;border:0;color:var(--accent-ink);background:transparent;font-size:16px;font-weight:600}.moment-toggle:hover{text-decoration:underline;text-underline-offset:3px}.moment-extra{overflow:hidden;padding-top:7px;border-top:1px dashed #dfddcf;font-size:15px!important}.song-card{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:0 11px}.song-art{position:relative;display:grid;place-items:center;grid-row:span 2;width:58px;height:58px;overflow:hidden;border-radius:50%;color:var(--accent-ink);background:color-mix(in srgb,var(--accent) 17%,#f6efd9)}.song-art:before,.song-art:after{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid #ffffffad;border-radius:50%}.song-art:after{top:11px;right:11px;bottom:11px;left:11px}.song-art>span{z-index:1;font-size:25px}.song-art i{position:absolute;z-index:1;bottom:9px;width:2px;border-radius:2px;background:var(--accent-ink);animation:equalize .8s ease-in-out infinite alternate}.song-art i:nth-of-type(1){left:13px;height:8px}.song-art i:nth-of-type(2){left:19px;height:14px;animation-delay:-.3s}.song-art i:nth-of-type(3){left:25px;height:10px;animation-delay:-.5s}.song-art i:nth-of-type(4){left:31px;height:16px;animation-delay:-.15s}.song-art i:nth-of-type(5){left:37px;height:8px;animation-delay:-.65s}.song-card .moment-toggle{grid-column:2}.song-card .moment-extra{grid-column:1/-1}.meme-card{overflow:hidden;padding:0;background:color-mix(in srgb,var(--accent) 9%,#fffdf7)}.meme-image{display:block;width:100%;height:auto;max-height:320px;object-fit:contain;object-position:center}.gift-card{padding:14px}.gift-card>p{max-width:390px}.gift-icon{float:right;font-size:32px;transform:rotate(7deg)}.gift-card h3{margin:4px 0}.gift-preview{clear:both;margin-top:10px;padding:10px;border:1px dashed color-mix(in srgb,var(--accent) 45%,white);border-radius:5px 12px 4px;background:#fffdf7}.gift-preview>b{color:var(--accent-ink);font-size:18px}.gift-preview p{font-size:15px}.preview-close{padding:4px 12px;border:1px solid #d7decd;border-radius:4px 10px;color:var(--accent-ink);background:#f4f6ed;font-size:16px}.all-note{padding-right:118px}.birthday-page .all-note h1{font-size:48px}.all-note-section{margin-top:14px}.birthday-page .all-note h2{margin:0 0 2px;color:var(--accent-ink);font-size:24px;font-weight:600}.all-note-section p,.privacy-note{margin:2px 0;color:#5d6655;font-size:18px;line-height:1.18}.placeholder-inline{color:#8d8f82;font-size:15px}.privacy-note{margin-top:15px;font-family:DM Mono,monospace;font-size:8px;letter-spacing:.02em}@keyframes breathe{0%,to{transform:scale(.96);opacity:.35}50%{transform:scale(1.04);opacity:.7}}@keyframes doodle-float{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-8px) rotate(9deg)}}@keyframes doodle-wiggle{0%,to{transform:rotate(11deg) scale(1)}50%{transform:rotate(-8deg) scale(1.08)}}@keyframes caret-blink{to{visibility:hidden}}@keyframes equalize{to{transform:scaleY(.45);transform-origin:bottom}}@media(max-width:620px){.birthday-page{padding-inline:15px}.note-scene{width:100%;padding:21px 0 22px}.note-paper{min-height:490px;padding:28px 21px 26px;border-radius:3px 16px 4px 14px}.note-paper:before{left:17px}.note-paper:after{top:8px;right:8px;bottom:8px;left:8px}.note-cover,.active-note,.all-note{min-height:407px;padding-bottom:30px}.birthday-page .note-paper h1{margin-top:23px;font-size:clamp(51px,14vw,67px)}.note-cover>p{max-width:255px;margin-top:22px;font-size:21px}.cover-doodle{top:auto;bottom:18%;right:29%;font-size:35px}.active-note{padding-right:0}.birthday-page .active-note h1{max-width:270px;margin-top:19px;font-size:clamp(37px,11vw,48px)}.written-line{min-height:166px;max-width:100%;padding:7px 52px 0 0}.handwritten-line{font-size:clamp(28px,8vw,36px);line-height:1.04}.note-character{right:13px;bottom:22px;width:91px;height:100px}.paper-footer{max-width:calc(100% - 101px)}.moment-card{max-width:calc(100% - 62px);padding:10px}.moment-card p{font-size:15px}.moment-card h3{font-size:20px}.moment-toggle{font-size:14px}.asset-label{font-size:6px}.song-card{grid-template-columns:43px 1fr;column-gap:7px}.song-art{width:43px;height:43px}.song-art i:nth-of-type(1){left:8px}.song-art i:nth-of-type(2){left:14px}.song-art i:nth-of-type(3){left:20px}.song-art i:nth-of-type(4){left:26px}.song-art i:nth-of-type(5){left:32px}.song-card .moment-copy p{font-size:13px}.meme-quote{font-size:18px!important}.gift-card>p{font-size:14px}.gift-icon{font-size:24px}.note-controls{min-height:58px;gap:3px}.open-note-button,.pause-button{min-height:41px;padding-inline:12px;gap:9px;font-size:16px!important}.quiet-button{padding-inline:5px;font-size:14px}.reveal-all-button{max-width:83px;line-height:1;text-align:center}.pace-note{min-height:25px;font-size:7px}.doodle-one{left:auto;right:6%;top:6%;font-size:18px}.doodle-two{display:none}.all-note{padding-right:0}.birthday-page .all-note h1{font-size:44px}.all-note-section p{padding-right:0;font-size:17px}}@media(prefers-reduced-motion:reduce){.birthday-page *,.birthday-page *:before,.birthday-page *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.breathing-light,.floating-doodle,.cover-doodle,.song-art i{animation:none!important}}.birthday-page{min-height:100svh;height:100svh;overflow-x:clip;overflow-y:auto;padding:0}.birthday-page.scroll-locked{overflow-y:hidden}.breathing-light{position:fixed;z-index:0;top:0;right:0;bottom:0;left:0;opacity:.52;pointer-events:none}.opening-active>:not(.breathing-light):not(.birthday-shout-screen){display:none!important}.birthday-hero,.birthday-story{position:relative;z-index:1}.birthday-shout-screen{position:fixed;z-index:30;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;pointer-events:none}.birthday-shout-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--paper) 44%,transparent);content:"";animation:shout-backdrop 6.4s ease both}.birthday-shout-text{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:0 4vw;color:#374332;font-family:Caveat,Segoe Print,cursive;font-size:clamp(54px,11.3vw,158px);font-weight:700;line-height:.9;letter-spacing:-.035em;text-align:center;text-shadow:0 7px 0 color-mix(in srgb,var(--accent) 25%,transparent),0 16px 30px #51402c35}.shout-line{position:absolute;width:92%;opacity:0;animation:shout-one-at-a-time 1.5s cubic-bezier(.2,.75,.3,1) both}.shout-hi{animation-delay:0s}.shout-name{color:#995e37;animation-delay:1.55s}.shout-birthday{color:#415339;animation-delay:3.1s}.shout-burst{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.shout-burst i{position:absolute;top:var(--burst-y);font-size:clamp(28px,5vw,65px);font-style:normal;opacity:0;animation-duration:1.35s;animation-timing-function:cubic-bezier(.15,.75,.25,1);animation-delay:4.75s;animation-fill-mode:both}.shout-burst i:nth-child(1){--burst-y:18%}.shout-burst i:nth-child(2){--burst-y:36%;animation-delay:4.85s}.shout-burst i:nth-child(3){--burst-y:58%;animation-delay:4.8s}.shout-burst i:nth-child(4){--burst-y:76%;animation-delay:4.9s}.burst-from-left i{left:-9vw;animation-name:burst-in-from-left}.burst-from-right i{right:-9vw;animation-name:burst-in-from-right}.birthday-hero{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:100svh;padding:80px clamp(22px,8vw,140px) 70px;overflow:hidden}.hero-wash{position:absolute;z-index:-1;top:0;right:-8%;bottom:0;left:-8%;background:radial-gradient(ellipse at 73% 54%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 51%),radial-gradient(ellipse at 5% 90%,#e5d1ab4a,transparent 37%),url(/assets/birthday-hero-DmQSjAeW.png) right top / auto 100% no-repeat;transition:background-color 1.8s ease}.hero-kicker{position:absolute;top:clamp(112px,17vh,165px);left:clamp(23px,6vw,120px);color:#777e6d;font:9px DM Mono,monospace;letter-spacing:.14em;opacity:0;transition:opacity .7s .15s}.hero-kicker b{margin-left:7px;color:var(--accent)}.hero-settled .hero-kicker{opacity:1}.birthday-page .hero-greeting{position:absolute;z-index:1;top:48%;left:50%;width:max-content;max-width:94vw;margin:0;transform:translate(-50%,-50%);color:#3c4937;font-family:Caveat,Segoe Print,cursive;font-size:clamp(68px,13vw,172px);line-height:.82;letter-spacing:-.04em;font-weight:600;text-align:center;transition:top 1.15s cubic-bezier(.2,.78,.24,1),left 1.15s cubic-bezier(.2,.78,.24,1),transform 1.15s cubic-bezier(.2,.78,.24,1),font-size 1.15s cubic-bezier(.2,.78,.24,1),text-align .3s}.birthday-page .hero-greeting em{color:var(--accent-ink);font-weight:600}.birthday-page .greeting-settled{top:27%;left:clamp(24px,6vw,120px);transform:translate(0);max-width:57vw;font-size:clamp(67px,9.8vw,132px);text-align:left}.hero-invitation{position:absolute;top:57%;left:clamp(24px,6vw,120px);max-width:min(470px,49vw);opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .8s .32s,transform .8s .32s,visibility .8s}.invitation-visible{opacity:1;visibility:visible;transform:translateY(0)}.hero-invitation>p{max-width:390px;margin:0 0 22px;color:#646e5c;font-size:clamp(22px,2.5vw,30px);line-height:1.05}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:11px 22px}.birthday-page .open-note-button{min-height:47px;padding:0 21px;font-size:19px!important}.scroll-note-button{min-height:39px;padding:2px 8px;border:0;color:#647057;background:transparent;font-size:17px;text-decoration:underline;text-decoration-color:#b5bda8;text-underline-offset:4px;cursor:pointer}.scroll-note-button:hover{color:var(--accent-ink)}.scroll-note-button:disabled{opacity:.45;cursor:default}.hero-scribble{position:absolute;top:51%;left:clamp(260px,34vw,510px);color:#bc8962;font-size:28px;transform:rotate(-8deg);opacity:0;transition:opacity .8s .65s}.hero-settled .hero-scribble{opacity:.9}.birthday-story{min-height:100vh;padding:7vh clamp(22px,8vw,140px) 16vh}.story-before{min-height:69vh;display:flex;flex-direction:column;justify-content:center;color:#76806d}.story-before p{max-width:600px;margin:17px 0;color:var(--ink);font-size:clamp(30px,5vw,55px);line-height:.98}.story-section{position:relative;display:flex;flex-direction:column;justify-content:center;width:min(100%,1460px);min-height:91svh;margin:0 auto;padding:15vh 0 19vh;scroll-margin-top:70px}.chapter-kicker{color:#7b8271}.birthday-page .story-section h2{max-width:850px;margin:16px 0 26px;color:#48523f;font-family:Caveat,Segoe Print,cursive;font-size:clamp(42px,6.2vw,76px);line-height:.92;font-weight:600;letter-spacing:-.025em}.story-beat{width:min(100%,970px);margin:0 0 clamp(28px,4vh,46px);scroll-margin-top:34vh}.story-beat-has-image{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,42%);align-items:center;gap:clamp(22px,4vw,58px)}.story-beat-has-image .story-line{grid-column:1}.story-line{max-width:900px;margin:0;color:#515c4b;font-family:Caveat,Segoe Print,cursive;font-size:clamp(28px,4.15vw,51px);font-weight:500;line-height:1.2;overflow-wrap:anywhere;text-wrap:pretty}.story-beat-current .story-line{color:#3e4937}.story-line strong{color:var(--accent-ink);font-weight:700}.story-section[data-scene-mood=thoughtful] .story-line{color:#586975}.story-section[data-scene-mood=sorry] .story-line{color:#766a60}.story-section[data-scene-mood=celebrating] .story-line{color:#875b3e}.story-section .moment-card{width:min(510px,80%);margin-top:22px;padding:19px 0;border:0;border-top:1px dashed color-mix(in srgb,var(--accent) 55%,transparent);border-bottom:1px dashed color-mix(in srgb,var(--accent) 45%,transparent);border-radius:0;background:transparent}.story-section .moment-card p{font-size:19px}.story-section .moment-card .asset-label{font-size:8px}.story-section .moment-card h3{font-size:29px}.story-section .story-beat-has-image .moment-card{grid-column:2;grid-row:1;width:100%;max-width:none;margin:0;padding:0;border:0;background:transparent}.story-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:9px 20px;max-width:820px;margin:0 auto;padding:34px 0 15px;border-top:1px solid color-mix(in srgb,var(--accent) 24%,transparent)}.pace-note{max-width:820px;margin:3px auto;color:#8a8e80;font:8px DM Mono,monospace;letter-spacing:.03em}.privacy-note{max-width:800px;margin:22px auto;color:#7e8377;font:9px DM Mono,monospace}.birthday-page .note-character{--character-right:clamp(12px,3.5vw,58px);--character-bottom:clamp(8px,2vh,24px);position:fixed;z-index:15;right:var(--character-right);bottom:var(--character-bottom);width:clamp(135px,17vw,258px);height:auto;filter:drop-shadow(0 18px 13px #505a3a1e);pointer-events:none}.birthday-page .note-character.character-revealing{animation:character-reveal 1.9s cubic-bezier(.2,.8,.24,1) both}.birthday-page .note-character svg{width:100%;height:auto}.all-note .story-section{min-height:auto;padding:7vh 0}.all-note .story-section h2{font-size:clamp(36px,5vw,62px)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes hero-breathe{0%,to{transform:scale(.98)}50%{transform:scale(1.025)}}@keyframes character-reveal{0%{opacity:0;transform:translate(calc(50% + var(--character-right) - 50vw),calc(50% + var(--character-bottom) - 50vh)) scale(2.8)}10%{opacity:1;transform:translate(calc(50% + var(--character-right) - 50vw),calc(50% + var(--character-bottom) - 50vh)) scale(2.8)}42%{opacity:1;transform:translate(calc(50% + var(--character-right) - 50vw),calc(50% + var(--character-bottom) - 50vh)) scale(2.8)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes shout-one-at-a-time{0%{opacity:0;transform:scale(.35) rotate(-7deg)}13%{opacity:1;transform:scale(1.12) rotate(3deg)}20%{transform:scale(1) rotate(-2deg)}27%{transform:scale(1.035) rotate(1deg)}35%,61%{opacity:1;transform:scale(1) rotate(0)}to{opacity:0;transform:scale(1.8) rotate(6deg)}}@keyframes shout-backdrop{0%,89%{opacity:1}to{opacity:0}}@keyframes burst-in-from-left{0%{opacity:0;transform:translate(-8vw) rotate(-28deg) scale(.45)}18%{opacity:1;transform:translate(5vw) rotate(12deg) scale(1.15)}to{opacity:0;transform:translate(67vw) rotate(200deg) scale(.35)}}@keyframes burst-in-from-right{0%{opacity:0;transform:translate(8vw) rotate(28deg) scale(.45)}18%{opacity:1;transform:translate(-5vw) rotate(-12deg) scale(1.15)}to{opacity:0;transform:translate(-67vw) rotate(-200deg) scale(.35)}}@media(max-width:700px){.birthday-shout-text{padding-inline:14px;font-size:clamp(49px,14vw,92px);line-height:.84}.shout-line{width:94%}.birthday-hero{min-height:100svh;padding:64px 22px 45px}.hero-wash{top:0;right:-55%;bottom:0;left:-25%;background-position:73% 54%,5% 90%,right top;background-size:auto,auto,auto 100%;opacity:.85}.hero-kicker{top:19vh;left:23px;font-size:7px}.birthday-page .hero-greeting{max-width:96vw;font-size:clamp(71px,18vw,118px)}.birthday-page .greeting-settled{top:30%;left:22px;max-width:94vw;font-size:clamp(58px,14vw,88px)}.hero-invitation{top:56%;left:24px;right:22px;max-width:none}.hero-invitation>p{max-width:290px;font-size:23px}.hero-actions{gap:7px 13px}.birthday-page .open-note-button{min-height:42px;padding-inline:14px;font-size:17px!important}.scroll-note-button{font-size:15px}.hero-scribble{top:48%;left:auto;right:28px;font-size:22px}.birthday-story{padding:5vh 21px 14vh}.story-before{min-height:76vh}.story-before p{font-size:39px}.story-section{min-height:92svh;padding:13vh 0 21vh;scroll-margin-top:60px}.birthday-page .story-section h2{max-width:calc(100% - 22px);margin:14px 0 22px;font-size:clamp(42px,12vw,61px)}.story-beat{width:100%;margin-bottom:34px;scroll-margin-top:31vh}.story-beat-has-image{display:flex;flex-direction:column;align-items:stretch;gap:10px}.story-line{max-width:100%;padding-right:20px;font-size:clamp(29px,8.4vw,39px);line-height:1.2}.story-section .moment-card{width:calc(100% - 45px);margin-top:15px;padding:14px 0}.story-section .story-beat-has-image .moment-card{width:100%;margin-top:0}.story-section .moment-card p{font-size:16px}.story-section .moment-card h3{font-size:24px}.birthday-page .note-character{--character-right:5px;--character-bottom:7px;width:clamp(91px,27vw,135px)}.story-controls{gap:7px;padding-top:20px}.story-controls .scroll-note-button{font-size:14px}.pace-note{max-width:calc(100% - 28px);font-size:7px}}@media(prefers-reduced-motion:reduce){.birthday-page .hero-wash{animation:none!important}.birthday-page .hero-greeting,.birthday-page .hero-invitation,.birthday-page .hero-scribble{transition:none!important}}.pace-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:5px 12px}.pause-inline{padding:2px 0;border:0;color:var(--accent-ink);background:transparent;font:inherit!important;font-size:9px!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer}#root{min-height:100vh}.page-shell{--green: #506c43;--dark-green: #344a2e;--muted: #808479;position:relative;display:flex;flex-direction:column;width:min(100% - 112px,1280px);min-height:100vh;margin-inline:auto}.topbar,.footer{display:flex;align-items:center;justify-content:space-between}.topbar{height:94px;border-bottom:1px solid #e7e9e2}.wordmark{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:17px;font-weight:700;letter-spacing:-.6px}.wordmark-icon{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;color:#f7f8f4;background:var(--green)}.wordmark-dot{color:#8ca77b}.topbar-note,.eyebrow,.mini-kicker,.mini-footer,.art-caption,.footer-copy,.page-index{font-family:DM Mono,monospace;letter-spacing:.09em}.topbar-note{display:inline-flex;align-items:center;gap:9px;color:#73796d;font-size:10px}.status-dot,.mini-kicker b{width:7px;height:7px;display:inline-block;border-radius:50%;background:#82a36e;box-shadow:0 0 0 3px #82a36e20}.hero{display:grid;grid-template-columns:1fr 1.06fr;align-items:center;gap:5%;flex:1;min-height:660px;padding-block:62px 72px}.hero-copy{padding-left:clamp(0px,3vw,43px);position:relative;z-index:2}.eyebrow{display:flex;align-items:center;gap:11px;color:#76806d;font-size:10px}.eyebrow-line{width:24px;height:1px;background:#9aaa90}.page-shell h1{margin:27px 0 20px;font-family:Playfair Display,Georgia,serif;font-size:clamp(60px,6.35vw,91px);line-height:.99;letter-spacing:-.055em;font-weight:600;color:#262c24}.page-shell h1 span{color:var(--green);font-style:italic}.hero-description{max-width:390px;color:#73776e;font-size:15px;line-height:1.85}.launch-note{margin-top:34px;display:inline-flex;align-items:center;gap:12px;padding:10px 14px 10px 10px;border:1px solid #e6e9e0;border-radius:6px;background:#fbfcf9;color:#444a40;font-size:11px;box-shadow:0 5px 22px #344a2e08}.launch-icon{width:29px;height:29px;display:grid;place-items:center;background:#edf1e9;color:var(--green);border-radius:4px}.typing-cursor{margin-left:1px;color:#7f9b6f;animation:blink 1.2s steps(2,start) infinite}.launch-divider{height:18px;width:1px;background:#e1e4dc;margin-inline:2px}.launch-state{color:#81877a;font-size:10px}.artwork{min-height:492px;position:relative;display:grid;place-items:center;isolation:isolate}.artwork:before{content:"";position:absolute;width:455px;height:455px;max-width:90%;border-radius:50%;background:#eef1e8;z-index:-2}.orbit{position:absolute;border:1px solid #dce2d3;border-radius:50%;z-index:-1}.orbit-one{width:570px;height:570px}.orbit-two{width:640px;height:640px;border-style:dashed;border-color:#e2e6dc}.orbit-three{width:710px;height:710px;border-color:#e9ece5}.browser-window{position:relative;z-index:1;width:min(440px,78%);border-radius:9px;overflow:hidden;background:#fff;border:1px solid #dfe3da;box-shadow:0 28px 60px #344a2e1c,0 4px 12px #344a2e0b;transform:rotate(-3deg)}.browser-bar{height:38px;border-bottom:1px solid #eceee8;background:#fbfcfa;display:flex;justify-content:space-between;align-items:center;padding:0 13px}.window-dots{display:flex;gap:4px}.window-dots i{display:block;width:6px;height:6px;border-radius:50%;background:#d9ddd4}.window-dots i:first-child{background:#c5d0bb}.address-bar{width:135px;padding:4px 8px;background:#f2f4ef;border-radius:3px;color:#92988c;text-align:center;font-family:DM Mono,monospace;font-size:8px}.browser-menu{color:#8c9287;letter-spacing:2px;font-size:12px}.browser-page{min-height:303px;padding:18px 25px 12px;display:flex;flex-direction:column;background:linear-gradient(135deg,#fff 50%,#fafbf8)}.mini-nav{height:22px;display:flex;justify-content:space-between;align-items:flex-start}.mini-mark{color:var(--green);font-family:Playfair Display,serif;font-weight:700;font-size:17px;line-height:1}.mini-menu{display:flex;gap:4px;padding-top:6px}.mini-menu i{width:11px;height:2px;background:#aeb4a8}.mini-content{margin:39px 0 37px 23px}.mini-kicker{display:flex;align-items:center;gap:7px;color:#848b7d;font-size:7px}.mini-kicker b{width:5px;height:5px}.mini-heading{display:block;margin-top:12px;font-family:Playfair Display,serif;font-size:34px;line-height:1.03;letter-spacing:-.04em;color:#30372d}.mini-heading span{color:#789267}.mini-lines{margin-top:12px;display:grid;gap:5px}.mini-lines i{display:block;width:178px;height:3px;border-radius:2px;background:#e9ece5}.mini-lines i:last-child{width:131px}.mini-button{margin-top:16px;display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border-radius:3px;color:#fff;background:#526e45;font-size:7px}.mini-footer{margin-top:auto;padding-top:9px;border-top:1px solid #eff0ec;display:flex;justify-content:space-between;color:#9ba094;font-size:6px}.floating-card{position:absolute;display:flex;align-items:center;color:#535a4d;background:#fff;border:1px solid #e8ebe4;border-radius:6px;box-shadow:0 11px 30px #344a2e13}.card-note{top:14%;right:5%;gap:9px;padding:10px 14px;font-size:10px;line-height:1.45;transform:rotate(5deg)}.note-mark{color:#849c75;font-size:19px}.card-progress{bottom:13%;left:0;width:196px;display:block;padding:13px 14px 11px;transform:rotate(-3deg)}.progress-top{display:flex;justify-content:space-between;color:#485043;font-size:9px;font-weight:600}.progress-top span:last-child{color:var(--green);font-family:DM Mono,monospace;font-size:8px}.progress-track{display:block;height:4px;margin:10px 0 8px;border-radius:4px;background:#edf0e9}.progress-track i{display:block;width:72%;height:100%;background:#8ca77b;border-radius:inherit}.progress-bottom{color:#90958c;font-size:8px}.spark{position:absolute;color:#8ca77b}.spark-one{top:21%;left:17%;font-size:18px}.spark-two{right:13%;bottom:21%;font-size:13px;color:#c2af77}.spark-three{top:32%;right:10%;font-size:11px;color:#c2af77}.art-caption{position:absolute;right:4%;bottom:3%;color:#8f9689;font-size:8px}.art-caption span{margin-right:8px;color:#b5bcad}.footer{min-height:79px;border-top:1px solid #e7e9e2}.footer-copy{color:#858a80;font-size:9px}.footer-copy span{padding-inline:5px;color:#91a584}.social-links{display:flex;gap:9px}.social-links a{display:grid;place-items:center;width:32px;height:32px;color:#72796e;border:1px solid #e4e7df;border-radius:50%;transition:color .2s,border-color .2s,background .2s}.social-links a:hover{color:var(--green);border-color:#aab9a1;background:#eef2e9}.page-index{position:absolute;right:0;bottom:31px;transform:translate(calc(100% + 18px));color:#a4a99f;font-size:8px;writing-mode:vertical-rl}@keyframes blink{to{visibility:hidden}}@media(max-width:950px){.page-shell{width:min(100% - 64px,700px)}.hero{grid-template-columns:1fr;gap:25px;padding-block:64px 45px}.hero-copy{padding-left:0}.artwork{min-height:490px}.page-index{display:none}}@media(max-width:560px){.page-shell{width:calc(100% - 40px)}.topbar{height:72px}.topbar-note{font-size:8px}.hero{padding-block:58px 42px;gap:13px}.eyebrow{font-size:9px}.page-shell h1{font-size:clamp(58px,16vw,76px);margin:22px 0 17px}.hero-description{font-size:14px}.launch-note{gap:8px;margin-top:26px;padding-right:10px;font-size:10px}.launch-state{font-size:9px}.artwork{min-height:380px;margin-inline:-8px}.artwork:before{width:310px;height:310px}.orbit-one{width:390px;height:390px}.orbit-two{width:445px;height:445px}.orbit-three{width:500px;height:500px}.browser-window{width:79%}.browser-bar{height:32px}.browser-page{min-height:253px;padding:14px 18px 10px}.mini-content{margin:29px 0 28px 15px}.mini-heading{font-size:28px}.mini-lines i{width:145px}.mini-lines i:last-child{width:105px}.card-note{right:1%;top:11%}.card-progress{bottom:9%;width:177px;left:1%}.art-caption{font-size:7px;bottom:0}.footer{min-height:70px}.footer-copy{max-width:205px;font-size:7px;line-height:1.8}.social-links{gap:5px}.social-links a{width:29px;height:29px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
