@font-face{font-family:Mali;src:url('fonts/Mali-Medium.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Mali;src:url('fonts/Mali-SemiBold.ttf') format('truetype');font-weight:600 700;font-display:swap}
@font-face{font-family:Itim;src:url('fonts/Itim-Regular.ttf') format('truetype');font-weight:400 700;font-display:swap}
:root{--font:Itim,Tahoma,sans-serif;--hand:Mali,Itim,Tahoma,sans-serif;--cream:#fff8f2;--paper:#fffcf8;--pink:#d38b9d;--pink-dark:#ab596f;--ink:#674d49;--muted:#9d7f76;--line:#eedbd1}
body{background-color:var(--cream);background-image:radial-gradient(ellipse at 8% 12%,#f7dce066,transparent 40%),radial-gradient(ellipse at 96% 65%,#f2e6cc70,transparent 35%),radial-gradient(#d8bbaa38 .7px,transparent .7px);background-size:auto,auto,9px 9px;font-size:16px}.site-header{border-bottom-style:dashed;padding-top:22px;padding-bottom:20px}.brand{font-family:var(--hand);font-size:18px;font-weight:600}.brand-small{font-family:Itim;font-size:12px}.brand-flower{filter:drop-shadow(0 2px 0 #b7687c);animation:flower-turn 20s ease-in-out infinite}.header-right .text-button{font-size:14px}.prototype-tag{border-style:dashed;border-radius:20px;font-size:9px;color:#b28580;letter-spacing:1.5px;padding:7px 11px}.motion-toggle{height:34px;width:34px;border:1px solid #e3bbb9;border-radius:50%;background:linear-gradient(#fffefa,#fae7e5);box-shadow:0 3px 0 #e1bfb8,inset 0 1px white;font:15px monospace;color:#ae6a7b}.header-right{gap:17px}.intro{position:relative;max-width:850px;margin:35px auto 28px}.intro h1{font-family:var(--hand);font-size:37px;font-weight:600;color:#6d514d;letter-spacing:-1.5px;line-height:1.7;text-shadow:0 2px 0 #fff}.intro p{font-size:16px;color:#aa827b}.intro .eyebrow{font-size:10px;color:#b58b83}.intro-doodle{position:absolute;color:#d59da2;font-family:var(--hand);font-size:45px;pointer-events:none;animation:doodle-float 5s ease-in-out infinite}.doodle-left{left:6%;top:44px;transform:rotate(-16deg)}.doodle-right{right:5%;top:30px;font-size:38px;animation-delay:-2s}.steps{max-width:920px;position:relative;margin-bottom:36px}.step{font-size:14px}.step-number{height:30px;width:30px;background:#f5e9e2;border:1px solid #eed6cb;box-shadow:0 3px 0 #e8d2c7;font-size:11px}.step.active .step-number{background:#c08091;border-color:#b87889;box-shadow:0 3px 0 #985d72,0 0 0 5px #f6e3df}.step.done .step-number{box-shadow:0 3px 0 #d3ddc8}.workspace{gap:42px}.preview-panel{border-radius:23px;background:linear-gradient(145deg,#fffdfa,#fff8f0);border:2px solid #fffdfa;outline:1px solid #e9d5c9;padding:17px 17px 0;box-shadow:0 6px 0 #e8d1c3,0 15px 30px -15px #b8877652,inset 0 0 0 1px #eee0d5;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s;transform-style:preserve-3d;isolation:isolate}.paper-tape{position:absolute;top:-11px;left:calc(50% - 34px);width:68px;height:24px;background:repeating-linear-gradient(90deg,#e8c4b684 0 3px,#edd1bd99 3px 8px);transform:rotate(-5deg) translateZ(5px);border-left:2px dotted #fff8; border-right:2px dotted #fff8;z-index:4;pointer-events:none}.preview-topline{font-size:12px;padding-bottom:10px}.live-dot{box-shadow:0 0 0 3px #dce6cf80}.scene{border-radius:13px;box-shadow:inset 0 2px 8px #ad7e6d17,inset 0 0 0 1px #e8d4c566;background-color:#f6e6df;background-size:21px 21px}.scene-garden{background-color:#e9efdf}.scene-stamp{color:#ba8c7e;font-size:23px;z-index:3}.doll-name-tag{font-family:var(--hand);font-size:12px;box-shadow:0 3px 0 #d8bbae,0 5px 7px #b2816820;border-radius:6px;background:#fff8ed;transform:rotate(-3deg);padding:5px 18px}.preview-caption{font-size:13px;padding-top:16px;padding-bottom:5px}.gift-summary{font-size:12px;padding-bottom:19px;margin-top:7px}.doll-play-controls{display:flex;align-items:center;justify-content:center;gap:8px;margin:7px 0 0}.doll-play-controls button{border:1px solid #e5c8bd;background:linear-gradient(#fffaf5,#f9eee4);box-shadow:0 3px 0 #e6ccc0;border-radius:20px;min-height:33px;padding:5px 14px;font-size:13px;transition:transform .2s,background .2s}.doll-play-controls button:hover{transform:translateY(-2px);background:#fae7e5}.doll-play-controls button span{color:#bc7a89;margin-left:5px}.editor-panel{padding-top:5px}.editor-heading h2{font-family:var(--hand);font-size:27px;font-weight:600;color:#74554e;margin-top:8px}.editor-heading p{font-size:14px;color:#ac877d}.editor-heading .eyebrow{font-size:9px;letter-spacing:1.7px}.section-flower{color:#d5a3ab;animation:flower-turn 25s ease-in-out infinite}.animal-grid{gap:13px}.animal-card,.item-card,.flower-card{background:linear-gradient(145deg,#fffefa,#fff3eb);border:1px solid #e4c7b8;border-bottom-width:2px;box-shadow:0 4px 0 #e9d2c5,0 7px 12px -8px #b78c7970,inset 0 1px 0 #fff;border-radius:13px;transform:perspective(650px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:transform .3s cubic-bezier(.2,.8,.2,1),background .2s,box-shadow .2s;isolation:isolate}.animal-card::after,.item-card::after,.flower-card::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,0%),#fff9,transparent 65%);opacity:0;transition:opacity .2s;z-index:-1}.tilting::after{opacity:1}.animal-card canvas,.item-card canvas,.flower-card canvas{transform:translateZ(15px);filter:drop-shadow(0 4px 2px #9e7c5422);pointer-events:none}.animal-card strong{font-family:var(--hand);font-weight:600;font-size:13px}.animal-card small{font-size:11px;color:#b08a7c}.animal-card{padding:12px 5px 13px}.animal-card.selected,.item-card.selected,.flower-card.selected{background:linear-gradient(150deg,#fff5f2,#f6dbde);border-color:#c98898;box-shadow:0 4px 0 #d9a3a9,0 10px 16px -12px #a35a7377,inset 0 2px #fff6}.selected-check{box-shadow:0 2px 0 #af687e;background:#c58396;width:18px;height:18px;font-size:10px;transform:translateZ(20px)}.animal-card:hover{transform:perspective(650px) rotateX(var(--rx,-3deg)) rotateY(var(--ry,3deg)) translateY(-3px)}.little-note{border-radius:13px;border-color:#dfbfb3;background:#fff2e488;font-size:12px;transform:rotate(2deg)}.little-note span{font-size:32px;animation:little-heart 3s ease-in-out infinite}.field label,.field-label{font-size:15px;margin-bottom:9px}.field label small,.field-label small{font-size:12px}.field{margin-top:24px}input[type=text],input[type=url],textarea{font-size:15px;border-radius:11px;padding:12px 14px;border-color:#e6cebf;background:linear-gradient(#fffaf4,#fffdfa);box-shadow:inset 0 2px 3px #bb927017;transition:box-shadow .2s,border-color .2s}input:focus,textarea:focus{outline-color:#d89aa9;box-shadow:0 0 0 4px #f1d4dc55}.swatch{width:30px;height:30px;box-shadow:0 2px 0 #c6a699,0 0 0 1px #dec7b6}.color-hint{font-size:12px}.custom-color{width:32px;height:32px}.editor-actions{border-top-style:dashed;margin-top:27px;padding-top:22px}.primary-button{background:linear-gradient(#cf8c9e,#bb758b);border-color:#b16b82;border-radius:12px;font-size:15px;min-height:48px;box-shadow:0 5px 0 #985a71,0 8px 16px -10px #a2596c,inset 0 1px #f5c9d2;font-family:var(--hand);font-weight:600;padding:12px 23px;transition:transform .2s,box-shadow .2s}.primary-button:hover{background:linear-gradient(#d69bae,#c17c91);transform:translateY(-2px);box-shadow:0 7px 0 #985a71,0 12px 20px -10px #a2596c,inset 0 1px #f5c9d2}.primary-button:active{transform:translateY(3px);box-shadow:0 2px 0 #985a71}.secondary-button{font-size:14px;border-radius:10px;border-color:#e3c6b8;background:linear-gradient(#fffcf8,#faede3);box-shadow:0 3px 0 #e6ccc0;min-height:45px}.back-button{font-size:13px}.save-status{font-size:11px}.site-footer{font-size:12px;margin-top:34px}.site-footer .subtle{font-size:12px}.tab-row{border-radius:12px;padding:5px;background:#eddbd166;box-shadow:inset 0 2px 2px #b8957c15}.tab{font-size:14px;border-radius:8px}.tab.active{box-shadow:0 2px 0 #e4c8ba}.item-card{position:relative;min-height:90px}.item-card strong{font-size:14px;font-weight:400}.item-card small{font-size:11px}.item-card canvas{width:62px;height:72px}.flower-card{font-size:13px;min-height:100px}.flower-meaning{border:1px dashed #e1c6b5;background:#faf0e3;font-size:12px;border-radius:10px;padding:11px 13px}.helper{font-size:12px}.flower-meaning .helper{font-size:10px}.song-hint{font-size:12px;border:1px dashed #dcc7b3;border-radius:10px}.field-error{font-size:13px}.review-note,.recipient-letter{background:linear-gradient(140deg,#fffefa,#fff6eb);border-color:#e4c8b8;box-shadow:0 5px 0 #e8d2c2,0 12px 20px -15px #a5806b80,inset 0 0 0 5px #fffaf4;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s;border-radius:16px}.review-note{padding:23px;font-family:var(--hand);font-size:14px}.review-note h3{font-family:var(--hand);font-size:19px}.review-from,.review-to{font-size:13px}.chip{font-size:12px;border-radius:7px;background:#fff5ec}.scene-option{font-size:13px;border-radius:8px;box-shadow:0 2px 0 #e6d0c1}.scene-option.selected{background:linear-gradient(#fff2ee,#f5dce0)}.send-title{font-family:var(--hand);font-size:25px}.send-subtitle{font-size:14px}.prototype-notice{font-size:12px}.link-box{border-radius:10px}.link-box button{font-size:13px}.recipient h1{font-family:var(--hand);font-weight:600;font-size:32px}.recipient-intro{font-size:16px;line-height:1.9}.recipient-foot{font-family:var(--hand);font-size:12px;color:#b08b7c}.recipient .preview-panel{margin-top:27px}.recipient-letter{padding:28px;margin-top:28px}.recipient-letter h2{font-family:var(--hand);font-size:21px;font-weight:600}.recipient-letter p{font-family:var(--hand);font-size:15px}.recipient-letter .to,.recipient-letter .from{font-size:13px}.song-card{border-radius:13px;background:linear-gradient(135deg,#fbebe6,#f5e6d8);border-color:#e4c8ba;box-shadow:0 3px 0 #e7d0c2;margin-top:25px}.song-card strong{font-size:15px}.song-card small{font-size:12px}.love-response{font-size:14px;box-shadow:0 3px 0 #e4b9c1;transition:transform .25s}.love-response:hover{transform:scale(1.04)}.preview-banner{font-size:12px;border-radius:9px;background:#f1e4d8;border:1px dashed #ddc3af}.preview-banner button{font-size:12px}.confetti-burst{position:absolute;top:45%;left:50%;z-index:30;pointer-events:none;perspective:500px}.confetti-burst i{position:absolute;width:7px;height:9px;background:var(--color);border-radius:2px;opacity:0;animation:confetti-fly 1.7s var(--delay) cubic-bezier(.2,.65,.35,1) both}.confetti-burst i:nth-child(3n){width:10px;height:10px;clip-path:polygon(0 0,40% 0,50% 20%,60% 0,100% 0,100% 55%,50% 100%,0 55%)}.recipient{position:relative}.recipient>.confetti-burst{top:360px}.fade-in{animation:soft-arrive .65s cubic-bezier(.17,.8,.22,1) both}.animal-card,.item-card,.flower-card{animation:card-arrive .6s cubic-bezier(.16,1.25,.3,1) backwards;animation-delay:calc(var(--card-index,0)*55ms)}.scene .deco{animation:doodle-float 4s ease-in-out infinite}.scene .star-two{animation-delay:-2s}.scene .heart-two{animation-delay:-1.5s}.pixel-cloud{animation:cloud-drift 8s ease-in-out infinite}.cloud-two{animation-delay:-4s}.intro .tiny-pixel-heart{display:inline-block;animation:little-heart 3s ease-in-out infinite}.editor-panel .wide{margin-top:16px}
/* Tactile envelope: folded paper, a hinged flap and a letter that slides out. */
.gift-theatre{height:270px;max-width:380px;margin:4px auto 0;position:relative;perspective:1000px;display:flex;align-items:center;justify-content:center;isolation:isolate}.gift-floor{position:absolute;bottom:21px;left:calc(50% - 100px);height:22px;width:200px;border-radius:50%;background:radial-gradient(ellipse,#a5755a33,transparent 72%);filter:blur(4px);animation:shadow-breathe 4s ease-in-out infinite}.theatre-spark{position:absolute;font-family:var(--hand);font-size:25px;color:#cfa079;animation:doodle-float 4s ease-in-out infinite}.theatre-spark.one{top:27px;left:20px}.theatre-spark.two{top:55px;right:25px;color:#d18d9e;font-size:35px;animation-delay:-2s}.theatre-spark.three{bottom:28px;right:36px;font-size:16px;color:#c8969b}.envelope-3d{position:relative;width:248px;height:159px;transform:rotate(-5deg) rotateY(-10deg);transform-style:preserve-3d;animation:envelope-idle 4.5s ease-in-out infinite}.envelope-back{position:absolute;inset:0;border:1px solid #cba592;border-radius:8px;background:linear-gradient(150deg,#eed3b8,#e9c7b0);box-shadow:4px 6px 0 #d4ae96,8px 15px 25px #a5755a24}.envelope-letter{position:absolute;left:15px;right:15px;bottom:9px;height:143px;border:1px solid #e0c6ac;border-radius:5px;background:linear-gradient(#fffdf4,#fff6e9);padding:24px 20px;text-align:left;transform:translateZ(2px);box-shadow:0 -3px 12px #a8816414}.envelope-letter .letter-mini-heart{color:#c78298;font-size:24px}.letter-mini-line{display:block;background:#ead4c2;height:3px;border-radius:2px;margin:9px 0;width:90%}.letter-mini-line.short{width:64%}.envelope-front{position:absolute;inset:0;border-radius:7px;transform:translateZ(5px);background:linear-gradient(28deg,#e9c5ab 0 49.5%,transparent 50%),linear-gradient(-28deg,#f1d8bf 0 49.5%,transparent 50%);clip-path:polygon(0 0,50% 48%,100% 0,100% 100%,0 100%);border-bottom:2px solid #cda68f}.envelope-bottom{position:absolute;inset:0;border-radius:7px;background:linear-gradient(155deg,#f3d8bd,#ecc9af);clip-path:polygon(0 100%,50% 40%,100% 100%);transform:translateZ(6px)}.envelope-flap{position:absolute;top:0;left:0;width:100%;height:89px;transform-origin:50% 0;transform:translateZ(9px) rotateX(0deg);transform-style:preserve-3d;z-index:4}.flap-front,.flap-back{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 100%);backface-visibility:hidden}.flap-front{background:linear-gradient(155deg,#fff0d9,#edcdb2);filter:drop-shadow(0 2px 0 #c9a18a)}.flap-back{background:#e7c5ac;transform:rotateY(180deg)}.wax-seal{position:absolute;top:65px;left:calc(50% - 22px);width:44px;height:44px;border-radius:45% 52% 46% 51%;background:radial-gradient(circle at 35% 25%,#df9aaa,#bd7188);border:2px solid #bd7486;box-shadow:0 3px 0 #a66279,inset 0 0 0 4px #e5a8b450,0 4px 9px #7e334329;color:#ffe9dc;display:grid;place-items:center;font:23px Georgia,serif;z-index:6;transform:translateZ(15px)}.envelope-stamp{position:absolute;bottom:17px;left:17px;z-index:7;color:#bc8d76;transform:translateZ(10px);font-size:9px;letter-spacing:2px}.opening .envelope-3d{animation:envelope-ready .35s ease both}.opening .wax-seal{animation:seal-pop .38s ease forwards}.opening .envelope-flap{animation:flap-open .65s .22s cubic-bezier(.3,.1,.2,1) forwards}.opening .envelope-letter{animation:letter-rise .78s .46s cubic-bezier(.16,.8,.2,1) forwards}.opening .envelope-stamp{opacity:.4}.gift-opening-status{font-size:12px;font-family:var(--hand);color:#bb8791;min-height:24px;margin:0}.recipient .open-gift-button{margin-top:20px}.envelope-theatre.opening .theatre-spark{animation:little-heart .6s infinite}
/* Actual six-face CSS box, with a separately hinged lid and satin ribbon. */
.box-theatre{height:280px}.present-3d{position:relative;width:170px;height:140px;transform-style:preserve-3d;transform:rotateX(-17deg) rotateY(-25deg);animation:present-idle 4s ease-in-out infinite}.box-face{position:absolute;border:1px solid #cb8a98;backface-visibility:hidden}.box-front,.box-back{width:170px;height:140px;left:0;top:0}.box-front{transform:translateZ(75px);background:linear-gradient(135deg,#efbfc5,#dda1b0);box-shadow:inset 0 2px #fff5}.box-back{transform:rotateY(180deg) translateZ(75px);background:#d89baa}.box-left,.box-right{width:150px;height:140px;left:10px;top:0;background:linear-gradient(#dfa9b6,#d18b9f)}.box-right{transform:rotateY(90deg) translateZ(85px)}.box-left{transform:rotateY(-90deg) translateZ(85px)}.box-bottom{width:170px;height:150px;left:0;top:-5px;transform:rotateX(-90deg) translateZ(65px);background:#cb8c9e}.box-front::before,.box-back::before{content:'';position:absolute;left:calc(50% - 13px);width:26px;height:100%;background:linear-gradient(90deg,#a6637c,#cb8c9f 35%,#b6758b 70%,#a6637c);box-shadow:inset 1px 0 #f0b5c366}.box-left::before,.box-right::before{content:'';position:absolute;left:calc(50% - 12px);width:24px;height:100%;background:#b77a90}.box-heart{position:absolute;left:19px;top:83px;color:#fff1df;font-size:24px;transform:rotate(-13deg)}.box-lid{position:absolute;left:-5px;top:-6px;width:180px;height:160px;transform-style:preserve-3d;transform:translateY(-9px);z-index:5}.lid-top{position:absolute;width:180px;height:160px;top:-80px;left:0;background:linear-gradient(130deg,#f6d6d5,#eebbc5);border:1px solid #d59daa;transform:rotateX(90deg);backface-visibility:hidden;box-shadow:inset 0 0 0 1px #fff5}.lid-front,.lid-back{position:absolute;width:180px;height:25px;background:linear-gradient(#f4cdd0,#e9b1bd);border:1px solid #c98d9f;top:0;left:0}.lid-front{transform:translateZ(80px)}.lid-back{transform:rotateY(180deg) translateZ(80px)}.lid-left,.lid-right{position:absolute;width:160px;height:25px;left:10px;top:0;background:#e1acbb;border:1px solid #c98d9f}.lid-right{transform:rotateY(90deg) translateZ(90px)}.lid-left{transform:rotateY(-90deg) translateZ(90px)}.lid-front::after{content:'';position:absolute;width:26px;left:77px;top:0;bottom:0;background:#b77a90}.lid-top::before,.lid-top::after{content:'';position:absolute;background:linear-gradient(90deg,#ad6c84,#d99cac,#b77a90);left:77px;top:0;bottom:0;width:26px}.lid-top::after{top:67px;left:0;right:0;height:26px;width:100%;bottom:auto}.bow-3d{position:absolute;left:55px;top:-41px;width:72px;height:45px;transform-style:preserve-3d;transform:translateZ(5px)}.bow-loop{position:absolute;width:39px;height:32px;background:linear-gradient(130deg,#e6afbc,#bd7e96 65%,#a56882);border:1px solid #a96c86;box-shadow:inset 3px 3px 0 #efbfc7,0 3px 5px #9d567844;top:4px}.bow-loop.left{left:0;border-radius:70% 80% 30% 70%;transform:rotate(-22deg) rotateY(-25deg)}.bow-loop.right{right:0;border-radius:80% 70% 70% 30%;transform:rotate(22deg) rotateY(25deg)}.bow-knot{position:absolute;left:30px;top:14px;width:16px;height:21px;border-radius:6px;background:linear-gradient(#dba1b2,#bb7c94);box-shadow:0 2px 0 #a3667d;transform:translateZ(10px)}.box-glow{position:absolute;left:15px;top:-10px;width:140px;height:100px;background:radial-gradient(ellipse,#fff4cfdd,transparent 70%);transform:rotateX(90deg);opacity:0;pointer-events:none}.opening .present-3d{animation:box-anticipate .48s ease-in-out both}.opening .box-lid{animation:lid-lift 1.05s .4s cubic-bezier(.2,.8,.2,1) forwards}.opening .bow-loop.left{animation:bow-release-left .55s .15s ease forwards}.opening .bow-loop.right{animation:bow-release-right .55s .15s ease forwards}.opening .box-glow{animation:glow-reveal 1s .45s ease forwards}.opening .gift-floor{animation:none}.gift-arrival .preview-panel{animation:gift-arrive .9s cubic-bezier(.12,.8,.2,1) both}.recipient-letter{animation:soft-arrive .7s .15s backwards}.song-card{animation:soft-arrive .6s .3s backwards}
@keyframes flower-turn{0%,65%,100%{rotate:0deg}75%{rotate:30deg}85%{rotate:-12deg}}@keyframes doodle-float{0%,100%{translate:0 0;rotate:-4deg}50%{translate:0 -7px;rotate:5deg}}@keyframes little-heart{0%,100%{scale:1}15%{scale:1.17}30%{scale:1}45%{scale:1.1}60%{scale:1}}@keyframes cloud-drift{0%,100%{translate:0 0}50%{translate:8px -3px}}@keyframes soft-arrive{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}@keyframes card-arrive{from{opacity:0;translate:0 15px;scale:.94;rotate:-2deg}to{opacity:1;translate:0 0;scale:1;rotate:0deg}}@keyframes confetti-fly{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}12%{opacity:1}55%{opacity:1;transform:translate3d(var(--x),var(--y),60px) rotate(var(--spin))}100%{opacity:0;transform:translate3d(var(--x),var(--end),-30px) rotate(calc(var(--spin)*2))}}@keyframes shadow-breathe{0%,100%{scale:1;opacity:.8}50%{scale:.9;opacity:.6}}@keyframes envelope-idle{0%,100%{transform:translateY(0) rotate(-5deg) rotateY(-10deg)}50%{transform:translateY(-8px) rotate(-2deg) rotateY(3deg)}}@keyframes envelope-ready{to{transform:translateY(14px) rotate(-2deg) rotateY(0)}}@keyframes seal-pop{60%{transform:translateZ(30px) scale(1.2);opacity:1}100%{transform:translateZ(50px) translateY(35px) rotate(17deg) scale(.6);opacity:0}}@keyframes flap-open{0%{transform:translateZ(9px) rotateX(0deg)}100%{transform:translateZ(1px) rotateX(180deg);z-index:0}}@keyframes letter-rise{0%{transform:translateZ(2px) translateY(0)}75%{transform:translateZ(3px) translateY(-100px) rotate(3deg)}100%{transform:translateZ(3px) translateY(-105px) rotate(1deg)}}@keyframes present-idle{0%,100%{transform:translateY(0) rotateX(-17deg) rotateY(-25deg)}50%{transform:translateY(-8px) rotateX(-14deg) rotateY(-17deg)}}@keyframes box-anticipate{0%,100%{transform:rotateX(-17deg) rotateY(-25deg)}25%{transform:translateY(3px) rotateX(-17deg) rotateY(-29deg)}65%{transform:translateY(-2px) rotateX(-17deg) rotateY(-20deg)}}@keyframes lid-lift{0%{transform:translateY(-9px)}30%{transform:translateY(-20px) rotateZ(-3deg)}100%{transform:translate3d(28px,-132px,-18px) rotateZ(12deg) rotateX(-22deg);opacity:0}}@keyframes bow-release-left{to{transform:translateX(-7px) rotate(-50deg) rotateY(-35deg)}}@keyframes bow-release-right{to{transform:translateX(7px) rotate(50deg) rotateY(35deg)}}@keyframes glow-reveal{30%{opacity:1}100%{opacity:1;transform:translateY(-40px) rotateX(50deg) scale(1.6)}}@keyframes gift-arrive{0%{opacity:0;translate:0 35px;scale:.85}55%{opacity:1;translate:0 -10px;scale:1.02}100%{opacity:1;translate:0 0;scale:1}}
@media(max-width:860px){.workspace{gap:25px}.intro h1{font-size:32px}.intro-doodle{font-size:30px}.doodle-left{left:4%}.doodle-right{right:3%}.prototype-tag{display:none}.step{font-size:12px}.header-right .text-button{font-size:12px}.scene-stamp{font-size:19px}}
@media(max-width:620px){.site-header{padding:17px 19px}.brand{font-size:15px}.brand-small{font-size:11px}.brand-flower{font-size:35px}.header-right{gap:11px}.header-right .text-button{font-size:12px}.motion-toggle{width:30px;height:30px;font-size:13px}.intro{margin:28px 17px 18px}.intro h1{font-size:27px;line-height:1.7;letter-spacing:-.8px;padding:0 18px;margin-top:10px}.intro p{font-size:14px;padding:0 18px}.intro .eyebrow{font-size:8px}.intro-doodle{font-size:25px;top:35px}.doodle-left{left:0}.doodle-right{right:0;font-size:24px}.steps{margin-bottom:25px;padding:0 10px}.step{font-size:10px;gap:8px}.step-number{width:26px;height:26px;font-size:9px}.step::after{top:21px}.workspace{padding:0 20px;gap:28px}.preview-panel{border-radius:20px;padding:13px 12px 0}.preview-topline{font-size:11px;padding-bottom:8px}.scene{height:267px}.scene-stamp{font-size:18px}.scene-stamp span{font-size:12px}.doll-name-tag{font-size:11px;padding:4px 15px;bottom:14px}#doll-preview{width:220px;height:238px;margin-top:-13px}.preview-caption{font-size:12px;padding-top:12px}.gift-summary{font-size:11px;gap:6px;flex-wrap:wrap;padding:0 5px 16px;margin-top:10px}.doll-play-controls{margin-top:8px}.doll-play-controls button{font-size:12px;min-height:34px;padding:5px 14px}.paper-tape{height:20px;top:-9px;width:60px;left:calc(50% - 30px)}.editor-heading h2{font-size:25px;margin-top:7px}.editor-heading p{font-size:14px;line-height:1.7}.animal-grid{gap:11px}.animal-card{padding:10px 3px 12px}.animal-card canvas{width:80px;height:87px}.animal-card strong{font-size:12px}.animal-card small{font-size:10px}.little-note{font-size:11px}.little-note span{font-size:28px}.field label,.field-label{font-size:14px}.field label small,.field-label small{font-size:11px}input[type=text],input[type=url],textarea{font-size:16px;padding:12px}.field{margin-top:21px}.swatch{width:28px;height:28px}.color-line{gap:10px}.color-hint{font-size:11px}.editor-actions{background:#fff8f2ed;backdrop-filter:blur(12px);margin-left:-20px;margin-right:-20px;padding:16px 20px max(20px,env(safe-area-inset-bottom));border-top-style:dashed}.primary-button{font-size:13px;min-height:47px;padding:11px 20px}.save-status{font-size:10px}.back-button{font-size:12px}.site-footer{font-size:10px;margin-top:20px;padding:0 20px}.site-footer .subtle{font-size:10px}.tab{font-size:13px}.item-grid{gap:11px}.item-card{min-height:86px;padding:10px 5px}.item-card strong{font-size:13px}.item-card small{font-size:10px}.item-card canvas{width:53px;height:64px}.flower-card{font-size:12px;min-height:91px}.flower-meaning{font-size:12px}.helper{font-size:11px}.review-note{padding:19px;font-size:13px}.review-note h3{font-size:18px}.scene-option{font-size:12px;padding:11px 3px}.recipient{padding:27px 20px 36px}.recipient h1{font-size:27px;letter-spacing:-.5px}.recipient .eyebrow{font-size:8px;letter-spacing:1.5px}.recipient-intro{font-size:15px;margin-bottom:18px}.recipient .preview-panel{margin-top:25px}.recipient .scene{height:296px}.recipient-letter{padding:23px}.recipient-letter h2{font-size:20px}.recipient-letter p{font-size:14px}.recipient-letter .to,.recipient-letter .from{font-size:12px}.song-card strong{font-size:14px}.song-card small{font-size:11px}.recipient-foot{font-size:11px}.gift-theatre{height:255px;max-width:330px}.envelope-3d{width:231px;height:149px}.envelope-flap{height:83px}.envelope-letter{height:136px}.wax-seal{top:60px}.envelope-stamp{font-size:8px}.box-theatre{height:265px}.present-3d{scale:.88}.preview-banner{font-size:11px}.preview-banner button{font-size:11px}.gift-opening-status{font-size:11px}.recipient .open-gift-button{min-width:225px;margin-top:15px}.recipient .doll-play-controls{margin-top:0;margin-bottom:19px}.recipient .gift-summary{display:none}.confetti-burst i{width:6px;height:7px}}
@media(max-width:370px){.header-right .text-button{font-size:11px}.header-right{gap:8px}.brand{font-size:14px}.intro h1{font-size:24px}.animal-card canvas{width:71px;height:77px}.animal-card small{font-size:9px}.save-status{font-size:9px}.step{font-size:9px}}
html[data-motion=off] *,html[data-motion=off] *::before,html[data-motion=off] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.tilting{will-change:transform}html[data-motion=off] .tilting{transform:none!important}html[data-motion=off] .confetti-burst{display:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.confetti-burst{display:none}}

.primary-button{transition:transform .2s,box-shadow .2s,translate .25s}html[data-motion=off] .primary-button{translate:0 0!important}

@media(max-width:620px){.mobile-break{display:block}.intro h1{line-height:1.6}}
.bouquet-meanings{margin:23px 0 6px;padding:18px;background:linear-gradient(135deg,#fffaf2,#f9eae3);border:1px solid #e3c9b9;border-radius:15px;box-shadow:0 3px 0 #e9d3c4;text-align:left}.meaning-heading{display:flex;align-items:center;gap:10px;margin-bottom:13px}.meaning-heading>span{font-size:25px;color:#c08793}.meaning-heading h3{font-family:var(--hand);font-size:17px;font-weight:600;margin:0;color:#9c6878}.meaning-heading p{font-size:12px;color:#b08c7c;margin:4px 0 0}.meaning-row{display:flex;align-items:center;gap:12px;padding:13px 0;border-top:1px dashed #e6cec0}.meaning-flower{display:grid;place-items:center;width:56px;height:60px;border-radius:14px;flex-shrink:0;box-shadow:inset 0 0 0 1px #c6a68b24}.meaning-flower canvas{width:44px;height:44px;image-rendering:pixelated}.meaning-copy{min-width:0;flex:1}.meaning-title{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;margin-bottom:5px}.meaning-title strong{font-family:var(--hand);font-size:14px;font-weight:600;color:#825e55}.meaning-tone{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#a38070;background:#fff9f2;border:1px solid #e8d5c5;border-radius:20px;padding:3px 7px}.meaning-tone i{display:block;width:9px;height:9px;border-radius:50%;border:1px solid #ad8d7144}.meaning-copy p{font-size:13px;line-height:1.75;margin:1px 0;color:#9a796b}.meaning-copy p>span{font-size:10px;color:#b09685;display:inline-block;min-width:36px}.meaning-footnote{font-size:10px!important;font-family:Itim!important;line-height:1.65!important;color:#b19a87!important;margin:9px 0 0!important;text-align:center}.flower-color-presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.flower-color-choice{display:flex;align-items:center;gap:5px;min-height:34px;border:1px solid #e2c9bb;background:#fff9f2;border-radius:18px;padding:5px 9px;font-size:12px;color:#a07c6c;box-shadow:0 2px 0 #e9d4c7}.flower-color-choice i{width:14px;height:14px;border-radius:50%;border:1px solid #c0a08766}.flower-color-choice.chosen{background:#f5e0e2;border-color:#c88d9c;color:#a06174}.recipient>.bouquet-meanings,.recipient .bouquet-meanings{max-width:405px;margin:26px auto}.recipient-actions .secondary-button{width:100%;margin-bottom:13px}.story-dialog{max-width:510px;width:calc(100% - 26px);max-height:92dvh;padding:0;background:#fff8ef;border-radius:18px;overflow:auto;text-align:left;box-shadow:0 25px 100px #583d3540}.story-dialog-header{position:sticky;top:0;background:#fff8eff5;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:18px 21px;border-bottom:1px dashed #dfc4b4;z-index:2}.story-dialog-header h2{font-family:var(--hand);font-size:20px;margin:6px 0 0;font-weight:600;color:#906475}.story-dialog-header .eyebrow{font-size:8px;letter-spacing:1.6px}.story-close{height:35px;width:35px;border:1px solid #e3c7b7;background:#fffaf3;border-radius:50%;font-size:23px;line-height:1;color:#aa8074;box-shadow:0 2px 0 #e8d1c1}.story-image-wrap{padding:18px;background:repeating-linear-gradient(45deg,#f1e1d6 0 9px,#f5e8dd 9px 18px)}.story-image-wrap img{width:100%;height:auto;display:block;border-radius:9px;box-shadow:0 6px 20px #8d60542b}.story-dialog-footer{position:sticky;bottom:0;padding:15px 19px 19px;border-top:1px dashed #dfc4b4;background:#fff8eff5;backdrop-filter:blur(12px);display:flex;justify-content:space-between;align-items:center;gap:10px}.story-dialog-footer>span{font:10px monospace;color:#b19785}.story-dialog-footer .primary-button{font-size:12px;min-height:43px;padding:10px 17px}
@media(max-width:620px){.bouquet-meanings{padding:16px}.meaning-heading h3{font-size:16px}.meaning-copy p{font-size:13px}.meaning-copy p>span{min-width:31px}.meaning-title strong{font-size:13px}.meaning-flower{width:46px;height:55px;border-radius:12px}.meaning-row{gap:10px}.meaning-tone{font-size:10px;padding:3px 6px}.meaning-footnote{font-size:10px!important}.flower-color-choice{font-size:12px;min-height:35px}.story-dialog-header{padding:15px 17px}.story-dialog-header h2{font-size:18px}.story-dialog-footer{padding:13px 15px 17px}.story-image-wrap{padding:12px}.story-dialog-footer>span{font-size:9px}}
