.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 26px;border:0;border-radius:2px;font-weight:700;font-stretch:112%;color:#1a0f06;text-decoration:none;background:linear-gradient(135deg,#a8743d,#e9c590 35%,#c58b4e 60%,#f0cf9d 85%,#b98348);background-size:200% 100%;box-shadow:inset 0 1px 0 rgba(255,240,215,.55),inset 0 -2px 0 rgba(60,32,10,.5),0 6px 18px rgba(0,0,0,.45);transition:background-position .4s,transform .15s}
.btn:hover{background-position:100% 0}
.btn:active{transform:translateY(1px)}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn-ghost{background:transparent;color:var(--text);box-shadow:inset 0 0 0 1.5px var(--bronze)}
.btn-ghost:hover{background:rgba(168,116,61,.15)}
.btn-sm{padding:10px 16px}
.cart-btn{padding:8px 14px;font-size:.9rem;line-height:1.2;white-space:nowrap;border:1.5px solid var(--bronze);background:transparent;border-radius:2px}
#cart-count{display:inline-grid;place-items:center;min-width:1.5em;margin-left:6px;padding:0 6px;border-radius:99px;background:var(--bronze-hi);color:#1a0f06;font-weight:700;font-size:.8em;line-height:1.5}

input,select{width:100%;padding:12px 14px;background:var(--umber-2);border:1px solid var(--bronze-deep);border-radius:2px}
input:focus,select:focus{border-color:var(--bronze-hi)}

/* Large square product tiles */
.tile{position:relative;aspect-ratio:1;overflow:hidden;border-radius:4px;background:var(--umber);isolation:isolate;box-shadow:0 0 0 1px var(--bronze-deep),0 18px 40px rgba(0,0,0,.5)}
.tile::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .25s;background:radial-gradient(circle at var(--mx,50%) var(--my,30%),rgba(255,226,180,.24),transparent 45%)}
.tile:hover::before,.tile:focus-within::before{opacity:1}
.tile::after{content:"";position:absolute;inset:8px;z-index:3;pointer-events:none;border:1px solid rgba(230,187,131,.35)}
.tile-art{position:absolute;inset:0}
.tile-art img{width:100%;height:100%;object-fit:cover}
.plate{width:100%;height:100%;display:grid;place-items:center;font-size:clamp(6rem,18vw,11rem);font-weight:900;font-stretch:125%;color:rgba(30,18,8,.5);background:var(--brushed),var(--metal)}
.tile-info{position:absolute;inset:auto 0 0 0;z-index:2;display:grid;gap:8px;padding:48px 24px 24px;background:linear-gradient(to top,rgba(14,8,3,.96) 40%,transparent)}
.tile-info .price{color:var(--bronze-hi);font-weight:600}
.tile-info .blurb{color:var(--muted);font-size:.95rem;line-height:1.4}
.tile-opts{display:flex;gap:10px}
.tile-opts select{flex:1;min-width:0;padding:10px 12px}
.tile-actions{display:flex;gap:10px}
.tile-actions .btn{flex:1}

/* Cart drawer */
.scrim{position:fixed;inset:0;z-index:40;background:rgba(5,3,1,.6)}
.drawer{position:fixed;top:0;right:0;z-index:50;height:100%;width:min(100%,440px);display:flex;flex-direction:column;background:var(--brushed),var(--umber);border-left:1px solid var(--bronze);transform:translateX(100%);visibility:hidden;transition:transform .3s,visibility 0s .3s}
.drawer.open{transform:none;visibility:visible;transition:transform .3s}
.drawer>header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--bronze-deep)}
.drawer h2{font-size:1.5rem;margin:0}
#drawer-body{flex:1;overflow:auto;padding:24px;display:grid;align-content:start;gap:18px}
.line{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center}
.thumb{width:64px;aspect-ratio:1;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb .plate{font-size:2rem}
.qty{display:inline-flex;align-items:center;gap:10px;margin-top:6px}
.qty button{width:28px;height:28px;border:1px solid var(--bronze);background:transparent;border-radius:2px}
.link-btn{border:0;background:none;padding:0;color:var(--muted);text-decoration:underline;font-size:.9rem}
.total{display:flex;justify-content:space-between;font-size:1.15rem;padding-top:14px;border-top:1px solid var(--bronze-deep)}
.field{display:grid;gap:6px;font-size:.95rem;color:var(--muted)}
#ship-form{display:grid;gap:14px}
.rate{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--bronze-deep);border-radius:2px}
.rate input{width:auto}
.rate span:last-child{margin-left:auto}
.msg{color:var(--bronze-hi)}
.err{color:#ffb4a0}
.empty{color:var(--muted)}