:root{--paper:#f6f6f3;--surface:#fff;--ink:#1e1e1c;--muted:#73736d;--line:#d9d9d3;--soft:#e9e9e4;--sage:#52aa19;--sage-soft:#e4f0dd;--sans:"Avenir Next","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}body.is-locked{overflow:hidden}button,input,select{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}figure{margin:0}fieldset{min-width:0}h1,h2,h3,p{overflow-wrap:anywhere}.skip-link{position:fixed;top:.5rem;left:.5rem;z-index:999;padding:.75rem 1rem;background:var(--surface);transform:translateY(-200%)}.skip-link:focus{transform:none}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.eyebrow{margin:0;color:var(--muted);font-size:.62rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase}.placeholder-svg{width:100%;height:100%;background:var(--soft)}

.site-header{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:0 4vw;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:.72rem}.brand__logo-crop{display:grid;flex:0 0 52px;width:52px;height:52px;place-items:center}.brand__logo{width:52px;height:52px;object-fit:contain}.brand__wordmark{font-size:1rem;font-weight:700;letter-spacing:.1em;white-space:nowrap}.site-header__actions{display:flex;align-items:center;gap:.7rem}.site-contact{margin-right:.5rem;color:var(--sage);font-size:.68rem;font-weight:650;letter-spacing:.14em}.header-action{display:inline-flex;align-items:center;gap:.48rem;min-height:2.45rem;padding:.45rem .58rem .45rem .78rem;color:var(--surface);font-size:.6rem;font-weight:650;letter-spacing:.08em;border:1px solid var(--sage);background:var(--sage);cursor:pointer}.header-action>span{display:grid;min-width:1.35rem;height:1.35rem;padding:0 .2rem;place-items:center;color:var(--sage);background:var(--surface);border-radius:999px}

.home-library{min-height:calc(100vh - 76px);padding:clamp(2.5rem,4vw,4rem) 4vw 2.5rem}.orbit-search{width:min(100%,46rem);margin:0 auto clamp(2.5rem,4vw,4rem)}.orbit-search>div{position:relative;z-index:0;display:grid;grid-template-columns:minmax(0,1fr) auto;padding:2px;overflow:hidden;background:var(--surface);border-radius:999px;box-shadow:0 0 0 3px rgba(82,170,25,.07),0 0 24px rgba(82,170,25,.15)}.orbit-search>div::before{position:absolute;top:50%;left:50%;z-index:-2;width:150%;aspect-ratio:1;content:"";background:conic-gradient(from 0deg,transparent 0 72%,var(--sage) 80%,#c9f5a9 88%,transparent 96%);transform:translate(-50%,-50%);animation:search-orbit 4.5s linear infinite}.orbit-search>div::after{position:absolute;inset:2px;z-index:-1;content:"";background:var(--surface);border-radius:inherit}.orbit-search input{min-width:0;height:3.65rem;padding:0 1.35rem;font-size:1rem;outline:0;background:transparent;border:0}.orbit-search button,.collection-search button{padding:0 1.1rem;color:var(--surface);font-size:.68rem;font-weight:650;letter-spacing:.06em;border:0;background:var(--sage);border-radius:999px;cursor:pointer}.orbit-search small{display:block;margin-top:.65rem;color:var(--sage);font-size:.78rem;font-weight:550}.home-categories{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}.category-card{display:block;min-width:0}.category-card__image{position:relative;display:block;aspect-ratio:1.35;overflow:hidden;background:var(--soft)}.category-card__image img{height:100%;object-fit:cover;transition:transform 260ms ease}.category-card:hover .category-card__image img{transform:scale(1.015)}.category-card__meta{display:flex;align-items:start;justify-content:space-between;gap:.6rem;padding:.65rem 0 0}.category-card__meta>span:first-child{display:grid;gap:.15rem}.category-card__meta strong{font-size:.82rem;font-weight:550}.category-card__meta small,.category-card__meta>span:last-child{color:var(--muted);font-size:.55rem}.category-card__meta>span:last-child{color:var(--sage)}.category-card__meta small{letter-spacing:.06em;text-transform:uppercase}

.catalog-page{min-height:75vh;padding:clamp(3rem,5vw,5.5rem) 4vw;background:var(--surface)}.catalog-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(28rem,42rem) minmax(0,1fr);align-items:end;gap:clamp(1rem,2vw,2rem);padding-bottom:1.5rem}.catalog-heading h1{margin:.7rem 0 0;font-size:clamp(1.8rem,2.8vw,3rem);font-weight:500;letter-spacing:-.055em;line-height:1}.catalog-heading__description{max-width:34rem;margin-top:.8rem;color:var(--muted);font-size:.75rem;line-height:1.7}.catalog-heading__back{justify-self:end;padding-bottom:.25rem;font-size:.72rem;border-bottom:1px solid var(--ink)}.collection-search{display:grid;grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:2px;overflow:hidden;border:1.5px solid var(--sage);border-radius:999px;box-shadow:0 0 0 3px rgba(82,170,25,.05),0 0 22px rgba(82,170,25,.13)}.collection-search input{min-width:0;height:3rem;padding:0 1.1rem;font-size:.88rem;outline:0;border:0;background:var(--surface)}.collection-search button{min-width:4.8rem}.catalog-toolbar{position:sticky;top:0;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.6rem;padding:.85rem 0;background:rgba(255,255,255,.95);border-top:1px solid var(--line);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.category-tabs{display:flex;align-items:center;gap:.15rem;min-width:0;overflow-x:auto}.category-tabs a{flex:0 0 auto;display:grid;min-height:2.5rem;padding:0 .9rem;place-items:center;color:#454541;font-size:.74rem;font-weight:550;border-bottom:2px solid transparent}.category-tabs a:hover,.category-tabs a.is-active{color:var(--sage);background:var(--sage-soft)}.category-tabs a.is-active{font-weight:650;border-bottom-color:var(--sage)}.catalog-toolbar>span{flex:0 0 auto;color:var(--sage);font-size:.68rem;font-weight:650}.catalog-price-note{width:min(100%,72rem);margin:-.5rem auto 1.8rem;padding:.9rem 1rem;color:#53534e;background:var(--paper);border-left:3px solid var(--sage)}.catalog-price-note p,.price-disclaimer p{margin:0;font-size:.62rem;line-height:1.65}.product-grid,.material-grid{display:grid;width:min(100%,72rem);margin:0 auto;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.7rem .65rem}.product-card__button,.material-card__button{display:block;width:100%}.product-card__visual,.material-card__image{position:relative;display:block;aspect-ratio:1;overflow:hidden;background:var(--soft)}.product-card__visual img,.material-card__image img{height:100%;object-fit:cover;transition:transform 260ms ease}.product-card__button:hover img,.material-card__button:hover img{transform:scale(1.015)}.product-card__count{position:absolute;right:.65rem;bottom:.65rem;padding:.3rem .45rem;font-size:.5rem;background:rgba(255,255,255,.92)}.product-card__owned{position:absolute;top:.5rem;left:.5rem;padding:.3rem .45rem;color:var(--surface);font-size:.48rem;font-weight:650;letter-spacing:.05em;background:var(--sage)}.product-card__copy{display:block;padding-top:.65rem}.product-card__title-row{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:.35rem}.product-card__title-row>span:first-child{display:grid}.product-card__title-row strong,.material-card__meta strong{font-size:.86rem;font-weight:550}.product-card__title-row em{margin-top:.2rem;color:var(--muted);font-size:.6rem;font-style:normal}.product-card__price{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.55rem;padding-top:.5rem;color:var(--sage);border-top:1px solid var(--line)}.product-card__price strong,.product-card__price span{font-size:.57rem;font-weight:650}.arrow{color:var(--muted);font-size:.8rem}.material-card__meta{display:grid;gap:.28rem;padding-top:.7rem}.material-card__meta>span{color:var(--muted);font-size:.56rem}.material-card__code{letter-spacing:.08em}.material-card__specs{display:flex;flex-wrap:wrap;gap:.25rem .65rem}.search-group+ .search-group{margin-top:4rem}.search-group h2{width:min(100%,72rem);margin:0 auto 1.25rem;font-size:1.2rem;font-weight:550}.empty-state{grid-column:1/-1;padding:4rem 1rem;text-align:center;color:var(--muted)}.empty-state a,.empty-state button{display:inline-block;margin-top:1rem;padding-bottom:.2rem;color:var(--sage);border:0;border-bottom:1px solid var(--sage);background:transparent}.pagination{display:flex;align-items:center;justify-content:center;gap:2rem;padding-top:3rem;font-size:.72rem}.pagination a{color:var(--sage)}

.breadcrumbs{display:flex;flex-wrap:wrap;gap:.45rem;max-width:92rem;margin:0 auto 1.5rem;color:var(--muted);font-size:.62rem}.breadcrumbs a:hover{color:var(--sage)}.product-page,.fabric-page{padding:2rem 4vw 5rem;background:var(--surface)}.product-detail{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(20rem,.75fr);gap:clamp(2rem,5vw,6rem);max-width:92rem;margin:auto}.product-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;align-content:start}.product-gallery__item{position:relative;background:var(--paper)}.product-gallery__item img{aspect-ratio:1;object-fit:cover}.product-gallery__item:first-child{grid-column:1/-1}.product-gallery__item:first-child img{aspect-ratio:1.35}.product-gallery__item figcaption{position:absolute;right:.6rem;bottom:.6rem;padding:.3rem .45rem;font-size:.54rem;background:rgba(255,255,255,.9)}.product-info{position:sticky;top:1.5rem;align-self:start;padding:clamp(1rem,2vw,2rem) 0}.product-info h1,.fabric-hero h1{margin:.8rem 0 0;font-size:clamp(2.2rem,4vw,4.4rem);font-weight:500;letter-spacing:-.055em;line-height:.95}.product-info__zh{margin:.5rem 0 0;color:var(--muted);font-size:.84rem}.product-info__description{margin:1.5rem 0;color:var(--muted);font-size:.74rem;line-height:1.8}.product-info__description p:first-child{margin-top:0}.product-commerce{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:1.25rem 0;padding:.95rem 0;color:var(--sage);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.product-commerce>span{font-size:.68rem;font-weight:650}.product-price{display:grid;gap:.2rem;font-size:1.05rem;font-weight:700}.product-price small{font-size:.5rem;letter-spacing:.1em}.product-field{display:grid;gap:.45rem;margin-top:.85rem}.product-field>span{color:var(--muted);font-size:.62rem;font-weight:600}.product-field select,.product-field input{width:100%;min-height:3rem;padding:0 .85rem;border:1px solid var(--line);background:var(--surface)}.primary-action{display:grid;width:100%;min-height:3.4rem;margin-top:.9rem;padding:.75rem 1rem;place-items:center;color:var(--surface);font-size:.76rem;font-weight:700;letter-spacing:.06em;border:1px solid var(--sage);background:var(--sage);cursor:pointer}.primary-action--secondary{color:var(--sage);background:transparent}.primary-action:disabled{opacity:.45;cursor:not-allowed}.form-message{min-height:1.2rem;margin:.65rem 0 0;color:var(--muted);font-size:.66rem}.price-disclaimer{margin-top:1rem;color:var(--muted)}.product-contact{display:inline-block;margin-top:1.2rem;padding-bottom:.2rem;color:var(--sage);font-size:.68rem;font-weight:650;border-bottom:1px solid var(--sage)}

.fabric-hero{display:grid;grid-template-columns:minmax(18rem,.8fr) minmax(22rem,1.2fr);max-width:92rem;min-height:30rem;margin:auto;background:var(--paper)}.fabric-hero__image{min-height:30rem}.fabric-hero__image img{height:100%;object-fit:cover}.fabric-hero__copy{align-self:center;padding:clamp(2rem,6vw,7rem)}.fabric-hero__copy>p:last-child{margin-top:1.5rem;color:var(--muted);line-height:1.7}.fabric-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;max-width:92rem;margin:1px auto 0;background:var(--line)}.fabric-group{padding:clamp(1.5rem,3vw,3rem);background:var(--surface)}.fabric-group h2{margin:0 0 1rem;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.fabric-group dl{margin:0}.fabric-group dl>div{display:grid;grid-template-columns:1fr 1.4fr;gap:1rem;padding:.7rem 0;border-top:1px solid var(--line)}.fabric-group dt,.fabric-group dd{margin:0;font-size:.65rem;line-height:1.5}.fabric-group dt{color:var(--muted)}

.drawer-shell{position:fixed;inset:0;z-index:120}.drawer-shell[hidden]{display:none}.drawer-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(28,28,26,.58);backdrop-filter:blur(5px)}.drawer{position:absolute;top:0;right:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(100vw,34rem);height:100%;background:var(--surface);box-shadow:-1rem 0 3rem rgba(0,0,0,.12)}.drawer__header{display:flex;align-items:center;justify-content:space-between;min-height:5.5rem;padding:1rem 1.5rem;border-bottom:1px solid var(--line)}.drawer__header h2{margin:.35rem 0 0;font-size:1.4rem;font-weight:550}.drawer__header>button{display:grid;width:2.3rem;height:2.3rem;padding:0;place-items:center;font-size:1.25rem;border:1px solid var(--line);background:var(--surface);cursor:pointer}.drawer__content{overflow:auto;padding:1.25rem 1.5rem}.drawer__footer{padding:1.25rem 1.5rem;border-top:1px solid var(--line)}.drawer-total{display:flex;justify-content:space-between;margin-bottom:.8rem}.drawer-cart-line{display:grid;grid-template-columns:5.5rem minmax(0,1fr) auto;gap:.85rem;padding:1rem 0;border-bottom:1px solid var(--line)}.drawer-cart-line img{aspect-ratio:1;object-fit:cover;background:var(--soft)}.drawer-cart-line__copy{display:grid;align-content:start;gap:.25rem}.drawer-cart-line__copy span{color:var(--muted);font-size:.6rem}.drawer-cart-line__copy label{display:flex;align-items:center;gap:.5rem;margin-top:.45rem;font-size:.6rem}.drawer-cart-line input{width:5rem;height:2rem;padding:0 .4rem;border:1px solid var(--line)}.drawer-cart-line__end{display:flex;flex-direction:column;align-items:end;justify-content:space-between;gap:.5rem;font-size:.68rem}.drawer-cart-line button{padding:0;color:var(--muted);font-size:.58rem;border:0;border-bottom:1px solid currentColor;background:transparent;cursor:pointer}

.cart-page,.error-page{max-width:78rem;min-height:60vh;margin:auto;padding:clamp(3rem,6vw,6rem) 4vw}.cart-page h1,.error-page h1{margin:.7rem 0 2rem;font-size:clamp(2rem,4vw,4rem);font-weight:500}.cart-page__lines{border-top:1px solid var(--line)}.cart-line-page{display:grid;grid-template-columns:7rem minmax(0,1fr) 9rem auto;align-items:center;gap:1.2rem;padding:1rem 0;border-bottom:1px solid var(--line)}.cart-line-page img{aspect-ratio:1;object-fit:cover}.cart-line-page>div{display:grid;gap:.3rem}.cart-line-page span{color:var(--muted);font-size:.65rem}.cart-line-page label{display:grid;gap:.3rem;font-size:.62rem}.cart-line-page input{height:2.5rem;padding:0 .6rem;border:1px solid var(--line)}.cart-page__footer{display:grid;justify-items:end;gap:.8rem;margin-top:1.5rem}.cart-page__footer button{min-width:15rem;min-height:3rem}.site-footer{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:1rem;min-height:6rem;padding:1rem 4vw;border-top:1px solid var(--line)}.site-footer span{font-size:.72rem;font-weight:700;letter-spacing:.12em}.site-footer p,.site-footer a{color:var(--muted);font-size:.62rem}.site-footer p{text-align:center}

@keyframes search-orbit{to{transform:translate(-50%,-50%) rotate(1turn)}}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--sage);outline-offset:3px}
@media(max-width:1100px){.home-categories{grid-template-columns:repeat(3,minmax(0,1fr))}.product-grid,.material-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.catalog-heading{grid-template-columns:minmax(0,1fr) minmax(22rem,32rem) auto}.product-detail{grid-template-columns:minmax(0,1fr) minmax(19rem,.7fr);gap:2rem}}
@media(max-width:760px){.site-header{min-height:64px;padding:0 1.1rem}.brand{gap:.48rem}.brand__logo-crop{flex-basis:44px;width:44px;height:44px}.brand__logo{width:44px;height:44px}.brand__wordmark{font-size:.78rem;letter-spacing:.07em}.site-contact{display:none}.site-header__actions{gap:.35rem}.header-action{min-height:2.3rem;padding:.4rem .42rem;font-size:.48rem}.header-action>span{min-width:1.2rem;height:1.2rem}.home-library{padding:2.2rem 1.1rem 2.5rem}.orbit-search{margin-bottom:2.8rem}.orbit-search input{height:3.2rem;padding:0 .85rem;font-size:.82rem}.orbit-search button{padding:0 .75rem;font-size:.55rem}.home-categories,.product-grid,.material-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.65rem .55rem}.category-card__image{aspect-ratio:1.15}.catalog-page{padding:3.5rem 1.1rem}.catalog-heading{grid-template-columns:max-content minmax(9.5rem,1fr);gap:.8rem}.catalog-heading h1{font-size:clamp(1.55rem,7vw,1.9rem)}.catalog-heading__description{display:none}.catalog-heading__back{grid-column:1/-1;justify-self:end}.collection-search input{height:2.45rem;padding:0 .65rem;font-size:.65rem}.collection-search button{min-width:3rem;padding:0 .55rem;font-size:.55rem}.catalog-toolbar{gap:.5rem}.category-tabs{margin-right:-1rem}.category-tabs a{min-height:2.45rem;padding:0 .65rem;font-size:.66rem}.catalog-toolbar>span{display:none}.catalog-price-note{margin-top:-.65rem;margin-bottom:1.5rem;padding:.75rem .8rem}.product-card__count{font-size:.45rem}.product-card__price{display:grid;gap:.25rem}.product-page,.fabric-page{padding:1.25rem 1.1rem 4rem}.product-detail{grid-template-columns:1fr}.product-gallery{gap:.45rem}.product-gallery__item:first-child img{aspect-ratio:1}.product-info{position:static;padding-top:.5rem}.product-info h1,.fabric-hero h1{font-size:clamp(2rem,11vw,3rem)}.fabric-hero{grid-template-columns:1fr;min-height:0}.fabric-hero__image{min-height:52vh}.fabric-hero__copy{padding:2rem 1.1rem}.fabric-groups{grid-template-columns:1fr}.drawer{width:100vw}.drawer__header,.drawer__content,.drawer__footer{padding-right:1.1rem;padding-left:1.1rem}.drawer-cart-line{grid-template-columns:4.5rem minmax(0,1fr)}.drawer-cart-line__end{grid-column:2;flex-direction:row;align-items:center}.cart-line-page{grid-template-columns:5.5rem minmax(0,1fr);gap:.8rem}.cart-line-page>label,.cart-line-page>strong{grid-column:2}.site-footer{grid-template-columns:1fr auto;padding:1rem 1.1rem}.site-footer p{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
