.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:13px 24px;font-weight:650;font-size:15px;text-decoration:none;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .25s var(--ease),background .25s var(--ease),border-color .25s var(--ease)}.btn:active{transform:translateY(1px) scale(.98)}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:var(--accent);color:var(--accent-ink)}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-accent:hover{filter:brightness(1.08)}.btn-ghost{border-color:var(--line);color:var(--ink);background:0 0}.btn-ghost:hover{border-color:var(--ink)}.btn-sm{padding:9px 16px;font-size:13.5px}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-icon{position:relative;width:42px;height:42px;padding:0;border-radius:999px;border:1px solid var(--line);background:0 0;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform .25s var(--ease),border-color .25s var(--ease)}.btn-icon:hover{border-color:var(--ink)}.btn-icon:active{transform:scale(.96)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;box-shadow:var(--shadow-card);display:flex;flex-direction:column;transition:transform .35s var(--ease)}.card:hover{transform:translateY(-4px)}.card-media{position:relative;aspect-ratio:3/4;min-height:260px;overflow:hidden;background:var(--paper-deep)}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.card:hover .card-media img{transform:scale(1.04)}.card-body{padding:14px 14px 16px;display:flex;flex-direction:column;gap:8px;flex:1}.card-title{font-size:14.5px;font-weight:600;line-height:1.35}.card-title a{text-decoration:none}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.price{font-weight:750;font-size:15px}.pill{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--ink-soft);transition:border-color .25s var(--ease),color .25s var(--ease),background .25s var(--ease)}.pill:hover{border-color:var(--ink);color:var(--ink)}.pill-active{background:var(--ink);color:var(--paper);border-color:var(--ink)}.opt-label{font-size:13px;font-weight:700;margin-top:18px}.opt-label span{font-weight:500;color:var(--ink-soft)}.opt-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.opt{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer;color:var(--ink);transition:border-color .2s var(--ease),background .2s var(--ease)}.opt:hover{border-color:var(--ink)}.opt-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.opt-off{opacity:.45;text-decoration:line-through}.field{flex:1;border:1px solid var(--line);border-radius:var(--radius-input);padding:12px 14px;font:inherit;font-size:14px;background:var(--paper);color:var(--ink);min-width:0}.field::placeholder{color:var(--ink-faint)}.search{max-width:260px}.sort{max-width:220px}.qty{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:3px;margin-top:10px;background:var(--paper)}.qty button{border:0;background:0 0;cursor:pointer;font-size:15px;font-weight:700;color:var(--ink);width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.qty button:hover{background:var(--paper-deep)}.qty span{min-width:22px;text-align:center;font-weight:700;font-size:13px}details.acc{border:1px solid var(--line);border-radius:14px;margin-top:10px;background:var(--card)}details.acc summary{cursor:pointer;padding:14px 16px;font-weight:650;font-size:14px;list-style:none;display:flex;justify-content:space-between;align-items:center}details.acc summary::-webkit-details-marker{display:none}details.acc summary::after{content:"+";font-size:18px;color:var(--ink-faint)}details.acc[open] summary::after{content:"–"}details.acc .acc-body{padding:0 16px 16px;font-size:14px;color:var(--ink-soft)}.thumb{width:72px;height:88px;object-fit:cover;border-radius:12px;border:1px solid var(--line);cursor:pointer;opacity:.7;background:var(--paper-deep)}.thumb-on{opacity:1;border-color:var(--ink)}.drawer-overlay{position:fixed;inset:0;background:rgba(20,19,17,.45);opacity:0;pointer-events:none;transition:opacity .3s var(--ease);z-index:80}.drawer-overlay-open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:min(420px,94vw);background:var(--paper);border-left:1px solid var(--line);z-index:90;transform:translateX(102%);transition:transform .45s var(--ease);display:flex;flex-direction:column}.drawer-open{transform:translateX(0)}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.drawer-head h2{font-size:17px;font-weight:700}.drawer-title{display:flex;align-items:center;gap:12px}.drawer-title .mono{font-size:13px;color:var(--ink-faint)}.link-btn{border:0;background:0 0;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-faint);text-decoration:underline;text-underline-offset:3px;padding:4px}.link-btn:hover{color:var(--accent)}.cart-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between;gap:8px;align-self:stretch}.cart-side .btn-icon{width:30px;height:30px;border-color:transparent;color:var(--ink-faint)}.cart-side .btn-icon:hover{color:var(--accent);border-color:var(--line)}.cart-line{font-weight:800;font-size:14px}.drawer-trust{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-size:12px;color:var(--ink-faint);font-weight:600}.drawer-trust i{width:4px;height:4px;border-radius:999px;background:var(--accent);align-self:center}.drawer-items{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:var(--paper-deep)}.drawer-empty{color:var(--ink-soft);font-size:14px;text-align:center;padding-block:12px 4px;max-width:30ch;margin-inline:auto}.cart-empty{text-align:center;padding-block:56px 40px;display:flex;flex-direction:column;align-items:center;background:var(--paper);border:1px dashed var(--line);border-radius:var(--radius-card);margin-top:12px}.cart-empty svg{margin-bottom:14px}.cart-empty h3{font-size:17px;font-weight:750}.cart-empty .btn{margin-top:16px}.cart-row{display:grid;grid-template-columns:76px 1fr auto;gap:12px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:10px;animation:viewin .35s var(--ease)}.cart-row img{width:76px;height:94px;object-fit:cover;border-radius:10px;border:0;background:var(--paper-deep)}.cart-row h3{font-size:13.5px;font-weight:650;line-height:1.35}.cart-variant{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-top:4px}.cart-row .mono{font-size:12.5px;color:var(--ink-faint);margin-top:2px}.drawer-foot{border-top:1px solid var(--line);padding:16px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px;background:var(--paper)}.drawer-total{display:flex;justify-content:space-between;align-items:baseline;font-weight:750;font-size:16px;background:var(--paper-deep);border-radius:14px;padding:12px 14px}.drawer-note{font-size:12.5px;color:var(--ink-faint)}.toast{position:fixed;bottom:22px;bottom:calc(22px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,20px);background:var(--ink);color:var(--paper);border-radius:999px;padding:12px 20px;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease);z-index:120;max-width:92vw;text-align:center}.toast-show{opacity:1;transform:translate(-50%,0)}.sup-fab{position:fixed;right:16px;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:100;width:56px;height:56px;border-radius:999px;border:0;background:var(--ink);color:var(--paper);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-card);transition:transform .25s var(--ease),background .25s var(--ease)}.sup-fab:hover{background:var(--accent)}.sup-fab:active{transform:scale(.94)}.sup-panel{position:fixed;right:16px;bottom:84px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:100;width:min(370px,calc(100vw - 32px));height:min(520px,calc(100dvh - 180px));background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-card);display:none;flex-direction:column;overflow:hidden}.sup-open{display:flex}.sup-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line)}.sup-head h2{font-size:15px;font-weight:750}.sup-head p{font-size:12px;color:var(--ink-faint)}.sup-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.sup-msg{max-width:85%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5}.sup-user{align-self:flex-end;background:var(--ink);color:var(--paper);border-bottom-right-radius:6px}.sup-ai{align-self:flex-start;background:var(--paper-deep);color:var(--ink);border-bottom-left-radius:6px}.sup-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 10px}.sup-chips button{border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:7px 12px;font-size:12.5px;font-weight:600;cursor:pointer;color:var(--ink-soft)}.sup-chips button:hover{border-color:var(--accent);color:var(--accent)}.sup-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line)}.sup-input input{flex:1;border:1px solid var(--line);border-radius:999px;padding:10px 14px;font:inherit;font-size:14px;background:var(--paper);color:var(--ink);min-width:0}.sup-input button{flex:none}@media (max-width:768px){.sup-fab{bottom:calc(84px + env(safe-area-inset-bottom))}.sup-panel{bottom:calc(152px + env(safe-area-inset-bottom))}}.heart-btn{width:46px;height:46px;border-radius:999px;border:1px solid var(--line);background:var(--card);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-faint);transition:border-color .25s var(--ease),color .25s var(--ease);flex:none}.heart-btn:hover{border-color:var(--accent);color:var(--accent)}.heart-btn svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}.heart-btn-on{color:var(--accent);border-color:var(--accent)}.heart-btn-on svg{fill:var(--accent)}.heart-btn-pop svg{animation:heartpop .55s cubic-bezier(.34,1.56,.64,1)}@keyframes heartpop{0%{transform:scale(1)}30%{transform:scale(.15)}60%{transform:scale(1.35)}100%{transform:scale(1)}}.wish-row{display:flex;align-items:center;gap:12px;margin-top:18px}.wish-row span{font-size:13.5px;color:var(--ink-soft);font-weight:600}.card .heart-mini{position:absolute;top:10px;right:10px;width:36px;height:36px;border-radius:999px;border:0;background:var(--paper);background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-soft);z-index:2}.card .heart-mini svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.card .heart-mini-on{color:var(--accent)}.card .heart-mini-on svg{fill:var(--accent)}.card .heart-mini-pop svg{animation:heartpop .55s cubic-bezier(.34,1.56,.64,1)}.consent{position:fixed;left:12px;right:12px;bottom:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:110;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow-card);padding:18px;max-width:560px;margin-inline:auto;transform:translateY(140%);transition:transform .5s var(--ease)}.consent-open{transform:translateY(0)}.consent h2{font-size:16px;font-weight:750}.consent p{font-size:13.5px;color:var(--ink-soft);margin-top:6px}.consent p a{color:var(--accent);font-weight:600}.consent-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.consent-prefs{display:none;margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.consent-pref{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:8px;font-size:14px;font-weight:600}.consent-pref small{display:block;font-weight:400;color:var(--ink-faint)}.consent-pref input{width:20px;height:20px;accent-color:var(--accent)}.trust-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:22px}.trust-card h3{font-size:16px;font-weight:700}.trust-card p{font-size:14px;color:var(--ink-soft);margin-top:6px}.card-foot .btn{transform:translateY(0)}@media (pointer:fine){.card-foot .btn{transition:transform .25s var(--ease),background .25s var(--ease),opacity .25s var(--ease)}.card .card-foot .btn{opacity:0;transform:translateY(6px)}.card:focus-within .card-foot .btn,.card:hover .card-foot .btn{opacity:1;transform:translateY(0)}}.skel{border:0;background:var(--paper-deep);background:linear-gradient(100deg,var(--paper-deep) 40%,color-mix(in srgb,var(--paper-deep) 60%,#fff) 50%,var(--paper-deep) 60%);background-size:200% 100%;border-radius:var(--radius-card);min-height:320px;animation:shimmer 1.4s linear infinite}@keyframes pulse{50%{opacity:.55}}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.btn,.card,.card-media img,.drawer,.tile img{transition:none}.skel{animation:none}.cart-row{animation:none}}@media (max-width:768px){.toast{bottom:calc(84px + env(safe-area-inset-bottom))}}