:root{--birthday-paper:#f4ecdf;--birthday-ink:#283239;--birthday-line:#d6c8b4;--birthday-red:#b86d56}.nav-actions{display:flex;align-items:center;gap:10px}.story-nav{left:44%;gap:24px}.story-nav__status{min-width:0}.edit-gift,.download-gift{background:transparent;border:0;color:var(--ivory);cursor:pointer;font:500 12px var(--sans);padding:10px 0;min-height:44px}.edit-gift{border:1px solid #d6a86a70;border-radius:999px;padding:0 15px}.edit-gift span{margin-left:10px}.edit-gift:hover{background:var(--amber);color:var(--night)}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,audio:focus-visible{outline:2px solid var(--amber);outline-offset:5px}.motion-control{min-height:44px}.motion-control svg{flex-shrink:0}.chapter__copy{pointer-events:auto;width:min(500px,39vw)}.chapter{min-height:135svh}.chapter__marker{top:25%}.chapter--final{min-height:145svh}.chapter--final h2{font-size:clamp(3.2rem,5vw,5rem);max-width:12ch}.birthday-eyebrow{display:block;color:var(--amber);font:500 10px/1.7 var(--sans);letter-spacing:.16em;text-transform:uppercase;margin-bottom:24px}.chapter .birthday-caption{font:400 11px/1.6 var(--sans);color:var(--ivory-muted);margin:24px 0 0}.chapter .sample-photo{font:400 10px/1.7 var(--sans);color:#c7c3bab5;margin:12px 0 0}.keepsake-button{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:19px;padding:0;background:none;border:0;border-bottom:1px solid #d6a86a5c;color:var(--amber);font:500 12px var(--sans);cursor:pointer}.keepsake-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4}.keepsake-button:hover{color:var(--ivory);border-color:var(--ivory)}.chapter .begin-story{margin-top:23px}.chapter-actions{display:flex;gap:20px;flex-wrap:wrap;align-items:center}.chapter-dock{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);z-index:21;display:flex;align-items:center;border:1px solid #d6a86a3d;border-radius:999px;background:#0d151def;padding:5px 12px;box-shadow:0 10px 30px #0002}.chapter-jump{display:flex;align-items:center;gap:10px;padding:11px 17px;min-height:44px;color:var(--ivory-muted);font:400 10px var(--sans);text-decoration:none;white-space:nowrap;transition:color .2s}.chapter-jump span:first-child{width:5px;height:5px;background:#75838c;border-radius:50%;flex-shrink:0}.chapter-jump[aria-current]{color:var(--amber)}.chapter-jump[aria-current] span:first-child{background:var(--amber);box-shadow:0 0 10px #d6a86a50}.chapter-jump:hover{color:var(--ivory)}.candle-tradition{display:flex;align-items:center;gap:16px;margin-top:23px}.birthday-candles{display:flex;align-items:flex-end;gap:11px;padding-top:21px;height:55px}.birthday-candle{display:block;position:relative;width:5px;height:30px;background:repeating-linear-gradient(35deg,#e6c29d 0,#e6c29d 4px,#b86d56 4px,#b86d56 8px);border-radius:2px}.birthday-candle:nth-child(even){height:24px}.birthday-candle i{position:absolute;top:-15px;left:-1px;width:7px;height:11px;border-radius:75% 0 70% 60%;background:#f9c87a;transform:rotate(-35deg);box-shadow:0 0 12px #edb96a50;transition:opacity .35s,transform .35s}.birthday-candles.blown i{opacity:0;transform:scale(0)}.wish-button{min-height:44px;border:1px solid var(--amber);border-radius:999px;background:var(--amber);padding:0 20px;color:var(--night);font:600 11px var(--sans);cursor:pointer}.wish-button:hover{background:#edc791}.chapter .wish-feedback{margin:11px 0 0;color:var(--amber);font:400 12px/1.5 var(--sans);min-height:18px}.chapter .closing-line{margin-top:24px;font-size:23px}.final-actions{display:flex;gap:23px;align-items:center;flex-wrap:wrap}.final-actions .begin-story,.final-actions .share-story{margin-top:15px}.final-actions .share-story{border:0;padding:0;background:none;color:var(--amber)}.final-actions .keepsake-button{margin-top:15px}.family-section{position:relative;background:#101a23;padding:110px max(28px,7vw) 100px;border-top:1px solid #d6a86a30;min-height:100svh}.family-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:0 60px;align-items:end;margin:0 auto 60px;max-width:1200px}.family-intro .birthday-eyebrow{grid-column:1/-1}.family-intro h2{font:500 clamp(48px,5.5vw,77px)/.95 var(--serif);letter-spacing:-.035em;margin:0}.family-intro h2 em{color:var(--amber);font-weight:500}.family-intro p{font:300 15px/1.8 var(--sans);color:var(--ivory-muted);margin:0}.family-notes{max-width:1200px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.family-envelope{position:relative;min-height:265px;background:#e8dcc5;border:1px solid #baaa8d;padding:30px;text-align:left;color:var(--birthday-ink);cursor:pointer;box-shadow:0 10px 30px #0002;transition:transform .3s var(--ease-out)}.family-envelope:before,.family-envelope:after{content:'';position:absolute;bottom:0;width:50%;height:53%;border-top:1px solid #b7a88d60;pointer-events:none}.family-envelope:before{left:0;transform:skewY(26deg);transform-origin:left bottom}.family-envelope:after{right:0;transform:skewY(-26deg);transform-origin:right bottom}.family-envelope:nth-child(1){transform:rotate(-2deg)}.family-envelope:nth-child(3){transform:rotate(2deg)}.family-envelope:hover{transform:translateY(-7px)}.family-envelope .birthday-eyebrow{color:#75543c;font-size:9px;position:relative;z-index:1}.family-envelope strong{font:500 italic 30px/1.2 var(--serif);display:block;max-width:90%;overflow-wrap:anywhere;position:relative;z-index:1}.letter-seal{position:absolute;bottom:23px;left:30px;width:42px;height:42px;border-radius:50%;background:#9b5744;color:#f4ecdf;display:grid;place-items:center;font:italic 18px var(--serif);z-index:1}.envelope-cue{position:absolute;bottom:32px;right:23px;font:400 10px var(--sans);z-index:1}.sample-disclosure{font:400 11px/1.8 var(--sans);text-align:center;color:#c7c3babf;margin:38px auto 0}.gift-footer{max-width:1200px;margin:85px auto 0;display:flex;gap:20px;align-items:center;justify-content:space-between;border-top:1px solid #d6a86a30;padding:25px 0}.gift-footer>span{font:400 11px var(--sans);color:var(--ivory-muted)}.gift-footer .download-gift:hover{color:var(--amber)}dialog{color:var(--ivory);width:min(610px,calc(100% - 28px));max-height:90svh;padding:40px;border:1px solid #d6a86a70;border-radius:4px;background:#17232d;box-shadow:0 25px 90px #0005}dialog::backdrop{background:#050b12ba;backdrop-filter:blur(4px)}.modal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.modal-top .birthday-eyebrow{margin:10px 0 0}.dialog-close{background:none;border:1px solid #d6a86a55;width:44px;min-width:44px;height:44px;border-radius:50%;font:300 26px var(--sans);cursor:pointer}.dialog-close:hover{background:#d6a86a15}dialog h2{font:500 48px/.97 var(--serif);letter-spacing:-.035em;margin:0 0 24px}dialog p{font:400 19px/1.75 var(--serif);white-space:pre-line;margin:0 0 28px;overflow-wrap:anywhere}.memory-signature{display:block;color:var(--amber);font:500 italic 22px/1.5 var(--serif);margin-top:25px}audio{width:100%;margin-top:10px}.note-dialog,.gift-editor{background:var(--birthday-paper);color:var(--birthday-ink);border-color:var(--birthday-line)}.note-dialog .birthday-eyebrow,.gift-editor .birthday-eyebrow,.note-dialog .memory-signature{color:#825936}.note-dialog h2{font-style:italic;font-size:54px}.note-dialog p{font-size:23px}.note-dialog .dialog-close,.gift-editor .dialog-close{border-color:var(--birthday-line)}body.dialog-open{overflow:hidden}.gift-editor{width:min(760px,calc(100% - 28px))}.gift-editor h2{font-size:57px;margin-bottom:18px}.gift-editor h2 em{color:#825936}.gift-editor .editor-intro{font:400 13px/1.8 var(--sans);white-space:normal;color:#566067;margin-bottom:25px}.gift-editor input,.gift-editor textarea{display:block;width:100%;min-height:46px;padding:12px;border:1px solid var(--birthday-line);border-radius:3px;background:#fffaf299;font:400 14px/1.6 var(--sans);color:var(--birthday-ink);margin-bottom:20px}.gift-editor textarea{resize:vertical}.gift-editor input[type=file]{font-size:12px;min-width:0}.gift-editor input::file-selector-button{font:500 11px var(--sans);padding:6px 9px;border:1px solid #bbae9b;background:#f1e6d3;color:var(--birthday-ink);margin-right:10px;cursor:pointer}.gift-editor label{display:block;font:500 12px/1.5 var(--sans);margin-bottom:8px}.editor-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.gift-editor fieldset{border:1px solid var(--birthday-line);padding:21px;margin:12px 0 26px}.gift-editor legend{padding:0 8px;font:500 italic 25px var(--serif)}.gift-editor small{display:block;font:400 10px/1.7 var(--sans);color:#62676a;margin:-10px 0 20px}.note-edit+.note-edit{border-top:1px solid var(--birthday-line);padding-top:25px}.editor-buttons{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:22px}.save-gift{background:#253a42;color:var(--birthday-paper);border:0;border-radius:3px;padding:15px 20px;min-height:48px;font:500 12px var(--sans);cursor:pointer}.save-gift:hover{background:#37515c}.gift-editor .download-gift{color:#825936;font-size:12px}.gift-editor #editorStatus{font:400 12px/1.7 var(--sans);color:#874b37;margin:10px 0;white-space:normal}.gift-toast{position:fixed;bottom:100px;left:50%;transform:translate(-50%,10px);z-index:150;background:var(--birthday-paper);color:var(--birthday-ink);border:1px solid #d6a86a50;border-radius:4px;padding:12px 18px;max-width:calc(100% - 36px);text-align:center;font:400 12px/1.7 var(--sans);opacity:0;transition:opacity .2s,transform .2s;pointer-events:none}.gift-toast.visible{opacity:1;transform:translate(-50%,0)}#birthdayConfetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:140}.birthday-piece{position:absolute;top:-30px;width:7px;height:12px;animation:birthday-fall 3s ease-in forwards}@keyframes birthday-fall{to{transform:translate(var(--drift),110vh) rotate(var(--spin));opacity:.4}}[hidden]{display:none!important}.no-script{padding:120px 30px;font-size:18px}
@media(max-width:1100px){.story-nav{left:36%;gap:18px}.wordmark{display:none}.chapter-jump{padding:10px 13px}.chapter h1,.chapter h2{font-size:clamp(54px,6.8vw,80px)}}
@media(max-width:900px){.story-nav{left:auto;right:18px;gap:14px}.nav-actions{gap:8px}.edit-gift{font-size:11px;padding:0 12px}.story-nav__status{font-size:11px}.chapter__sticky{padding-top:42vh;padding-bottom:100px;align-items:flex-end;min-height:100svh}.chapter__copy{width:min(620px,calc(100vw - 52px));padding-right:0}.chapter{min-height:140svh}.chapter__marker{top:28%}.chapter h1,.chapter h2{font-size:clamp(45px,10vw,63px);max-width:13ch;line-height:.93}.birthday-eyebrow{font-size:9px;margin-bottom:18px}.chapter p{margin-top:19px;font-size:13px;line-height:1.65;max-width:43ch}.chapter__era{font-size:17px;margin-top:17px}.chapter .birthday-caption{font-size:10px;margin-top:16px}.chapter .sample-photo{font-size:9px;margin-top:10px}.keepsake-button{font-size:11px;margin-top:13px}.chapter .begin-story{font-size:10px;margin-top:16px;min-height:44px}.chapter-actions{gap:18px}.chapter--final .chapter__sticky{padding-top:39vh}.chapter--final h2{font-size:clamp(44px,10vw,61px);max-width:14ch}.chapter--final{min-height:150svh}.chapter .closing-line{font-size:24px;margin-top:19px}.candle-tradition{margin-top:14px}.final-actions{gap:15px}.final-actions .begin-story,.final-actions .share-story{font-size:10px}.chapter-dock{bottom:16px;max-width:calc(100% - 26px);padding:4px 8px;width:fit-content}.chapter-jump{min-width:45px;padding:10px;justify-content:center}.chapter-jump span:nth-child(2){display:none}.chapter-jump span:first-child{width:6px;height:6px}.chapter-jump:after{content:attr(data-number);font-size:10px}.family-section{padding:75px 26px 85px}.family-intro{display:block;margin-bottom:42px}.family-intro h2{font-size:55px}.family-intro p{font-size:13px;margin-top:24px}.family-notes{grid-template-columns:1fr;gap:25px}.family-envelope{min-height:230px;padding:28px}.family-envelope strong{font-size:34px}.sample-disclosure{font-size:10px}.gift-footer{margin-top:55px;flex-wrap:wrap}.gift-footer .wordmark{display:block}.gift-footer .download-gift{width:100%;text-align:left;font-size:12px}.gift-footer>span{font-size:10px}}
@media(max-width:520px){.motion-control{width:44px;justify-content:center}.back-link{top:24px;min-height:44px;align-items:flex-start}.story-nav{top:17px}.chapter__sticky{padding-inline:20px}.chapter__copy{width:100%;max-width:calc(100vw - 40px)}.chapter h1,.chapter h2{font-size:clamp(43px,12.5vw,55px)}.chapter--final h2{font-size:clamp(40px,11.5vw,51px)}.chapter p{font-size:12px;line-height:1.7}.chapter .closing-line{font-size:22px}.chapter__era{font-size:16px}.chapter-actions{gap:13px}.chapter .sample-photo{max-width:38ch}.family-section{padding-inline:20px}.family-intro h2{font-size:48px}dialog{padding:26px;max-height:92svh}dialog h2{font-size:39px}dialog p{font-size:19px}.note-dialog h2{font-size:45px}.note-dialog p{font-size:21px}.modal-top .birthday-eyebrow{font-size:8px;max-width:24ch}.gift-editor h2{font-size:48px}.editor-pair{grid-template-columns:1fr;gap:0}.gift-editor fieldset{padding:16px}.gift-editor legend{font-size:23px}.editor-buttons{flex-direction:column;align-items:stretch;gap:8px}.gift-editor .download-gift{min-height:44px}.gift-toast{bottom:88px}.wish-button{padding:0 17px;font-size:10px}.candle-tradition{gap:16px}.final-actions{gap:14px}.birthday-eyebrow{letter-spacing:.12em}}
@media(prefers-reduced-motion:reduce){.birthday-piece{display:none}.chapter__copy{transition:none}.gift-toast{transition:none}}
@media(max-width:900px){.chapter--final{min-height:0}.chapter--final .chapter__sticky{position:relative;display:block;min-height:100svh;padding-top:58vh;padding-bottom:100px;background:linear-gradient(transparent 24%,#091119ee 43%,#091119 67%)}.chapter--final .chapter__copy{max-width:620px}.chapter--final .final-actions{gap:15px}.chapter--final .chapter__marker{top:18%}}
