/* V29 Photorealistic 3D Beta. The V28 2D layers remain underneath as fallback. */
#google3dFrame29{position:absolute;inset:0;width:100%;height:100%;border:0;z-index:0;opacity:0;pointer-events:none;background:#0b1113;transition:opacity .18s linear}
#google3dFrame29.ready{opacity:1}
#game.rl3d-active #tileLayer,
#game.rl3d-active #vehicleShadowCanvas,
#game.rl3d-active #groundLightCanvas,
#game.rl3d-active #vehicle3dCanvas,
#game.rl3d-active #worldCanvas{visibility:hidden!important}
#game.rl3d-active #attribution{display:none!important}
#game.rl3d-active #nightOverlay{background:transparent!important;box-shadow:none!important;mix-blend-mode:normal!important}
#game.rl3d-active #vignette{display:none!important}
.v29WorldMode{display:grid;grid-template-columns:130px 1fr;gap:10px;align-items:center;margin:9px 0}
.v29WorldMode label{font-size:11px;color:var(--muted)}
.v29WorldMode select,.v29WorldMode input[type=password]{width:100%;min-width:0;background:#0f151c;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:8px}
.v29GoogleKeyRow{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center}
.v29GoogleKeyRow button{background:#202a34;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px 10px;font-size:10px}
.v29RangeRow{display:grid;grid-template-columns:130px 1fr 45px;gap:8px;align-items:center;margin:9px 0}.v29RangeRow label{font-size:11px;color:var(--muted)}.v29RangeRow input{width:100%}.v29RangeRow output{font-size:10px;color:var(--text);text-align:right}
#google3dStatus29{border-color:rgba(126,231,135,.25)}
#google3dError29{color:#ffb2aa;font-size:10px;line-height:1.45;min-height:0}
.v29Notice{font-size:10px;color:var(--muted);line-height:1.55;margin:7px 0}.v29Notice strong{color:var(--text)}
@media(max-width:760px){.v29WorldMode,.v29RangeRow{grid-template-columns:1fr}.v29RangeRow output{text-align:left}}
