:root{--c-bg: #ffffff;--c-surface: #ffffff;--c-surface-2: #f4f2ec;--c-text: #15140f;--c-text-soft: #4a463d;--c-text-mute: #8d887c;--c-border: #e4ded2;--c-brand: #15140f;--c-brand-dark: #000000;--c-brand-soft: #f4f2ec;--c-accent: #15140f;--c-warn: #f4f2ec;--c-warn-text: #4a463d;--c-star: #9c7a3c;--c-good: #4a463d;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--shadow-1: none;--shadow-2: none;--shadow-3: 0 18px 48px rgba(0, 0, 0, .18);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--font-stack: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-stack);background:var(--c-bg);color:var(--c-text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}button{font:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) clamp(12px,4vw,28px);background:var(--c-surface);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:30;box-shadow:var(--shadow-1)}.brand{font-size:18px;font-weight:800;color:var(--c-brand);text-decoration:none;white-space:nowrap;letter-spacing:.5px}.topbar-spacer{flex:1}.topbar-hint{color:var(--c-text-mute);font-size:12px;display:none}@media (min-width: 720px){.topbar-hint{display:inline}}.topbar-user{display:inline-flex;align-items:center;gap:var(--space-2);font-size:13px;color:var(--c-text-soft)}.topbar-user .uname{font-weight:600;color:var(--c-text);max-width:8em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);cursor:pointer;font-size:13px;transition:background .15s,border-color .15s,color .15s,transform .05s}.btn:hover{background:var(--c-surface-2)}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--c-brand);color:#fff;border-color:var(--c-brand)}.btn-primary:hover{background:var(--c-brand-dark);border-color:var(--c-brand-dark)}.btn-ghost{background:transparent}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:9px 22px;font-size:14px}.link-btn{background:transparent;border:0;color:var(--c-accent);cursor:pointer;font-size:13px;padding:0;text-decoration:underline}.page{width:100%;max-width:1320px;margin:0 auto;padding:var(--space-4) clamp(12px,4vw,28px) var(--space-6);flex:1}.hero{background:linear-gradient(135deg,#fff0f3,#ffeaf0 40%,#f3edff);border-radius:var(--radius-lg);padding:clamp(20px,4vw,40px) clamp(18px,4vw,36px);margin-bottom:var(--space-5);position:relative;overflow:hidden}.hero h1{margin:0 0 var(--space-2);font-size:clamp(20px,3.4vw,28px);line-height:1.3;color:var(--c-text);font-weight:800}.hero p{margin:0 0 var(--space-4);color:var(--c-text-soft);font-size:clamp(13px,2vw,15px);max-width:48ch}.hero .search-bar{box-shadow:var(--shadow-2)}.rank-tabs{display:inline-flex;gap:var(--space-5);padding:0;background:transparent;border:0;margin-bottom:var(--space-4);max-width:100%;overflow-x:auto;scrollbar-width:none}.rank-tabs::-webkit-scrollbar{display:none}.rank-tab{border:0;border-bottom:1px solid transparent;background:transparent;cursor:pointer;padding:6px 0;font-size:12px;color:var(--c-text-mute);white-space:nowrap;text-transform:uppercase;letter-spacing:1.5px}.rank-tab:hover{color:var(--c-text)}.rank-tab.active{color:var(--c-text);border-bottom-color:var(--c-text);font-weight:500}.sort-select{display:flex;flex:0 0 auto;align-items:center;gap:4px;min-width:0;border:1px solid var(--c-border);background:var(--c-surface);padding:7px 14px;cursor:pointer}.sort-select:hover{background:var(--c-surface-2)}.sort-label{flex:none;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-text-mute)}.sort-select select{flex:1 1 auto;min-width:0;border:0;background:transparent;cursor:pointer;font-size:12px;letter-spacing:1px;color:var(--c-text)}.sort-select select:focus{outline:none}.search-bar{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;background:var(--c-surface);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--c-border)}.search-input{flex:1 1 240px;min-width:0;padding:9px 12px;font-size:14px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2)}.search-input:focus{outline:2px solid var(--c-brand-soft);background:#fff}.price-range{display:inline-flex;gap:4px;align-items:center;color:var(--c-text-mute)}.price-input{width:72px;padding:9px 8px;font-size:13px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2)}.search-bar select{padding:9px 10px;border:1px solid var(--c-border);border-radius:var(--radius-sm);font-size:13px;background:var(--c-surface-2)}.search-bar button.btn-primary{padding:9px 22px}@media (max-width: 767px){.search-bar{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);gap:0;padding:0;border:0;border-radius:0;background:transparent;flex-wrap:nowrap}.search-input{flex:1 1 auto;border-radius:0;border-left:0}.search-bar button.btn-primary{flex:0 0 auto;border-radius:0;border-left:0}}.result-info{color:var(--c-text-soft);margin:var(--space-2) 0 var(--space-3);font-size:13px;display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.error-inline{color:#b00020}.shop-filter-banner{background:var(--c-warn);border:1px solid #ffe082;padding:8px var(--space-3);border-radius:var(--radius-sm);margin:var(--space-2) 0 var(--space-1);font-size:13px;color:var(--c-warn-text);display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.shop-filter-banner code{background:#fff;padding:1px 6px;border-radius:3px}.rails{display:grid;gap:var(--space-4);grid-template-columns:1fr;margin:var(--space-5) 0}@media (min-width: 1024px){.rails{grid-template-columns:repeat(3,1fr)}}.rail{background:var(--c-surface);border-radius:var(--radius-md);border:1px solid var(--c-border);padding:var(--space-3) var(--space-4);min-width:0}.rail-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-3)}.rail-head h2{margin:0;font-size:15px;font-weight:700;color:var(--c-text);display:inline-flex;align-items:center;gap:6px}.rail-head .rail-icon{width:6px;height:16px;background:var(--c-brand);border-radius:3px}.rail-head .more{font-size:12px;color:var(--c-text-mute);text-decoration:none}.rail-head .more:hover{color:var(--c-brand)}.rail-empty{color:var(--c-text-mute);font-size:13px;padding:var(--space-5) var(--space-3);text-align:center;background:var(--c-surface-2);border-radius:var(--radius-sm)}.rail-list{display:flex;flex-direction:column;gap:var(--space-2)}@media (max-width: 640px){.rail-list.scroll{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;gap:var(--space-3)}.rail-list.scroll>*{scroll-snap-align:start;flex:0 0 70%}}.shop-card{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2);border-radius:var(--radius-sm);text-decoration:none;color:inherit;cursor:pointer;transition:background .15s}.shop-card:hover{background:var(--c-surface-2)}.shop-card .pic{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;background:var(--c-surface-2);flex:0 0 56px}.shop-card .pic.empty{display:flex;align-items:center;justify-content:center;color:var(--c-text-mute);font-size:11px}.shop-card .info{min-width:0;flex:1}.shop-card .name{font-weight:600;font-size:14px;color:var(--c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shop-card .stat{font-size:12px;color:var(--c-text-soft);margin-top:2px;display:flex;gap:var(--space-3);flex-wrap:wrap}.shop-card .rank-num{font-weight:800;font-size:18px;color:var(--c-brand);width:24px;text-align:center}.shop-card .rank-num.dim{color:var(--c-text-mute)}.review-card{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--c-surface-2);cursor:pointer}.review-card:hover{background:#ebeef5}.review-card .head{display:flex;align-items:center;gap:var(--space-2);font-size:12px;color:var(--c-text-soft);margin-bottom:4px}.review-card .head .author{font-weight:600;color:var(--c-text)}.review-card .body{font-size:13px;color:var(--c-text);overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.5}.review-card .body.empty{color:var(--c-text-mute);font-style:italic}.stars{display:inline-flex;gap:1px;color:var(--c-star);font-size:14px;line-height:1}.stars .s{letter-spacing:1px}.stars .s.off{color:#d8dae3}.stars-input{display:inline-flex;gap:2px}.stars-input button{background:transparent;border:0;cursor:pointer;padding:0 2px;font-size:24px;color:#d8dae3;line-height:1}.stars-input button.on,.stars-input button:hover,.stars-input button:hover~button:not(.lock){color:var(--c-star)}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:var(--space-5) 0 var(--space-3);gap:var(--space-3)}.section-head h2{margin:0;font-size:16px;font-weight:700;display:inline-flex;align-items:center;gap:8px}.section-head h2:before{content:"";width:6px;height:18px;background:var(--c-brand);border-radius:3px}.grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width: 641px){.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}}@media (min-width: 1024px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.card{background:var(--c-surface);border-radius:10px;overflow:hidden;cursor:pointer;border:1px solid var(--c-border);transition:box-shadow .15s,transform .15s,border-color .15s;display:flex;flex-direction:column}.card:hover{border-color:var(--c-text)}.card-img{position:relative;aspect-ratio:1;background:var(--c-surface-2);overflow:hidden}.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .25s}.card:hover .card-img img{transform:scale(1.03)}.img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--c-text-mute);font-size:13px}.sold-out{position:absolute;bottom:8px;left:8px;background:#000000b3;color:#fff;font-size:11px;padding:2px 6px;border-radius:3px}.value-badge{position:absolute;top:8px;left:8px;background:var(--c-brand);color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:3px;box-shadow:var(--shadow-1)}.curated-badge{position:absolute;top:8px;left:8px;z-index:1;background:#1f6feb;color:#fff;font-size:11px;font-weight:600;padding:2px 6px;border-radius:3px;box-shadow:var(--shadow-1)}.curated-badge.pin{background:#c0392b}.value-badge+.curated-badge{top:34px}.star-btn{position:absolute;top:6px;right:6px;z-index:2;width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.06);border-radius:999px;cursor:pointer;background:#ffffffeb;color:var(--c-text-soft);box-shadow:0 1px 3px #0000002e,0 1px 1px #0000001a;opacity:0;transition:opacity .15s,color .15s,background .15s,box-shadow .15s}.card:hover .star-btn,.star-btn.on,.star-btn:focus-visible{opacity:1}@media (hover: none){.star-btn{opacity:1}}.star-btn:hover{background:#fff;color:var(--c-text);box-shadow:0 2px 5px #00000038,0 1px 1px #0000001f}.star-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round}.star-btn.on{color:var(--c-star)}.star-btn.on svg{fill:var(--c-star);stroke:var(--c-star)}.card-body{padding:var(--space-2) var(--space-3) var(--space-3);display:flex;flex-direction:column;gap:4px}.card-body .title{font-size:13px;line-height:1.4;height:2.8em;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--c-text)}.prices{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.price-now{color:var(--c-brand);font-size:16px;font-weight:700}.price-orig{color:var(--c-text-mute);font-size:12px;text-decoration:line-through}.meta{margin-top:2px;font-size:11px;color:var(--c-text-mute);display:flex;gap:8px;flex-wrap:wrap}.meta .shop{color:var(--c-text-soft);display:inline-flex;align-items:center;gap:4px}.shop-avatar{width:16px;height:16px;border-radius:50%;object-fit:cover;flex-shrink:0}.meta .badge{background:var(--c-brand-soft);color:var(--c-brand);padding:1px 6px;border-radius:3px;font-size:11px}.empty{text-align:center;padding:48px 20px;color:var(--c-text-mute);line-height:1.8;background:var(--c-surface);border-radius:var(--radius-md);border:1px dashed var(--c-border)}.pager{display:flex;justify-content:center;align-items:center;gap:var(--space-4);margin:var(--space-5) 0}.pager button{padding:6px 16px;border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--radius-sm);cursor:pointer}.pager button:disabled{color:var(--c-text-mute);cursor:not-allowed;background:var(--c-surface-2)}.detail{background:var(--c-surface);border-radius:var(--radius-md);padding:clamp(16px,3vw,28px)}.detail-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.back{background:transparent;border:0;color:var(--c-brand);cursor:pointer;font-size:14px;padding:0;margin-bottom:var(--space-4)}.detail-top .back{margin-bottom:0}.cmp-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-text);cursor:pointer;font-size:13px;letter-spacing:.5px;transition:border-color .15s,color .15s}.cmp-btn:not(:disabled):hover{border-color:var(--c-text);color:var(--c-brand)}.cmp-btn .nav-icon{width:18px;height:18px}.cmp-btn.off,.cmp-btn:disabled{color:var(--c-text-mute);border-color:var(--c-border);opacity:.65;cursor:default}.detail-head{display:flex;gap:var(--space-5);flex-direction:column}@media (min-width: 768px){.detail-head{flex-direction:row}}.detail-gallery{flex:0 0 auto;width:100%;max-width:360px;align-self:flex-start}.main-pic{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);background:var(--c-surface-2)}.detail-meta{flex:1;min-width:0}.detail-meta h1{font-size:clamp(18px,3vw,22px);line-height:1.4;margin:0 0 var(--space-3)}.price-now-big{color:var(--c-brand);font-size:clamp(22px,5vw,28px);font-weight:800}.detail .shop,.detail .rating{color:var(--c-text-soft);font-size:13px;margin-top:var(--space-2)}.detail .shop{display:flex;align-items:center;gap:6px}.detail .shop .shop-avatar{width:22px;height:22px}.skus{margin-top:var(--space-3)}.skus .label{font-size:13px;color:var(--c-text-soft);margin-bottom:6px}.sku-chips{display:flex;gap:6px;flex-wrap:wrap}.sku-chip{padding:4px 12px;border:1px solid var(--c-border);border-radius:var(--radius-sm);font-size:13px;background:var(--c-surface)}.sku-chip.out{color:var(--c-text-mute);background:var(--c-surface-2);text-decoration:line-through}.tags{margin-top:var(--space-3);display:flex;gap:6px;flex-wrap:wrap}.tag{background:var(--c-surface-2);color:var(--c-text-soft);font-size:11px;padding:2px 6px;border-radius:3px}.detail-actions{margin-top:var(--space-4);display:flex;gap:var(--space-2);flex-wrap:wrap}.action-btn{padding:8px 18px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);cursor:pointer;font-size:13px;letter-spacing:.5px;border-radius:var(--radius-sm);transition:border-color .15s,color .15s,background .15s}.action-btn:hover{border-color:var(--c-text)}.action-btn.on{border-color:var(--c-text);background:var(--c-brand);color:#fff}.desc{margin-top:var(--space-6)}.desc h2{font-size:16px;margin:0 0 var(--space-3)}.detail-tabs{display:flex;gap:var(--space-5);margin:0 0 var(--space-4);border-bottom:1px solid var(--c-border)}.detail-tab{border:0;background:transparent;cursor:pointer;padding:8px 0;margin-bottom:-1px;font-size:13px;color:var(--c-text-mute);border-bottom:2px solid transparent;text-transform:uppercase;letter-spacing:1px}.detail-tab:hover{color:var(--c-text)}.detail-tab.active{color:var(--c-text);border-bottom-color:var(--c-text);font-weight:500}.detail-tab .tab-count{color:var(--c-text-mute);font-size:12px}.shot-grid{display:grid;gap:var(--space-3);max-width:720px;margin:0 auto;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.shot-img{display:block;width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--radius-sm);background:var(--c-surface-2)}.desc-empty{max-width:720px;margin:0 auto;padding:var(--space-6) 0;text-align:center;color:var(--c-text-mute);font-size:13px}.desc-blocks{max-width:720px;margin:0 auto}.desc-text{color:var(--c-text);line-height:1.8;font-size:14px}.desc-text p{margin:0 0 10px}.desc-img{display:block;width:100%;height:auto;margin:6px 0;border-radius:var(--radius-sm);background:var(--c-surface-2)}.desc-fold{margin:var(--space-3) 0;border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:0 var(--space-3)}.desc-fold>summary{list-style:none;cursor:pointer;padding:10px 0;color:var(--c-text-soft);font-size:13px;-webkit-user-select:none;user-select:none}.desc-fold>summary:before{content:"▸ ";color:var(--c-text-mute)}.desc-fold[open]>summary:before{content:"▾ ";color:var(--c-text-mute)}.desc-fold>.desc-img{margin-bottom:var(--space-3)}.reviews{margin-top:var(--space-6)}.reviews h2{font-size:16px;margin:0 0 var(--space-3);display:inline-flex;align-items:center;gap:8px}.reviews h2:before{content:"";width:6px;height:18px;background:var(--c-brand);border-radius:3px}.review-summary{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap;background:var(--c-surface-2);padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.review-summary .big{font-size:36px;font-weight:800;color:var(--c-brand);line-height:1}.review-summary .count{font-size:12px;color:var(--c-text-mute);margin-top:4px}.review-summary .histogram{flex:1;min-width:200px;display:flex;flex-direction:column;gap:4px}.review-summary .hbar{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--c-text-soft)}.review-summary .hbar .bar{flex:1;background:#e7e9f0;height:6px;border-radius:3px;overflow:hidden}.review-summary .hbar .bar-fill{height:100%;background:var(--c-star)}.review-form{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.review-form .field{margin-bottom:var(--space-2)}.review-form textarea{width:100%;min-height:88px;resize:vertical;border:1px solid var(--c-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font:inherit;background:var(--c-surface-2)}.review-form textarea:focus{outline:2px solid var(--c-brand-soft);background:#fff}.review-form .row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.review-form .hint{color:var(--c-text-mute);font-size:12px}.review-list{display:flex;flex-direction:column;gap:var(--space-3)}.review-row{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4)}.review-row .head{display:flex;align-items:center;gap:var(--space-3);font-size:13px;color:var(--c-text-soft)}.review-row .head .author{font-weight:600;color:var(--c-text)}.review-row .body{margin-top:var(--space-2);color:var(--c-text);white-space:pre-wrap}.login-prompt{background:var(--c-surface-2);border-radius:var(--radius-md);padding:var(--space-4);text-align:center;color:var(--c-text-soft);margin-bottom:var(--space-4)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14162473;display:flex;align-items:center;justify-content:center;padding:var(--space-4);z-index:100}.modal{background:var(--c-surface);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:var(--space-5);box-shadow:var(--shadow-3)}.modal h2{margin:0 0 var(--space-3);font-size:18px}.modal .tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--c-border)}.modal .tab{flex:1;padding:8px 0;border:0;background:transparent;font:inherit;cursor:pointer;color:var(--c-text-soft);border-bottom:2px solid transparent}.modal .tab.active{color:var(--c-brand);border-color:var(--c-brand);font-weight:600}.modal label{display:block;font-size:13px;color:var(--c-text-soft);margin-bottom:4px}.modal input{width:100%;padding:9px 12px;font-size:14px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2);margin-bottom:var(--space-3)}.modal input:focus{outline:2px solid var(--c-brand-soft);background:#fff}.modal .actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.modal .actions .btn-primary{flex:1}.modal .error{color:#b00020;font-size:13px;margin:0 0 var(--space-2)}.captcha-field{margin-bottom:var(--space-3)}.captcha-field label{display:block;font-size:13px;color:var(--c-text-soft);margin-bottom:4px}.captcha-row{display:flex;gap:var(--space-2);align-items:stretch}.captcha-row input{flex:1;min-width:0;padding:9px 12px;font-size:14px;letter-spacing:2px;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2);text-transform:uppercase;margin-bottom:0}.captcha-row input:focus{outline:2px solid var(--c-brand-soft);background:#fff}.captcha-img{flex:0 0 130px;height:40px;padding:0;border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2);cursor:pointer;display:flex;align-items:center;justify-content:center;overflow:hidden}.captcha-img:hover{border-color:var(--c-brand)}.captcha-img img{width:100%;height:100%;object-fit:contain}.captcha-placeholder{font-size:12px;color:var(--c-text-mute)}.captcha-field .error{color:#b00020;font-size:12px;margin:4px 0 0}.full-bleed{width:100vw;margin-left:calc(50% - 50vw)}body{overflow-x:hidden}.promo-bar{background:#15140f;color:#fff;font-size:11px;letter-spacing:1.6px;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:var(--space-4);padding:9px var(--space-4);text-align:center;position:relative}.promo-bar .promo-region{position:absolute;right:clamp(12px,4vw,28px);color:#cfcabf;font-size:11px;letter-spacing:1.4px}@media (max-width: 720px){.promo-bar .promo-region{display:none}}.site-header{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-4);padding:var(--space-4) clamp(12px,4vw,28px);background:var(--c-surface);border-bottom:1px solid var(--c-border)}.wordmark{grid-column:2;justify-self:center;font-size:clamp(18px,2.4vw,24px);font-weight:600;letter-spacing:5px;text-transform:uppercase;color:var(--c-text);text-decoration:none;white-space:nowrap;padding-left:5px}.nav-left{grid-column:1;justify-self:start}.nav-right{grid-column:3;justify-self:end}.nav-left,.nav-right{display:inline-flex;align-items:center;gap:clamp(14px,2.2vw,28px)}.nav-link{position:relative;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;cursor:pointer;color:var(--c-text);padding:3px 0 1px;border-bottom:1.5px solid transparent}.nav-link:hover,.nav-link.active{border-bottom-color:var(--c-text)}.nav-badge{position:absolute;top:-5px;right:-9px;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;background:var(--c-brand);color:#fff;font-size:10px;font-weight:600;line-height:1;border-radius:999px}.nav-icon{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;border:0;padding:0;background:transparent;cursor:default}.nav-panel{position:absolute;top:100%;z-index:26;min-width:200px;display:flex;flex-direction:column;gap:2px;background:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--shadow-3);padding:var(--space-3)}.nav-panel-right{right:clamp(12px,4vw,28px)}.nav-panel button{border:0;background:transparent;cursor:pointer;text-align:left;font-size:14px;letter-spacing:1px;color:var(--c-text);padding:9px 10px}.nav-panel button:hover{background:var(--c-surface-2)}.nav-panel button.active{font-weight:600}.nav-panel-name{margin:0 0 var(--space-2);padding:2px 10px var(--space-2);font-size:13px;letter-spacing:.5px;color:var(--c-text-soft);border-bottom:1px solid var(--c-border)}.nav-panel-empty{margin:0;padding:6px 10px;max-width:240px;font-size:13px;line-height:1.7;color:var(--c-text-soft)}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;border:0;padding:0;cursor:default;background:#1414106b;animation:drawer-fade .2s ease}.drawer{position:fixed;top:0;left:0;z-index:41;width:min(380px,86vw);height:100%;display:flex;flex-direction:column;background:var(--c-surface);border-right:1px solid var(--c-border);box-shadow:var(--shadow-3);padding:var(--space-4);animation:drawer-in .24s cubic-bezier(.22,.61,.36,1);overflow-y:auto;overscroll-behavior:contain}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}@keyframes drawer-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.drawer-title{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--c-text-mute)}.drawer-close{display:inline-flex;border:0;background:transparent;cursor:pointer;color:var(--c-text);padding:4px}.drawer-search{display:flex;align-items:center;gap:var(--space-2);border:1px solid var(--c-border);background:var(--c-surface-2);padding:11px 12px;margin-bottom:var(--space-4)}.drawer-search .nav-icon{width:18px;height:18px;flex:none;color:var(--c-text-mute)}.drawer-search:focus-within{border-color:var(--c-text)}.drawer-search-input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:14px;color:var(--c-text)}.drawer-nav{display:flex;flex-direction:column}.drawer-nav button{border:0;border-bottom:1px solid var(--c-border);background:transparent;cursor:pointer;text-align:left;padding:16px 2px;font-size:16px;letter-spacing:2px;color:var(--c-text);transition:padding-left .15s ease}.drawer-nav button:hover{padding-left:8px}.drawer-nav button.active{font-weight:600}.drawer-cats{display:flex;flex-direction:column}.drawer-cats button{border:0;background:transparent;cursor:pointer;color:var(--c-text);font-family:inherit}.drawer-cat{display:flex;flex-direction:column}.drawer-cat-row{display:flex;align-items:stretch;border-bottom:1px solid var(--c-border)}.drawer-cat-leaf{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:16px 2px;font-size:16px;letter-spacing:2px;border-bottom:1px solid var(--c-border);transition:padding-left .15s ease}.drawer-cat-leaf:hover{padding-left:8px}.drawer-cat-label{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;text-align:left;letter-spacing:1.5px;padding:14px 2px 14px calc(2px + var(--depth, 0) * 16px);font-size:15px;transition:padding-left .15s ease}.drawer-cat-label:hover{padding-left:calc(8px + var(--depth, 0) * 16px)}.drawer-cat-name{color:var(--c-text)}.drawer-cat-en{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--c-text-mute)}.drawer-cat-row.active .drawer-cat-name,.drawer-cat-leaf.active .drawer-cat-name{font-weight:600}.drawer-cat-toggle{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;color:var(--c-text-mute)}.drawer-cat-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}.drawer-cat-toggle.open svg{transform:rotate(90deg)}.drawer-cat-children{display:flex;flex-direction:column}.drawer-cat-all{text-align:left;width:100%;border-bottom:1px solid var(--c-border);padding:12px 2px 12px calc(2px + var(--depth, 1) * 16px);font-size:13px;letter-spacing:1px;color:var(--c-text-mute);transition:padding-left .15s ease}.drawer-cat-all:hover{padding-left:calc(8px + var(--depth, 1) * 16px);color:var(--c-text)}.drawer-cat-all.active{color:var(--c-text);font-weight:600}.list-controls{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);margin-bottom:var(--space-4)}.list-controls .rank-tabs{margin-bottom:0}.list-controls .filter-btn{margin-left:0;flex:0 0 auto;justify-content:center}@media (max-width: 767px){.list-controls{gap:0;justify-content:stretch;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.list-controls .filter-btn{flex:1 1 0;border-left:0}.list-controls .sort-select{flex:1 1 0;border-left:0;border-right:0}}.filter-btn{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);cursor:pointer;padding:7px 14px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;transition:background .15s,border-color .15s}.filter-btn:hover{background:var(--c-surface-2)}.filter-btn .nav-icon{width:16px;height:16px}.filter-btn.on{border-color:var(--c-text)}.filter-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--c-brand);color:#fff;font-size:11px;letter-spacing:0}.filter-drawer{left:auto;right:0;border-right:0;border-left:1px solid var(--c-border);animation:filter-drawer-in .24s cubic-bezier(.22,.61,.36,1)}@keyframes filter-drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.filter-group{margin-bottom:var(--space-4)}.filter-group-title{margin:0 0 var(--space-3);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--c-text-mute);font-weight:600}.filter-pills{display:flex;flex-wrap:wrap;gap:var(--space-2)}.filter-pill{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;border:1px solid var(--c-border);background:var(--c-surface);cursor:pointer;padding:8px 14px;color:var(--c-text);font-family:inherit;transition:border-color .15s,background .15s,color .15s}.filter-pill:hover{border-color:var(--c-text-soft)}.filter-pill.on{border-color:var(--c-brand);background:var(--c-brand);color:#fff}.filter-pill-zh{font-size:14px;letter-spacing:1px}.filter-pill-en{font-size:10px;letter-spacing:1px;text-transform:uppercase;opacity:.7}.filter-price{gap:var(--space-2)}.filter-price .price-input{flex:1 1 0;width:auto}.filter-hint{margin:var(--space-3) 0 0;font-size:12px;line-height:1.7;color:var(--c-text-mute)}.filter-actions{margin-top:auto;display:flex;gap:var(--space-2);padding-top:var(--space-4);border-top:1px solid var(--c-border)}.filter-actions .btn{flex:1;justify-content:center;text-align:center}.avail-badge{position:absolute;bottom:8px;left:8px;font-size:11px;padding:2px 6px;border-radius:3px;color:#fff;background:#000000b3;letter-spacing:.5px}.avail-badge.inline{position:static;display:inline-block;vertical-align:middle;font-size:12px;padding:3px 8px}.avail-badge.out{background:#141410b8}.avail-badge.presale{background:#9a6b1e}.avail-badge.restock{background:#2f6f8f}.avail-badge.stock{background:#3a7a4a}@media (max-width: 640px){.site-header{gap:var(--space-2);padding:var(--space-3) 14px}.wordmark{letter-spacing:2px;font-size:16px;padding-left:2px}.nav-left,.nav-right{gap:14px}.nav-icon{width:20px;height:20px}}.mission{background:var(--c-surface-2);padding:clamp(56px,9vw,120px) var(--space-4);text-align:center}.mission-inner{max-width:860px;margin:0 auto}.mission .en{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--c-text-mute);margin:0 0 var(--space-3)}.mission h2{margin:0 0 var(--space-5);font-weight:400;font-size:clamp(26px,4.5vw,46px);letter-spacing:3px;color:var(--c-text)}.mission-lead{margin:0 auto var(--space-5);color:var(--c-text);font-weight:500;font-size:clamp(16px,2.4vw,22px);line-height:1.85}.mission-sub{margin:0 0 var(--space-3);color:var(--c-text-soft);font-size:14px;letter-spacing:1px}.mission-list{list-style:none;margin:0 auto;padding:0;max-width:560px;text-align:left;display:inline-block}.mission-list li{position:relative;padding:11px 0 11px 24px;color:var(--c-text-soft);font-size:15px;line-height:1.7;border-top:1px solid var(--c-border)}.mission-list li:first-child{border-top:0}.mission-list li:before{content:"—";position:absolute;left:0;color:var(--c-text-mute)}.section-bi{text-align:center;margin:clamp(40px,6vw,72px) 0 var(--space-5)}.section-bi h2{margin:0;font-weight:400;font-size:clamp(20px,3vw,30px);letter-spacing:3px;color:var(--c-text)}.section-bi .en{margin:var(--space-2) 0 0;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--c-text-mute)}.section-head h2:before{display:none}.section-head h2{text-transform:uppercase;letter-spacing:2px;font-weight:500;font-size:14px}.reviews h2:before,.rail-head .rail-icon{display:none}.rail-head h2{text-transform:uppercase;letter-spacing:1.5px;font-size:13px;font-weight:500}.site-footer{background:#15140f;color:#b3aea3;margin-top:clamp(40px,6vw,80px)}.footer-top{display:grid;gap:clamp(24px,4vw,48px);grid-template-columns:1fr;padding:clamp(36px,5vw,64px) clamp(16px,5vw,56px);max-width:1320px;margin:0 auto}@media (min-width: 760px){.footer-top{grid-template-columns:1.4fr 1fr 1fr}}.footer-brand .wordmark-f{font-size:22px;font-weight:600;letter-spacing:5px;text-transform:uppercase;color:#fff;display:inline-block;margin-bottom:var(--space-3)}.footer-brand p{margin:0;font-size:12px;line-height:1.9;color:#8d887c;max-width:42ch}.footer-col h4{margin:0 0 var(--space-3);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#fff;font-weight:500}.footer-col a,.footer-col span{display:block;color:#b3aea3;text-decoration:none;font-size:13px;line-height:2.1;cursor:pointer}.footer-col a:hover{color:#fff}.footer-newsletter{display:flex;gap:0;max-width:320px;margin-top:var(--space-2)}.footer-newsletter input{flex:1;min-width:0;background:transparent;border:1px solid #45413a;color:#fff;padding:10px 12px;font:inherit;font-size:13px}.footer-newsletter input::placeholder{color:#6f6a5f}.footer-newsletter button{border:1px solid #fff;background:#fff;color:#15140f;cursor:pointer;padding:0 18px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding:var(--space-4) clamp(16px,5vw,56px);display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:space-between;max-width:1320px;margin:0 auto;font-size:11px;letter-spacing:1px;color:#6f6a5f}.community{display:grid;gap:var(--space-5);grid-template-columns:1fr}@media (min-width: 860px){.community{grid-template-columns:1fr 1fr}}.brand-index{margin-bottom:var(--space-6)}.brand-grid{display:grid;gap:1px;background:var(--c-border);border:1px solid var(--c-border);grid-template-columns:repeat(2,1fr)}@media (min-width: 641px){.brand-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 1024px){.brand-grid{grid-template-columns:repeat(4,1fr)}}.brand-chip{border:0;background:var(--c-surface);cursor:pointer;padding:18px var(--space-4);text-align:left;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;color:var(--c-text);transition:background .15s,color .15s}.brand-chip:hover{background:var(--c-text);color:#fff}.bag-tabs{display:flex;justify-content:center;gap:var(--space-5)}.tab-count{margin-left:5px;font-size:10px;color:var(--c-text-mute);vertical-align:super;letter-spacing:0}.rank-tab.active .tab-count{color:var(--c-text-soft)}.bag-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3);font-size:13px;color:var(--c-text-soft)}.bag-cell{position:relative}.bag-remove{position:absolute;top:6px;left:6px;z-index:2;width:26px;height:26px;padding:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;cursor:pointer;font-size:18px;background:#ffffffd1;color:var(--c-text-soft);opacity:0;transition:opacity .15s,background .15s,color .15s}.bag-cell:hover .bag-remove,.bag-remove:focus-visible{opacity:1}@media (hover: none){.bag-remove{opacity:1}}.bag-remove:hover{background:#fff;color:var(--c-text)}.drawer-nav-extra{margin-top:var(--space-5)}.drawer-nav-extra button{font-size:14px;letter-spacing:1px;color:var(--c-text-soft);padding:13px 2px}.appeal-page,.about-page{max-width:720px;margin:0 auto;padding:var(--space-5) 0 var(--space-6)}.appeal-intro{color:var(--c-text-soft);font-size:14px;line-height:1.8;margin:0 0 var(--space-5)}.appeal-form{display:flex;flex-direction:column;gap:var(--space-5)}.appeal-field{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}.appeal-field legend{padding:0;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--c-text-mute);margin-bottom:var(--space-1)}.appeal-field textarea,.appeal-contact input,.appeal-contact select{border:1px solid var(--c-border);background:var(--c-surface-2);padding:9px 12px;font-size:14px;color:var(--c-text);border-radius:var(--radius-sm);font-family:inherit}.appeal-field textarea{resize:vertical;min-height:120px}.appeal-field textarea:focus,.appeal-contact input:focus,.appeal-contact select:focus{outline:none;border-color:var(--c-text);background:#fff}.appeal-field .hint{color:var(--c-text-mute);font-size:12px}.appeal-radios{display:flex;gap:var(--space-3)}.appeal-radios label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;border:1px solid var(--c-border);background:var(--c-surface-2);padding:9px 18px;font-size:14px;color:var(--c-text-soft)}.appeal-radios label.active{border-color:var(--c-text);color:var(--c-text);background:#fff;font-weight:600}.appeal-radios input{accent-color:var(--c-text)}.appeal-contact{display:flex;gap:var(--space-2)}.appeal-contact select{flex:0 0 88px;cursor:pointer}.appeal-contact input{flex:1;min-width:0}.appeal-pics{display:flex;flex-wrap:wrap;gap:var(--space-3)}.appeal-pic{position:relative;width:88px;height:88px}.appeal-pic img{width:100%;height:100%;object-fit:cover;border:1px solid var(--c-border);background:var(--c-surface-2)}.appeal-pic button{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border:0;border-radius:999px;cursor:pointer;line-height:1;font-size:15px;background:var(--c-text);color:#fff}.appeal-pic-add{width:88px;height:88px;border:1px dashed var(--c-border);background:var(--c-surface-2);cursor:pointer;color:var(--c-text-mute);font-size:13px}.appeal-pic-add:hover{border-color:var(--c-text);color:var(--c-text-soft)}.appeal-done{text-align:center;padding:clamp(40px,8vw,80px) var(--space-4)}.appeal-done p{margin:0 0 var(--space-3);font-size:18px}.appeal-done .hint{font-size:14px;color:var(--c-text-mute)}.appeal-done .btn-primary{margin-top:var(--space-4)}.about-body{margin:var(--space-4) 0 var(--space-6)}.about-lead{font-size:17px;line-height:1.9;color:var(--c-text);margin:0 0 var(--space-4)}.about-list{margin:0 0 var(--space-4);padding-left:1.2em;color:var(--c-text-soft);line-height:2}.about-note{font-size:13px;line-height:1.9;color:var(--c-text-mute);margin:0}.about-contact{margin-top:var(--space-4)}.about-contact-row{display:flex;gap:var(--space-4);padding:11px 0;border-bottom:1px solid var(--c-border)}.about-contact-row .label{flex:0 0 64px;color:var(--c-text-mute);font-size:13px;letter-spacing:1px}.about-contact-row .value{color:var(--c-text);font-size:15px}.about-contact-hint{margin-top:var(--space-4);font-size:13px;color:var(--c-text-mute);line-height:1.8}.about-contact-hint a{color:var(--c-text-soft);text-decoration:underline}
