/* Zumi OBJ Viewer — scoped front-end styling to avoid theme conflicts. */
.zov-viewer{--zov-accent:#f05c36;--zov-bg:#171b20;--zov-height:500px;color:#f7f7f8;background:#121416;border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;font-family:inherit;max-width:100%;isolation:isolate;box-sizing:border-box}
.zov-viewer *{box-sizing:border-box}
.zov-viewer .zov-stage{position:relative;width:100%;height:var(--zov-height);min-height:240px;overflow:hidden;background:var(--zov-bg);outline-offset:-4px}
.zov-viewer .zov-stage::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 42%),radial-gradient(ellipse at 80% 20%,rgba(255,139,67,.065),transparent 60%)}
.zov-viewer .zov-stage:focus-visible{outline:3px solid var(--zov-accent)}
.zov-viewer .zov-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab;outline:0}
.zov-viewer .zov-canvas.zov-dragging{cursor:grabbing}
.zov-viewer .zov-status{position:absolute;z-index:3;inset:0;display:flex;justify-content:center;align-items:center;gap:12px;padding:24px;background:rgba(16,19,23,.74);text-align:center;color:#eee;font-size:14px;font-weight:500;line-height:1.5}
.zov-viewer .zov-status[hidden]{display:none!important}
.zov-viewer .zov-status.zov-error{color:#ffccba;background:rgba(27,15,15,.88)}
.zov-viewer .zov-status.zov-error .zov-spinner{display:none}
.zov-viewer .zov-spinner{display:block;width:24px;height:24px;border:3px solid rgba(255,255,255,.24);border-top-color:var(--zov-accent);border-radius:50%;animation:zov-spin .85s linear infinite;flex:none}
@keyframes zov-spin{to{transform:rotate(360deg)}}
.zov-viewer .zov-help{position:absolute;z-index:2;left:50%;bottom:16px;transform:translateX(-50%);white-space:nowrap;pointer-events:none;padding:6px 11px;border-radius:30px;background:rgba(10,12,14,.64);color:#d6dadf;font-size:11px;line-height:1.35;opacity:0;transition:opacity .18s}
.zov-viewer.zov-ready .zov-help{opacity:.82}
.zov-viewer .zov-toolbar{width:100%;min-height:62px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;background:linear-gradient(110deg,#191d22,#101215);border-top:1px solid rgba(255,255,255,.1)}
.zov-viewer .zov-toolbar-label{min-width:0;display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:#f4f5f6}
.zov-viewer .zov-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.zov-viewer .zov-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--zov-accent);box-shadow:0 0 9px rgba(240,92,54,.5)}
.zov-viewer .zov-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.zov-viewer .zov-action,.zov-viewer button.zov-action{appearance:none;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.11);border-radius:6px;color:#e5e8ec;cursor:pointer;font:inherit;font-size:12px;font-weight:600;line-height:1.25;text-transform:none;letter-spacing:0;min-height:35px;min-width:0;padding:8px 11px;box-shadow:none;transition:background .15s,border-color .15s;color-scheme:dark}
.zov-viewer .zov-action:hover,.zov-viewer .zov-action:focus-visible{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.32);outline-offset:2px}
.zov-viewer .zov-action[aria-pressed="true"]{background:rgba(240,92,54,.19);border-color:var(--zov-accent);color:#ffc0ad}
.zov-viewer:fullscreen{display:flex;flex-direction:column;width:100vw;height:100vh;border-radius:0}
.zov-viewer:fullscreen .zov-stage{flex:1;height:auto;min-height:0}
.zov-viewer:fullscreen .zov-toolbar{flex:none}
.zov-hint{padding:10px;border:1px dashed #dc6b50}
@media(max-width:640px){.zov-viewer .zov-stage{height:min(var(--zov-height),65vh)}.zov-viewer .zov-toolbar{align-items:flex-start;flex-direction:column;padding:10px 11px;gap:9px}.zov-viewer .zov-actions{width:100%;justify-content:space-between;gap:5px}.zov-viewer .zov-action,.zov-viewer button.zov-action{padding:8px;flex:1;font-size:11px}.zov-viewer .zov-help{font-size:10px;bottom:10px}.zov-viewer:fullscreen .zov-stage{height:auto}}
@media(prefers-reduced-motion:reduce){.zov-viewer .zov-spinner{animation-duration:1.8s}.zov-viewer .zov-help,.zov-viewer .zov-action{transition:none}}

/* Civic interaction controls: separate from view controls, compact on small screens */
.zov-viewer .zov-civic-actions{display:flex;justify-content:center;gap:7px;align-items:center;flex-wrap:wrap;padding:12px;background:#202326;border-top:1px solid rgba(255,255,255,.09)}
.zov-viewer .zov-civic-actions .zov-action{min-height:36px;padding:8px 12px}
.zov-viewer .zov-civic-actions [data-action=headlights][aria-pressed=true]{box-shadow:0 0 15px rgba(255,218,100,.32);border-color:#f4c253;color:#fff6cb}
.zov-viewer .zov-attribution{padding:8px 14px;background:#111518;color:#aeb4b8;font-size:11px;line-height:1.5;text-align:center}
.zov-viewer .zov-attribution a{color:#ffb593}
@media(max-width:640px){.zov-viewer .zov-civic-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.zov-viewer .zov-civic-actions .zov-action{font-size:11px;padding:7px 5px;min-height:34px}}

/* v1.2.0 — consistent Zumi large-format vehicle heading */
.zov-viewer.zov-civic-viewer{--zov-accent:#ed5732;border:1px solid rgba(255,255,255,.11);border-radius:12px;overflow:hidden;background:#171b20}
.zov-civic-viewer .zov-vehicle-heading{padding:clamp(25px,4vw,57px) clamp(22px,4.5vw,64px) clamp(24px,2.7vw,36px);background:radial-gradient(ellipse at 90% 15%,rgba(236,83,42,.10),transparent 44%),linear-gradient(125deg,#221b17,#15191d 64%);border-bottom:1px solid rgba(255,255,255,.11)}
.zov-civic-viewer .zov-vehicle-kicker{display:flex;align-items:center;gap:11px;color:#ed633f;font-weight:800;font-size:12px;letter-spacing:.14em;margin:0 0 16px}
.zov-civic-viewer .zov-kicker-rule{display:block;width:32px;height:3px;background:#ed633f;border-radius:2px}
.zov-civic-viewer .zov-vehicle-heading h1{margin:0 0 14px;padding:0;border:0;font-family:inherit!important;font-size:clamp(39px,5.8vw,80px)!important;line-height:1.02!important;letter-spacing:-.048em!important;font-weight:900!important;color:#fff!important;text-transform:uppercase}
.zov-civic-viewer .zov-vehicle-heading h1 span{color:#ed5732}
.zov-civic-viewer .zov-vehicle-intro{font-size:clamp(14px,1.45vw,18px);font-weight:750;line-height:1.5;color:#fff;margin:0 0 10px}
.zov-civic-viewer .zov-vehicle-description{font-size:clamp(13px,1.25vw,16px);line-height:1.55;color:#c7c9ca;margin:0;max-width:800px}
.zov-civic-viewer .zov-civic-actions{justify-content:flex-end;padding:12px 22px;gap:14px}
.zov-civic-viewer .zov-control-explain{font-size:10px;font-weight:800;letter-spacing:.12em;color:#c4c8ca}
.zov-civic-viewer .zov-civic-actions button.zov-action{flex:none;min-width:142px}
.zov-civic-viewer .zov-toolbar-label{font-size:13px}
@media(max-width:640px){
 .zov-civic-viewer .zov-vehicle-heading{padding:24px 19px}
 .zov-civic-viewer .zov-vehicle-heading h1{font-size:clamp(36px,9.5vw,52px)!important}
 .zov-civic-viewer .zov-civic-actions{display:flex;justify-content:space-between;padding:10px 13px}
 .zov-civic-viewer .zov-civic-actions button.zov-action{width:auto;flex:none}
}

/* Hilux Standard v1.8 — Deadvlei landscape behind the transparent 3D canvas */
.zov-viewer.zov-civic-viewer .zov-stage{
  background-color:#6b5544;
  background-image:linear-gradient(180deg,rgba(13,23,33,.04) 0%,rgba(22,25,25,.15) 78%,rgba(12,19,25,.38) 100%),url('../hilux/deadvlei_background.webp');
  background-position:center center;background-size:cover;background-repeat:no-repeat;
}
.zov-viewer.zov-civic-viewer .zov-stage:after{background:linear-gradient(to top,rgba(0,0,0,.25),transparent 35%)}
.zov-viewer.zov-civic-viewer .zov-hilux-panel-controls{justify-content:center;gap:7px;padding:12px 12px}
.zov-viewer.zov-civic-viewer .zov-hilux-panel-controls .zov-action{min-width:0;flex:0 0 auto}
.zov-viewer.zov-civic-viewer .zov-hilux-panel-controls [data-action="headlights"][aria-pressed="true"]{border-color:#f8c861;color:#ffefbd;box-shadow:0 0 12px rgba(255,211,86,.27)}
@media(max-width:760px){.zov-viewer.zov-civic-viewer .zov-hilux-panel-controls{display:flex;flex-wrap:wrap;justify-content:center;padding:10px 8px}.zov-viewer.zov-civic-viewer .zov-hilux-panel-controls .zov-action{min-width:0;flex:1 1 135px}}
