:root { color-scheme: light; --ink:#17191b; --muted:#74787b; --line:#dfe1e2; --sale:#425f72; --soft:#f0f1f2; --paper:#f8f8f7; --accent:#425f72; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Helvetica Neue", Helvetica, Arial, "Noto Sans TC", "PingFang TC", sans-serif; font-size:14px; letter-spacing:.015em; }
button, input { font:inherit; }
a { color:inherit; text-decoration:none; }
.announcement { height:44px; display:grid; place-items:center; background:#202224; color:#f6f6f3; font-size:12px; font-weight:600; letter-spacing:.1em; }
.site-header { position:sticky; top:0; z-index:10; background:rgb(248 248 247 / 96%); border-bottom:1px solid var(--line); }
.header-inner { min-height:78px; max-width:1440px; margin:auto; padding:0 30px; display:flex; align-items:center; gap:30px; }
.brand { flex:0 0 174px; height:54px; display:flex; align-items:center; justify-content:flex-start; }
.brand img { display:block; width:158px; height:auto; max-height:38px; object-fit:contain; }
.primary-nav { display:flex; align-items:center; justify-content:center; gap:21px; flex:1; white-space:nowrap; font-size:12px; font-weight:600; letter-spacing:.035em; }
.primary-nav a, .sidebar a { transition:color .2s ease; }
.primary-nav a:hover, .sidebar a:hover { color:var(--accent); }
.nav-dropdown { position:relative; display:inline-flex; align-items:center; height:80px; }
.dropdown-menu { position:absolute; top:67px; left:-18px; z-index:2; display:none; min-width:238px; padding:12px 0; background:var(--paper); border:1px solid var(--line); box-shadow:0 20px 48px rgb(43 48 52 / 12%); }
.dropdown-menu a { display:block; padding:11px 20px; }
.nav-dropdown:hover .dropdown-menu, .nav-dropdown:focus-within .dropdown-menu { display:block; }
.header-actions { display:flex; align-items:center; gap:13px; white-space:nowrap; }
.language-button, .icon-button { border:0; background:none; color:var(--ink); padding:6px; cursor:pointer; }
.language-button { display:none; font-size:13px; }
.icon-button { position:relative; min-width:31px; font-size:21px; line-height:1; }
.cart-count { position:absolute; right:-1px; bottom:0; min-width:14px; height:14px; display:grid; place-items:center; border-radius:50%; background:var(--ink); color:#f8f8f7; font-size:8px; }
.mobile-menu-button, .mobile-menu { display:none; }
.search-panel { max-width:1440px; margin:auto; padding:0 30px 20px; }
.search-panel label { display:block; margin-bottom:7px; font-size:12px; color:var(--muted); }
.search-panel input { width:100%; padding:12px 0; border:0; border-bottom:1px solid var(--ink); background:transparent; outline:0; }
.breadcrumb { max-width:1440px; margin:0 auto; padding:13px 30px; color:var(--muted); font-size:12px; }
.hero { position:relative; max-width:1440px; margin:auto; overflow:hidden; background:#1d2022; }
.hero img { display:block; width:100%; height:auto; aspect-ratio:3.35/1; object-fit:cover; filter:saturate(.68) contrast(1.05); }
.catalogue { max-width:1360px; margin:0 auto; padding:74px 30px 120px; display:grid; grid-template-columns:210px minmax(0,1fr); gap:54px; }
.sidebar { color:var(--muted); font-size:14px; line-height:1.45; }
.sidebar h2 { margin:0 0 32px; color:var(--ink); font-size:12px; font-weight:700; letter-spacing:.12em; }
.sidebar details { margin:0 0 21px; }
.sidebar summary { list-style:none; color:var(--ink); cursor:pointer; margin-bottom:13px; font-weight:600; }
.sidebar summary::after { content:'⌃'; float:right; font-size:13px; }
.sidebar details:not([open]) summary::after { content:'›'; }
.sidebar a { display:block; padding:9px 0; }
.sidebar-strong { color:var(--ink); font-weight:700; margin:22px 0; }
.catalogue-toolbar { min-height:48px; display:flex; align-items:flex-start; justify-content:space-between; color:var(--muted); font-size:12px; letter-spacing:.06em; }
.catalogue-toolbar button { border:0; background:none; color:var(--muted); cursor:pointer; text-decoration:underline; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:16px; row-gap:72px; }
.product-card { min-width:0; text-align:left; }
.product-link { display:block; }
.product-image-wrap { position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--soft); }
.product-image-wrap img { width:100%; height:100%; display:block; object-fit:cover; filter:saturate(.86); transition:transform .5s cubic-bezier(.16,1,.3,1),filter .5s ease; }
.product-link:hover .product-image-wrap img { transform:scale(1.018); filter:saturate(1); }
.product-label { position:absolute; top:0; left:0; background:var(--ink); color:var(--paper); padding:8px 10px 7px; font-size:9px; font-weight:700; letter-spacing:.12em; }
.sold-out { position:absolute; right:0; bottom:0; padding:7px 9px; background:rgb(23 25 27 / 86%); color:#fff; font-size:10px; font-weight:700; letter-spacing:.08em; }
.product-card h3 { margin:14px 0 8px; min-height:48px; font-size:13px; font-weight:500; line-height:1.35; }
.product-name-en { display:block; color:var(--ink); font-size:12px; font-weight:700; letter-spacing:.055em; line-height:1.35; text-transform:uppercase; }
.product-name-zh { display:block; margin-top:4px; color:#555b5f; font-size:12px; font-weight:400; letter-spacing:.02em; }
.price { display:flex; justify-content:flex-start; gap:8px; align-items:baseline; font-weight:500; font-size:14px; letter-spacing:.025em; }
.price.sale { color:var(--sale); }
.price s { color:var(--muted); font-weight:400; }
.empty-state { padding:80px 0; color:var(--muted); text-align:center; }
.pagination { display:flex; justify-content:center; align-items:center; gap:0; margin:80px 0 10px; }
.pagination a { width:40px; height:40px; display:grid; place-items:center; color:var(--muted); border:1px solid var(--line); margin-left:-1px; }
.pagination a:hover, .pagination a.active { color:var(--paper); background:var(--ink); border-color:var(--ink); }
.sidebar a.active { color:var(--ink); font-weight:700; }
.product-page { max-width:1160px; margin:0 auto; padding:68px 30px 120px; display:grid; grid-template-columns:minmax(0,650px) minmax(330px,1fr); gap:72px; }
.product-gallery { display:grid; grid-template-columns:75px 1fr; gap:24px; }
.product-thumbnails { display:flex; flex-direction:column; gap:10px; }
.product-thumb { width:73px; height:73px; padding:0; border:1px solid transparent; background:var(--soft); cursor:pointer; }
.product-thumb.active { border-color:var(--ink); }
.product-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.product-main-image { width:100%; height:auto; aspect-ratio:1; background:var(--soft); }
.product-main-image img { width:100%; height:100%; object-fit:cover; display:block; }
.product-main-image.is-editorial { aspect-ratio:4/5; background:#080808; }
.product-main-image.is-editorial img { object-fit:contain; }
.product-info h1 { margin:0 0 22px; font-size:28px; line-height:1.32; font-weight:600; letter-spacing:-.015em; }
.product-info h1 .product-name-en { font-size:20px; letter-spacing:.035em; }
.product-info h1 .product-name-zh { margin-top:8px; font-size:16px; }
.product-bullets { margin:0 0 22px; padding:0 0 22px 18px; border-bottom:1px solid var(--line); color:#555b5f; font-size:14px; line-height:1.7; }
.shipping-note { margin:34px 0 25px; padding:15px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); color:#555b5f; line-height:1.8; }
.product-price { display:flex; gap:18px; align-items:baseline; margin:22px 0; color:var(--accent); font-size:20px; font-weight:700; }
.product-price s { color:#aaa; font-size:16px; font-weight:400; }
.variant-label { display:block; margin:0 0 10px; color:var(--muted); font-size:12px; letter-spacing:.08em; }
.variant-select { width:100%; height:44px; padding:0 12px; border:1px solid var(--line); background:transparent; color:#555b5f; }
.stock-state { margin:22px 0; text-align:left; color:var(--muted); font-size:13px; letter-spacing:.06em; }
.buy-button { width:100%; height:48px; border:1px solid var(--ink); background:var(--ink); color:var(--paper); cursor:pointer; font-weight:700; letter-spacing:.08em; }
.buy-button:active { transform:translateY(1px); }
.wishlist { display:block; margin:18px auto; border:0; background:none; color:#555b5f; cursor:pointer; }
.product-description { max-width:1254px; margin:0 auto; padding:20px 20px 90px; }
.product-description img { display:block; width:100%; height:auto; margin:30px auto; }
.product-story { padding-top:34px; }
.product-story-heading { margin:0 0 34px; text-align:center; }
.product-story-heading span { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.18em; }
.product-story-heading h2 { margin:14px 0 0; font-size:clamp(25px,3.2vw,42px); line-height:1.15; letter-spacing:-.025em; }
.product-story-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; align-items:start; }
.product-description .product-story-grid img { aspect-ratio:4/5; margin:0; object-fit:cover; background:#080808; }
.product-story .product-care { margin-top:70px; border-top:1px solid var(--line); }
.content-page { max-width:980px; margin:0 auto; min-height:620px; padding:82px 30px 120px; }
.content-page h1 { margin:0 0 34px; font-size:34px; font-weight:700; letter-spacing:-.02em; }
.content-page h2 { margin:42px 0 15px; font-size:18px; letter-spacing:.03em; }
.content-page p, .content-page li { color:#555b5f; font-size:15px; line-height:1.9; }
.site-footer { display:grid; grid-template-columns:2fr 1fr 1fr; gap:44px; padding:68px max(30px,calc((100vw - 1300px)/2)); border-top:1px solid var(--line); background:var(--paper); color:var(--ink); }
.site-footer strong { display:block; margin-bottom:18px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.site-footer p { max-width:36ch; color:var(--muted); line-height:1.7; }
.site-footer a { display:block; margin:11px 0; color:#555b5f; font-size:13px; }
.back-to-top { position:fixed; right:26px; bottom:26px; width:40px; height:40px; border:1px solid var(--line); background:rgb(248 248 247 / 94%); color:var(--muted); cursor:pointer; font-size:20px; }
.home-main { padding:0; }
.home-header { position:sticky; }
.home-banner { display:block; width:min(1440px,100%); margin:0 auto 96px; }
.home-banner > img { display:block; width:100%; height:auto; }
.category-spotlight { position:relative; overflow:hidden; background:#080808; color:#fff; }
.category-spotlight::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgb(9 11 12 / 82%) 0%,rgb(9 11 12 / 22%) 52%,rgb(9 11 12 / 8%) 100%); pointer-events:none; }
.category-spotlight > img { width:100%; height:clamp(520px,70dvh,760px); object-fit:cover; object-position:center 40%; filter:saturate(.68) contrast(1.06); transition:transform .7s cubic-bezier(.16,1,.3,1),filter .7s ease; }
.category-spotlight:hover > img { transform:scale(1.012); filter:saturate(.78) contrast(1.08); }
.spotlight-copy { position:absolute; left:max(30px,calc((100% - 1280px)/2)); bottom:10%; z-index:1; display:flex; width:min(520px,48%); align-items:flex-start; flex-direction:column; text-align:left; }
.spotlight-copy > img { display:none; }
.spotlight-copy strong { color:#f2f3f2; font-size:clamp(32px,4.6vw,68px); font-weight:750; letter-spacing:-.035em; line-height:.98; }
.spotlight-copy span { margin-top:20px; max-width:27ch; color:#d1d5d7; font-size:clamp(13px,1.3vw,17px); letter-spacing:.055em; line-height:1.65; }
.spotlight-copy b { margin-top:28px; padding:12px 22px; border:1px solid rgb(255 255 255 / 72%); color:#fff; font-size:11px; letter-spacing:.13em; white-space:nowrap; }
.promo-banner { position:relative; width:min(1280px,calc(100% - 60px)); overflow:hidden; background:#17191b; color:#f5f6f5; }
.promo-banner::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgb(9 11 12 / 42%),transparent 58%); pointer-events:none; }
.promo-banner img { width:100%; aspect-ratio:3/2; object-fit:cover; filter:saturate(.72) contrast(1.08); }
.promo-copy { position:absolute; top:50%; left:7%; z-index:1; display:flex; transform:translateY(-50%); align-items:flex-start; flex-direction:column; }
.promo-copy small { color:#c8ced1; font-size:10px; font-weight:700; letter-spacing:.15em; }
.promo-copy strong { margin-top:22px; font-size:clamp(34px,5vw,66px); line-height:1; letter-spacing:-.035em; }
.promo-copy span { margin-top:24px; color:#c8ced1; font-size:13px; line-height:1.8; }
.promo-copy b { margin-top:30px; padding:12px 18px; border:1px solid rgb(255 255 255 / 72%); font-size:10px; letter-spacing:.12em; }
.home-guide { width:min(1280px,calc(100% - 60px)); margin:0 auto 120px; display:grid; grid-template-columns:1.18fr .82fr; align-items:center; gap:10%; }
.home-guide img { display:block; width:100%; height:auto; }
.home-guide div { text-align:left; }
.home-guide h2 { margin:0 0 18px; font-size:clamp(30px,4vw,54px); font-weight:700; letter-spacing:-.035em; line-height:1.05; }
.home-guide p { margin:0 0 34px; max-width:28ch; color:#555b5f; font-size:16px; line-height:1.75; }
.home-cta { display:inline-block; min-width:210px; padding:13px 20px; background:var(--ink); color:var(--paper); font-size:12px; font-weight:700; letter-spacing:.08em; text-align:center; }
.home-products { width:min(1280px,calc(100% - 60px)); margin:0 auto; padding:0 0 130px; text-align:left; }
.home-products h2 { margin:0 0 48px; font-size:clamp(30px,4vw,52px); font-weight:700; letter-spacing:-.035em; }
.home-product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); column-gap:16px; row-gap:70px; text-align:left; }
.home-more { display:inline-block; margin-top:72px; min-width:220px; padding:13px 24px; border:1px solid var(--ink); font-size:12px; font-weight:700; letter-spacing:.08em; text-align:center; }
@media (max-width:1320px) { .primary-nav { gap:10px; font-size:11px; } .header-inner { gap:12px; padding-inline:18px; } .brand { flex-basis:142px; } .brand img { width:136px; } .language-button { display:none; } .header-actions { gap:6px; } }
@media (max-width:970px) { .header-inner { min-height:66px; padding:0 18px; justify-content:space-between; } .primary-nav { display:none; } .mobile-menu-button { display:grid; place-content:center; gap:5px; width:44px; height:44px; padding:8px; border:0; background:none; cursor:pointer; } .mobile-menu-button span { width:22px; height:1px; background:var(--ink); display:block; transition:transform .2s ease,opacity .2s ease; } .mobile-menu-button[aria-expanded="true"] span:nth-child(1) { transform:translateY(6px) rotate(45deg); } .mobile-menu-button[aria-expanded="true"] span:nth-child(2) { opacity:0; } .mobile-menu-button[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6px) rotate(-45deg); } .brand { flex:initial; height:50px; } .brand img { width:128px; height:auto; max-height:36px; } .header-actions { gap:5px; } .mobile-menu { max-height:calc(100dvh - 110px); overflow:auto; padding:8px 18px 18px; border-top:1px solid var(--line); background:var(--paper); } .mobile-menu:not([hidden]) { display:block; } .mobile-menu a, .mobile-search-button { display:block; width:100%; padding:15px 0; border:0; border-bottom:1px solid var(--line); background:none; color:inherit; font-size:13px; text-align:left; cursor:pointer; } .catalogue { grid-template-columns:1fr; padding-top:46px; } .sidebar { display:none; } .product-page { grid-template-columns:1fr; max-width:720px; gap:42px; } .product-info { padding:0; } .product-story-grid { grid-template-columns:1fr; max-width:640px; margin:0 auto; gap:18px; } .home-banner { margin-bottom:70px; } .home-guide { gap:8%; margin-bottom:90px; } .home-product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .announcement { height:36px; padding:0 10px; font-size:10px; text-align:center; } .header-actions .icon-button:nth-of-type(2) { display:none; } .breadcrumb { padding:10px 14px; font-size:11px; } .hero img { min-height:188px; object-position:center; } .catalogue { padding:38px 12px 78px; } .catalogue-toolbar { min-height:40px; } .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:52px 8px; } .product-card h3 { min-height:64px; margin-top:11px; } .product-name-en { font-size:10px; } .product-name-zh { font-size:11px; } .price { font-size:12px; } .site-footer { grid-template-columns:1fr; padding:48px 20px; gap:28px; } .back-to-top { right:14px; bottom:14px; } .product-page { padding:38px 12px 80px; } .product-gallery { grid-template-columns:1fr; } .product-thumbnails { order:2; flex-direction:row; overflow:auto; } .product-info h1 .product-name-en { font-size:18px; } .product-info h1 .product-name-zh { font-size:15px; } .home-banner { margin-bottom:52px; } .category-spotlight { width:100%; } .category-spotlight > img { height:74dvh; min-height:540px; object-position:35% center; } .category-spotlight::after { background:linear-gradient(180deg,rgb(8 10 11 / 18%) 30%,rgb(8 10 11 / 90%) 100%); } .spotlight-copy { left:20px; right:20px; bottom:7%; width:auto; } .spotlight-copy strong { max-width:none; font-size:35px; line-height:.94; } .spotlight-copy span { margin-top:14px; font-size:12px; } .spotlight-copy b { margin-top:20px; padding:10px 16px; font-size:10px; } .promo-banner, .home-guide, .home-products { width:calc(100% - 24px); } .promo-banner img { min-height:520px; object-position:66% center; } .promo-banner::after { background:linear-gradient(180deg,rgb(9 11 12 / 24%),rgb(9 11 12 / 86%)); } .promo-copy { top:auto; right:22px; bottom:34px; left:22px; transform:none; } .promo-copy strong { margin-top:15px; font-size:38px; } .promo-copy span { margin-top:16px; font-size:11px; } .promo-copy b { margin-top:20px; padding:10px 14px; } .home-guide { grid-template-columns:1fr; gap:34px; margin-bottom:78px; } .home-guide h2 { font-size:35px; } .home-guide p { font-size:14px; } .home-products { padding-bottom:90px; } .home-products h2 { margin-bottom:34px; font-size:34px; } .home-more { margin-top:54px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } .product-image-wrap img, .category-spotlight > img { transition:none; } }

.utility-open { overflow:hidden; }
.utility-overlay { position:fixed; inset:0; z-index:80; background:rgb(20 20 20 / 52%); }
.utility-dialog { position:fixed; top:50%; left:50%; z-index:82; width:min(480px,calc(100% - 32px)); max-height:calc(100dvh - 40px); overflow:auto; transform:translate(-50%,-50%); padding:34px; border:1px solid #ddd; background:#fff; box-shadow:0 22px 70px rgb(20 20 20 / 24%); }
.utility-dialog[hidden], .utility-overlay[hidden] { display:none; }
.utility-dialog h2, .drawer-heading h2 { margin:0; font-size:24px; font-weight:600; }
.utility-close { width:42px; height:42px; padding:0; border:0; background:none; color:#333; cursor:pointer; font-size:28px; line-height:1; }
.utility-dialog > .utility-close { position:absolute; top:16px; right:16px; }
.utility-intro { margin:12px 42px 24px 0; color:#666; line-height:1.7; }
.global-search-form, .profile-form { display:grid; gap:10px; }
.global-search-form label, .profile-form label { margin-top:8px; color:#444; font-size:13px; font-weight:600; }
.global-search-form input, .profile-form input { width:100%; min-height:46px; padding:10px 12px; border:1px solid #aaa; background:#fff; color:#222; outline:0; }
.global-search-form input:focus, .profile-form input:focus { border-color:#202020; box-shadow:0 0 0 2px rgb(32 32 32 / 16%); }
.global-search-form button, .profile-form button, .drawer-primary { min-height:46px; margin-top:10px; padding:10px 18px; border:1px solid #202020; background:#202020; color:#fff; cursor:pointer; font-weight:700; }
.global-search-form button:active, .profile-form button:active, .drawer-primary:active, .drawer-secondary:active { transform:translateY(1px); }
.cart-drawer { position:fixed; top:0; right:0; z-index:82; width:min(430px,100%); height:100dvh; display:flex; flex-direction:column; padding:26px; visibility:hidden; transform:translateX(100%); background:#fff; box-shadow:-20px 0 60px rgb(20 20 20 / 18%); transition:transform .24s ease,visibility .24s; }
.cart-drawer.is-open { visibility:visible; transform:translateX(0); }
.drawer-heading { display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid var(--line); }
.cart-items { flex:1; overflow:auto; padding:8px 0; }
.cart-item { display:grid; grid-template-columns:82px 1fr; gap:15px; padding:16px 0; border-bottom:1px solid var(--line); }
.cart-item img { width:82px; height:82px; display:block; object-fit:cover; background:var(--soft); }
.cart-item a { display:block; margin-bottom:8px; line-height:1.45; }
.cart-item strong { display:block; color:var(--sale); }
.quantity-control { display:flex; align-items:center; gap:7px; margin-top:12px; }
.quantity-control button { min-width:30px; height:30px; padding:0 8px; border:1px solid #ccc; background:#fff; cursor:pointer; }
.quantity-control .cart-remove { margin-left:auto; border:0; color:#666; text-decoration:underline; }
.cart-summary { display:flex; justify-content:space-between; padding:18px 0 8px; border-top:1px solid #202020; font-size:16px; }
.drawer-primary { width:100%; }
.drawer-primary:disabled { cursor:not-allowed; opacity:.45; }
.drawer-secondary { display:grid; min-height:44px; margin-top:10px; place-items:center; border:1px solid #333; }
.drawer-note { margin:14px 0 0; color:#666; font-size:12px; line-height:1.6; }
.drawer-empty { padding:70px 20px; text-align:center; }
.drawer-empty p { color:#777; }
.wishlist-summary { margin-top:28px; padding-top:22px; border-top:1px solid var(--line); }
.wishlist-summary h3 { margin:0 0 12px; font-size:16px; }
.wishlist-summary a { display:block; padding:9px 0; border-bottom:1px solid var(--line); }
.wishlist.active { color:#bd294b; }
.site-toast { position:fixed; left:50%; bottom:28px; z-index:90; transform:translateX(-50%); padding:12px 18px; background:#202020; color:#fff; box-shadow:0 8px 30px rgb(20 20 20 / 22%); font-weight:600; }
.product-care, .product-not-found { max-width:780px; margin:20px auto; padding:42px 24px; text-align:center; }
.product-care h2, .product-not-found h1 { margin:0 0 16px; font-size:25px; }
.product-care p, .product-not-found p { color:#666; font-size:16px; line-height:1.8; }
.product-not-found { min-height:520px; }
.product-not-found .home-cta { margin-top:28px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline:2px solid #202020; outline-offset:3px; }

@media (max-width:560px) {
  .utility-dialog { width:calc(100% - 24px); padding:28px 20px; }
  .cart-drawer { padding:20px 16px; }
  .cart-item { grid-template-columns:72px 1fr; }
  .cart-item img { width:72px; height:72px; }
  .site-toast { bottom:18px; white-space:nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .cart-drawer { transition:none; }
}
