@import url('/theme.css');
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;font-size:16px;line-height:1.6}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}[hidden]{display:none!important}.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}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:12px}.skip-link:focus{top:10px}.topbar{max-width:1280px;margin:auto;padding:25px 48px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;font-weight:600;letter-spacing:.08em}.audience{color:var(--muted);font-size:.875rem;letter-spacing:.16em}.topbar img{border-radius:11px}main{max-width:1280px;margin:auto;padding:0 48px;min-height:70vh}.catalog-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;padding:42px 0 32px}.eyebrow{margin:0 0 12px;color:var(--green);font-size:.875rem;letter-spacing:.2em}h1{font-family:"Songti TC","Noto Serif TC",serif;font-weight:500;letter-spacing:.05em;line-height:1.4;font-size:2.3rem;margin:0}.title-dot{color:var(--gold)}.intro-caption{font-size:.875rem;color:var(--muted);margin:0 0 7px;white-space:nowrap}.catalog-controls{position:sticky;top:0;z-index:2;background:var(--paper);padding:12px 0 0}.search-row{display:flex;gap:12px}.search-box{position:relative;background:white;border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;flex:1;padding:0 18px;min-width:0}.search-box svg,.refresh svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}.search-box svg{color:var(--muted)}input[type=search]{width:100%;min-width:0;border:0;background:transparent;padding:16px 12px;color:var(--ink);outline-offset:-4px}input::-webkit-search-cancel-button{display:none}input::placeholder{color:#848b82}.clear-search{border:0;background:transparent;color:var(--muted);font-size:1.5rem;width:38px;flex:none}.refresh{display:flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;background:transparent;border:1px solid var(--line);border-radius:14px;color:var(--green);font-size:.875rem}#categories{display:flex;gap:8px;padding:20px 0 18px;overflow:auto;scrollbar-width:none;border-bottom:1px solid var(--line)}.category{border:1px solid transparent;background:transparent;color:var(--muted);padding:9px 19px;border-radius:99px;white-space:nowrap;font-size:.9375rem;min-height:44px}.category[aria-pressed=true]{background:var(--green);color:#fff}.category:hover:not([aria-pressed=true]){background:var(--wash)}.results-bar{display:flex;align-items:center;justify-content:space-between;padding:24px 0 20px}.results-bar h2{font-size:1.0625rem;letter-spacing:.06em;margin:0;font-weight:600}#result-count{font-size:.875rem;color:var(--muted)}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px 23px;padding-bottom:52px}.product-card{min-width:0}.card-link{display:block;position:relative}.image-wrap{aspect-ratio:1;background:var(--wash);border:1px solid #ebe9df;border-radius:18px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.image-wrap img{width:86%;height:86%;object-fit:contain;mix-blend-mode:multiply;transition:transform .3s}.card-link:hover .image-wrap img{transform:scale(1.045)}.placeholder{display:flex;align-items:center;flex-direction:column;gap:12px;color:#7f8477;font-size:.8125rem;letter-spacing:.08em}.placeholder svg{width:50px;height:50px;fill:none;stroke:#a6ad9b;stroke-width:1}.badges{position:absolute;left:13px;top:13px;display:flex;gap:6px;flex-wrap:wrap;z-index:1}.badge{font-size:.75rem;padding:3px 8px;border-radius:5px;font-weight:600;letter-spacing:.04em}.badge-new{background:var(--green);color:white}.badge-stock{background:#f4e9d5;color:#76562a;border:1px solid #e5d7bc}.photo-count{position:absolute;bottom:10px;right:11px;padding:2px 7px;border-radius:6px;background:#ffffffbd;color:var(--muted);font-size:.75rem}.card-category{font-size:.8125rem;color:var(--muted);margin:15px 0 4px}.card-name{font-size:1rem;font-weight:500;margin:0;line-height:1.65;overflow-wrap:anywhere}.card-price{color:var(--green);font-size:1.0625rem;font-weight:600;margin:9px 0 0;line-height:1.5;white-space:pre-line}.price-note{display:block;font-size:.8125rem;color:var(--muted);font-weight:400;white-space:pre-line;margin-top:3px}.card-arrow{position:absolute;right:13px;bottom:13px;width:30px;height:30px;border-radius:50%;background:white;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.card-link:hover .card-arrow{opacity:1}.state-panel{text-align:center;padding:48px 20px 80px;color:var(--muted)}.state-symbol{display:block;color:var(--green);font-size:3rem}.state-panel h2{font-size:1.25rem;color:var(--ink);font-weight:500}.state-panel p{font-size:.9375rem}.primary-button{background:var(--green);color:white;border:0;border-radius:10px;padding:12px 24px;min-height:48px}.skeleton{height:auto;aspect-ratio:1;background:linear-gradient(90deg,var(--wash) 25%,#f8f7f1 50%,var(--wash) 75%);background-size:200%;animation:shimmer 1.4s infinite;border-radius:18px}.skeleton-card:after{content:"";display:block;width:65%;height:18px;margin-top:18px;background:var(--wash);border-radius:5px}@keyframes shimmer{to{background-position:-200% 0}}footer{max-width:1184px;margin:16px auto 0;padding:25px 0 34px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:.8125rem;color:var(--muted)}dialog{width:min(1080px,calc(100vw - 72px));max-height:90dvh;border:none;background:var(--paper);padding:0;border-radius:24px;color:var(--ink);overscroll-behavior:contain}dialog::backdrop{background:#172d27b0;backdrop-filter:blur(4px)}.close-detail{position:sticky;float:right;top:16px;right:16px;margin:16px 16px -60px 0;z-index:4;background:#fff;border:1px solid var(--line);font-size:1.75rem;width:44px;height:44px;border-radius:50%;color:var(--ink);line-height:1}.detail-layout{display:grid;grid-template-columns:1fr 1fr;gap:36px;padding:64px 36px 40px}.detail-gallery{min-width:0}.detail-gallery .image-wrap{border-radius:18px;touch-action:pan-y}.gallery-controls{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.gallery-controls button{border:1px solid var(--line);background:white;border-radius:50%;width:44px;height:44px;color:var(--green);font-size:1.25rem}.gallery-controls span{font-size:.875rem;color:var(--muted)}.thumbnails{display:flex;gap:8px;overflow-x:auto;padding:5px 2px 12px}.thumbnail{flex:0 0 66px;height:66px;border:1px solid var(--line);border-radius:10px;background:var(--wash);padding:5px}.thumbnail[aria-pressed=true]{outline:2px solid var(--green);outline-offset:1px}.thumbnail img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}.detail-category{font-size:.875rem;color:var(--muted);margin:0 0 8px}.detail-info h2{font-family:"Songti TC","Noto Serif TC",serif;font-size:1.7rem;line-height:1.55;letter-spacing:.03em;font-weight:500;margin:0 0 16px;overflow-wrap:anywhere}.detail-info .detail-badges{display:flex;gap:7px;margin-bottom:14px}.detail-price{font-size:1.55rem;color:var(--green);font-weight:600;line-height:1.5;margin:0 0 26px}.detail-description{border-top:1px solid var(--line);padding-top:24px}.detail-description h3{font-size:.875rem;color:var(--muted);font-weight:500;letter-spacing:.08em;margin:0 0 15px}.description-text{font-size:1rem;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9;margin:0}.detail-unavailable{padding:72px 28px;text-align:center}.local-preview{background:#fff0cf;color:#674919;padding:10px 24px;font-size:.875rem;text-align:center;border-bottom:1px solid #dec493}.local-preview a{text-decoration:underline}.dialog-open{overflow:hidden}
@media(max-width:1000px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.intro-caption{display:none}.detail-layout{gap:24px;padding:64px 26px 32px}footer{margin:16px 48px 0}h1{font-size:2rem}}
@media(max-width:700px){.topbar{padding:17px 20px}.brand{font-size:.9375rem}.audience{font-size:.8125rem}main{padding:0 20px}.catalog-intro{padding:28px 0 20px}.eyebrow{font-size:.8125rem;margin-bottom:8px}h1{font-size:1.65rem;letter-spacing:.025em}.search-box{padding:0 12px;border-radius:12px}input[type=search]{padding:13px 8px;font-size:1rem}.search-row{gap:8px}.refresh{padding:10px;width:48px;flex:none;border-radius:12px}.refresh span{display:none}#categories{padding:15px 0;gap:3px}.category{padding:8px 14px;font-size:.875rem}.results-bar{padding:22px 0 15px}.results-bar h2{font-size:1rem}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px;padding-bottom:34px}.image-wrap{border-radius:13px}.card-category{margin-top:10px;font-size:.8125rem}.card-name{font-size:.9375rem;line-height:1.6}.card-price{font-size:1rem;margin-top:7px}.price-note{font-size:.75rem}.badges{left:8px;top:8px;gap:4px}.badge{font-size:.75rem;padding:2px 6px}.photo-count{bottom:8px;right:8px}.placeholder{font-size:.75rem;gap:8px}.placeholder svg{width:38px;height:38px}.card-arrow{display:none}footer{margin:12px 20px 0;padding:22px 0;font-size:.75rem}dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.detail-layout{display:block;padding:70px 22px 32px}.detail-gallery{max-width:480px;margin:auto}.detail-info{margin-top:28px}.detail-info h2{font-size:1.6rem}.detail-price{font-size:1.45rem}.description-text{font-size:1rem}.state-panel{padding:30px 0 60px}}
@media(max-width:340px){.product-grid{grid-template-columns:1fr}.audience{display:none}h1{font-size:1.45rem}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
