.rare-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:40px 24px;display:grid}.rare-empty{color:var(--color-muted);grid-column:1/-1}.rare{animation:rare-in .8s var(--ease-out-expo) both;flex-direction:column;display:flex}@keyframes rare-in{0%{opacity:0;transform:translateY(16px)}}.r-media{aspect-ratio:4/5;background:var(--color-bone-2);position:relative;overflow:hidden}.r-media img{object-fit:cover;width:100%;height:100%;transition:scale 1.2s var(--ease-out-expo)}.rare:hover .r-media img,.rare:hover .label{scale:1.03}.label{text-align:center;transition:scale 1.2s var(--ease-out-expo);--bg:var(--color-olive);--fg:var(--color-bone);--ac:var(--color-sage);background:radial-gradient(circle at 50% 42%, #ffffff12, transparent 60%), var(--bg);color:var(--fg);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;display:flex;position:absolute;inset:0}.label:before{content:"";border:1px solid color-mix(in srgb, var(--fg) 25%, transparent);position:absolute;inset:14px}[data-tone=moss] .label{--bg:var(--color-moss);--ac:var(--color-bone)}[data-tone=clay] .label{--bg:var(--color-clay);--ac:var(--color-bone)}[data-tone=sage] .label{--bg:var(--color-sage);--fg:var(--color-olive);--ac:var(--color-moss)}[data-tone=bone] .label{--bg:#d9d0bb;--fg:var(--color-olive);--ac:var(--color-clay)}.l-kind{letter-spacing:.26em;text-transform:uppercase;color:var(--ac);font-size:10px}.l-name{font-family:var(--font-serif);font-size:clamp(34px,3.4vw,44px);font-weight:300;line-height:.95}.l-size{font-family:var(--font-serif);opacity:.8;font-size:20px;font-style:italic}.r-stock{z-index:1;background:var(--color-bone);color:var(--color-olive);letter-spacing:.16em;text-transform:uppercase;padding:6px 10px;font-size:10.5px;font-weight:600;position:absolute;top:14px;right:14px}.r-stock.low{background:var(--color-clay);color:var(--color-bone)}.rare.out .r-media{filter:grayscale();opacity:.6}.r-body{flex-direction:column;flex:1;padding-top:18px;display:flex}.r-meta{letter-spacing:.18em;text-transform:uppercase;color:var(--color-muted);font-size:11px}.r-name{font-family:var(--font-serif);margin-top:6px;font-size:30px;line-height:1.05}.r-name small{color:var(--color-muted);font-size:18px;font-style:italic}.r-desc{color:var(--color-muted);margin-top:6px;font-size:13.5px}.r-foot{justify-content:space-between;align-items:center;gap:12px;margin-top:auto;padding-top:18px;display:flex}.r-price{font-family:var(--font-serif);font-size:26px;font-weight:500}.r-add{border:1px solid var(--color-olive);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:10px 16px;font-size:11.5px;font-weight:500;transition:background .3s,color .3s}.r-add:hover:not(:disabled),.r-add.on{background:var(--color-olive);color:var(--color-bone)}.r-add:disabled:not(.on){border-color:var(--color-line);color:var(--color-muted);cursor:not-allowed}.r-add.on:disabled{cursor:default}.cart{z-index:35;background:var(--color-olive);width:min(620px,100% - 32px);color:var(--color-bone);animation:cart-in .6s var(--ease-out-expo) both;position:fixed;bottom:20px;left:50%;translate:-50%;box-shadow:0 18px 50px #1d221959}@keyframes cart-in{0%{translate:-50% 140%}}.cart-in{justify-content:space-between;align-items:center;gap:12px;padding:10px 10px 10px 20px;display:flex}.cart-sum{text-align:left;cursor:pointer;text-underline-offset:4px;font-size:13.5px;text-decoration:underline #efe9dd4d}.cart-go{white-space:nowrap;padding:13px 18px}.cart .btn{background:var(--color-bone);color:var(--color-olive)}.cart .btn:hover{background:var(--color-sage)}.cart-list{border-top:1px solid var(--color-line-d);max-height:40vh;padding:6px 20px 12px;overflow:auto}.cart-list li{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:14px;display:flex}.cart-list small{opacity:.6}.cart-list .qty{border:1px solid var(--color-line-d);align-items:center;display:flex}.cart-list .qty button{cursor:pointer;width:34px;height:34px}.cart-list .qty button:disabled{opacity:.3;cursor:default}.cart-list output{text-align:center;min-width:24px;font-weight:600}body:has(.cart:not([hidden])) .fab{pointer-events:none;opacity:0!important}@media (width<=560px){.cart-in{flex-direction:column;align-items:stretch;padding:12px}.cart-sum{text-align:center}.cart-go{justify-content:center}}
