:root{--paper:#f8f3eb;--ink:#393d31;--muted:#77786d;--green:#58644d;--pink:#d9aaa4;--line:#deddd1}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.75 'PingFang SC','Microsoft YaHei',sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #a76559;outline-offset:4px}header,main,footer{max-width:1320px;margin:auto}header{height:90px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:16px}a{color:inherit;text-decoration:none}header span,.eyebrow{font-size:11px;letter-spacing:2px}.plain{background:none;border:0;color:var(--green);padding:10px}.hero{display:flex;justify-content:space-between;align-items:center;min-height:335px;padding:30px 35px}.hero h1{font-family:'Songti SC','STSong',serif;font-size:52px;line-height:1.35;font-weight:500;margin:14px 0}.hero h1 span{color:#b78575}.hero p:not(.eyebrow){color:var(--muted)}.ribbon-art{width:300px;height:240px;position:relative;transform:rotate(-9deg)}.ribbon-art i,.ribbon-art b{position:absolute;top:55px;width:120px;height:90px;background:repeating-linear-gradient(90deg,#c5938a,#c5938a 2px,#d7a69b 3px,#d7a69b 5px);border-radius:18% 60% 50% 25%;box-shadow:inset -10px -10px 25px #80514830,8px 12px 14px #674d3320}.ribbon-art i{left:28px;transform:rotate(16deg)}.ribbon-art b{right:28px;transform:scaleX(-1) rotate(16deg)}.ribbon-art em{position:absolute;width:32px;height:64px;background:#b88177;left:134px;top:70px;border-radius:7px;box-shadow:inset 6px 0 5px #d6a499}.ribbon-art small{position:absolute;top:179px;width:100%;text-align:center;font-family:Georgia,serif;color:#8c7665;font-size:13px;letter-spacing:1px}.steps{display:flex;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin-bottom:35px}.steps span{flex:1;text-align:center;font-size:13px;letter-spacing:1px}.steps span+span{border-left:1px solid var(--line)}.workspace{display:grid;grid-template-columns:350px 1fr;gap:35px}aside{padding:22px 27px 28px;background:#efede3;border-radius:4px}h2{font-family:'Songti SC','STSong',serif;font-size:27px;font-weight:500;margin:8px 0 25px}label{display:block;font-size:13px;margin:19px 0 8px}textarea,input,select{width:100%;border:1px solid #d7d7c9;border-radius:5px;background:#fffcf7;padding:11px;color:var(--ink)}textarea{min-height:140px;resize:vertical}input{font-size:13px}select{font-size:13px;padding:10px 6px}.fields{display:grid;grid-template-columns:1fr 1.2fr;gap:10px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.chips button{border:1px solid #d6d5c6;background:transparent;border-radius:20px;padding:3px 10px;font-size:12px;color:var(--green)}.primary,.secondary{border:0;border-radius:4px;padding:14px 22px;background:var(--green);color:#fff}.primary span{float:right}#generate{width:100%;margin-top:25px}.secondary{background:#e5e7da;color:var(--green)}.hint,.muted{font-size:12px;color:var(--muted)}.hint{text-align:center;margin-bottom:0}.canvas{min-width:0}.empty{height:100%;min-height:570px;border:1px dashed #d5d2c4;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:radial-gradient(ellipse at center,#fffdf7 20%,#f4efe6 80%)}.empty h2{font-size:32px;margin:10px}.empty p:last-child{font-size:14px;color:var(--muted)}.sample-bow{font:120px/1.1 Georgia,serif;color:#c69e93;margin-bottom:30px}#status:not(:empty){padding:16px 20px;background:#e9ecdf;border-left:3px solid var(--green);margin-bottom:20px}#status.error{background:#f4dfd9;border-color:#a85f50}.designs{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.design-card{background:#fffcf6;border:1px solid var(--line);border-radius:6px;overflow:hidden;text-align:left;padding:0;color:var(--ink);display:flex;flex-direction:column}.design-card.selected{outline:2px solid var(--green);outline-offset:3px}.design-card .picture{width:100%;aspect-ratio:1/1.6;overflow:hidden;background:#eee7da}.picture img{height:100%;width:300%;max-width:none;object-fit:fill;display:block}.single .picture{aspect-ratio:1.3}.single .picture img{width:100%;object-fit:contain}.designs.single{grid-template-columns:1fr;max-width:620px;margin:auto}.card-copy{padding:17px;flex:1}.card-copy h3{font-size:18px;font-weight:500;margin:6px 0 12px}.card-copy p{font-size:13px}.card-copy small{font-size:11px;color:var(--muted)}.choose{display:block;border-top:1px solid var(--line);padding:12px 17px;font-size:12px;color:var(--green)}.reply{margin:5px 0 22px}.swatches{display:flex;gap:6px;font-size:11px;flex-wrap:wrap}.swatches span{background:#eeeee3;padding:2px 7px;border-radius:3px}#editor,#guide,#history{margin-top:40px;border:1px solid var(--line);padding:30px;background:#fffdf7}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.section-head h2{margin-bottom:10px}.revision-row{display:flex;gap:15px;align-items:stretch}.revision-row textarea{min-height:95px;flex:1}.finalize{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);margin-top:25px;padding-top:25px}.finalize p{font-size:14px;color:var(--muted)}.guide-actions{display:flex;gap:10px;flex-wrap:wrap}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:13px 10px;vertical-align:top}.table-wrap{overflow-x:auto}th{background:#eeeee3}.guide-step{border-bottom:1px solid var(--line);padding:18px 0}.guide-step h3{font-size:18px;font-weight:500}.guide-step p{max-width:850px}.check{color:var(--green);font-size:13px}.history-item{display:block;text-align:left;padding:12px;width:100%;background:none;border:0;border-bottom:1px solid var(--line);color:var(--ink)}footer{border-top:1px solid var(--line);margin-top:65px;padding:24px 0;color:var(--muted);font-size:12px;display:flex;justify-content:space-between}[hidden]{display:none!important}@media(max-width:1400px){header,main,footer{margin-left:35px;margin-right:35px}}@media(max-width:900px){header span{display:none}.workspace{grid-template-columns:1fr}.hero{padding:25px 0}.hero h1{font-size:40px}.ribbon-art{transform:scale(.8) rotate(-9deg);width:300px;flex-shrink:0;margin-right:-25px}.empty{min-height:360px}.picture{max-height:400px}.canvas{min-height:200px}}@media(max-width:600px){header,main,footer{margin-left:18px;margin-right:18px}header{height:70px;font-size:13px}.hero{min-height:280px;overflow:hidden;position:relative}.hero h1{font-size:36px}.hero .eyebrow{font-size:9px;letter-spacing:1px}.hero p{font-size:12px}.ribbon-art{position:absolute;right:-142px;top:30px;opacity:.32;transform:scale(.65) rotate(-20deg);pointer-events:none}.hero>div:first-child{z-index:1}.steps span{font-size:11px}.workspace{gap:25px}aside{padding:20px}.designs{grid-template-columns:1fr;gap:20px}.design-card{display:grid;grid-template-columns:42% 58%}.design-card .picture{grid-row:span 2;height:100%;aspect-ratio:1/1.65}.card-copy{padding:14px}.choose{padding:10px 14px}.single .design-card{display:flex}.single .picture{aspect-ratio:1;height:auto}.revision-row,.finalize{flex-direction:column}.revision-row textarea{flex:auto}.section-head{align-items:flex-start;flex-direction:column}#editor,#guide,#history{padding:20px}footer span{display:none}td,th{min-width:90px}.guide-actions button{padding:10px}.hero h1{position:relative}}@media print{header,.hero,.steps,.workspace,#editor,#history,footer,.guide-actions{display:none!important}body{background:white;color:black}main{margin:0}#guide{border:0;padding:0;margin:0}.guide-step, tr{break-inside:avoid}}

.guide-preview{width:240px;margin:25px 0}.guide-preview .picture{aspect-ratio:1/1.6}.guide-preview.single .picture{aspect-ratio:1}.guide-preview .picture img{height:100%}@media print{.guide-preview{width:180px}}
.design-card .picture,.guide-preview .picture{aspect-ratio:1/2}.single .picture{aspect-ratio:1}.picture img{object-fit:cover}@media(max-width:600px){.design-card .picture{height:auto;align-self:center;aspect-ratio:1/2}.single .design-card .picture{aspect-ratio:1;width:100%}}

summary{cursor:pointer;color:var(--green);padding:12px 0}#selectedDetails{white-space:pre-line;font-size:14px;line-height:1.9}
/* A bright little craft table */
:root{--paper:#fffaf0;--ink:#48403d;--muted:#817268;--green:#af435a;--pink:#f6a7b3;--line:#eedaca}body{background-color:var(--paper);background-image:radial-gradient(#d5b99b35 1px,transparent 1px);background-size:18px 18px}header{border-bottom:2px dashed #edcbb3}header>a{background:#fff;padding:7px 14px;border-radius:22px;border:1px solid var(--line)}header span{color:#a06a5a}.hero{margin-top:25px;margin-bottom:28px;padding:32px 45px;background:#fff0b9;border-radius:32px;position:relative;isolation:isolate;overflow:hidden;border:2px solid #f5df91}.hero:after{content:'✦';position:absolute;right:35%;top:22px;color:#e78c65;font-size:55px;transform:rotate(16deg)}.hero h1{font-family:'PingFang SC','Microsoft YaHei',sans-serif;font-size:49px;font-weight:750;letter-spacing:1px}.hero h1 span{color:#db697b}.hero .eyebrow{color:#a15c37;letter-spacing:3px;font-weight:600}.hero p:not(.eyebrow){color:#82664f}.ribbon-art{background:#fff7e4;border:2px dashed #e8bb87;border-radius:50% 43% 46% 42%;box-shadow:8px 10px 0 #edce8d60;transform:rotate(-8deg)}.ribbon-art i,.ribbon-art b{background:repeating-linear-gradient(90deg,#ea8b9f,#ea8b9f 3px,#f5a9b5 4px,#f5a9b5 6px)}.ribbon-art em{background:#d66c87;box-shadow:inset 6px 0 5px #f0a6b9}.ribbon-art small{color:#a45a67;font-family:inherit;font-size:12px}.steps{border:0;gap:15px;padding:0}.steps span{border:0!important;padding:14px 10px;border-radius:18px;background:#ffe2e7;font-weight:600;color:#994156}.steps span:nth-child(2){background:#def1e7;color:#456f5a}.steps span:nth-child(3){background:#e9e3fa;color:#6e568d}.workspace{grid-template-columns:380px 1fr;gap:28px}aside{background:#fff;border:2px solid #f1d3be;border-radius:24px;padding:26px;box-shadow:5px 6px 0 #f4e8d9}h2{font-family:inherit;font-weight:650;font-size:25px}.primary{background:#ad4058;border-radius:16px;box-shadow:0 4px 0 #853249;font-weight:600;transition:transform .16s,box-shadow .16s}.primary:hover:not(:disabled){background:#bc4d66;transform:translateY(-2px);box-shadow:0 6px 0 #853249}.secondary{background:#dbefe5;color:#396a53;border-radius:14px}.plain{color:#a03b54}.chips button{background:#fff3cf;border:1px solid #e5cd83;color:#7e643a;padding:5px 10px}.chips button:nth-child(2){background:#fce4ec;border-color:#efbecd;color:#99445c}.chips button:nth-child(3){background:#e1f0f7;border-color:#b8d7e8;color:#416e89}input,textarea,select{background:#fffcf5;border-color:#e7d7c8;border-radius:12px}input:focus,textarea:focus,select:focus{outline:2px solid #bf637c;outline-offset:2px}.empty{background:#fffdf7;border:2px dashed #e4bc9f;border-radius:26px;min-height:650px;height:100%;position:relative}.empty:before{content:'✿';position:absolute;top:35px;right:40px;color:#eaa1b1;font-size:48px;transform:rotate(18deg)}.sample-bow{color:#ca748d;background:#ffebd3;border-radius:45% 55% 60% 40%;padding:30px 35px;transform:rotate(-8deg)}.empty h2{font-size:30px;line-height:1.6}.empty .eyebrow{color:#91674e;letter-spacing:1px}.design-card{border-radius:20px;border:2px solid #edd8c6;box-shadow:0 5px 0 #eedfcf}.design-card:nth-child(2){border-color:#b8d9c5}.design-card:nth-child(3){border-color:#d8c5ea}.design-card.selected{outline:3px solid #b84c6a}.choose{background:#fff0da;border:0;color:#914b39;font-weight:600}.design-card:nth-child(2) .choose{background:#e3f0e5;color:#416649}.design-card:nth-child(3) .choose{background:#eee6f5;color:#745490}#editor,#guide,#history{border-radius:24px;border:2px solid #ead5bd;box-shadow:5px 6px 0 #f1e6d6}#status:not(:empty){border-radius:14px;background:#def0e5;border-color:#518066}#status.error{background:#ffe4e8;border-color:#b94e68}.upload-box{margin:22px 0 8px;padding:16px;background:#fff3d4;border:2px dashed #e1b873;border-radius:18px}.upload-box>label{margin:0;display:flex;flex-direction:column;align-items:center;text-align:center;cursor:pointer}.upload-icon{display:grid;place-items:center;width:42px;height:42px;background:#fff;border:1px solid #efd29b;border-radius:14px;color:#b77532;font-size:29px;transform:rotate(-7deg);margin-bottom:8px}.upload-box strong{font-size:16px;color:#8b5735}.upload-box label>span:last-child{font-size:11px;line-height:1.7;margin:6px 0 12px;color:#876845}#materials{padding:8px;border:0;background:#fffaf0;font-size:12px}#materials::file-selector-button{border:0;background:#a34860;color:white;border-radius:9px;padding:8px 12px;margin-right:8px;cursor:pointer}#uploadHint{font-size:11px;color:#8a7157;line-height:1.7;margin:10px 0 0}#uploadStatus{font-size:12px;color:#8c3d53;margin-top:8px}#photoList{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:10px}#photoList:empty{display:none}#photoList figure{position:relative;margin:0;background:#fff;border-radius:12px;padding:5px}#photoList img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}#photoList figcaption{text-align:center;font-size:11px}#photoList button{position:absolute;right:-5px;top:-8px;background:#a13c54;color:white;border:2px solid white;border-radius:50%;height:26px;width:26px;padding:0;line-height:20px}.saved-materials{background:#fff2d6;border-radius:15px;padding:5px 15px;margin-bottom:18px}.saved-photos{display:flex;gap:12px;padding:10px 0}.saved-photos img{width:calc((100% - 24px)/3);max-width:140px;height:110px;object-fit:contain;background:white;border-radius:12px}.eyebrow{color:#986654}footer{border-top:2px dashed #e8cfb5}.guide-step h3{color:#9d435a}th{background:#fff0d0}
@media(max-width:900px){.workspace{grid-template-columns:1fr}.hero{padding:30px}.hero h1{font-size:39px}.empty{min-height:400px}}
@media(max-width:600px){.hero{margin-top:18px;padding:25px 20px;border-radius:24px;min-height:285px}.hero h1{font-size:32px}.hero .eyebrow{font-size:11px}.hero:after{right:18px;top:12px;font-size:38px}.ribbon-art{right:-150px;top:95px;opacity:.25}.hero p:not(.eyebrow){max-width:250px;line-height:1.9}.steps{gap:7px;margin-bottom:24px}.steps span{border-radius:12px;font-size:10px;padding:12px 5px}aside{padding:20px}.empty h2{font-size:25px}.empty:before{font-size:30px;right:20px;top:20px}.empty p:last-child{font-size:12px}.upload-box{padding:14px}.primary{padding:14px 17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{body{background:white!important}#guide{box-shadow:none;border:0}}
