/* GENERATED by scripts/ingest.py. Swap photos by dropping the Gemini files into assets/incoming/ and re-running it.
   Fob set switch: <meta name="dv51:fobs"> in index.html (default), or ?fobs=a|b|svg in the URL. */
:root {
  --asset-mode: real;
  --car-off: image-set(url("../assets/img/car_off.avif") type("image/avif"), url("../assets/img/car_off.webp") type("image/webp"), url("../assets/img/car_off.jpg") type("image/jpeg"));
  --car-on: image-set(url("../assets/img/car_on.avif") type("image/avif"), url("../assets/img/car_on.webp") type("image/webp"), url("../assets/img/car_on.jpg") type("image/jpeg"));
  --leather: image-set(url("../assets/stand-in/leather.webp") type("image/webp"), url("../assets/stand-in/leather.jpg") type("image/jpeg"));
  --leather-size: 512px;
  --keyring: url("../assets/stand-in/keyring.svg");
  /* where the car sits inside its 21:9 plate (fractions): centre x, width, wheel line */
  --car-cx: 0.598;
  --car-w: 0.599;
  --car-floor: 0.758;
  --lamp-x: 0.431; --lamp-y: 0.542;
  /* stand-in SVG fobs (also the fallback for a set that is not ingested) */
  --fob-steel: url("../assets/stand-in/fob_steel.svg"); --fob-carbon: url("../assets/stand-in/fob_carbon.svg"); --fob-chrome: url("../assets/stand-in/fob_chrome.svg");
  --fob-ar: .45; --engrave-y: 72%; --unlock-y: 35.25%; --unlock-w: 17%; --unlock-h: 7.6%; --engrave-name: .067; --engrave-price: .058; --fob-led: block; --fob-css-shadow: block;
}
:root[data-fobs="a"] {
  --fob-steel: image-set(url("../assets/img/fobs-a/steel.webp") type("image/webp"), url("../assets/img/fobs-a/steel.png") type("image/png"));
  --fob-carbon: image-set(url("../assets/img/fobs-a/carbon.webp") type("image/webp"), url("../assets/img/fobs-a/carbon.png") type("image/png"));
  --fob-chrome: image-set(url("../assets/img/fobs-a/chrome.webp") type("image/webp"), url("../assets/img/fobs-a/chrome.png") type("image/png"));
  --fob-ar: 0.478; --engrave-y: 74%; --unlock-y: 37.5%; --unlock-w: 46%; --unlock-h: 9%;
  --engrave-name: 0.05; --engrave-price: 0.044; --fob-led: none; --fob-css-shadow: none;
}
:root[data-fobs="b"] {
  --fob-steel: image-set(url("../assets/img/fobs-b/steel.webp") type("image/webp"), url("../assets/img/fobs-b/steel.png") type("image/png"));
  --fob-carbon: image-set(url("../assets/img/fobs-b/carbon.webp") type("image/webp"), url("../assets/img/fobs-b/carbon.png") type("image/png"));
  --fob-chrome: image-set(url("../assets/img/fobs-b/chrome.webp") type("image/webp"), url("../assets/img/fobs-b/chrome.png") type("image/png"));
  --fob-ar: 0.511; --engrave-y: 72%; --unlock-y: 37.2%; --unlock-w: 24%; --unlock-h: 8%;
  --engrave-name: 0.048; --engrave-price: 0.042; --fob-led: none; --fob-css-shadow: none;
}
/* the leather pad: the photo’s stitched rim as a 9-slice (no fill); in the middle, the photo’s light map stretched
   (it is blurred, so stretching cannot show) under a seamless grain tile at the photo’s own scale (never stretched) */
:root .pad { border-style: solid; border-image: image-set(url("../assets/img/leather_pad.webp") type("image/webp"), url("../assets/img/leather_pad.png") type("image/png")) 64 / calc(0.0253 * 112cqw) stretch;
  border-radius: calc(0.0170 * 112cqw); box-shadow: 0 -1.2cqw 3cqw rgba(0, 0, 0, .6);
  background: image-set(url("../assets/img/leather_grain.webp") type("image/webp"), url("../assets/img/leather_grain.png") type("image/png")) 0 0 / calc(0.3031 * 112cqw) repeat, image-set(url("../assets/img/leather_light.webp") type("image/webp"), url("../assets/img/leather_light.png") type("image/png")) 0 0 / 100% 100% no-repeat, #141312;
  background-origin: border-box; background-blend-mode: overlay, normal; }
:root .pad::before, :root .pad-stitch { display: none; }
[data-standin] { display: none !important; }
