/* Homepage presentation gate; access check is only for the static demo. */
.construction-gate{display:none}
.inspection-locked #inspection-site{display:none}
.inspection-locked .construction-gate{display:flex}
.construction-gate{min-height:100vh;min-height:100svh;flex-direction:column;background:#fafbf7;color:var(--green-900);padding:36px 6vw 24px;position:relative;isolation:isolate;overflow:hidden}
.construction-gate::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#00634505 1px,transparent 1px),linear-gradient(90deg,#00634505 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(transparent,#000 65%,transparent)}
.construction-brand{display:flex;align-items:center;gap:24px}.construction-brand img{width:175px;height:auto}.construction-brand>span{border-left:1px solid #ccdacf;padding-left:24px;color:#60776a;font-size:13px;letter-spacing:.12em}
.construction-content{width:min(100%,720px);margin:auto; padding:48px 0 24px;text-align:center}
.construction-kicker{margin:0 0 18px;font-size:13px;letter-spacing:.16em;color:#62796b;display:flex;justify-content:center;align-items:center;gap:9px}.construction-kicker>span{width:6px;height:6px;border-radius:50%;background:var(--green-700)}
.construction-content h1{font-size:clamp(32px,4.2vw,52px);line-height:1.3;letter-spacing:.035em;margin:0;font-weight:650}.construction-subtitle{font-size:15px;color:#68796d;margin:18px 0 0;line-height:1.8}
.construction-scene{width:min(100%,600px);margin:16px auto 12px}.construction-scene svg{display:block;width:100%;height:auto}
.inspection-form{max-width:370px;margin:0 auto;text-align:left}.inspection-form label{display:block;text-align:center;font-size:14px;letter-spacing:.12em;margin-bottom:16px;font-weight:600}.inspection-controls{display:flex;gap:8px}.inspection-controls input{min-width:0;flex:1;height:48px;border:1px solid #cad8ce;border-radius:6px;padding:0 15px;background:#fff;color:var(--ink);font-size:14px;transition:border-color 150ms}.inspection-controls input::placeholder{color:#7a877e}.inspection-controls input:hover{border-color:#839e8e}.inspection-controls input:focus-visible{outline:2px solid var(--green-700);outline-offset:2px}.inspection-controls input[aria-invalid="true"]{border-color:#b94136}.inspection-controls button{border:0;border-radius:6px;padding:0 22px;background:var(--green-800);color:white;font-size:14px;font-weight:600;transition:background 150ms}.inspection-controls button:hover{background:var(--green-900)}.inspection-controls button span{margin-left:12px}.inspection-form #inspection-error{min-height:22px;margin:8px 0 0;color:#ad382e;font-size:12px;line-height:22px}.construction-footer{text-align:center;font-size:12px;letter-spacing:.22em;color:#6f8275;margin:24px 0 0}

/* A short, coordinated site loop: transport, hand placement, hoist and signals. */
.barrow-trip{animation:barrow-trip 3.6s linear infinite}.walking-body{animation:walking-bob .28s ease-in-out infinite alternate}.step-left,.step-right{transform-box:fill-box;transform-origin:50% 0;animation:walking-leg .56s ease-in-out infinite alternate}.step-right{animation-delay:-.56s}.barrow-wheel{animation:wheel-turn .65s linear infinite;transform-box:fill-box;transform-origin:center}
.mason-body{animation:mason-lean 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}.mason-arms{animation:brick-reach 2.4s ease-in-out infinite}.hand-brick{animation:hand-release 2.4s linear infinite}.new-brick{animation:brick-set 2.4s linear infinite}.hoist-trolley{animation:trolley-travel 4.8s ease-in-out infinite}.hoist-cable{transform-origin:379px 51px;animation:cable-length 4.8s ease-in-out infinite}.hoist-pallet{animation:pallet-lift 4.8s ease-in-out infinite}.signal-arm{transform-origin:-12px -40px;transform-box:view-box;animation:site-signal 1.2s ease-in-out infinite alternate}
@keyframes barrow-trip{0%{transform:translateX(-32px);opacity:0}8%{opacity:1}78%{opacity:1}92%,100%{transform:translateX(94px);opacity:0}}
@keyframes walking-bob{to{transform:translateY(-1.8px)}}
@keyframes walking-leg{from{transform:rotate(-15deg)}to{transform:rotate(15deg)}}
@keyframes wheel-turn{to{transform:rotate(360deg)}}
@keyframes mason-lean{0%,100%{transform:rotate(-5deg)}42%,65%{transform:rotate(8deg)}}
@keyframes brick-reach{0%,15%,100%{transform:translate(0,0)}45%,60%{transform:translate(7px,21px)}}
@keyframes hand-release{0%,43%,94%,100%{opacity:1}44%,93%{opacity:0}}
@keyframes brick-set{0%,43%{opacity:0}44%,90%{opacity:1}100%{opacity:0}}
@keyframes trolley-travel{0%,100%{transform:translateX(20px)}45%,65%{transform:translateX(-23px)}}
@keyframes cable-length{0%,100%{transform:scaleY(.65)}45%,65%{transform:scaleY(1.25)}}
@keyframes pallet-lift{0%,100%{transform:translateY(-27.65px)}45%,65%{transform:translateY(19.75px)}}
@keyframes site-signal{from{transform:rotate(-10deg)}to{transform:rotate(12deg)}}
.construction-gate{padding:28px 24px 20px}.construction-content{padding:0;width:min(100%,720px)}
.construction-brand{flex-direction:column;justify-content:center;gap:10px;margin:0 auto 32px}.construction-brand img{width:176px}.construction-brand>span{border:0;padding:0;font-size:11px;letter-spacing:.14em}
.construction-kicker{margin-bottom:12px}.construction-content h1{font-size:clamp(30px,4.2vw,46px)}.construction-subtitle{margin-top:12px}.construction-scene{width:min(100%,560px);margin:8px auto 12px}.construction-footer{margin-top:16px}.inspection-controls input{font-size:16px}
@media(max-width:560px){.construction-gate{padding:24px 20px 16px}.construction-brand{margin-bottom:28px}.construction-brand img{width:150px}.construction-brand>span{display:block;font-size:10px}.construction-kicker{font-size:11px;letter-spacing:.06em}.construction-subtitle{font-size:12px}.construction-scene{width:calc(100% + 24px);max-width:none;margin:18px -12px 20px}.inspection-controls button{padding:0 18px}.construction-footer{font-size:10px}.inspection-form{width:100%;max-width:370px}}
@media(max-height:740px) and (min-width:561px){.construction-brand{margin-bottom:20px}.construction-brand img{width:150px}.construction-scene{width:480px}.construction-content h1{font-size:38px}.construction-gate{padding-top:20px}}
@media(prefers-reduced-motion:reduce){.construction-scene *{animation:none!important}.inspection-controls input,.inspection-controls button{transition:none}}

/* Brand-led hierarchy: one status heading, with space between distinct groups. */
.construction-gate{padding:40px 24px 24px}
.construction-brand{gap:16px;margin-bottom:48px}
.construction-brand img{width:240px}
.construction-brand>span{font-size:12px;letter-spacing:.16em}
.construction-content h1{font-size:clamp(30px,3.5vw,42px);letter-spacing:.025em;line-height:1.35}
.construction-subtitle{margin-top:20px;font-size:14px;line-height:1.8}
.construction-scene{margin-top:24px;margin-bottom:28px}
.construction-footer{margin-top:24px}
@media(max-height:740px) and (min-width:561px){
 .construction-gate{padding-top:28px}
 .construction-brand{gap:12px;margin-bottom:36px}
 .construction-brand img{width:220px}
 .construction-content h1{font-size:38px}
 .construction-subtitle{margin-top:16px}
 .construction-scene{width:460px;margin-top:16px;margin-bottom:20px}
}
@media(max-width:560px){
 .construction-gate{padding:32px 20px 20px}
 .construction-brand{gap:14px;margin-bottom:40px}
 .construction-brand img{width:210px}
 .construction-brand>span{font-size:11px;letter-spacing:.1em}
 .construction-content h1{font-size:30px}
 .construction-subtitle{font-size:12px;margin-top:16px}
 .construction-scene{margin-top:24px;margin-bottom:28px}
}
@media(max-width:360px){
 .construction-brand img{width:190px}
 .construction-brand{margin-bottom:32px}
 .construction-content h1{font-size:27px}
}
