:root {
  --sky-top: #82b3d0;
  --sky-bottom: #d6e2e9;
  --cloud-opacity: .3;
  --cloud-speed: 85s;
}
* { box-sizing: border-box; }
html, body, #app { margin: 0; width: 100%; height: 100%; overflow: hidden; }
body { font-family: Arial, Helvetica, sans-serif; background: var(--sky-bottom); }
#app { position: relative; isolation: isolate; }
.sky {
  position: absolute; inset: 0; overflow: hidden; z-index: 0;
  background: linear-gradient(to bottom, var(--sky-top), var(--sky-bottom));
  transition: background 2s ease;
}
.cloud {
  position: absolute; width: 44vw; height: 16vw;
  min-width: 300px; min-height: 110px;
  background:
    radial-gradient(ellipse at 28% 56%, rgba(255,255,255,.85), transparent 64%),
    radial-gradient(ellipse at 54% 29%, rgba(255,255,255,.9), transparent 64%),
    radial-gradient(ellipse at 75% 57%, rgba(255,255,255,.8), transparent 66%);
  border-radius: 50%;
  opacity: var(--cloud-opacity);
  filter: blur(22px);
  animation: floatAcross var(--cloud-speed) linear infinite;
  pointer-events: none;
}
.cloud-a { top: 9%; left: -40vw; animation-delay: -17s; }
.cloud-b { top: 30%; left: -59vw; animation-delay: -40s; opacity: calc(var(--cloud-opacity) * .7); }
.cloud-c { top: 60%; left: -51vw; animation-delay: -61s; opacity: calc(var(--cloud-opacity) * .5); }
@keyframes floatAcross { from { transform: translateX(0); } to { transform: translateX(170vw); } }
#webgl {
  position: absolute; inset: 0; z-index: 1;
  width: 100%; height: 100%; display: block;
  touch-action: none; opacity: 0;
  transition: opacity .24s ease;
}
#webgl.ready { opacity: 1; }
#video { position: fixed; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.controls {
  opacity: 0; pointer-events: none; transition: opacity .25s ease;
  position: absolute; z-index: 5;
  left: 50%; bottom: max(22px, env(safe-area-inset-bottom));
  transform: translateX(-50%);
  display: flex; gap: 10px; align-items: center;
}
.controls select, .controls button {
  appearance: none; -webkit-appearance: none;
  height: 43px; border: 1.5px solid #000; border-radius: 999px;
  background: transparent; color: #000;
  font: 500 12px/1 Arial, Helvetica, sans-serif;
  letter-spacing: .035em;
  outline: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.controls select { min-width: 127px; padding: 0 19px; text-align: center; text-align-last: center; }
.controls button { min-width: 114px; padding: 0 20px; }
.controls select:focus-visible, .controls button:focus-visible { outline: 2px solid #000; outline-offset: 3px; }
.controls button:active { transform: scale(.98); }
@media(max-width:700px) {
  .controls { bottom: max(16px, env(safe-area-inset-bottom)); }
  .controls select, .controls button { height: 40px; }
}
@media(prefers-reduced-motion: reduce) { .cloud { animation: none; } }

/* VHCC splash: the user-provided logo remains unchanged. */
.loading-overlay {
  position: absolute;
  inset: 0;
  z-index: 8;
  display: grid;
  place-items: center;
  pointer-events: none;
  opacity: 1;
  transition: opacity .48s ease, visibility .48s;
  visibility: visible;
}
.loading-core {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(220px, 42vw);
  transform: translateY(-6px);
}
.loading-logo {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  opacity: .08;
  transition: opacity .18s linear;
  will-change: opacity;
}
#app.site-ready .loading-overlay {
  opacity: 0;
  visibility: hidden;
}
#app.site-ready .controls { opacity: 1; pointer-events: auto; }
