@font-face{font-family:Birthday Handwriting;src:url('assets/birthday-handwriting.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
/* Local font keeps the hand-lettered style available when opened offline. */
html,body,button,a,h1,h2,p,span,.launch h2,.journey-caption{font-family:"Birthday Handwriting",cursive;font-weight:400;font-synthesis:none}
.brand{font-size:14px;letter-spacing:1px}
.eyebrow{font-size:13px;letter-spacing:1.4px}
h1{font-size:clamp(38px,4vw,60px);line-height:1.35;letter-spacing:.3px}
.description{font-size:18px;line-height:1.9;letter-spacing:.3px}
.primary{font-size:17px;letter-spacing:.6px}
.quiet{font-size:14px;letter-spacing:.3px}
#message{font-size:14px;line-height:1.8;letter-spacing:.2px;max-width:430px}
.cake-caption{font-size:12px;letter-spacing:2px}
footer{font-size:12px;letter-spacing:.4px}footer span:last-child{letter-spacing:.4px}
.launch h2{font-size:clamp(40px,5.5vw,78px);line-height:1.4;letter-spacing:1px}
.launch .eyebrow{font-size:14px;letter-spacing:2px}
.launch>p:not(.eyebrow){font-size:17px;line-height:1.8;letter-spacing:.4px}
.skip-journey{font-size:14px}
.journey-caption{font-size:22px;letter-spacing:.6px}
@media(max-width:760px){.brand{font-size:11px;letter-spacing:.3px;max-width:40%}.header-actions{gap:5px}.header-actions .quiet{font-size:11px;padding:7px 9px}.eyebrow{font-size:11px;letter-spacing:.7px}h1{font-size:clamp(30px,8.8vw,43px);line-height:1.35}.description{font-size:16px;line-height:1.8}.primary{font-size:16px}.quiet{font-size:12px}#message{font-size:13px;max-width:320px}.cake-caption{font-size:11px;letter-spacing:1.2px}footer{font-size:10px;gap:15px;line-height:1.6}footer span{max-width:49%}.launch h2{font-size:clamp(32px,9vw,46px);letter-spacing:.3px}.launch .eyebrow{font-size:12px;letter-spacing:1px}.launch>p:not(.eyebrow){font-size:15px;letter-spacing:.2px;max-width:290px}.journey-caption{font-size:18px;letter-spacing:.3px}.skip-journey{font-size:12px}}
.wish-form{margin-top:20px;max-width:480px;text-align:left}.wish-form label{display:block;color:#e8cfa1;font-size:17px;margin-bottom:12px}.wish-entry{display:flex;align-items:flex-end;gap:12px}.wish-entry textarea{flex:1;min-width:0;width:100%;resize:vertical;min-height:130px;max-height:320px;border:1px solid #b8a1e94d;border-radius:10px;background:#15172cbf;color:#f8f0df;padding:16px;font-family:"Birthday Handwriting","Microsoft YaHei",sans-serif;font-size:17px;line-height:1.7;box-shadow:inset 0 1px 15px #05071330}.wish-entry textarea::placeholder{color:#8f8aab}.wish-entry textarea:focus{outline:2px solid #e8cfa18c;outline-offset:3px}.wish-entry textarea[aria-invalid=true]{border-color:#edb0ac}.wish-done{min-width:82px;padding:14px 18px;flex:none}.wish-error{color:#efbfbb;font-size:13px;margin:8px 0 0;min-height:20px}.wish-note{margin:22px 0 0;padding:18px 20px;max-width:480px;max-height:250px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;font-family:"Birthday Handwriting","Microsoft YaHei",sans-serif;font-size:18px;line-height:1.8;color:#f4e0b8;border-left:2px solid #dcb877;border-radius:0 8px 8px 0;background:#b49be40c}.wish-note:focus{outline:1px solid #c2a3ec45;outline-offset:4px}@media(max-width:760px){.wish-form{margin:22px auto 0;width:100%;max-width:390px}.wish-form label{font-size:16px}.wish-entry{gap:10px}.wish-entry textarea{padding:12px;font-size:16px;min-height:130px}.wish-done{min-width:66px;padding:12px 14px}.wish-note{margin:22px auto 0;font-size:16px;text-align:left}}
