:root{--ink:#132a36;--muted:#667780;--accent:#deff00;--line:#132a361f;--surface:#ffffffd1}*{box-sizing:border-box}html,body{overscroll-behavior:none;width:100%;min-height:100%;margin:0}body{color:var(--ink);background:#edf2f1;font-family:Inter,Segoe UI,Arial,sans-serif}button{font:inherit}.viewer-shell{background:radial-gradient(circle at 68% 38%,#fffffff2 0,#fff0 36%),linear-gradient(145deg,#f7f9f8 0%,#e5ecea 100%);width:100%;height:100svh;min-height:560px;position:relative;overflow:hidden}.viewer-shell:after{z-index:1;pointer-events:none;content:"";background-image:linear-gradient(#132a3606 1px,#0000 1px),linear-gradient(90deg,#132a3606 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 75%);mask-image:linear-gradient(#000,#0000 75%)}.canvas-wrap{z-index:0;cursor:grab;touch-action:none;position:absolute;inset:0}.canvas-wrap:active{cursor:grabbing}.topbar,.product-info,.toolbar,.gesture-hint,.status-pill{z-index:2;position:absolute}.topbar{justify-content:space-between;align-items:center;width:100%;padding:30px 38px;display:flex;top:0;left:0}.brand{letter-spacing:.08em;align-items:center;gap:13px;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:18px;font-weight:700;display:flex}.brand-mark{width:34px;height:34px;color:var(--ink);background:var(--accent);letter-spacing:-.04em;border-radius:9px;place-items:center;font-size:15px;display:grid}.viewer-label{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:600}.product-info{pointer-events:none;width:min(320px,100% - 76px);top:50%;left:38px;transform:translateY(-42%)}.eyebrow{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:9px;margin:0 0 14px;font-size:12px;font-weight:600;display:flex}.eyebrow:before{content:"";background:var(--accent);width:26px;height:2px}.product-info h1{letter-spacing:-.055em;margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;font-size:clamp(34px,4vw,60px);line-height:.98}.product-info p{max-width:280px;color:var(--muted);margin:18px 0 0;font-size:14px;line-height:1.65}.status-pill{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--muted);letter-spacing:.08em;text-transform:uppercase;background:#ffffff94;border-radius:999px;align-items:center;gap:8px;padding:9px 13px;font-size:11px;font-weight:600;display:flex;top:86px;right:38px}.status-dot{background:#7fa50b;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #7fa50b1f}.toolbar{border:1px solid var(--line);background:var(--surface);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:16px;gap:8px;padding:7px;display:flex;bottom:30px;right:38px;box-shadow:0 14px 45px #192e371a}.tool-button{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:11px;place-items:center;padding:0;transition:background .16s,transform .16s;display:grid}.tool-button:hover{background:#132a3612}.tool-button:active{transform:scale(.94)}.tool-button.active{background:var(--accent)}.tool-button:focus-visible{outline-offset:2px;outline:3px solid #132a3638}.gesture-hint{border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--muted);background:#ffffffad;border-radius:999px;align-items:center;gap:10px;padding:10px 14px;font-size:12px;transition:opacity .3s,transform .3s;display:flex;bottom:40px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #192e3712}.gesture-hint.hidden{opacity:0;transform:translate(-50%,10px)}.gesture-divider{background:var(--line);width:1px;height:13px}@media (max-width:760px){.viewer-shell{min-height:520px}.topbar{padding:20px}.viewer-label{display:none}.status-pill{top:22px;right:20px}.product-info{top:100px;left:20px;transform:none}.product-info h1{font-size:36px}.product-info p{max-width:230px;margin-top:10px;font-size:13px}.gesture-hint{white-space:nowrap;bottom:94px}.toolbar{right:50%;bottom:max(18px, env(safe-area-inset-bottom));transform:translate(50%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
