/* hero-ground (Oct 10, mobile-hero-v2): broken-concrete ground under the hero wall, L01 header matched to L02/L03,
   mobile hero trimmed. Own file so it layers over system/glass/audit without touching their lines. */
:root{--jag:polygon(0 0,100% 0,100% calc(100% - 9px),98.5% calc(100% - 0px),96.3% calc(100% - 0px),92.3% calc(100% - 0px),90.6% calc(100% - 10px),86.6% calc(100% - 0px),84.7% calc(100% - 22px),83.0% calc(100% - 0px),80.0% calc(100% - 3px),77.5% calc(100% - 6px),75.8% calc(100% - 22px),71.3% calc(100% - 10px),67.8% calc(100% - 10px),64.3% calc(100% - 0px),62.0% calc(100% - 18px),58.9% calc(100% - 3px),55.6% calc(100% - 10px),52.7% calc(100% - 22px),49.4% calc(100% - 3px),47.4% calc(100% - 0px),45.7% calc(100% - 14px),44.1% calc(100% - 14px),40.7% calc(100% - 14px),37.2% calc(100% - 10px),32.8% calc(100% - 14px),29.4% calc(100% - 18px),26.3% calc(100% - 0px),23.8% calc(100% - 10px),21.8% calc(100% - 22px),18.4% calc(100% - 10px),14.5% calc(100% - 3px),11.2% calc(100% - 22px),8.4% calc(100% - 10px),4.1% calc(100% - 22px),0.0% calc(100% - 10px))}
.ground{position:relative;z-index:6;height:58px;margin-bottom:-24px;pointer-events:none}
/* thick slab: a pale cast lip on top, a broken underside that bites into the soil of L01 */
.ground__slab{position:absolute;inset:0;clip-path:var(--jag);background:#8d8a84 url(img/elevator/concrete.webp) 0 0/192px repeat;background-blend-mode:multiply;filter:contrast(1.1)}
.ground__slab::before{content:"";position:absolute;left:0;right:0;top:0;height:7px;background:linear-gradient(#d9d7d1,#a8a59e);box-shadow:0 1px 0 rgba(0,0,0,.35)}
.ground__slab::after{content:"";position:absolute;inset:7px 0 0;background:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.18) 55%,rgba(0,0,0,.55) 100%)}
.ground__dirt{position:absolute;left:0;right:0;bottom:-6px;height:20px;background:
  radial-gradient(3px 2px at 12% 40%,#5a3e22 60%,transparent 62%),radial-gradient(2px 2px at 31% 70%,#6a4a2a 60%,transparent 62%),
  radial-gradient(4px 3px at 57% 35%,#4e3620 60%,transparent 62%),radial-gradient(2px 2px at 74% 62%,#6a4a2a 60%,transparent 62%),
  radial-gradient(3px 2px at 89% 45%,#5a3e22 60%,transparent 62%)}
.ground__wire{display:none}
/* the plain hatched dividers between the wall, the plinth and L01 give way to the broken edge */
.hero .plinth::before{display:none}
#audit > .slab{display:none}
/* L01 level header: same .floor__head/.lvl/.floor__title as L02 and L03, shown where the composed unit is not (mobile) */
#audit .au-floorhead{display:none}

@media (max-width:819px){
  .hero{min-height:calc(100svh - 108px);grid-template-rows:auto auto 1fr auto}
  #audit{min-height:0;background:radial-gradient(120% 60% at 30% 0,#2a1c10 0,#120c07 55%,#070605 100%)}
  #audit > .datum{padding-top:30px}
  .hero .plinth,.hero .cans{display:none}
  .hero .wall,.hero .wall__inner{min-height:0}
  #audit .au-floorhead{display:grid;position:relative;z-index:3}
  #audit .au-lab{display:none}
  #audit .au-art{padding-top:calc(52vh);background-size:auto 56%}
}
@media (min-width:820px){
  .hero{min-height:0;height:max(720px,calc(100svh - 52px));grid-template-rows:auto auto minmax(0,1fr) auto auto}
  .hero .plinth{background:#0d0c0b;border-top:0}
  .hero .plinth > *{margin-top:22px}
}

@media (min-width:1181px){html.glass-on .hero__h,.hero__h{font-size:min(calc((100svh - 400px)/2.95),16vw,250px);padding-bottom:0}}
@media (min-width:820px) and (max-width:1180px){html.glass-on .hero__h,.hero__h{font-size:min(calc((100svh - 520px)/3.2),16vw,250px)}}

/* L01 lamp: a constant slow breath on the glow (scale + brightness, not opacity, so the JS flicker bursts still layer on top) */
@keyframes au-breathe{0%,100%{transform:scale(.94);filter:brightness(.82)}50%{transform:scale(1.06);filter:brightness(1.12)}}
#audit .au-lamp__glow{animation:au-breathe 5s ease-in-out infinite;transform-origin:50% 40%}
@media (prefers-reduced-motion:reduce){#audit .au-lamp__glow{animation:none!important;transform:none;filter:none}}

/* flash fix: hold the bars' space (and black) before system.js builds them, so nothing drops down after first paint */
[data-liftbar]:empty{background:#000;border-bottom:1px solid var(--line)}
.page:not(:has(> .dirbar))::before{content:"";display:block;height:52px;background:#000;border-bottom:1px solid var(--line)}

/* mobile hero floor (v2b): wall, then the slab, then soil with the lamp, pipes and a "Website analysis" console */
.dig{display:none}
@media (max-width:819px){
  .hero{grid-template-rows:auto auto auto auto 1fr}
  html.glass-on .hero__h,.hero__h{font-size:min(17vw,78px)}
  .hero .wall__inner{gap:14px;padding-top:18px}
  .ground{height:56px}
  .ground__slab{background-color:#c9c5bd;filter:contrast(1.05) brightness(1.08)}
  .ground__slab::after{background:linear-gradient(180deg,rgba(0,0,0,0) 0,rgba(0,0,0,.06) 50%,rgba(0,0,0,.3) 100%)}
  .dig{display:block;position:relative;min-height:128px;overflow:hidden;background:#0b0806}
  .dig__art{position:absolute;inset:0;background:#0b0806 url(img/earth/audit-800.webp) no-repeat;background-size:calc(100% + 360px) auto;background-position:-360px -8px}
  .dig__glow{position:absolute;left:calc((100% + 360px) * .65 - 360px - 70px);top:-46px;width:140px;height:140px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,196,110,.38),rgba(255,170,80,0));animation:au-breathe 5s ease-in-out infinite;pointer-events:none}
  .dig__con{position:absolute;right:10px;bottom:10px;left:34%;margin:0;padding:10px 10px 8px;border-radius:3px;
    background:linear-gradient(#17140f,#0d0b08);border:3px solid #8f7140;box-shadow:inset 0 0 0 1px #2c2418,0 0 0 1px #3a2e1c,0 6px 18px rgba(0,0,0,.6);
    border-image:linear-gradient(135deg,#c8a466,#6d5430 40%,#b8975a 70%,#5a4526) 1}
  .dig__t{margin:0 0 7px;font:700 11px/1 var(--text);letter-spacing:.2em;text-transform:uppercase;color:#e9e3d6}
  .dig__row{display:flex;gap:6px}
  .dig__in{flex:1;min-width:0;height:38px;padding:0 10px;font:500 14px/1 var(--text);color:#f2f2ee;background:#050403;border:1px solid #4a3c26;border-radius:2px}
  .dig__in::placeholder{color:#7d776c}
  .dig__in:focus{outline:2px solid #b8975a;outline-offset:1px}
  .dig__go{flex:none;width:38px;height:38px;border:1px solid #b8975a;background:#000;color:#f2f2ee;font-size:18px;border-radius:2px}
  .dig__cap{margin:7px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:600 11px/1.2 var(--text);letter-spacing:.06em;text-transform:uppercase;color:#a99f8c}
}
@media (max-width:819px) and (prefers-reduced-motion:reduce){.dig__glow{animation:none}}

/* The deferred elevator adds .cslab. Reserve its final canopy dimensions from
   first paint so the hero grid never relays out when that class arrives. */
@media (min-width:820px){html.glass-on .hero > .canopy{height:22px;border-bottom:0}}
@media (max-width:819px){html.glass-on .hero > .canopy{height:18px;border-bottom:0}}
