:root {
  color-scheme: light;
  --surface:#FFFFFF;
  --brand:#651F39;
  --petal:#F4E9ED;
  --ink:#211B1E;
  --muted:#675D62;
  --line:#E8E1E4;
  font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--ink);
  background:var(--surface);
}
* { box-sizing:border-box; }
body { margin:0; font-size:16px; line-height:1.5; }
button, input { font:inherit; }
button { cursor:pointer; color:inherit; }
button, a, input { -webkit-tap-highlight-color:transparent; }
button { min-width:44px; min-height:44px; }
button:disabled { cursor:not-allowed; }
button[aria-disabled="true"] { color:var(--muted); }
a { color:inherit; }
[hidden] { display:none !important; }
:focus-visible { outline:3px solid var(--brand); outline-offset:4px; }
h1, h2, h3, p { margin:0; }
h1 { font-size:34px; line-height:1.14; letter-spacing:-1.2px; font-weight:750; }
h2 { font-size:22px; line-height:1.25; letter-spacing:-.55px; }
h3 { font-size:16px; line-height:1.3; }
img { display:block; width:100%; height:auto; object-fit:cover; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip-link { position:fixed; top:-100px; left:16px; z-index:20; padding:12px; background:var(--brand); color:white; }
.skip-link:focus { top:8px; }
.app-shell { max-width:1180px; margin:auto; padding-bottom:calc(80px + env(safe-area-inset-bottom)); }
.site-header { position:sticky; top:0; z-index:5; display:flex; align-items:center; gap:10px; min-height:80px; padding:12px 20px; background:var(--surface); border-bottom:1px solid var(--line); }
.wordmark { white-space:nowrap; min-width:0; padding:0; border:0; background:transparent; text-align:left; font-size:24px; font-weight:800; line-height:1.1; letter-spacing:-1px; color:var(--brand); }
.wordmark span { display:block; font-size:8px; letter-spacing:1.7px; margin-top:5px; }
.demo-pill { color:var(--brand); background:var(--petal); border-radius:6px; padding:3px 7px; font-size:11px; font-weight:700; }
.header-actions { margin-left:auto; display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.bag-button { display:flex; align-items:center; gap:8px; background:transparent; border:0; font-size:14px; font-weight:650; }
.bag-button span { display:grid; place-items:center; min-width:24px; height:24px; padding:0 4px; border-radius:50%; background:var(--brand); color:white; font-size:12px; }
main { padding:16px 20px; }
[data-screen] { animation:appear 180ms ease-out; }
.welcome { margin-bottom:16px; }
.eyebrow { margin-bottom:10px; color:var(--brand); font-size:10px; letter-spacing:1.3px; font-weight:750; }
.welcome .eyebrow { font-size:12px; letter-spacing:0; font-weight:600; }
.welcome > p:last-child { margin-top:12px; color:var(--muted); font-size:15px; }
.search-field { display:flex; align-items:center; gap:12px; padding:0 16px; min-height:52px; background:#F7F5F6; border:1px solid var(--line); border-radius:16px; }
.search-field > span { font-size:28px; color:var(--muted); }
.search-field input { width:100%; min-width:0; min-height:50px; padding:8px 0; border:0; background:transparent; color:var(--ink); outline-offset:2px; }
.search-field input::placeholder { color:var(--muted); }
.filters { display:flex; gap:8px; overflow-x:auto; padding:12px 4px; margin:0 -4px 8px; scrollbar-width:none; }
.filters::-webkit-scrollbar { display:none; }
.filter-button { flex-shrink:0; padding:10px 18px; border:1px solid var(--line); border-radius:24px; background:var(--surface); color:var(--muted); font-size:14px; font-weight:600; }
.filter-button[aria-pressed="true"] { background:var(--brand); color:white; border-color:var(--brand); }
.featured { display:grid; grid-template-columns:1fr 1fr; align-items:center; width:100%; min-height:180px; overflow:hidden; padding:0; text-align:left; border:0; border-radius:24px; background:var(--petal); }
.featured-copy { display:flex; flex-direction:column; align-items:flex-start; padding:20px; gap:8px; }
.featured .eyebrow { margin:0; font-size:11px; letter-spacing:0; font-weight:600; }
.featured strong { font-size:23px; letter-spacing:-.7px; line-height:1.15; }
.featured small { color:var(--muted); font-size:12px; }
.featured img { height:100%; min-height:180px; aspect-ratio:1; }
.featured-link { color:var(--brand); font-size:13px; font-weight:700; }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:24px 0 20px; }
.section-heading > span { color:var(--muted); font-size:12px; }
.product-grid { display:grid; grid-template-columns:1fr; gap:24px 16px; }
.product-card { position:relative; width:100%; min-width:0; border:0; padding:0; background:var(--surface); text-align:left; align-self:start; }
.product-card img { aspect-ratio:1; border-radius:20px; margin-bottom:12px; }
.product-card h3 { margin-bottom:6px; overflow-wrap:anywhere; }
.product-card p { color:var(--muted); font-size:13px; }
.card-open { position:absolute; right:10px; top:10px; display:grid; place-items:center; width:32px; height:32px; background:white; border-radius:50%; color:var(--brand); font-size:24px; box-shadow:0 2px 10px #211B1E15; }
.catalog-notices { margin-top:32px; padding-top:20px; border-top:1px solid var(--line); }
.catalog-notices p, .site-footer p { margin-bottom:8px; color:var(--muted); font-size:12px; }
.back-button { padding:8px 0; margin-bottom:16px; border:0; background:transparent; font-size:14px; color:var(--brand); font-weight:650; }
.product-detail { display:grid; gap:24px; }
.detail-image { aspect-ratio:1; border-radius:24px; }
.detail-copy > p { margin-top:16px; color:var(--muted); }
.detail-copy .detail-price { color:var(--brand); font-weight:700; font-size:18px; }
.detail-copy .photo-notice, .detail-copy .price-notice { font-size:12px; }
fieldset { margin:24px 0 0; padding:0; border:0; min-width:0; }
legend { margin-bottom:12px; padding:0; font-size:18px; font-weight:700; }
.variant-option { display:flex; align-items:center; gap:12px; min-height:60px; margin-bottom:12px; padding:12px 16px; border:1px solid var(--line); border-radius:16px; font-size:15px; cursor:pointer; }
.variant-option:has(:checked) { border-color:var(--brand); background:var(--petal); }
.variant-option input { width:20px; height:20px; margin:0; accent-color:var(--brand); }
.variant-option:focus-within { outline:3px solid var(--brand); outline-offset:3px; }
.variant-option strong { margin-left:auto; text-align:right; font-size:12px; color:var(--brand); }
.product-action { position:fixed; z-index:6; bottom:calc(72px + env(safe-area-inset-bottom)); left:0; right:0; display:flex; align-items:center; gap:12px; max-width:1180px; margin:auto; padding:16px 20px; background:white; border-top:1px solid var(--line); box-shadow:0 -4px 24px #211B1E08; }
.primary-button { min-height:52px; padding:14px 20px; border:0; border-radius:16px; background:var(--brand); color:white; font-size:15px; font-weight:650; }
.secondary-button { padding:10px 16px; border:1px solid var(--line); border-radius:14px; background:white; color:var(--brand); font-size:14px; font-weight:650; }
#install-button { width:44px; font-size:22px; padding:8px; }
.product-action > .primary-button { flex:1; display:flex; flex-direction:column; align-items:center; padding:10px 8px; font-size:13px; }
.product-action small { font-size:12px; font-weight:500; }
.qty-control { flex-shrink:0; display:inline-flex; align-items:center; gap:2px; border:1px solid var(--line); border-radius:14px; overflow:hidden; }
.qty-control button { width:44px; border:0; background:white; color:var(--brand); font-size:22px; }
.qty-value { min-width:24px; text-align:center; font-size:14px; font-weight:700; }
[data-screen="product"] { padding-bottom:104px; }
.confirmation { margin-top:24px; padding:20px; border-radius:20px; background:var(--petal); }
.confirmation p { color:var(--brand); font-weight:600; margin-bottom:12px; }
.confirmation > div { display:flex; gap:8px; flex-wrap:wrap; }
.bag-heading { margin-top:8px; }
.bag-layout { display:grid; gap:24px; }
.bag-row { display:grid; grid-template-columns:80px minmax(0,1fr); gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
.bag-row:first-child { padding-top:0; }
.bag-row img { width:80px; height:80px; border-radius:16px; }
.bag-row p { color:var(--muted); font-size:13px; margin-top:4px; }
.row-controls { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin-top:12px; }
.remove-button { border:0; background:transparent; padding:8px; color:var(--brand); font-size:13px; text-decoration:underline; }
.bag-summary { padding:24px; background:#F8F5F6; border-radius:24px; align-self:start; }
.bag-summary h2 { font-size:20px; margin-bottom:24px; }
.total-row { display:flex; justify-content:space-between; gap:16px; font-size:15px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.bag-summary p { margin-top:16px; font-size:12px; color:var(--muted); }
.bag-summary > button { width:100%; margin-top:24px; }
.empty-state { text-align:center; padding:48px 16px; }
.empty-state p { color:var(--muted); margin:12px auto 24px; max-width:280px; font-size:15px; }
.empty-mark { display:block; color:var(--brand); font-size:56px; margin-bottom:16px; }
.site-footer { margin:0 20px; padding:20px 0 24px; border-top:1px solid var(--line); }
.bottom-tabs { position:fixed; z-index:7; bottom:0; left:0; right:0; display:flex; justify-content:center; gap:64px; max-width:1180px; margin:auto; padding:8px 20px calc(8px + env(safe-area-inset-bottom)); background:white; border-top:1px solid var(--line); }
.bottom-tabs button { min-width:76px; border:0; border-radius:12px; background:transparent; color:var(--muted); font-size:11px; min-height:56px; }
.bottom-tabs button > span:first-child { display:block; font-size:24px; line-height:1.1; margin-bottom:3px; }
.bottom-tabs button[aria-current] { background:var(--petal); color:var(--brand); font-weight:700; }
.noscript { padding:24px; background:var(--petal); }
@keyframes appear { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:translateY(0); } }
button { transition:transform 180ms, opacity 180ms; }
button:active { transform:scale(.98); }
@media (min-width:360px) {
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:768px) {
  .site-header { padding-inline:40px; min-height:88px; }
  main { padding:32px 40px; }
  .welcome h1 br { display:none; }
  .welcome h1 { font-size:40px; }
  .search-field { max-width:560px; }
  .featured { grid-template-columns:1fr 240px; max-height:240px; }
  .featured-copy { padding:32px; gap:12px; }
  .featured strong { font-size:32px; }
  .featured img { height:240px; }
  .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px; }
  .product-detail { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; align-items:start; }
  .detail-copy { padding-top:16px; }
  .product-action { padding-inline:40px; justify-content:flex-end; }
  .product-action > .primary-button { max-width:380px; flex-direction:row; justify-content:space-between; padding:14px 20px; font-size:15px; }
  .bag-layout { grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:40px; }
  .bag-row { grid-template-columns:96px minmax(0,1fr); }
  .bag-row img { width:96px; height:96px; }
  .site-footer { margin-inline:40px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation:none !important; transition:none !important; }
  button:active { transform:none; }
}
