:root{--ink: #3d342c;--muted: #8a7f72;--paper: #f7f2ea;--card: #fffdf9;--line: #e7dfd2;--accent: #8b6914;--accent-deep: #6f5210;--danger: #c45c4a;--shadow: 0 10px 28px rgba(61, 52, 44, .08);font-family:Noto Sans SC,PingFang SC,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;background:radial-gradient(circle at 10% 0%,#fff9f0 0%,transparent 40%),var(--paper)}button,input,textarea{font:inherit}.app-shell{max-width:430px;margin:0 auto;min-height:100vh;padding-bottom:72px;position:relative}.page{padding:16px 16px 24px}.page-title{margin:0 0 14px;font-size:1.25rem;font-weight:600}.hero{position:relative;border-radius:18px;overflow:hidden;min-height:168px;background:linear-gradient(135deg,#3d342c59,#3d342c0d),url(https://images.unsplash.com/photo-1516589178581-6cd7833ae3b2?w=800&q=80) center/cover;color:#fff;padding:22px 18px;box-shadow:var(--shadow)}.hero h2{margin:0 0 8px;font-family:Cormorant Garamond,serif;font-size:1.7rem;font-weight:600}.hero p{margin:0 0 16px;opacity:.92;font-size:.9rem}.btn{border:0;background:var(--accent);color:#fffdf8;padding:12px 18px;border-radius:999px;cursor:pointer;transition:transform .16s ease,background .16s ease}.btn:hover{background:var(--accent-deep);transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn.block{width:100%;border-radius:14px}.btn.ghost{background:transparent;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 55%,white)}.btn.light{background:#fff;color:var(--accent-deep)}.section{margin-top:20px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-head h3{margin:0;font-size:1rem}.section-head span{color:var(--muted);font-size:.82rem}.cat-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;text-align:center}.cat-item{border:0;background:transparent;padding:0;color:var(--ink);cursor:pointer}.cat-icon{width:48px;height:48px;margin:0 auto 6px;border-radius:50%;background:#efe6d7;display:grid;place-items:center;font-size:1.1rem}.cat-item small{font-size:.72rem;color:var(--muted)}.order-row{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 8px}.order-item{text-align:center;position:relative}.order-item .badge{position:absolute;top:-4px;right:10px;min-width:16px;height:16px;border-radius:999px;background:var(--danger);color:#fff;font-size:.65rem;line-height:16px}.order-item .ico{font-size:1.15rem}.order-item small{display:block;margin-top:4px;font-size:.7rem;color:var(--muted)}.promo{margin-top:16px;border-radius:16px;padding:18px;background:linear-gradient(120deg,#f3e7cf,#efe2c8);border:1px solid #e4d5b8}.promo strong{display:block;margin-bottom:4px}.promo span{color:var(--muted);font-size:.85rem}.tabbar{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(430px,100%);height:64px;background:#fffdf9f5;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;grid-template-columns:repeat(5,1fr);align-items:end;padding:6px 4px 10px;z-index:20}.tab{border:0;background:transparent;color:var(--muted);font-size:.68rem;display:grid;gap:2px;justify-items:center;cursor:pointer}.tab.active{color:var(--accent-deep)}.tab .ico{font-size:1.05rem}.tab.ai{position:relative;top:-14px}.tab.ai .ai-fab{width:48px;height:48px;border-radius:50%;background:linear-gradient(160deg,#c9a227,var(--accent-deep));color:#fff;display:grid;place-items:center;font-size:1.4rem;box-shadow:0 8px 18px #8b691459}.chip-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.chip{flex:0 0 auto;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 12px;font-size:.82rem;color:var(--muted);cursor:pointer}.chip.active{background:color-mix(in srgb,var(--accent) 16%,white);border-color:color-mix(in srgb,var(--accent) 40%,white);color:var(--accent-deep)}.tpl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.tpl-card{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-align:left;padding:0;cursor:pointer}.tpl-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:#efe6d7}.tpl-card .meta{padding:8px 10px 10px;font-size:.85rem}.steps{display:flex;justify-content:space-between;gap:4px;margin-bottom:16px}.step{flex:1;text-align:center;font-size:.7rem;color:var(--muted)}.step .n{width:22px;height:22px;margin:0 auto 4px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;background:#fff}.step.active{color:var(--accent-deep)}.step.active .n{background:var(--accent);border-color:var(--accent);color:#fff}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px}.card h4{margin:0 0 10px;font-size:.95rem}.upload-box{border:1px dashed #d2c4ad;border-radius:12px;min-height:96px;display:grid;place-items:center;color:var(--muted);cursor:pointer;background:#fcfaf6}.upload-usage{display:flex;justify-content:space-between;margin-top:10px;font-size:12px;color:var(--muted)}.thumb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.thumb-grid .thumb-item{margin:0;padding:0;border:0;background:transparent;border-radius:8px;overflow:hidden;cursor:pointer;position:relative}.thumb-grid .thumb-item:disabled{cursor:default}.thumb-grid .thumb-item:not(:disabled):after{content:"×";position:absolute;top:2px;right:4px;color:#fff;font-size:12px;text-shadow:0 1px 2px rgba(0,0,0,.55);opacity:.85}.thumb-grid .thumb-item.is-optimizing img,.thumb-grid .thumb-item.is-uploading img{opacity:.55;filter:blur(.4px)}.thumb-grid .thumb-status{position:absolute;inset:auto 0 0;padding:4px 2px;background:linear-gradient(transparent,#3d342cbf);color:#fff;font-size:10px;text-align:center}.thumb-grid .thumb-item.is-done .thumb-status{background:linear-gradient(transparent,#5a7846cc)}.thumb-grid .thumb-item.is-error .thumb-status{background:linear-gradient(transparent,#c45c4ad9)}.upload-bar{position:relative;margin-top:10px;border-radius:10px;background:#efe8dc;overflow:hidden;min-height:28px;display:grid;place-items:center}.upload-bar-fill{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,#d4b483,#8b6914);opacity:.35;transition:width .25s ease}.upload-bar span{position:relative;z-index:1;font-size:12px;color:var(--ink);padding:6px 10px;text-align:center}.thumb-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;display:block}textarea{width:100%;min-height:88px;border:1px solid var(--line);border-radius:12px;padding:10px;resize:vertical;background:#fff}.style-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.style-item{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 6px;text-align:center;font-size:.78rem;cursor:pointer}.style-item.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,white)}.status{color:var(--muted);font-size:.88rem;line-height:1.5}.progress{height:6px;background:var(--line);border-radius:999px;overflow:hidden;margin-top:8px}.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#c9a227)}.profile-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.avatar{width:56px;height:56px;border-radius:50%;background:#e8dcc8;display:grid;place-items:center;font-size:1.4rem}.feed-item{display:flex;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.feed-item:last-child{border-bottom:0}.feed-dot{width:10px;height:10px;margin-top:5px;border-radius:50%;background:var(--accent)}.row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:var(--shadow)}.meta{display:flex;justify-content:space-between;gap:12px;font-size:.9rem;color:var(--muted)}.editor{margin-top:16px;display:grid;gap:14px}.page-stage,.flip-stage{position:relative;width:min(100%,380px);aspect-ratio:1;margin:0 auto;background:#fffdf8;border:1px solid var(--line);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.slot{position:absolute;overflow:hidden;background:#efe8da}.slot img{width:100%;height:100%;object-fit:cover;transform-origin:center center;pointer-events:none}.slot.active{outline:2px solid var(--accent);outline-offset:-2px}.replace-pool{display:flex;gap:8px;overflow-x:auto}.replace-pool button{border:1px solid var(--line);background:#fff;padding:0;width:64px;height:64px;flex:0 0 auto;cursor:pointer}.replace-pool img{width:100%;height:100%;object-fit:cover;display:block}.hint{margin:0;font-size:.85rem;color:var(--muted)}.flip-wrap{margin-top:12px}.flip-stage{perspective:1600px}.flip-stage.is-animating .flip-sheet{will-change:transform}.flip-shadow{position:absolute;inset:8% 6% auto;height:86%;border-radius:2px;background:radial-gradient(ellipse at center,rgba(28,25,21,.18),transparent 70%);filter:blur(10px);pointer-events:none}.flip-book{position:absolute;top:0;right:0;bottom:0;left:0;transform-style:preserve-3d}.flip-sheet{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left center;transform-style:preserve-3d;border:1px solid #d5ccba;background:#fffdf8;box-shadow:8px 12px 28px #1c19151f}.flip-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden}.flip-face.back{transform:rotateY(180deg)}.back-tint{width:100%;height:100%;background:linear-gradient(90deg,#efe8da,#f7f1e6)}.flip-page{position:relative;width:100%;height:100%;overflow:hidden}.curl{position:absolute;top:0;right:0;width:18%;height:100%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(28,25,21,.06) 55%,rgba(255,255,255,.25))}.upsell-sheet{transform:none!important;overflow:auto;padding:16px}.upsell h2{font-family:Cormorant Garamond,serif;font-size:1.5rem;margin:0 0 6px}.upsell-grid{display:grid;gap:12px}.upsell-media{aspect-ratio:4 / 3;overflow:hidden;background:#efe8da;border-radius:10px}.upsell-media img{width:100%;height:100%;object-fit:cover}.upsell-copy{display:flex;justify-content:space-between}.hint-inline{color:var(--muted);font-size:.82rem}.cart-line{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.ship-form{display:grid;gap:8px;margin:12px 0}.ship-form input{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;background:#fff}.price{color:var(--accent-deep);font-weight:600}
