:root{--ap-font-serif: var(--font-display, Georgia, serif);--ap-font-sans: var(--font-primary, system-ui, sans-serif);--ap-accent: var(--color-primary, #0e7c86);--ap-overlay-bg: color-mix(in srgb, var(--color-text-primary, #27241d) 55%, transparent);--ap-surface: var(--color-card, #fff);--ap-surface-subtle: var(--color-background, #faf9f7);--ap-surface-hover: var(--color-surface-hover, #faf9f7);--ap-stage: color-mix(in srgb, var(--color-text-primary, #27241d) 6%, var(--color-background, #faf9f7));--ap-border: var(--color-border, #d3cec4);--ap-border-hover: var(--color-border-hover, #b8b2a7);--ap-text-primary: var(--color-text-primary, #27241d);--ap-text-secondary: var(--color-text-secondary, #625d52);--ap-ring: 0 0 0 2px var(--color-background, #fff), 0 0 0 4px var(--ap-accent)}.artplacer-overlay{position:fixed;inset:0;z-index:2147483002;background:var(--ap-overlay-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;padding:18px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;overscroll-behavior:contain}.artplacer-overlay.artplacer-active{opacity:1;visibility:visible}.artplacer-modal{background:var(--ap-surface);border:1px solid var(--ap-border);border-radius:12px;width:100%;max-width:980px;height:90vh;max-height:780px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #0000002e,0 2px 8px #00000014;transform:scale(.97);transition:transform .3s cubic-bezier(.16,1,.3,1)}.artplacer-overlay.artplacer-active .artplacer-modal{transform:scale(1)}.artplacer-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid var(--ap-border);background:var(--ap-surface-subtle)}.artplacer-header>div:first-child{min-width:0;flex:1}.artplacer-title{overflow-wrap:anywhere;font-family:var(--ap-font-serif);font-size:var(--text-heading, 1.5rem);font-weight:600;color:var(--ap-text-primary);margin:0;line-height:1.2;text-wrap:balance}.artplacer-artist{font-family:var(--ap-font-sans);font-size:var(--text-caption, .75rem);color:var(--ap-text-secondary);margin-top:3px}.artplacer-close-btn{background:transparent;border:1px solid var(--ap-border);outline:2px solid transparent;flex-shrink:0;color:var(--ap-text-primary);width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,border-color .2s ease}@media(hover:hover){.artplacer-close-btn:hover{background:var(--ap-surface-hover);border-color:var(--ap-border-hover)}}.artplacer-close-btn:focus-visible,.artplacer-frame-btn:focus-visible{box-shadow:var(--ap-ring)}.artplacer-stage{flex:1;position:relative;width:100%;height:100%;background:var(--ap-stage);display:flex;align-items:center;justify-content:center}.artplacer-stage model-viewer{width:100%;height:100%;outline:2px solid transparent;outline-offset:-4px;background:transparent}.artplacer-stage model-viewer[data-focus-visible]{outline-color:var(--ap-accent)}.artplacer-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ap-stage) 92%,transparent);z-index:10}.artplacer-spinner{width:38px;height:38px;border:3px solid color-mix(in srgb,var(--ap-accent) 18%,transparent);border-top-color:var(--ap-accent);border-radius:50%;animation:ap-spin .9s linear infinite}.artplacer-loading-text{margin-top:14px;font-family:var(--ap-font-sans);font-size:var(--text-caption, .75rem);color:var(--ap-text-secondary);letter-spacing:.04em}@keyframes ap-spin{to{transform:rotate(360deg)}}.artplacer-controls{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;z-index:50;pointer-events:none;width:auto;max-width:calc(100% - 32px)}.artplacer-controls>*{pointer-events:auto}.artplacer-controls .artplacer-launch-btn{display:none;box-shadow:0 6px 20px #00000029;flex-shrink:0}.artplacer-launch-btn svg{width:18px;height:18px;flex-shrink:0}@media(max-width:1024px),(hover:none)and (pointer:coarse){.artplacer-controls .artplacer-launch-btn{display:inline-flex}.artplacer-footer .ap-hint-desktop{display:none}}.artplacer-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-top:1px solid var(--ap-border);background:var(--ap-surface-subtle);font-family:var(--ap-font-sans);font-size:var(--text-caption, .75rem);color:var(--ap-text-secondary)}.artplacer-instructions{display:flex;align-items:center;gap:8px;margin:0}.artplacer-instructions svg{width:16px;height:16px;flex-shrink:0}.artplacer-dims-pill{display:inline-flex;align-items:center;gap:8px;background:var(--ap-surface);color:var(--ap-text-primary);padding:4px 10px;border-radius:4px;font-size:var(--text-caption, .75rem);font-weight:600;font-variant-numeric:tabular-nums;border:1px solid var(--ap-border);margin-inline-start:auto}.artplacer-frame-switcher{display:flex;align-items:center;gap:6px;background:color-mix(in srgb,var(--ap-surface) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--ap-border);border-radius:40px;padding:6px 12px;box-shadow:0 8px 24px #0000001f,0 1px 3px #00000014;white-space:nowrap;max-width:100%;overflow-x:auto;scrollbar-width:none}.artplacer-frame-switcher::-webkit-scrollbar{display:none}.artplacer-frame-btn{display:flex;flex-direction:column;align-items:center;gap:5px;background:none;border:none;cursor:pointer;padding:5px 9px;border-radius:28px;outline:2px solid transparent;transition:background .15s ease,box-shadow .15s ease;flex-shrink:0}@media(hover:hover){.artplacer-frame-btn:hover{background:var(--ap-surface-hover)}.artplacer-frame-btn:hover .artplacer-swatch{transform:scale(1.1)}.artplacer-frame-btn:hover .artplacer-frame-label{color:var(--ap-text-primary)}}.artplacer-frame-btn.artplacer-frame-active{background:color-mix(in srgb,var(--ap-accent) 10%,transparent)}.artplacer-swatch{display:block;width:28px;height:28px;border-radius:50%;border:2px solid var(--ap-border);transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;flex-shrink:0}.artplacer-frame-btn.artplacer-frame-active .artplacer-swatch{border-color:var(--ap-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ap-accent) 35%,transparent);transform:scale(1.12)}.artplacer-swatch-original{background:linear-gradient(45deg,#ccc 25%,transparent 25%) -8px 0,linear-gradient(-45deg,#ccc 25%,transparent 25%) -8px 0,linear-gradient(45deg,transparent 75%,#ccc 75%),linear-gradient(-45deg,transparent 75%,#ccc 75%);background-size:16px 16px;background-color:#eee}.artplacer-swatch-gold{background:linear-gradient(135deg,#f5e4b8,#c5a059 45%,#96742e)}.artplacer-swatch-walnut{background:linear-gradient(145deg,#3d2510,#2b1d15 60%,#1a0e0a)}.artplacer-swatch-black{background:linear-gradient(135deg,#282828,#181818)}.artplacer-swatch-white{background:linear-gradient(135deg,#fff,#f3f1ec);border:2px solid var(--ap-border-hover)!important}.artplacer-frame-label{font-family:var(--ap-font-sans);font-size:var(--text-caption, .75rem);font-weight:600;letter-spacing:.04em;color:var(--ap-text-secondary);text-transform:uppercase;line-height:1;transition:color .18s ease;white-space:nowrap}.artplacer-frame-btn.artplacer-frame-active .artplacer-frame-label{color:var(--ap-text-primary)}.artplacer-toast{position:absolute;top:16px;left:50%;transform:translate(-50%) translateY(-10px);background:var(--ap-text-primary);color:var(--ap-surface);border:0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding:10px 20px;border-radius:24px;font-family:var(--ap-font-sans);font-size:var(--text-base, .8125rem);font-weight:500;line-height:1.4;box-shadow:0 8px 24px #0000002e;pointer-events:none;opacity:0;transition:opacity .25s ease,transform .25s ease;z-index:70;text-align:center;max-width:90%;width:auto;white-space:normal}.artplacer-toast.artplacer-toast-visible{opacity:1;transform:translate(-50%) translateY(0)}@media(max-width:640px){.artplacer-overlay{padding:0}.artplacer-modal{width:100vw;height:100vh;height:100dvh;max-height:none;border-radius:0;border:none;transform:none;box-shadow:none}.artplacer-header{padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));background:var(--ap-surface-subtle)}.artplacer-title{font-size:var(--text-subheading, 1.25rem);line-height:1.25}.artplacer-close-btn{width:40px;height:40px;min-width:40px;min-height:40px}.artplacer-controls{bottom:max(12px,env(safe-area-inset-bottom));gap:9px;max-width:calc(100% - 20px)}.artplacer-frame-switcher{padding:5px 8px;gap:4px;border-radius:20px;flex-wrap:wrap;justify-content:center;white-space:normal;overflow:visible}.artplacer-swatch{width:24px;height:24px}.artplacer-controls{width:calc(100% - 20px)}.artplacer-frame-switcher{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.artplacer-frame-label{white-space:normal;text-align:center;line-height:1.2}.artplacer-frame-btn{padding:3px 5px}.artplacer-footer{padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));flex-direction:row;justify-content:space-between;align-items:center;gap:8px;background:var(--ap-surface-subtle)}.artplacer-dims-pill{padding:3px 8px;white-space:nowrap;flex-shrink:0}}@media(max-height:500px)and (orientation:landscape){.artplacer-header{padding:6px 16px;padding-top:max(6px,env(safe-area-inset-top))}.artplacer-footer{padding:6px 16px;padding-bottom:max(6px,env(safe-area-inset-bottom))}.artplacer-controls{inset:50% 14px auto auto;transform:translateY(-50%);flex-direction:column;gap:8px;max-height:calc(100vh - 60px)}.artplacer-frame-switcher{flex-direction:column;border-radius:30px;padding:8px 6px;gap:4px;max-width:none;max-height:calc(100vh - 120px);overflow-y:auto;overflow-x:hidden}}.artplacer-error{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;background:var(--ap-surface);font-family:var(--ap-font-sans);font-size:14px;color:var(--ap-text-primary);text-align:center}.artplacer-error[hidden],.artplacer-loading[hidden],.artplacer-frame-switcher[hidden]{display:none}html[data-artplacer-open]{overflow:hidden;scrollbar-gutter:stable}.artplacer-error p{margin:0;max-width:32ch;line-height:1.5}.artplacer-error-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.artplacer-dims-pill:has(#ap-dimensions-text:empty){display:none}@media(prefers-reduced-motion:reduce){.artplacer-modal,.artplacer-overlay.artplacer-active .artplacer-modal{transform:none;transition:none}.artplacer-launch-btn,.artplacer-swatch{transition-property:background,border-color,box-shadow}.artplacer-frame-btn:hover .artplacer-swatch,.artplacer-frame-btn.artplacer-frame-active .artplacer-swatch{transform:none}.artplacer-toast,.artplacer-toast.artplacer-toast-visible{transform:translate(-50%)}.artplacer-spinner{animation:none}}
