*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:#faf8f4;color:#1c1a17;-webkit-font-smoothing:antialiased}.page{min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--font-b)}.page>*{width:100%;max-width:1100px;margin-inline:auto}.img{display:block;width:100%;height:100%;object-fit:cover}.img--empty{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--muted) 12%,var(--surface));color:var(--muted);font-size:11px;text-align:center;padding:4px}.btn-primary{height:48px;padding:0 20px;border:none;border-radius:var(--radius-pill);background:var(--btn-bg);color:var(--btn-fg);font:600 14px var(--font-b);cursor:pointer}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{height:48px;padding:0 20px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font:600 14px var(--font-b);cursor:pointer}.stepper{display:flex;align-items:center;justify-content:space-between;height:44px;border:1.5px solid var(--text);border-radius:var(--radius-sm);background:var(--surface)}.stepper--lg{height:52px}.stepper button{width:44px;height:100%;border:none;background:transparent;color:inherit;font:600 19px sans-serif;cursor:pointer}.stepper--lg button{width:52px;font-size:22px}.stepper button:disabled{opacity:.35;cursor:not-allowed}.stepper input{width:44px;text-align:center;border:none;background:transparent;color:var(--text);font:600 14px var(--font-b);outline:none;-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}[data-theme=MARKETPLACE] .stepper{border:none;background:var(--text);border-radius:999px;padding:0 4px}[data-theme=MARKETPLACE] .stepper button,[data-theme=MARKETPLACE] .stepper input{color:#fff}[data-theme=MARKETPLACE] .stepper button{width:38px;height:38px;border-radius:50%;background:#ffffff38}[data-theme=SOFT] .stepper{border-color:var(--accent);border-radius:999px;background:color-mix(in srgb,var(--accent) 12%,var(--surface))}[data-theme=SOFT] .stepper button{color:var(--accent)}.hero{display:flex;flex-direction:column}.hero__cover{position:relative;width:100%;height:132px;background:color-mix(in srgb,var(--accent) 22%,var(--surface));overflow:hidden}.hero__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#2b201a00 55%,#2b201a8c);pointer-events:none}.hero__logo-row{padding:0 20px;margin-top:-32px;position:relative}.hero__logo{width:64px;height:64px;border-radius:50%;overflow:hidden;border:3px solid var(--surface);box-shadow:0 2px 10px #0000002e;background:var(--accent);display:flex;align-items:center;justify-content:center}[data-theme=MARKETPLACE] .hero__logo{border-radius:var(--radius-sm)}[data-theme=SOFT] .hero__logo{border:2px solid var(--accent)}.hero__monogram{font:700 26px var(--font-d);color:#fff}.hero__body{padding:12px 20px 16px;display:flex;flex-direction:column;gap:5px}.hero__eyebrow{font:600 10px var(--font-b);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.hero__rule{width:36px;height:2px;background:var(--accent)}.hero__title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hero__name{margin:0;font:600 25px/1.2 var(--font-d);color:var(--text)}[data-theme=MARKETPLACE] .hero__name{font-weight:700;font-size:24px}[data-theme=SOFT] .hero__name{font-size:27px}.hero__badge{display:inline-flex;align-items:center;padding:3px 9px;background:#12b76a;border-radius:999px;font:700 10px var(--font-b);color:#fff;text-transform:uppercase;letter-spacing:.03em}.hero__tagline{margin:0;font:13.5px/1.5 var(--font-b);color:var(--muted)}.hero__contact{font:12.5px var(--font-b);color:var(--muted)}.search-row{display:flex;align-items:center;gap:10px;padding:0 20px 14px}.search{display:flex;align-items:center;gap:8px;height:44px;padding:0 14px;flex:1;min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);color:var(--muted)}.search input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text);font:14px var(--font-b)}.cat-tabs{display:flex;gap:22px;padding:0 20px 12px;border-bottom:1px solid var(--line);overflow-x:auto;max-width:1100px}.cat-tabs button{flex:none;padding:0 0 10px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:400 13px var(--font-b);white-space:nowrap;cursor:pointer}.cat-tabs button.is-active{color:var(--text);font-weight:600;border-bottom-color:var(--text)}.cat-tiles{display:flex;gap:14px;padding:4px 20px 18px;overflow-x:auto}.cat-tile{flex:none;width:60px;display:flex;flex-direction:column;align-items:center;gap:6px;border:none;background:transparent;cursor:pointer}.cat-tile__box{width:56px;height:56px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font:700 20px var(--font-d);color:#fff;opacity:.6}.cat-tile.is-active .cat-tile__box{opacity:1;box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--accent)}.cat-tile__label{font:600 10px var(--font-b);color:var(--text);text-align:center;line-height:1.2}.filter-btn{flex:none;height:44px;padding:0 14px;display:flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font:600 12px var(--font-b);cursor:pointer}.active-chip-row{padding:0 20px 14px}.active-chip{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px;border:1px solid var(--accent);border-radius:999px;background:transparent;color:var(--accent);font:12px var(--font-b);cursor:pointer}.drawer-list{list-style:none;margin:0;padding:0}.drawer-list button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:13px 4px;border:none;border-bottom:1px solid var(--line);background:transparent;color:var(--text);font:16px var(--font-d);text-align:left;cursor:pointer}.drawer-list__meta{display:flex;align-items:center;gap:10px}.drawer-list__count{font:12px var(--font-b);color:var(--muted)}.drawer-list__check{color:var(--accent)}.store-main{flex:1;padding:16px 20px 110px}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px}.card{display:flex;flex-direction:column;gap:6px;min-width:0}.card--sold-out .card__media,.card--sold-out .card__name{opacity:.55}.card__media{position:relative;width:100%;aspect-ratio:1 / 1;padding:0;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--surface);cursor:pointer}[data-theme=MARKETPLACE] .card__media,[data-theme=SOFT] .card__media{border:none;border-radius:var(--radius-sm)}.card__price-pill{position:absolute;top:8px;right:8px;padding:5px 10px;background:#fff;border-radius:999px;font:700 12px var(--font-d);color:var(--text);box-shadow:0 2px 6px #0000002e}.card__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000 50%,#000000b3);pointer-events:none}.card__price-scrim{position:absolute;left:10px;bottom:8px;font:600 16px var(--font-d);color:#fff}.card__category{font:10.5px var(--font-b);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}[data-theme=MARKETPLACE] .card__category{align-self:flex-start;padding:3px 9px;border-radius:999px;background:var(--accent);color:#fff;font-weight:700;font-size:10px;letter-spacing:.03em}[data-theme=SOFT] .card__category{color:var(--accent);font-size:11px;letter-spacing:.1em}.card__name{padding:0;border:none;background:transparent;color:var(--text);font:500 14px/1.3 var(--font-b);text-align:left;cursor:pointer}[data-theme=MARKETPLACE] .card__name{font:700 15px var(--font-d)}[data-theme=SOFT] .card__name{font:500 16px var(--font-d)}.card__price{font:600 15px var(--font-d);color:var(--accent)}.card__stock{font:11.5px var(--font-b);color:var(--muted)}.card__stock--out{color:var(--danger)}.card__unavailable{height:44px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--line);border-radius:var(--radius-sm);color:var(--muted);font:600 11px var(--font-b);letter-spacing:.06em;text-transform:uppercase}.card__add{height:44px;border:1px solid var(--text);border-radius:var(--radius-sm);background:transparent;color:var(--text);font:600 11px var(--font-b);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}[data-theme=MARKETPLACE] .card__add{border:none;border-radius:999px;background:var(--btn-bg);color:var(--btn-fg);font:700 12px var(--font-b);text-transform:none;letter-spacing:0}[data-theme=SOFT] .card__add{border-color:var(--accent);border-radius:999px;color:var(--accent)}.load-more{display:block;margin:24px auto 0;height:44px;padding:0 22px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--text);font:600 13px var(--font-b);cursor:pointer}.load-more:disabled{opacity:.6;cursor:not-allowed}.cart-bar{position:sticky;bottom:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -8px 20px #00000014}.cart-bar__info{display:flex;flex-direction:column}.cart-bar__count{font:11px var(--font-b);color:var(--muted)}.cart-bar__total{font:600 15px var(--font-d);color:var(--text)}.cart-bar .btn-primary{height:44px;font-size:13px}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;max-width:none}.sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;padding:0;background:#14131180;cursor:pointer}.sheet__panel{position:relative;width:100%;max-width:560px;max-height:88vh;overflow-y:auto;padding:18px 20px 28px;background:var(--bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;display:flex;flex-direction:column;gap:12px}.sheet__head{display:flex;align-items:center;justify-content:space-between}.sheet__head--bare{justify-content:flex-end}.sheet__title{margin:0;font:600 18px var(--font-d);color:var(--text)}.sheet__close{width:32px;height:32px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:15px;cursor:pointer}.sheet__panel--drawer{background:var(--surface);gap:2px}.quick__media{width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}.quick__category{font:10.5px var(--font-b);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}[data-theme=SOFT] .quick__category{color:var(--accent);letter-spacing:.1em}.quick__name{margin:0;font:600 20px var(--font-d);color:var(--text)}.quick__desc{margin:0;font:14px/1.5 var(--font-b);color:var(--muted)}.quick__price{font:600 20px var(--font-d);color:var(--accent)}.quick__stock{display:flex;align-items:center;gap:6px;font:12.5px var(--font-b);color:var(--muted)}.dot{width:7px;height:7px;border-radius:50%;background:var(--in-stock)}.dot--out{background:var(--danger)}.quick__divider{height:1px;background:var(--line);margin:2px 0}.quick__qty{display:flex;flex-direction:column;gap:6px}.quick__qty-label{font:600 12px var(--font-b);letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}.quick__unavailable{margin:0;font:14px var(--font-b);color:var(--danger)}.checkout-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.checkout-lines li{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font:13px var(--font-b);color:var(--muted)}.checkout-lines__total{margin-top:4px;padding-top:8px!important;border-top:1px solid var(--line);font-weight:600!important;color:var(--text)!important}.checkout-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font:600 12px var(--font-b);color:var(--text)}.field input,.field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);color:var(--text);font:14px var(--font-b);resize:none}.field input{height:44px;padding:0 12px}.segmented{display:flex;gap:8px}.segmented button{flex:1;height:40px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;color:var(--muted);font:13px var(--font-b);cursor:pointer}.segmented button.is-active{border-color:var(--text);color:var(--text);font-weight:600}[data-theme=MARKETPLACE] .segmented button.is-active,[data-theme=SOFT] .segmented button.is-active{border-color:var(--accent);color:var(--accent)}.checkout-error{margin:0;font:13px var(--font-b);color:var(--danger)}.location{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;padding:10px 12px;border-radius:var(--radius-sm);font:600 13px var(--font-b);cursor:pointer}.location--empty{justify-content:center;gap:8px;border:1px dashed var(--line);background:transparent;color:var(--muted)}.location--picked{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:default}.location__label{display:flex;align-items:center;gap:8px;color:var(--accent)}.location__label span{color:var(--text);font-weight:400}.location__change{border:none;background:transparent;color:var(--accent);font:600 12px var(--font-b);cursor:pointer}.location-map{position:relative;display:flex;flex-direction:column;gap:10px}.location-map__canvas{width:100%;height:220px;border-radius:var(--radius-sm);overflow:hidden;background:color-mix(in srgb,var(--muted) 18%,var(--surface))}.location-map__crosshair{position:absolute;top:110px;left:50%;transform:translate(-50%,-100%);font-size:26px;pointer-events:none}.location-map__actions{display:flex;gap:8px}.location-map__actions>*{flex:1;height:44px}.success{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px 10px;text-align:center}.success__check{width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px}.success__title{margin:0;font:600 19px var(--font-d);color:var(--text)}.success__text{margin:0;font:14px var(--font-b);color:var(--muted)}.success .btn-primary{margin-top:10px;height:44px}.status-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:60px 24px;text-align:center;min-height:40vh}.status-screen__title{margin:0;font:600 18px var(--font-d, system-ui);color:var(--text, #1c1a17)}.status-screen__text{margin:0;font:14px var(--font-b, system-ui);color:var(--muted, #8a8377);max-width:34ch}.spinner{width:26px;height:26px;border:3px solid var(--line, rgba(0, 0, 0, .12));border-top-color:var(--accent, #b5502f);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:3s}}
