:root{--bg: #f3eee4;--bg-elevated: #fffaf2;--bg-muted: #e8e0d2;--ink: #2b2823;--ink-soft: #5c564d;--line: rgba(43, 40, 35, .12);--accent: #5f7253;--accent-hover: #4d5e43;--accent-soft: #e4eadc;--gold: #b08d57;--gold-soft: rgba(176, 141, 87, .18);--hero-overlay: linear-gradient( 180deg, rgba(36, 32, 24, .08) 0%, rgba(36, 32, 24, .16) 48%, rgba(36, 32, 24, .32) 100% );--new: #b4533a;--danger: #9a3f2e;--shadow: 0 18px 50px rgba(43, 40, 35, .08);--radius: 18px;--header-h: 76px;--font-heading: "Noto Serif TC", "Noto Serif SC", "Cormorant Garamond", serif;--font-body: "Noto Serif TC", "Noto Serif SC", "Noto Serif", serif;--font-ui: "Outfit", "PingFang TC", "PingFang SC", "Hiragino Sans GB", "Microsoft JhengHei", sans-serif;color-scheme:light}[data-theme=dark]{--bg: #161513;--bg-elevated: #211f1b;--bg-muted: #2a2722;--ink: #f0eadf;--ink-soft: #b7afa3;--line: rgba(240, 234, 223, .12);--accent: #a3b58f;--accent-hover: #b8c8a5;--accent-soft: #2a3024;--gold: #d4b483;--gold-soft: rgba(212, 180, 131, .16);--hero-overlay: linear-gradient( 180deg, rgba(8, 8, 7, .12) 0%, rgba(8, 8, 7, .22) 48%, rgba(8, 8, 7, .4) 100% );--new: #e08a74;--danger: #e08a74;--shadow: 0 18px 50px rgba(0, 0, 0, .35);color-scheme:dark}[data-locale=en]{--font-heading: "Cormorant Garamond", "Noto Serif TC", serif;--font-body: "Noto Serif", "Noto Serif TC", serif}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}html.scroll-lock,html.scroll-lock body{overflow:hidden;overscroll-behavior:none}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;font-weight:300;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button,.qty-control input,.badge-new,.cart-count,.filter-chip,.add-btn,.primary-btn,.ghost-btn,.lang-toggle button{font-family:var(--font-ui)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{border:0;background:none;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.app-shell{min-height:100vh;display:flex;flex-direction:column;padding-top:var(--header-h)}.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:var(--header-h);display:flex;align-items:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line)}.header-inner{width:min(1180px,calc(100% - 40px));margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px}.brand{display:flex;flex-direction:column;gap:9px;line-height:1.05}.brand-cn{font-family:"Noto Serif TC","Noto Serif SC",serif;font-size:22px;font-weight:600;letter-spacing:.12em;line-height:1.05}.brand-en{font-family:Cormorant Garamond,Times New Roman,serif;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);line-height:1.2;margin-top:0;margin-left:1px}.nav-desktop{display:flex;justify-content:center;gap:28px}.nav-desktop a,.nav-mobile a{position:relative;font-family:var(--font-body);font-size:15px;font-weight:300;letter-spacing:0;color:var(--ink-soft)}.nav-desktop a:after,.nav-mobile a:after{content:"";position:absolute;left:0;bottom:-6px;width:100%;height:1px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.nav-desktop a:hover,.nav-desktop a.active,.nav-mobile a:hover,.nav-mobile a.active{color:var(--ink)}.nav-desktop a:hover:after,.nav-desktop a.active:after,.nav-mobile a:hover:after,.nav-mobile a.active:after{transform:scaleX(1)}.header-tools{display:flex;align-items:center;gap:8px}.lang-toggle,.icon-btn{height:38px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--bg-elevated) 80%,transparent);color:var(--ink)}.lang-toggle{display:flex;align-items:center;padding:0 4px;gap:2px}.lang-toggle button{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500;letter-spacing:0;color:var(--ink-soft)}.lang-toggle button.active{background:var(--ink);color:var(--bg)}.icon-btn{width:38px;display:grid;place-items:center}.icon-btn svg{width:18px;height:18px}.cart-btn{position:relative}.cart-count{position:absolute;top:-8px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:500;line-height:1;display:grid;place-items:center}.header-desktop-controls{display:flex;align-items:center;gap:8px}.menu-btn{display:none}.hero{position:relative;min-height:clamp(240px,42vw,500px);display:grid;place-items:center;overflow:hidden;color:#f7f3ea}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04);filter:brightness(1.32) saturate(1.1) contrast(.94)}.hero-overlay{position:absolute;inset:0;background:var(--hero-overlay)}.hero-content{position:relative;z-index:2;width:min(820px,calc(100% - 48px));text-align:center;padding:52px 0 44px;text-shadow:0 2px 16px rgba(28,24,18,.28)}.hero-title{margin:0 0 18px;font-family:var(--font-heading);font-size:clamp(42px,7vw,76px);font-weight:600;letter-spacing:0;line-height:1.15}.hero-verse{margin:0 auto;max-width:38em;font-family:var(--font-body);font-size:clamp(17px,2.2vw,22px);font-weight:400;line-height:1.5;color:#f7f3eaeb}.hero-cite{font-size:75%;font-weight:400}.page-main{flex:1}.section-band{width:100%}.section-band-muted{background:color-mix(in srgb,var(--bg) 96%,var(--ink) 4%)}.section{width:min(1080px,calc(100% - 40px));margin:0 auto;padding:64px 0;scroll-margin-top:calc(var(--header-h) + 12px)}.section-head{text-align:center;margin-bottom:32px}.section-kicker{display:block;margin-bottom:8px;color:var(--gold);font-family:var(--font-body);font-size:14px;font-weight:300;letter-spacing:0}.section-title{margin:0;font-family:var(--font-heading);font-size:clamp(30px,4vw,42px);font-weight:600;letter-spacing:0}.about-body{max-width:42em;margin:0 auto;font-size:16px;font-weight:300;line-height:1.5;color:var(--ink-soft);text-align:center}.locations-grid{display:grid;grid-template-columns:1fr;gap:28px;width:100%;max-width:720px;margin:0 auto;align-items:stretch}.info-card,.contact-card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:36px 32px}.contact-card{width:100%;max-width:720px;margin:0 auto}.info-name,.contact-name{margin:0 0 16px;font-family:var(--font-heading);font-size:28px;letter-spacing:0}.meta-row{display:grid;grid-template-columns:72px 1fr;gap:12px;margin:0 0 16px;color:var(--ink-soft)}.contact-card .meta-row:last-child{margin-bottom:0}.meta-label{color:var(--gold);font-size:13px;font-weight:300;letter-spacing:0}.note{margin:24px 0 0;padding-top:20px;border-top:1px solid var(--line);color:var(--ink-soft);font-style:italic;font-size:.92em;line-height:1.45}.map-wrap{min-height:420px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}.map-wrap iframe{width:100%;height:100%;min-height:420px;border:0}.contact-links a{color:var(--accent)}.site-footer{border-top:1px solid var(--line);padding:28px 20px 40px;text-align:center;color:var(--ink-soft);font-size:11px}.products-toolbar{display:flex;flex-direction:column;gap:20px;margin-bottom:36px;scroll-margin-top:calc(var(--header-h) + 12px)}.search-box{position:relative}.search-box input{width:100%;height:52px;padding:0 18px 0 44px;border:1px solid var(--line);border-radius:999px;background:var(--bg-elevated);outline:none}.search-box svg{position:absolute;left:16px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--ink-soft)}.filter-row{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.filter-pair{display:flex;flex-wrap:nowrap;gap:inherit}.filter-chip{height:32px;padding:0 11px;border-radius:999px;border:1px solid var(--line);background:var(--bg-elevated);color:var(--ink-soft);font-size:13px;font-weight:500;letter-spacing:0}.filter-chip.active{background:var(--ink);border-color:var(--ink);color:var(--bg)}.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:stretch}.empty-state{grid-column:1 / -1;padding:80px 20px;text-align:center;color:var(--ink-soft)}.product-card{display:flex;flex-direction:column;height:100%;background:var(--bg-elevated);border:1px solid var(--line);border-radius:23px;overflow:hidden;box-shadow:var(--shadow);cursor:pointer}.product-media{position:relative;flex-shrink:0;aspect-ratio:1;background:var(--bg-muted)}.product-media img,.product-media .photo-fallback{width:100%;height:100%;object-fit:cover}.photo-fallback{display:grid;place-items:center;background:#dcd8cf;color:#f1ede4}.photo-fallback svg{width:38%;height:38%;max-width:72px;max-height:72px}.badge-new{position:absolute;top:8px;left:8px;z-index:2;padding:6px 11px;border-radius:999px;background:#c45c4a;color:#fff8f4;font-size:12px;font-weight:500;letter-spacing:0;white-space:nowrap;width:max-content;flex-shrink:0;box-shadow:0 8px 18px #c45c4a47}[data-theme=dark] .badge-new{background:color-mix(in srgb,#1a1916 70%,var(--new));color:#f3d2c9}.product-body{display:flex;flex-direction:column;flex:1;gap:8px;padding:12px 14px 14px;border-top:1px solid color-mix(in srgb,var(--ink) 7%,var(--bg-elevated))}.product-name{margin:0;font-family:var(--font-heading);font-size:18px;line-height:1.3;letter-spacing:0}.product-price,.subtotal strong{color:var(--gold);font-size:15px;font-weight:600;letter-spacing:0}.subtotal strong{font-size:16px}.product-actions{display:flex;align-items:center;gap:10px;margin-top:auto}.qty-control{display:inline-grid;grid-template-columns:28px 28px 28px;align-items:stretch;flex:0 0 auto;height:40px;border:1px solid var(--line);border-radius:999px;overflow:hidden}.qty-control button,.qty-control input{width:100%;height:100%;display:grid;place-items:center;padding:0;color:var(--ink-soft)}.qty-control input{border:0;background:transparent;text-align:center;font-size:14px;font-weight:500;line-height:1;-moz-appearance:textfield}.qty-control input::-webkit-outer-spin-button,.qty-control input::-webkit-inner-spin-button{appearance:none;margin:0}.add-btn,.primary-btn,.ghost-btn{height:40px;min-height:40px;padding:0 16px;border-radius:999px;font-size:14px;font-weight:500;letter-spacing:0;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center}.add-btn,.primary-btn{background:var(--accent);color:#fff}.product-actions .add-btn{flex:1 1 auto}[data-theme=dark] .add-btn,[data-theme=dark] .primary-btn{color:#161513}.add-btn:hover,.primary-btn:hover{background:var(--accent-hover)}.add-btn:disabled,.primary-btn:disabled{opacity:.55;cursor:not-allowed}[data-locale=en] .add-btn,[data-locale=en] .primary-btn,[data-locale=en] .ghost-btn,[data-locale=en] .nav-desktop a,[data-locale=en] .nav-mobile a,[data-locale=en] .filter-chip,[data-locale=en] .section-title,[data-locale=en] .section-kicker,[data-locale=en] .drawer-title{text-transform:capitalize}.ghost-btn{border:1px solid var(--line);background:transparent}.coming-label{color:var(--ink-soft);font-size:14px}.drawer-backdrop{position:fixed;inset:0;background:#14120f6b;z-index:50}.drawer{position:fixed;top:0;right:0;z-index:60;width:min(440px,100%);height:100%;display:flex;flex-direction:column;background:var(--bg);box-shadow:var(--shadow)}.drawer-head,.drawer-foot{padding:22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.drawer-foot{border-bottom:0;border-top:1px solid var(--line);flex-direction:column;align-items:stretch;gap:14px}.drawer-foot .primary-btn,.checkout-form .primary-btn,.checkout-form .ghost-btn,.success-box .primary-btn{width:100%}.drawer-title{margin:0;font-family:var(--font-heading);font-size:26px}.drawer-body{flex:1;overflow:auto;padding:18px 22px 28px}.cart-item{display:grid;grid-template-columns:96px 1fr;align-items:center;gap:16px;padding:10px 0}.cart-item:not(:last-child){border-bottom:1px solid color-mix(in srgb,var(--ink) 7%,var(--bg))}.cart-item-tools{display:flex;align-items:center;gap:8px;margin-top:8px}.cart-item img,.cart-item .photo-fallback{width:96px;height:96px;object-fit:cover;border-radius:10px;background:var(--bg-muted);border:1px solid color-mix(in srgb,var(--ink) 8%,var(--bg-elevated))}.cart-item .photo-fallback{background:#dcd8cf;color:#f1ede4}[data-theme=dark] .cart-item img,[data-theme=dark] .cart-item .photo-fallback{border-color:color-mix(in srgb,#000 42%,var(--bg))}.cart-item h3{margin:0 0 4px;font-size:16px;font-family:var(--font-heading)}.cart-empty{padding:60px 10px;text-align:center;color:var(--ink-soft)}.subtotal{display:flex;justify-content:space-between;font-size:16px}.checkout-form{display:grid;gap:12px}.checkout-form label{display:grid;gap:6px;font-size:13px;color:var(--ink-soft)}.checkout-form input,.checkout-form textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--bg-elevated);outline:none}.success-box{text-align:center;padding:36px 10px}.success-box h3{font-family:var(--font-heading);font-size:28px;margin:0 0 12px}.checkout-form input.invalid{border-color:color-mix(in srgb,var(--danger) 55%,var(--line))}.field-error{color:var(--danger);font-size:12px}.gallery-backdrop{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:18px;background:#14120f85}.gallery-dialog{position:relative;width:min(1024px,100%);max-width:1024px;max-height:min(1024px,calc(100vh - 36px));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.gallery-close{position:absolute;top:12px;right:12px;z-index:2;width:40px;height:40px;border:1px solid var(--line);border-radius:999px;background:color-mix(in srgb,var(--bg) 88%,transparent)}.gallery-photo{position:relative;min-width:0;min-height:0;max-width:1024px;max-height:1024px;aspect-ratio:1;background:var(--bg-muted)}.gallery-photo img,.gallery-photo .photo-fallback{width:100%;height:100%;max-width:1024px;max-height:1024px;object-fit:cover;aspect-ratio:1}.gallery-info{display:flex;flex-direction:column;gap:12px;padding:28px 28px 24px;overflow:auto}.gallery-name,.gallery-price{margin:0;font-family:var(--font-heading);font-size:clamp(22px,3vw,30px);line-height:1.25}.gallery-name{padding-right:40px}.gallery-price{color:var(--gold);font-weight:600;letter-spacing:0}.gallery-desc{margin:0;color:var(--ink-soft);font-size:16px;line-height:1.7;white-space:pre-wrap}.gallery-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:10px;margin-top:auto}.gallery-actions .qty-control{flex:0 0 auto}.gallery-actions .add-btn{flex:1.4 1 auto;width:auto;min-width:0}.mobile-panel{display:none}@media(max-width:1100px){.product-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:780px){.nav-desktop,.header-desktop-controls{display:none}.menu-btn{display:grid}body{font-size:13.6px}.header-inner{width:calc(100% - 16px);margin-right:0;padding-right:8px;grid-template-columns:1fr auto;gap:12px;align-items:center}.header-tools{justify-self:end;gap:6px;margin-right:0}.brand-cn{font-size:20px}.brand-en{font-size:11px}.product-grid{grid-template-columns:repeat(2,1fr);gap:12px}.filter-chip{height:28px;padding:0 8px;font-size:12px}.filter-row{justify-content:flex-start;gap:6px}.mobile-panel{display:flex;flex-direction:column;position:fixed;top:var(--header-h);right:0;bottom:0;left:0;z-index:45;background-color:#f3eee4;background:var(--bg);padding:28px 20px 40px;overflow:auto}[data-theme=dark] .mobile-panel{background-color:#161513}.nav-mobile{display:grid;gap:22px}.nav-mobile a{font-size:19px;font-family:var(--font-body);font-weight:300}.mobile-panel-tools{display:flex;align-items:center;gap:8px;margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}.section,.section-band .section{padding:48px 0}.hero-title{font-size:clamp(36px,6vw,65px)}.hero-verse{font-size:clamp(14.5px,1.87vw,19px)}.section-title{font-size:clamp(26px,3.4vw,36px)}.about-body{font-size:13.6px}.info-name,.contact-name{font-size:24px}.note{font-size:.92em}.product-name{font-size:15px}.product-price,.subtotal strong{font-size:13px}.subtotal strong{font-size:14px}.gallery-name,.gallery-price{font-size:clamp(19px,2.55vw,26px)}.gallery-desc,.cart-item h3{font-size:13.6px}.drawer-title{font-size:22px}.subtotal{font-size:13.6px}.success-box h3{font-size:24px}.add-btn,.primary-btn,.ghost-btn,.qty-control input{font-size:12px}.meta-row{grid-template-columns:56px 1fr}}@media(max-width:512px){.gallery-backdrop{top:var(--header-h);z-index:40;padding:0;place-items:stretch}.gallery-dialog{width:100%;height:100%;max-width:100%;max-height:100%;border-radius:0;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.gallery-photo{width:min(100%,calc(100dvh - var(--header-h)));height:auto;max-width:100%;max-height:min(100vw,calc(100dvh - var(--header-h)));aspect-ratio:1;margin:0 auto}.gallery-photo img,.gallery-photo .photo-fallback{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:1;object-fit:cover}.gallery-name,.gallery-price{font-size:calc(clamp(19px,2.55vw,26px)*1.2)}.gallery-desc{font-size:16.32px}.gallery-actions .add-btn,.gallery-actions .qty-control button,.gallery-actions .qty-control input{font-size:calc(12px * 1.2)}.gallery-info{padding:18px 18px 24px}.gallery-actions{position:sticky;bottom:0;padding-top:8px;background:var(--bg-elevated);flex-wrap:nowrap}.gallery-actions .add-btn{width:auto;flex:1.4 1 auto}}@media(max-width:360px){.product-grid{grid-template-columns:1fr}}@media(max-width:560px){.header-inner{width:calc(100% - 12px);gap:8px;padding-right:4px}.product-card .product-actions{flex-wrap:wrap}.product-card .add-btn{width:100%}}.pager{--pager-ink: #8a8276;--pager-ink-hover: #6f685e;--pager-fill: #f4efe6;--pager-line: #d6cdc2;--pager-active-bg: #9a9186;--pager-active-ink: #f7f2ea;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px 16px;margin-top:28px;font-family:var(--font-ui)}[data-theme=dark] .pager{--pager-ink: #9c9388;--pager-ink-hover: #c4bbb0;--pager-fill: #2a2621;--pager-line: #4a433c;--pager-active-bg: #8d8478;--pager-active-ink: #f3eee4}.pager-show{display:flex;align-items:center;gap:8px;justify-self:start;min-width:0}.pager-show-label{color:var(--pager-ink);font-size:13px;font-weight:500;white-space:nowrap}.pager-sizes,.pager-pages,.pager-step{display:flex;align-items:center;gap:6px}.pager-step{justify-content:flex-end;justify-self:end;flex-wrap:nowrap}.pager-size,.pager-num,.pager-icon{height:32px;min-width:32px;padding:0 10px;border:1px solid var(--pager-line);border-radius:999px;background:var(--pager-fill);color:var(--pager-ink);font-family:var(--font-ui);font-size:13px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.pager-size span{white-space:nowrap}.pager-icon{width:32px;padding:0;flex-shrink:0}.pager-icon svg{width:16px;height:16px;display:block}.pager-size.active,.pager-num.active{background:var(--pager-active-bg);border-color:var(--pager-active-bg);color:var(--pager-active-ink)}.pager-size:hover:not(:disabled):not(.active),.pager-num:hover:not(:disabled):not(.active),.pager-icon:hover:not(:disabled){border-color:var(--pager-ink);color:var(--pager-ink-hover)}.pager-icon:disabled,.pager-num:disabled{opacity:.35;cursor:not-allowed}.pager-ellipsis{color:var(--pager-ink);padding:0 2px;font-size:13px;letter-spacing:.08em;-webkit-user-select:none;user-select:none}[data-locale=en] .pager-show-label,[data-locale=en] .pager-size{text-transform:capitalize}@media(max-width:780px){.pager{grid-template-columns:1fr;grid-template-areas:"show" "step"}.pager-show{grid-area:show;justify-self:center}.pager-step{grid-area:step;justify-self:center;justify-content:center;flex-wrap:wrap}.pager-size,.pager-num,.pager-icon{height:28px;min-width:28px;font-size:12px}.pager-icon{width:28px}.pager-icon svg{width:15px;height:15px}}
