:root{--cream:#fcf7f1;--paper:#fffcf8;--pink:#d68999;--pink-dark:#ad536c;--pink-soft:#f7e7e9;--ink:#554744;--muted:#9c8781;--line:#eaded6;--green:#81917b;--font:'IBM Plex Sans Thai',Tahoma,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font);font-size:14px}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #ad536c;outline-offset:4px}input:focus,textarea:focus{outline:2px solid #d68999;outline-offset:2px}button{touch-action:manipulation}a{color:inherit;text-decoration:none}.hidden{display:none!important}.site-header{max-width:1350px;padding:25px 5.5%;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;font-size:18px;font-weight:600;line-height:1.25}.brand-flower{color:var(--pink);font-size:43px;line-height:1}.brand-small{display:block;font-weight:400;font-size:11px;letter-spacing:1px;margin-top:3px}.header-right{display:flex;align-items:center;gap:27px}.prototype-tag{font-family:monospace;letter-spacing:1.5px;font-size:10px;color:var(--muted);border:1px solid var(--line);padding:5px 9px;border-radius:4px}.text-button{border:0;background:none;padding:10px 2px;font-size:12px;display:inline-flex;gap:8px;align-items:center}.text-button:hover{color:var(--pink-dark)}.intro{text-align:center;margin:38px 20px 29px}.eyebrow{font:10px monospace;letter-spacing:2px;color:var(--muted)}.tiny-pixel-heart{color:var(--pink);margin-right:6px}.intro h1{font-size:35px;font-weight:500;letter-spacing:-1.1px;margin:12px 0 8px;line-height:1.6}.intro p{font-size:13px;color:var(--muted);margin:0}.mobile-break{display:none}.steps{display:flex;justify-content:center;max-width:900px;margin:0 auto 33px;gap:0}.step{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:9px;border:0;background:none;color:#a08e87;padding:10px 5px;font-size:12px}.step::after{content:'';position:absolute;right:-9px;width:19px;height:1px;background:var(--line)}.step:last-child::after{display:none}.step-number{width:25px;height:25px;background:#f1e9e2;border-radius:50%;display:flex;align-items:center;justify-content:center;font:11px monospace}.step.active{color:var(--pink-dark);font-weight:600}.step.active .step-number{background:var(--pink-dark);color:#fff}.step.done .step-number{background:#ebeee5;color:#6e8065}.workspace{max-width:1040px;margin:auto;display:grid;grid-template-columns:440px 1fr;gap:44px;align-items:start;padding:0 20px}.preview-panel{background:var(--paper);border:1px solid var(--line);padding:16px 16px 0;border-radius:16px;box-shadow:0 6px 0 #ede1d74a;position:sticky;top:20px}.preview-topline{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);padding:0 2px 11px}.live-dot{display:inline-block;width:5px;height:5px;background:#9ba890;margin:0 6px 1px 0;border-radius:50%}.icon-button{font-size:20px;background:transparent;border:0;min-width:32px;min-height:32px;color:#9e8780}.scene{position:relative;overflow:hidden;isolation:isolate;height:374px;background-color:#f6eae4;display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:8px;background-image:linear-gradient(#d6b9a526 1px,transparent 1px),linear-gradient(90deg,#d6b9a526 1px,transparent 1px);background-size:20px 20px}.scene-garden{background-color:#e9eee1;background-image:radial-gradient(#c1c9af 1px,transparent 1px);background-size:18px 18px}.scene-window{background-color:#f6e7e4;background-image:linear-gradient(90deg,transparent 49%,#fffcf889 49%,#fffcf889 51%,transparent 51%),linear-gradient(transparent 49%,#fffcf889 49%,#fffcf889 51%,transparent 51%);background-size:155px 190px}.scene-stamp{position:absolute;top:25px;left:25px;color:#b58d7f;font-family:Georgia,serif;font-style:italic;line-height:1.3;font-size:20px;transform:rotate(-9deg)}.scene-stamp span{font-size:13px}.deco{position:absolute;color:#ce9b9e;z-index:1}.star-one{top:54px;right:45px;font-size:23px}.star-two{left:40px;bottom:88px;font-size:22px}.heart{font-size:10px;opacity:.6}.heart-one{right:55px;bottom:100px}.heart-two{left:77px;top:118px;font-size:8px}.pixel-cloud{position:absolute;background:#fff9efb0;width:52px;height:12px;box-shadow:8px -8px #fff9efb0,20px -16px #fff9efb0,34px -8px #fff9efb0;opacity:.7}.cloud-one{top:122px;right:23px}.cloud-two{bottom:87px;left:30px;transform:scale(.7)}#doll-preview{position:relative;z-index:2;width:280px;height:302.4px;image-rendering:pixelated;margin-top:10px;max-width:80%;object-fit:contain}.scene-ground{position:absolute;width:80%;bottom:51px;height:1px;background:#d7bfb266;z-index:0}.doll-name-tag{font-size:10px;letter-spacing:1px;position:absolute;z-index:3;bottom:23px;padding:5px 16px;background:#fffaf3d9;border:1px solid #e8d8ca;border-radius:3px;box-shadow:0 2px 0 #e4d1c3}.doll-name-tag>span:first-child{color:#c68896;margin-right:4px}.preview-caption{display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;color:#9c837a;padding:17px 0 12px}.pixel-spark{color:var(--pink);font-size:18px}.gift-summary{display:flex;justify-content:center;gap:8px;font-size:10px;color:#b19b92;padding:0 0 18px}.summary-dot{color:#d1bfb4}.editor-panel{min-width:0;padding-top:9px}.editor-heading{display:flex;justify-content:space-between;margin-bottom:20px;align-items:center}.editor-heading h2{font-weight:500;font-size:25px;margin:8px 0 5px;letter-spacing:-.5px}.editor-heading p{color:var(--muted);font-size:12px;margin:0}.section-flower{font-size:31px;color:#dfbec0;margin-right:4px}.animal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.animal-card{background:#fffaf5;border:1px solid var(--line);border-radius:9px;position:relative;padding:9px 5px 11px;display:flex;align-items:center;flex-direction:column;min-width:0;transition:border-color .15s,background .15s,transform .15s}.animal-card:hover{transform:translateY(-2px);border-color:#d8a7b0}.animal-card.selected{border:1.5px solid #c88294;background:#faeceb;box-shadow:0 0 0 2px #f6e0e433}.animal-card canvas{width:86px;height:92px;image-rendering:pixelated}.animal-card strong{font-weight:500;font-size:12px}.animal-card small{font-size:9px;color:var(--muted);margin-top:3px}.selected-check{position:absolute;right:7px;top:7px;font-size:9px;color:#fff;background:var(--pink);width:15px;height:15px;display:flex;align-items:center;justify-content:center;border-radius:50%}.animal-card:not(.selected) .selected-check{display:none}.little-note{border:1px dashed #ddcabe;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:12px;font-size:10px;line-height:1.9;color:#a68f83}.little-note span{font-size:24px;color:#cba19d;line-height:1.6}.field{margin-top:21px}.field label,.field-label{display:flex;justify-content:space-between;font-size:12px;font-weight:500;margin-bottom:10px}.field label small,.field-label small{font-size:10px;font-weight:400;color:var(--muted)}input[type=text],input[type=url],textarea{width:100%;border:1px solid var(--line);background:#fffcf8;border-radius:7px;padding:12px 13px;color:var(--ink);font-size:12px}input::placeholder,textarea::placeholder{color:#b9a69d}textarea{resize:vertical;min-height:108px;line-height:1.9}.color-line{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.swatch{width:28px;height:28px;border-radius:50%;border:3px solid #fcf7f1;box-shadow:0 0 0 1px #ddcfc3;position:relative;flex-shrink:0}.swatch.selected{box-shadow:0 0 0 2px #ad536c}.swatch.selected::after{content:'✓';color:#6e524a;position:absolute;inset:0;display:grid;place-items:center;font-size:11px;text-shadow:0 0 3px white}.custom-color{position:relative;width:29px;height:29px;border-radius:50%;border:1px dashed #bfa49c;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;font-size:18px;background:#fffcf8;color:#967a71}.custom-color input{position:absolute;opacity:0;inset:0;width:100%;height:100%;cursor:pointer}.color-hint{color:#b29a8f;font-size:10px;margin-left:2px}.editor-actions{border-top:1px solid var(--line);margin-top:25px;padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:12px}.primary-button{border:1px solid #b96981;background:#b96981;color:#fffaf7;min-height:45px;padding:11px 21px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;gap:22px;box-shadow:0 3px 0 #98546a;font-size:12px;transition:background .15s}.primary-button:hover{background:#aa5c74}.primary-button:active{transform:translateY(2px);box-shadow:0 1px 0 #98546a}.secondary-button{min-height:44px;padding:10px 17px;border:1px solid var(--line);background:#fffcf8;border-radius:7px;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.save-status{font-size:9px;color:#a48f85}.save-status span{color:#839578}.back-button{font-size:11px}.site-footer{max-width:1000px;margin:35px auto 25px;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#ac968b;padding:0 4px}.footer-heart{color:#cb9b9f;margin-left:4px}.subtle{color:#a89287;font-size:10px}.tab-row{display:flex;gap:5px;padding:4px;background:#f1e8e1;border-radius:7px;margin-bottom:15px}.tab{flex:1;background:none;border:0;padding:9px 5px;font-size:11px;border-radius:5px;color:#a1897f}.tab.active{background:#fffcf8;box-shadow:0 1px 4px #80604912;color:var(--pink-dark)}.item-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.item-card{padding:12px 8px;border:1px solid var(--line);background:#fffaf5;border-radius:8px;min-height:64px;display:flex;gap:10px;align-items:center;text-align:left;font-size:11px}.item-card.selected{border-color:#c88294;background:#faeceb}.item-card canvas{width:54px;height:65px;image-rendering:pixelated}.item-card strong{font-size:11px;font-weight:500}.item-card small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.flower-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.flower-card{min-height:88px;border:1px solid var(--line);background:#fffaf5;border-radius:7px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:10px;gap:4px;position:relative}.flower-card.selected{border-color:#c88294;background:#faeceb}.flower-card canvas{width:38px;height:38px;image-rendering:pixelated}.flower-meaning{background:#f3ece2;border-radius:6px;padding:10px 12px;font-size:10px;line-height:1.9;color:#8d796b;margin-top:12px}.flower-meaning strong{color:#ad687d;font-weight:500}.mini-color-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mini-color-fields .field{margin-top:15px}.mini-color-fields input[type=color]{height:32px;width:100%;border:1px solid var(--line);background:#fffcf8;border-radius:5px;padding:3px}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.two-fields .field{margin-top:4px}.letter-form .field{margin-top:15px}.helper{font-size:10px;color:#a78c80;line-height:1.8;margin:7px 0 0}.field-error{font-size:11px;color:#b2495f;margin-top:6px;line-height:1.7}.invalid{border-color:#b2495f!important}.optional{font-size:9px;color:#b9a69d;font-weight:400;margin-left:5px}.music-label{display:inline-flex;gap:6px;align-items:center}.song-hint{padding:10px 12px;background:#f2eee5;border-radius:6px;font-size:10px;color:#9c8978;line-height:1.9;margin-top:12px}.review-note{padding:17px;border:1px solid var(--line);background:#fffaf5;border-radius:9px;line-height:2;font-size:12px;overflow-wrap:anywhere}.review-to{font-size:10px;color:var(--pink-dark);margin-bottom:10px}.review-note h3{font-size:17px;font-weight:500;margin:0 0 8px}.review-note p{margin:0;white-space:pre-wrap}.review-from{font-size:11px;color:var(--muted);text-align:right;margin-top:15px}.review-details{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.chip{font-size:10px;border:1px solid var(--line);border-radius:4px;padding:6px 9px;color:#9c8277}.wide{width:100%;margin-top:12px}.scene-options{display:flex;gap:8px}.scene-option{flex:1;border:1px solid var(--line);padding:11px 4px;border-radius:6px;font-size:10px;background:#fffcf8}.scene-option.selected{border-color:var(--pink);color:var(--pink-dark);background:#fbeaed}.send-illustration{text-align:center;font-size:46px;color:#c08291;margin:7px 0 10px}.send-title{text-align:center;font-size:22px;font-weight:500;margin:4px 0}.send-subtitle{text-align:center;font-size:11px;color:var(--muted);line-height:2}.link-box{display:flex;border:1px solid var(--line);border-radius:7px;padding:5px;margin-top:15px;background:#fffcf8;gap:6px}.link-box input{border:none;min-width:0;background:none;padding:8px;font-size:10px;color:#a58c81}.link-box button{border:0;background:#f0e2dc;border-radius:5px;padding:8px 12px;white-space:nowrap;font-size:11px}.prototype-notice{font-size:10px;color:#a18b7f;padding:10px 12px;border:1px dashed #d9c4b8;line-height:1.9;border-radius:6px;margin-top:16px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#65504b;color:#fffaf5;border:1px solid #fff3;border-radius:8px;padding:11px 20px;font-size:12px;z-index:100;transition:opacity .2s,transform .2s;max-width:90vw;width:max-content}.toast.visible{opacity:1;transform:translate(-50%,0)}.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}.recipient{max-width:620px;margin:0 auto;padding:38px 22px 45px;text-align:center}.recipient .eyebrow{font-size:10px}.recipient h1{font-size:31px;font-weight:500;line-height:1.7;margin:17px 0 9px}.recipient h1 span{color:var(--pink-dark)}.recipient-intro{color:var(--muted);font-size:12px;line-height:2;margin-bottom:26px}.recipient-art{display:block;margin:0 auto;image-rendering:pixelated;width:280px;height:255px}.open-gift-button{margin:22px auto 10px;min-width:230px}.recipient-foot{font-size:10px;color:#ad968a;margin:15px 0}.recipient .preview-panel{position:relative;top:0;max-width:405px;margin:20px auto}.recipient .scene{height:340px}.recipient-letter{max-width:405px;background:#fffaf5;margin:20px auto;border:1px solid var(--line);border-radius:10px;padding:26px;text-align:left;position:relative}.recipient-letter::before{content:'♥';position:absolute;top:-10px;left:calc(50% - 15px);background:var(--cream);padding:0 10px;color:#c68a99}.recipient-letter h2{font-size:20px;font-weight:500}.recipient-letter p{font-size:14px;line-height:2.2;white-space:pre-wrap;overflow-wrap:anywhere}.recipient-letter .from{font-size:11px;color:var(--muted);text-align:right}.recipient-letter .to{font-size:11px;color:var(--pink-dark)}.song-card{display:flex;align-items:center;gap:12px;max-width:405px;margin:15px auto;border:1px solid var(--line);padding:14px 17px;border-radius:8px;text-align:left;background:#f6ece5}.song-card .song-icon{font-size:25px;color:#b57889}.song-card strong{font-weight:500;font-size:12px;display:block;overflow-wrap:anywhere}.song-card small{font-size:10px;color:var(--muted)}.recipient-actions{max-width:405px;margin:20px auto}.recipient-actions .primary-button{width:100%}.recipient-actions .helper{margin-top:11px}.love-response{display:block;margin:20px auto 8px;font-size:12px;background:#f5e3e4;border:1px solid #e8c9ce;border-radius:50px;min-height:44px;padding:9px 20px;color:#ad6376}.story-spec{font:9px monospace;letter-spacing:1px;color:#b49b8c;margin:12px 0}.preview-banner{background:#ede6db;padding:8px 12px;border-radius:5px;font-size:10px;color:#958172;margin-bottom:22px;display:flex;justify-content:center;gap:10px}.preview-banner button{padding:0;border:0;background:none;text-decoration:underline;font-size:10px}.fade-in{animation:fade-in .4s ease both}@keyframes fade-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}dialog{border:1px solid var(--line);border-radius:14px;background:var(--cream);padding:30px;max-width:440px;width:calc(100% - 35px);color:var(--ink);text-align:center}dialog::backdrop{background:#4c37334d;backdrop-filter:blur(3px)}dialog h2{font-size:21px;font-weight:500}dialog p{font-size:12px;line-height:1.9;color:var(--muted)}.dialog-icon{font-size:40px;color:var(--pink)}.dialog-actions{display:flex;gap:10px;justify-content:center;margin-top:23px}
@media(min-width:1300px){.intro{margin-top:45px}.workspace{gap:55px;max-width:1090px;grid-template-columns:455px 1fr}.scene{height:390px}}
@media(max-width:860px){.workspace{grid-template-columns:minmax(280px,.9fr) 1fr;gap:25px}.header-right{gap:14px}.site-header{padding:20px 25px}.scene{height:350px}.scene-stamp{font-size:17px}.steps{padding:0 20px}.step{font-size:10px;gap:5px}.site-footer{padding:0 24px}.animal-card canvas{width:69px;height:79px}}
@media(max-width:620px){.site-header{padding:15px 19px}.brand{font-size:15px;gap:7px}.brand-small{font-size:9px}.brand-flower{font-size:35px}.prototype-tag{display:none}.header-right .text-button{font-size:10px}.intro{margin:24px 15px 17px}.intro h1{font-size:25px;letter-spacing:-.5px;margin-top:9px}.intro p{font-size:10px}.eyebrow{font-size:8px;letter-spacing:1.6px}.steps{margin:0 auto 19px;padding:0 12px;gap:0}.step{flex-direction:column;gap:6px;padding:8px 0;font-size:9px}.step::after{right:-8px;top:20px;width:16px}.step-number{width:23px;height:23px;font-size:10px}.workspace{display:flex;flex-direction:column;padding:0 18px;gap:25px;max-width:480px}.preview-panel{position:relative;top:0;width:100%;padding:11px 11px 0;border-radius:12px}.preview-topline{font-size:9px;padding-bottom:5px}.scene{height:260px}.scene-stamp{top:18px;left:20px;font-size:16px}.scene-stamp span{font-size:11px}#doll-preview{width:220px;height:237.6px;margin-top:-10px}.doll-name-tag{bottom:12px;font-size:9px;padding:3px 13px}.scene-ground{bottom:35px}.star-one{top:39px;right:36px;font-size:20px}.star-two{bottom:55px;left:29px}.cloud-one{top:100px;right:18px;transform:scale(.75)}.cloud-two{bottom:52px;left:20px}.heart-two{top:90px;left:55px}.heart-one{bottom:62px;right:40px}.preview-caption{font-size:10px;padding:10px 0 8px}.gift-summary{font-size:9px;padding-bottom:12px}.editor-panel{width:100%;padding:0}.editor-heading{margin-bottom:16px}.editor-heading h2{font-size:22px;margin:5px 0}.editor-heading p{font-size:11px}.editor-heading .eyebrow{font-size:8px}.animal-grid{gap:9px}.animal-card{padding:7px 3px 10px}.animal-card canvas{width:85px;height:91px}.animal-card strong{font-size:11px}.animal-card small{font-size:9px}.little-note{font-size:9px;padding:8px}.field{margin-top:18px}.field label,.field-label{font-size:11px}.editor-actions{position:sticky;bottom:0;background:var(--cream);margin:22px -18px 0;padding:15px 18px max(17px,env(safe-area-inset-bottom));z-index:10;border-bottom:1px solid var(--line)}.primary-button{min-height:45px;padding:10px 19px;font-size:11px}.save-status{font-size:8px}.site-footer{margin:15px auto 22px;max-width:480px;padding:0 18px;font-size:8px;gap:10px}.site-footer .subtle{font-size:9px}.item-card{padding:10px 7px}.flower-grid{gap:8px}.flower-card{min-height:82px}.mini-color-fields{gap:12px}.recipient{padding:25px 18px 30px}.recipient h1{font-size:27px}.recipient-art{width:250px;height:228px}.recipient .scene{height:300px}.recipient .scene canvas{width:250px;height:270px}.recipient .preview-panel{max-width:390px}.recipient-letter{padding:22px}.recipient-letter h2{font-size:19px}.recipient-letter p{font-size:13px}.dialog-actions{flex-direction:column}.send-subtitle{font-size:11px}.recipient-foot{line-height:1.9}.toast{bottom:83px;font-size:11px}.step-label{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Gift links and recipient previews never show sender/account controls. */
html[data-view="recipient"] .cloud-nav,html[data-view="recipient"] #receiver-demo,html[data-view="recipient"] #reset,html[data-view="recipient"] #maker{display:none!important}
