*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg:#f8f6f2;--color-surface:#fff;--color-ink:#0e0e0e;--color-ink-2:#7a7570;--color-accent:#b8975a;--color-border:#e5e1da;--font-display:"Cormorant Garamond", Georgia, serif;--font-ui:"Jost", system-ui, sans-serif;--ease:cubic-bezier(.4, 0, .2, 1)}html{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{min-height:100dvh}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select{font-family:var(--font-ui)}.cart-trigger{cursor:pointer;width:44px;height:44px;color:var(--color-ink);transition:color .2s var(--ease);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.cart-trigger:hover{color:var(--color-accent)}.cart-trigger__icon{display:block}.cart-trigger__badge{background:var(--color-ink);min-width:16px;height:16px;color:var(--color-bg);letter-spacing:.04em;pointer-events:none;border-radius:8px;justify-content:center;align-items:center;padding:0 3px;font-size:9px;font-weight:500;display:flex;position:absolute;top:4px;right:2px}.cart-overlay{z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0e0e0e40;position:fixed;inset:0}.cart-sidebar{z-index:400;background:var(--color-surface);width:380px;max-width:100vw;height:100dvh;transition:transform .3s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.cart-sidebar--open{transform:translate(0)}.cart-sidebar__header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:28px 28px 20px;display:flex}.cart-sidebar__title{font-family:var(--font-display);letter-spacing:.06em;color:var(--color-ink);font-size:20px;font-weight:300}.cart-sidebar__close{letter-spacing:.1em;text-transform:uppercase;cursor:pointer;color:var(--color-ink-2);transition:color .2s var(--ease);background:0 0;border:none;font-size:13px;font-weight:300}.cart-sidebar__close:hover{color:var(--color-ink)}.cart-sidebar__empty{color:var(--color-ink-2);letter-spacing:.12em;text-transform:uppercase;text-align:center;margin:auto;font-size:12px}.cart-sidebar__list{flex-direction:column;flex:1;gap:24px;padding:20px 28px;list-style:none;display:flex;overflow-y:auto}.cart-item{align-items:flex-start;gap:16px;display:flex}.cart-item__image{object-fit:cover;flex-shrink:0;width:64px;height:86px}.cart-item__info{flex-direction:column;flex:1;gap:4px;display:flex}.cart-item__name{font-family:var(--font-display);color:var(--color-ink);font-size:15px;font-weight:400;line-height:1.3}.cart-item__line-total{letter-spacing:.06em;color:var(--color-ink-2);font-size:12px;font-weight:300}.cart-item__qty{align-items:center;gap:10px;margin-top:8px;display:flex}.cart-item__qty-btn{border:1px solid var(--color-border);cursor:pointer;width:24px;height:24px;color:var(--color-ink);transition:border-color .15s var(--ease);background:0 0;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.cart-item__qty-btn:hover{border-color:var(--color-ink)}.cart-item__qty-value{text-align:center;letter-spacing:.06em;min-width:18px;color:var(--color-ink);font-size:12px;font-weight:400}.cart-item__remove{letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-2);cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;flex-shrink:0;padding:2px;font-size:11px}.cart-item__remove:hover{color:var(--color-ink)}.cart-sidebar__footer{border-top:1px solid var(--color-border);justify-content:space-between;align-items:baseline;padding:20px 28px 28px;display:flex}.cart-sidebar__total-label{letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-2);font-size:10px;font-weight:400}.cart-sidebar__total-value{font-family:var(--font-display);color:var(--color-ink);font-size:22px;font-weight:300}.product-card{flex-direction:column;gap:14px;display:flex}.product-card__media{background:var(--color-surface);position:relative;overflow:hidden}.product-card__image{aspect-ratio:2/3;object-fit:cover;width:100%;transition:transform .5s var(--ease);display:block}.product-card:hover .product-card__image{transform:scale(1.04)}.product-card__add{color:#fff;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s var(--ease), transform .25s var(--ease);background:#0e0e0ed1;border:none;padding:14px;font-size:11px;font-weight:400;position:absolute;bottom:0;left:0;right:0;transform:translateY(6px)}.product-card__media:hover .product-card__add{opacity:1;pointer-events:auto;transform:translateY(0)}.product-card__add:hover{background:#0e0e0ef2}.product-card__body{flex-direction:column;gap:4px;display:flex}.product-card__category{letter-spacing:.16em;text-transform:uppercase;color:var(--color-ink-2);font-size:10px;font-weight:400}.product-card__name{font-family:var(--font-display);font-size:18px;font-weight:400;line-height:1.3}.product-card__name a{color:var(--color-ink);text-decoration:none}.product-card__name a:hover{color:var(--color-accent)}.product-card__price{letter-spacing:.06em;color:var(--color-ink-2);font-size:13px;font-weight:300}.listing-page{max-width:1280px;margin:0 auto;padding:64px 48px 96px}.listing-page__status{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-2);padding-top:80px;font-size:12px}.listing-page__status--error{color:#a33}.listing-page__title{font-family:var(--font-display);letter-spacing:.02em;color:var(--color-ink);margin-bottom:56px;font-size:clamp(36px,5vw,64px);font-style:italic;font-weight:300}.listing-page__grid{grid-template-columns:repeat(4,1fr);gap:40px 28px;display:grid}@media (width<=1024px){.listing-page__grid{grid-template-columns:repeat(3,1fr)}}@media (width<=720px){.listing-page{padding:40px 20px 72px}.listing-page__grid{grid-template-columns:repeat(2,1fr);gap:28px 16px}}@media (width<=420px){.listing-page__grid{grid-template-columns:1fr}}.detail-page{max-width:1100px;margin:0 auto;padding:56px 48px 96px}.detail-page__status{text-align:center;letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-2);padding-top:80px;font-size:12px}.detail-page__status--error{color:#a33}.detail-page--not-found{color:var(--color-ink-2);letter-spacing:.08em;text-transform:uppercase;flex-direction:column;align-items:center;gap:20px;padding-top:120px;font-size:13px;display:flex}.detail-page--not-found a{color:var(--color-ink);text-underline-offset:4px;text-decoration:underline}.detail-page__back{letter-spacing:.14em;text-transform:uppercase;color:var(--color-ink-2);transition:color .2s var(--ease);align-items:center;gap:6px;margin-bottom:48px;font-size:11px;font-weight:400;text-decoration:none;display:inline-flex}.detail-page__back:hover{color:var(--color-ink)}.detail-page__content{grid-template-columns:1fr 1fr;align-items:start;gap:80px;display:grid}@media (width<=768px){.detail-page{padding:40px 20px 72px}.detail-page__content{grid-template-columns:1fr;gap:40px}}.detail-page__image{aspect-ratio:2/3;object-fit:cover;width:100%;display:block}.detail-page__info{flex-direction:column;gap:16px;display:flex;position:sticky;top:100px}.detail-page__category{letter-spacing:.18em;text-transform:uppercase;color:var(--color-ink-2);font-size:10px;font-weight:400}.detail-page__name{font-family:var(--font-display);color:var(--color-ink);font-size:clamp(28px,3.5vw,44px);font-weight:300;line-height:1.15}.detail-page__price{letter-spacing:.08em;color:var(--color-ink-2);font-size:15px;font-weight:300}.detail-page__divider{background:var(--color-border);width:32px;height:1px}.detail-page__description{color:var(--color-ink-2);font-size:14px;font-weight:300;line-height:1.8}.detail-page__add{border:1px solid var(--color-ink);color:var(--color-ink);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease);background:0 0;margin-top:8px;padding:16px;font-size:11px;font-weight:400}.detail-page__add:hover{background:var(--color-ink);color:#fff}.auth-page{justify-content:center;align-items:center;min-height:calc(100dvh - 72px);padding:2rem;display:flex}.auth-page__card{background:var(--color-surface);border:1px solid var(--color-border);width:100%;max-width:420px;padding:3rem}.auth-page__title{font-family:var(--font-display);letter-spacing:.05em;text-align:center;margin-bottom:2rem;font-size:28px;font-weight:400}.auth-page__form{flex-direction:column;gap:1.25rem;display:flex}.auth-page__field{flex-direction:column;gap:.375rem;display:flex}.auth-page__label{letter-spacing:.12em;text-transform:uppercase;color:var(--color-ink-2);font-size:11px}.auth-page__input{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-ink);transition:border-color .2s var(--ease);outline:none;padding:.75rem 1rem;font-size:14px}.auth-page__input:focus{border-color:var(--color-accent)}.auth-page__submit{background:var(--color-ink);color:var(--color-surface);letter-spacing:.15em;text-transform:uppercase;cursor:pointer;transition:background .2s var(--ease);border:none;margin-top:.5rem;padding:.875rem;font-size:11px}.auth-page__submit:hover:not(:disabled){background:var(--color-accent)}.auth-page__submit:disabled{opacity:.6;cursor:not-allowed}.auth-page__error{color:#c0392b;text-align:center;font-size:13px}.auth-page__link{text-align:center;color:var(--color-ink-2);margin-top:1.5rem;font-size:13px}.auth-page__link a{color:var(--color-accent)}@media (width<=480px){.auth-page__card{padding:2rem 1.5rem}}.site-header{z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border);grid-template-columns:1fr auto 1fr;align-items:center;height:72px;padding:0 2rem;display:grid;position:sticky;top:0}.site-header__brand{font-family:var(--font-display);letter-spacing:.35em;color:var(--color-ink);text-transform:uppercase;font-size:22px;font-weight:600;text-decoration:none}.site-header__right{justify-content:flex-end;align-items:center;gap:.25rem;display:flex}.user-trigger{position:relative}.user-trigger__backdrop{z-index:150;position:fixed;inset:0}.user-menu{z-index:200;background:var(--color-surface);border:1px solid var(--color-border);min-width:120px;position:absolute;top:calc(100% + 4px);right:0}.user-menu__item{text-align:left;letter-spacing:.12em;text-transform:uppercase;width:100%;color:var(--color-ink-2);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease);background:0 0;border:none;padding:.75rem 1rem;font-size:11px;display:block}.user-menu__item:hover{color:var(--color-ink);background:var(--color-bg)}
