.ad-page{background:var(--bg);color:var(--ink);padding:28px 0 96px}.ad-wrap{max-width:1320px;margin:0 auto;padding:0 32px}.ad-crumb{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.ad-grid{grid-gap:64px;gap:64px;grid-template-columns:1.2fr .8fr;align-items:start;display:grid}.ad-preview{top:calc(var(--nav-height) + var(--banner-height) + 24px);position:-webkit-sticky;position:sticky}.ad-preview-frame{background:var(--surface-alt);padding:24px;display:flex;align-items:center;justify-content:center;min-height:420px}.ad-preview-frame img{max-width:100%;max-height:70vh;width:auto;height:auto;object-fit:contain;display:block;box-shadow:0 18px 50px rgba(26,22,18,.12)}.ad-frame-btn{width:100%;margin-top:14px;border:1px solid var(--line);background:var(--surface);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:var(--sans);font-size:14px;cursor:pointer;color:var(--ink)}.ad-frame-btn .ad-frame-chevron{color:var(--ink-muted);font-size:1.2rem;transition:transform .2s;line-height:1}.ad-frame-btn.is-open .ad-frame-chevron{transform:rotate(180deg)}.ad-frame-drawer{border:1px solid var(--line);border-top:0;background:var(--surface);padding:0 16px 16px}.ad-frame-panel{padding-top:4px}.ad-frame-canvas{width:100%;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,#efece6,#e3ded5);cursor:-webkit-grab;cursor:grab}.ad-frame-canvas:active{cursor:-webkit-grabbing;cursor:grabbing}.ad-frame-canvas canvas{display:block;width:100%!important;height:100%!important}.ad-frame-hint{font-size:11px;color:var(--ink-muted);text-align:center;margin:8px 0 12px}.ad-frame-swatches{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;position:relative;z-index:2}.ad-frame-swatch{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:20px;cursor:pointer;font-size:12px;font-weight:600;font-family:var(--sans);border:1.5px solid var(--line);background:var(--surface);color:var(--ink);pointer-events:auto}.ad-frame-swatch:hover{border-color:rgba(0,0,0,.35)}.ad-frame-swatch.is-on{border-color:var(--color-gold,#8b6914);background:rgba(139,105,20,.08)}.ad-frame-dot{width:12px;height:12px;border-radius:3px;border:1px solid rgba(0,0,0,.15);display:inline-block}.ad-frame-dot.is-none{background:transparent;border-style:dashed}.ad-frame-fallback{background:linear-gradient(160deg,#efece6,#e3ded5);border-radius:14px;padding:28px;display:flex;justify-content:center}.ad-frame-fallback-mat{padding:14px;border-radius:4px;box-shadow:0 18px 40px rgba(0,0,0,.3)}.ad-frame-fallback-inner{padding:12px;background:#fbfaf7}.ad-frame-fallback-inner img{display:block;max-width:100%;max-height:280px;object-fit:contain}.ad-overline{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--color-gold,#8b6914);font-size:11px;margin:0 0 14px}.ad-title{font-family:var(--serif);font-weight:var(--display-weight,400);font-size:max(32px,min(3.5vw,48px));line-height:1.15;margin:0 0 12px;color:var(--ink)}.ad-subtitle{margin:0 0 28px;color:var(--ink-muted);font-size:16px}.ad-subtitle a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}.ad-desc{margin:0 0 32px;line-height:1.75;font-size:15px;color:var(--ink)}.ad-prov{margin-bottom:28px}.ad-dl{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px 28px;gap:18px 28px;margin:0}.ad-dl div{border-top:1px solid var(--line);padding-top:10px}.ad-dl dt{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 6px}.ad-dl dd{margin:0;font-size:15px}.ad-price-card{border:1px solid var(--line);background:var(--surface);padding:24px;box-shadow:0 10px 30px rgba(26,22,18,.06)}.ad-price{font-family:var(--serif);font-size:40px;line-height:1;margin:10px 0 18px}.ad-size{display:flex;flex-direction:column;gap:6px;margin:0 0 16px;font-size:12px;color:var(--ink-muted)}.ad-size select{font-family:var(--sans);font-size:14px;padding:10px 12px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.ad-breakdown{list-style:none;margin:0 0 10px;padding:0}.ad-breakdown li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink)}.ad-breakdown li strong{font-weight:600;white-space:nowrap}.ad-breakdown-total{border-bottom:none!important;margin-top:4px;padding-top:12px!important;font-size:16px!important}.ad-breakdown-total strong{color:#166534;font-family:var(--serif);font-size:1.35rem;font-weight:500}.ad-included{color:#166534!important;font-weight:600}.ad-tax-note{margin:0 0 16px;font-size:12px;color:var(--ink-muted)}.ad-cart-msg{margin:0 0 10px;font-size:13px;color:#166534;font-weight:600}.ad-buy,.ad-cart{width:100%;box-sizing:border-box;font-family:var(--sans);cursor:pointer;border-radius:0;-moz-appearance:none;appearance:none;-webkit-appearance:none}.ad-buy,.ad-buy-link{background:var(--ink);color:var(--surface);margin-bottom:10px;letter-spacing:.04em}.ad-buy,.ad-buy-link,.ad-cart,.ad-cart-link{display:block;text-align:center;border:1px solid var(--ink);padding:14px 16px;font-size:14px;text-decoration:none}.ad-cart,.ad-cart-link{background:transparent;color:var(--ink);margin-bottom:12px}.ad-owner-note{margin:0 0 14px;font-size:13px;font-weight:600;color:var(--color-gold,#8b6914)}.ad-note{font-size:12px;color:var(--ink-muted);margin:0}.ad-back{display:inline-block;margin-top:28px}.ad-back,.ad-preview-empty{color:var(--ink-muted);font-size:14px}.ad-preview-empty{min-height:280px;width:100%;display:flex;align-items:center;justify-content:center;background:var(--surface)}.ad-preview-pill{margin-left:6px;padding:2px 8px;border:1px solid var(--color-gold,#8b6914);color:var(--color-gold,#8b6914);font-size:10px;letter-spacing:.1em}.ad-page--preview{padding:12px 0 40px;background:var(--bg)}.ad-buy:disabled,.ad-cart:disabled,.ad-frame-btn:disabled{opacity:.55;cursor:default}@media (max-width:900px){.ad-grid{grid-template-columns:1fr;gap:32px}.ad-preview{position:static}.ad-dl{grid-template-columns:1fr}}