/* Concrete: generated by factory/theme_make.py from theme_spec.py. Structure
   lives in /t/_base/base.css; this is the palette, the type and the no-WebGL
   stand-in for the 3D object. */
:root {
  --bg: #0f1113; --bg-rgb: 15, 17, 19; --bg-2: #171a1d;
  --ink: #f2f3f4; --ink-2: #d7dadd; --muted: #969ba1; --line: rgba(242, 243, 244, .12);
  --accent: #c7cdd4; --accent-rgb: 199, 205, 212; --accent-hi: #eef1f4; --on-accent: #0f1113;
  --card-1: #1b1f23; --card-2: #101214; --video-dim: .46;
  --display: "Anton", "Impact", sans-serif; --display-case: uppercase; --display-weight: 400;
  --display-leading: .92; --display-tracking: .01em;
  --title-size: clamp(3.4rem, 11vw, 9.6rem);
  --serif: "Playfair Display", Georgia, serif;
}
h3 { font-size: 1.5rem; letter-spacing: .02em; }
.steps span { font-size: 1.4rem; }

/* no WebGL: a soft glow in the accent where the object would be */
html.no-webgl .hero__fallback {
  right: 8vw; top: 20vh; width: 34vw; height: 48vh; border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #eef1f4, #c7cdd4 45%, transparent 70%);
  filter: blur(28px); opacity: .5; animation: glow 8s ease-in-out infinite alternate;
}
@keyframes glow { to { transform: translate(-4vw, 3vh) scale(1.08); } }
@media (max-width: 760px) {
  html.no-webgl .hero__fallback { top: 70px; right: 15vw; width: 70vw; height: 30svh; }
}
