:root{--bg: #faf5ec;--bg-soft: #f3ead9;--card: #fffdf8;--ink: #40362b;--muted: #8a7d6c;--line: #e8decb;--terracotta: #c05f35;--terracotta-dark: #9c4a27;--terracotta-soft: #f6e3d8;--jade: #7fa98c;--amber: #e2a54f;--rose: #d98c8c;--sky: #8ca6c9;--whatsapp: #1fab55;--shadow-sm: 0 1px 3px rgba(90, 66, 40, .08), 0 4px 14px rgba(90, 66, 40, .06);--shadow-md: 0 4px 10px rgba(90, 66, 40, .1), 0 14px 34px rgba(90, 66, 40, .12);--radius: 18px;--serif: "Noto Serif TC", serif;--sans: "Noto Sans TC", sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.75;background-image:radial-gradient(rgba(192,95,53,.035) 1px,transparent 1px);background-size:22px 22px}img{max-width:100%;display:block}a{color:var(--terracotta);text-decoration:none}h1,h2,h3{font-family:var(--serif);line-height:1.35;margin:0 0 .5em}.container{width:min(1080px,100% - 2.5rem);margin-inline:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.5rem;border-radius:999px;border:none;font-family:var(--sans);font-size:1rem;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;text-align:center}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--terracotta);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--terracotta-dark);box-shadow:var(--shadow-md)}.btn-ghost{background:transparent;color:var(--terracotta);border:2px solid var(--terracotta)}.btn-ghost:hover:not(:disabled){background:var(--terracotta-soft)}.btn-whatsapp{background:var(--whatsapp);color:#fff;box-shadow:var(--shadow-sm)}.btn-whatsapp:hover{background:#178a44;box-shadow:var(--shadow-md)}.btn-sm{padding:.35rem .9rem;font-size:.875rem}.site-header{position:sticky;top:0;z-index:50;background:#faf5ece0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.site-header .container{display:flex;align-items:center;justify-content:space-between;padding-block:.7rem}.brand{display:flex;align-items:center;gap:.6rem;color:var(--ink)}.brand-name{font-family:var(--serif);font-weight:900;font-size:1.35rem;letter-spacing:.06em}.site-nav{display:flex;gap:.4rem}.site-nav a{padding:.4rem .9rem;border-radius:999px;color:var(--ink);font-weight:500}.site-nav a:hover{background:var(--bg-soft)}.site-nav a.active{background:var(--terracotta-soft);color:var(--terracotta-dark);font-weight:700}.hero{position:relative;overflow:hidden;padding:4.5rem 0 3.5rem;text-align:center}.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none}.hero:before{width:340px;height:340px;background:#f4d3b8;top:-120px;left:-80px}.hero:after{width:300px;height:300px;background:#d9e6d3;bottom:-140px;right:-60px}.hero h1{font-size:clamp(2rem,6vw,3.4rem);font-weight:900;letter-spacing:.04em;margin-bottom:.4em}.hero h1 em{font-style:normal;color:var(--terracotta)}.hero p{color:var(--muted);font-size:clamp(1rem,2.5vw,1.15rem);max-width:34em;margin:0 auto 1.8rem}.hero-actions{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}.bead-string{display:flex;align-items:center;justify-content:center;gap:10px;margin:1.6rem auto}.bead-string i{border-radius:50%;display:block;box-shadow:inset -2px -3px 4px #00000024,inset 2px 3px 4px #ffffffa6}.section-title{font-size:1.6rem;display:flex;align-items:center;gap:.6rem}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.2rem;padding-bottom:3.5rem}@media(min-width:640px){.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.6rem}}.product-card{background:var(--card);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line);color:var(--ink);transition:transform .2s ease,box-shadow .2s ease;display:block}.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.product-card .photo{aspect-ratio:1;background:var(--bg-soft);overflow:hidden}.product-card .photo img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.product-card:hover .photo img{transform:scale(1.05)}.product-card .info{padding:.8rem 1rem 1rem}.product-card .name{font-family:var(--serif);font-weight:700;font-size:1.05rem}.product-card .tagline{color:var(--muted);font-size:.85rem;line-height:1.5;margin-top:2px}.product-detail{display:grid;gap:2rem;padding:2.5rem 0 4rem}@media(min-width:820px){.product-detail{grid-template-columns:1.1fr 1fr;align-items:start}}.gallery-main{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:var(--bg-soft);aspect-ratio:1;box-shadow:var(--shadow-sm)}.gallery-main img{width:100%;height:100%;object-fit:cover}.gallery-thumbs{display:flex;gap:.6rem;margin-top:.8rem;flex-wrap:wrap}.gallery-thumbs button{width:64px;height:64px;border-radius:12px;overflow:hidden;border:2px solid transparent;padding:0;cursor:pointer;background:var(--bg-soft)}.gallery-thumbs button.active{border-color:var(--terracotta)}.gallery-thumbs img{width:100%;height:100%;object-fit:cover}.product-info h1{font-size:clamp(1.6rem,4vw,2.2rem);margin-bottom:.2em}.product-info .tagline{color:var(--terracotta);font-weight:500;margin-bottom:1.2rem}.product-info .description{white-space:pre-line;margin-bottom:1.6rem}.meta-list{display:grid;gap:.6rem;margin-bottom:1.8rem}.meta-row{display:flex;gap:.8rem;align-items:baseline;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem 1rem}.meta-row .label{color:var(--muted);font-size:.85rem;flex-shrink:0}.meta-row .value{font-weight:500}.price-note{color:var(--terracotta-dark);font-weight:700}.stepper{display:flex;justify-content:center;gap:.3rem;margin:2rem 0 1.5rem;flex-wrap:wrap}.stepper .step{display:flex;align-items:center;gap:.4rem;padding:.3rem .8rem;border-radius:999px;font-size:.85rem;color:var(--muted)}.stepper .step .dot{width:22px;height:22px;border-radius:50%;background:var(--bg-soft);color:var(--muted);display:grid;place-items:center;font-size:.75rem;font-weight:700}.stepper .step.current{background:var(--terracotta-soft);color:var(--terracotta-dark);font-weight:700}.stepper .step.current .dot,.stepper .step.done .dot{background:var(--terracotta);color:#fff}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.4rem}.board-wrap{display:grid;gap:1rem}.board-canvas{width:100%;border-radius:12px;border:2px dashed var(--line);background:#fff;touch-action:none;cursor:crosshair;display:block}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.tool-group{display:flex;gap:.3rem;background:var(--bg-soft);border-radius:999px;padding:.25rem}.tool-btn{border:none;background:transparent;width:38px;height:38px;border-radius:50%;cursor:pointer;display:grid;place-items:center;font-size:1.05rem;color:var(--ink)}.tool-btn.active{background:#fff;box-shadow:var(--shadow-sm);color:var(--terracotta)}.color-swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.color-swatch.active{border-color:var(--ink);transform:scale(1.15)}.size-slider{accent-color:var(--terracotta)}.chat{display:grid;gap:.8rem;margin-bottom:1rem}.bubble{max-width:85%;padding:.7rem 1rem;border-radius:16px;line-height:1.6}.bubble.ai{background:var(--bg-soft);border-bottom-left-radius:4px;justify-self:start}.bubble.me{background:var(--terracotta-soft);border-bottom-right-radius:4px;justify-self:end}.chat-input-row{display:flex;gap:.6rem}.disclaimer{background:#fdf3e3;border:1px solid #f0d9ae;color:#8a6320;border-radius:12px;padding:.7rem 1rem;font-size:.9rem;text-align:center;font-weight:500}.render-frame{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-md);max-width:480px;margin:1rem auto}.field{display:grid;gap:.3rem;margin-bottom:1rem}.field>span{font-weight:500;font-size:.92rem}.field .hint{color:var(--muted);font-weight:400;font-size:.8rem}input[type=text],input[type=tel],input[type=password],textarea,select{font-family:var(--sans);font-size:1rem;padding:.65rem .9rem;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--terracotta);box-shadow:0 0 0 3px #c05f3524}textarea{resize:vertical;min-height:90px}.error-text{color:#b3382c;background:#fbeae7;border:1px solid #efc4bc;border-radius:10px;padding:.5rem .9rem;font-size:.9rem}.success-text{color:#2f6b43;background:#e8f3ea;border:1px solid #bedac6;border-radius:10px;padding:.5rem .9rem;font-size:.9rem}.loading-beads{display:flex;gap:8px;justify-content:center;padding:1.4rem}.loading-beads i{width:14px;height:14px;border-radius:50%;animation:bead-bounce 1s ease-in-out infinite}.loading-beads i:nth-child(1){background:var(--terracotta)}.loading-beads i:nth-child(2){background:var(--amber);animation-delay:.15s}.loading-beads i:nth-child(3){background:var(--jade);animation-delay:.3s}.loading-beads i:nth-child(4){background:var(--sky);animation-delay:.45s}@keyframes bead-bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-9px)}}.loading-note{text-align:center;color:var(--muted);font-size:.92rem}.site-footer{border-top:1px solid var(--line);padding:2.2rem 0 2.6rem;text-align:center;color:var(--muted);font-size:.9rem;margin-top:2rem}.admin-tabs{display:flex;gap:.4rem;flex-wrap:wrap;margin:1.4rem 0}.admin-tabs button{border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:.45rem 1.1rem;font-family:var(--sans);font-size:.95rem;cursor:pointer;color:var(--ink)}.admin-tabs button.active{background:var(--terracotta);border-color:var(--terracotta);color:#fff;font-weight:700}.admin-list{display:grid;gap:.8rem}.admin-item{display:flex;gap:1rem;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.7rem 1rem}.admin-item .thumb{width:56px;height:56px;border-radius:10px;object-fit:cover;background:var(--bg-soft);flex-shrink:0}.admin-item .grow{flex:1;min-width:0}.status-pill{display:inline-block;padding:.1rem .7rem;border-radius:999px;font-size:.78rem;font-weight:700}.status-published{background:#e8f3ea;color:#2f6b43}.status-draft{background:var(--bg-soft);color:var(--muted)}.status-hidden{background:#f3e5e2;color:#9c4a27}.status-pending{background:#fdf3e3;color:#8a6320}.status-quoted{background:#e7eef7;color:#3a5e8c}.status-accepted{background:#e8f3ea;color:#2f6b43}.status-declined{background:#f3e5e2;color:#9c4a27}.photo-strip{display:flex;gap:.5rem;flex-wrap:wrap}.photo-strip img{width:84px;height:84px;border-radius:10px;object-fit:cover;border:1px solid var(--line)}.photo-strip .removable{position:relative}.photo-strip .removable button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:none;background:var(--ink);color:#fff;cursor:pointer;font-size:.7rem;line-height:1}
