:root{--paper:#fcf8ef;--ink:#433c35;--coral:#bb513e;--rose:#f2d6ce;--line:#e7dfd2;--sage:#e7eadf}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'Trebuchet MS',Arial,sans-serif}header,main,footer{max-width:1180px;margin:auto;padding:0 32px}header{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}a{color:inherit}.brand{text-decoration:none;font: bold 21px Georgia,serif;letter-spacing:-.6px}.brand-icon{background:var(--coral);color:white;display:inline-grid;place-items:center;width:35px;height:35px;border-radius:50%;margin-right:10px}.brand-dot{color:var(--coral)}.header-note{font-size:12px;color:#7f766b}.hero{display:grid;grid-template-columns:1.12fr 1fr;align-items:center;gap:35px;padding:76px 0 70px}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:bold;color:var(--coral)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:normal;line-height:1.13;letter-spacing:-1.8px}h1{font-size:clamp(38px,4.4vw,57px);margin:22px 0}em{color:var(--coral);font-weight:normal}h2{font-size:36px}h3{font-size:17px;line-height:1.4}.lead{max-width:460px;color:#776c61;font-size:16px;margin-bottom:30px}.small{font-size:11px;color:#82786d;line-height:1.7;margin-top:16px}.button,button{display:inline-flex;justify-content:center;align-items:center;gap:18px;border:1px solid var(--coral);background:var(--coral);color:#fff;border-radius:7px;padding:14px 22px;font:600 13px 'Trebuchet MS',sans-serif;cursor:pointer;text-decoration:none;min-height:46px}button:disabled{opacity:.5;cursor:wait}.button:hover,button:hover{filter:brightness(.95)}.illustration{position:relative;height:355px;background:#f3e8da;border-radius:50% 50% 43% 45%;margin:8px 18px;display:flex;justify-content:center;align-items:center}.cake{position:absolute;top:145px;background:#cc7762;width:240px;height:123px;border-radius:48% 48% 12% 12%;box-shadow:inset 0 -14px 0 #b96552}.cake:before{content:'';position:absolute;width:240px;height:69px;border-radius:50%;background:#fce6d8;top:-3px;border:5px solid #eebca6}.cake span{position:absolute;top:79px;left:0;width:100%;text-align:center;color:#fff0e3;font:italic 14px Georgia}.icing{position:absolute;top:37px;left:9px;width:222px;height:35px;background:#fce6d8;border-radius:0 0 50% 50%;z-index:1}.candle{position:absolute;top:88px;width:12px;height:70px;background:repeating-linear-gradient(45deg,#e4a486,#e4a486 5px,#fff2dd 5px,#fff2dd 10px);z-index:2}.candle i{position:absolute;top:-29px;left:0;width:13px;height:25px;border-radius:90% 0 70% 40%;background:#e8ad55;transform:rotate(-15deg)}.plate{position:absolute;top:258px;width:295px;height:22px;background:#d4c5b3;border-radius:50%;z-index:0}.floating{position:absolute;background:#fffcf6;padding:14px 18px;box-shadow:0 8px 24px #59453912;border:1px solid #eadfcf;border-radius:9px;font-size:12px;z-index:3;transform:rotate(-5deg)}.floating.top{top:27px;left:-9px}.floating.bottom{bottom:16px;right:-16px;display:flex;align-items:center;gap:12px;transform:rotate(4deg)}.floating b{letter-spacing:4px;color:var(--coral);font-size:17px}.play-circle{display:grid;place-items:center;background:var(--rose);color:var(--coral);border-radius:50%;width:35px;height:35px}.spark{position:absolute;color:var(--coral);font-size:37px}.one{top:50px;right:42px}.two{bottom:36px;left:30px;font-size:27px}.steps{border-block:1px solid var(--line);padding:35px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.steps span{font-size:10px;letter-spacing:1.6px;color:var(--coral)}.steps h3{margin:10px 0 6px}.steps p{font-size:13px;color:#82766a;margin:0;max-width:260px}.create-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:70px;padding:75px 0 85px}.create-grid>div{padding-top:15px}.create-grid p{color:#82766a;font-size:14px}.note{font:italic 19px Georgia;margin-top:35px;padding-left:18px;border-left:2px solid #ddac91}.panel{background:#fffdf8;border:1px solid var(--line);padding:30px;border-radius:14px;box-shadow:0 8px 35px #5f4b3310}label{display:block;font-size:12px;font-weight:bold;margin-bottom:18px}input,textarea{width:100%;padding:12px;border:1px solid #ded7cb;background:#fffefa;border-radius:5px;font:14px 'Trebuchet MS',sans-serif;color:var(--ink);margin-top:7px}input:focus,textarea:focus{outline:2px solid #c47a61;outline-offset:2px}textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.panel form>button,.panel>button,.panel>form>button{width:100%}.muted{font-weight:normal;color:#8b8175}footer{border-top:1px solid var(--line);padding-top:28px;padding-bottom:28px;display:flex;align-items:center;justify-content:space-between;gap:20px}footer p,footer>a:last-child{font-size:11px;margin:0;color:#817669}footer .brand{font-size:17px}.card-heading{text-align:center;padding:65px 0 40px}.card-heading h1{max-width:850px;margin:15px auto;overflow-wrap:anywhere}.recipient{color:var(--coral);font-size:14px}.dedication{max-width:600px;margin:20px auto;color:#776c61;overflow-wrap:anywhere}.narrow{max-width:590px;margin:0 auto 65px}.narrow h2{font-size:30px}.recorder{text-align:center;background:var(--sage);padding:25px 15px;border-radius:10px;margin-bottom:20px}.recorder p{font-size:12px;margin:12px 0 0}.recorder audio{margin-top:15px}.round-record{border-radius:30px}.check{display:flex;gap:10px;align-items:flex-start;font-weight:normal}.check input{width:auto;margin-top:5px}.secondary{background:transparent;border-color:#d9cbb9;color:var(--ink)}.text-button{background:transparent;border:0;padding:8px;color:var(--ink);min-height:35px}.danger{color:#a13d30}.admin-layout,.listen-layout{display:grid;grid-template-columns:365px 1fr;gap:40px;margin-bottom:65px}.admin-layout aside{align-self:start}.admin-layout input{font-size:11px}.admin-layout label button{margin-top:8px;width:100%}.admin-layout h2,.listen-layout h2{font-size:29px}.message{padding:22px;border:1px solid var(--line);background:#fffdf8;border-radius:12px;margin-bottom:15px;break-inside:avoid}.message h3{margin-bottom:12px;overflow-wrap:anywhere}.message-top{display:flex;align-items:start;justify-content:space-between;gap:10px}.badge{font-size:10px;white-space:nowrap;color:#7c6855;background:#f1e8db;border-radius:20px;padding:3px 10px}audio{width:100%;height:45px}.inline-form{display:flex;gap:10px;margin-top:12px}.empty{text-align:center;padding:35px;background:#f4eee3;border-radius:12px;margin-bottom:25px}.empty h3{margin:10px 0}.empty p{font-size:13px;margin-bottom:0}.gift-card{align-self:start;min-height:360px;background:var(--rose);border:8px solid #fffdf8;outline:1px solid var(--line);text-align:center;padding:36px 22px;border-radius:80px 80px 12px 12px}.gift-heart{font:70px Georgia;color:var(--coral)}.gift-card p{font:30px/1.3 Georgia}.gift-card>span:last-of-type{font-size:10px;letter-spacing:2px}.print-url{font-size:9px;overflow-wrap:anywhere;margin-top:25px}.download{display:block;font-size:11px;color:var(--coral);margin-top:10px}.alert,.success{padding:18px;border-radius:8px;background:#f4dcd1;margin:20px 0}.success{background:var(--sage)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:8px;padding:10px 24px;display:none;z-index:20}body:has(#toast:not(:empty)) #toast{display:block}[hidden]{display:none!important}@media(max-width:760px){header,main,footer{padding-left:22px;padding-right:22px}header{height:80px}.header-note{display:none}.hero{grid-template-columns:1fr;padding-top:40px;gap:15px}.hero h1{font-size:43px}.illustration{max-width:400px;width:90%;margin:15px auto;height:330px}.steps{gap:25px;grid-template-columns:1fr}.steps article{display:grid;grid-template-columns:80px 1fr;column-gap:15px}.steps p{grid-column:2}.steps h3{margin-top:0}.create-grid,.admin-layout,.listen-layout{grid-template-columns:1fr;gap:28px}.create-grid{padding-top:45px}.create-grid h2{font-size:34px}.panel{padding:23px}.form-row{grid-template-columns:1fr;gap:0}footer{align-items:start;flex-direction:column;gap:9px}.card-heading{padding-top:40px}.card-heading h1{font-size:40px}.gift-card{max-width:390px;width:100%;margin:auto}.brand{font-size:19px}}@media print{header,footer,.listen-layout>section,.card-heading,#toast{display:none}.listen-layout{display:block}.gift-card{max-width:400px;margin:40px auto;background:white;border:2px solid #333;outline:0}body{background:white}.gift-card p{color:black}}

#gift-qr{margin:20px auto 0;background:white;width:fit-content;padding:12px}#gift-qr svg{display:block;width:156px;height:156px}
