/* Local motion study. All construction furniture leaves when a scene settles. */
.construction-stage{position:absolute;inset:0;z-index:25;pointer-events:none;overflow:clip;color:var(--purple);font:9px/1.2 ui-monospace,SFMono-Regular,monospace;contain:layout style}
.construction-grid{position:absolute;inset:12px 0 24px;background:linear-gradient(90deg,#8c5eca13 1px,transparent 1px),linear-gradient(#8c5eca13 1px,transparent 1px);background-size:calc(100% / 12) 36px;mask-image:linear-gradient(transparent,#000 20%,#000 75%,transparent)}
.construction-cursor{position:absolute;left:0;top:0;will-change:transform;filter:drop-shadow(0 2px 2px #170d2930);color:var(--cursor-color,var(--purple))}
.construction-cursor>svg{display:block;width:23px;height:28px;overflow:visible;transform-origin:3px 3px}
.construction-cursor>span{position:absolute;top:24px;left:14px;padding:5px 8px;border-radius:0 5px 5px;background:var(--cursor-color,var(--construction-color));color:white;font:700 9px/1 Manrope,sans-serif;white-space:nowrap;letter-spacing:.02em}
.construction-cursor.cursor-ink{--cursor-color:#37323f}.construction-cursor.cursor-mint{--cursor-color:#3a7b70}
.construction-selection{position:absolute;left:0;top:0;border:1px solid currentColor;color:var(--purple);will-change:transform,width,height;background:#9155d505}
.construction-selection:before,.construction-selection:after{content:'';position:absolute;width:5px;height:5px;background:var(--paper);border:1px solid currentColor;top:-3px;left:-3px;box-shadow:none}
.construction-selection:after{top:auto;left:auto;bottom:-3px;right:-3px}
.construction-selection>i{position:absolute;inset:-1px;border:0;pointer-events:none}.construction-selection>i:before,.construction-selection>i:after{content:'';position:absolute;width:5px;height:5px;background:var(--paper);border:1px solid currentColor;right:-2px;top:-2px}.construction-selection>i:after{right:auto;top:auto;left:-2px;bottom:-2px}
.construction-selection>b{position:absolute;bottom:calc(100% + 8px);left:-1px;font:8px/1.2 ui-monospace,monospace;letter-spacing:.08em;white-space:nowrap;font-weight:400}
.construction-guide{position:absolute;left:0;top:0;background:#9862d7;opacity:.35;transform-origin:0 0;height:1px;pointer-events:none}
.construction-pulse{position:absolute;left:-12px;top:-12px;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;opacity:0}
[data-construction=building] .card-float,[data-construction=building] .hero-signature svg{animation-play-state:paused!important}
[data-construction=building] .project-image{transition:none}
[data-construction=building] .space-dust,[data-construction=building] .space-beacon{animation-play-state:paused!important}
.construction-dock{position:fixed;z-index:65;left:50%;bottom:18px;translate:-50% 0;display:flex;align-items:center;gap:6px;padding:7px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:0 8px 35px #170d2920;color:var(--ink)}
.construction-dock .preview-label{font:9px/1.4 ui-monospace,monospace;letter-spacing:.04em;padding:0 10px;color:var(--muted);border-right:1px solid var(--line);white-space:nowrap}
.construction-dock .preview-label span{display:block;color:var(--purple);font-size:8px;letter-spacing:.1em}
.construction-dock button{border:1px solid transparent;background:none;color:inherit;border-radius:8px;padding:11px 13px;cursor:pointer;white-space:nowrap;font-size:11px}
.construction-dock button:hover{background:#8f53c914}.construction-dock button:focus-visible{outline:2px solid var(--purple);outline-offset:1px}
.construction-dock button[aria-pressed=true]{color:var(--purple);background:#8f53c916;border-color:#8f53c944}
.construction-dock button:disabled{opacity:.4;cursor:default}.construction-dock .preview-speed{border-left:1px solid var(--line);border-radius:0 8px 8px 0;font-size:10px}
html[data-motion=off] .construction-stage{display:none}
html[data-theme=night] .construction-cursor.cursor-ink{--cursor-color:#8b718e}
@media(max-width:600px){.construction-stage{inset:0 -8px}.construction-cursor>svg{width:19px;height:23px}.construction-cursor>span{top:20px;left:12px;font-size:8px;padding:4px 6px}.construction-dock{bottom:max(10px,env(safe-area-inset-bottom));width:max-content;max-width:calc(100% - 16px);gap:0;padding:5px;border-radius:11px}.construction-dock .preview-label{font-size:7px;padding:0 8px}.construction-dock .preview-label span{font-size:6px}.construction-dock button{font-size:10px;padding:11px 9px}.construction-dock .preview-speed{font-size:9px}.construction-selection>b{font-size:6px}}
@media(prefers-reduced-motion:reduce){.construction-stage{display:none}}

[data-construction=building] .collage-card:before{opacity:0}
.construction-cursor.cursor-resize>span{left:auto;right:5px;top:-22px;border-radius:5px 5px 0 5px}
.construction-dock .preview-scrub{display:flex;flex-direction:column;gap:4px;color:var(--muted);font:8px/1 ui-monospace,monospace;padding:0 9px;border-left:1px solid var(--line)}
.construction-dock input{width:68px;height:12px;accent-color:var(--purple);cursor:ew-resize;margin:0}
@media(max-width:600px){.construction-dock .preview-label{display:none}.construction-dock .preview-scrub{padding:0 7px}.construction-dock input{width:45px}.construction-dock .preview-scrub{font-size:7px}}
/* Each world supplies its accent; the same crew and selection geometry connect them. */
.construction-stage{--construction-color:var(--project-accent,var(--purple));color:var(--construction-color)}
.construction-cursor{color:var(--cursor-color,var(--construction-color))}
.construction-selection{color:var(--construction-color)}
.construction-guide{background:var(--construction-color)}
.construction-remembrance{position:absolute;left:-16px;top:-16px;width:32px;height:32px;border:1px solid #dfd29c;border-radius:50%;opacity:0;pointer-events:none}
[data-construction=building] .scene-loop{animation-name:none!important}
[data-construction=building] .dispatch-sheet{transition:none}
.about-section,.contact-section{position:relative}
.preview-picker select{border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--ink);font:11px Manrope,sans-serif;padding:10px 24px 10px 10px;max-width:137px;cursor:pointer}
.preview-picker select:focus-visible{outline:2px solid var(--purple);outline-offset:2px}
.preview-picker select:disabled{opacity:.4;cursor:default}
@media(max-width:600px){.preview-picker select{font-size:10px;padding:10px 18px 10px 8px;max-width:112px}.construction-dock .preview-speed{padding-inline:7px}}
/* Arm each entrance before it reaches the viewport. Layout stays measurable,
   but finished content cannot flash before the builders place it. */
html[data-motion=on] [data-construction=pending] :is(.hero-copy,.hero-collage,.hero-current,.project-copy,.about-heading,.about-copy,.about-person,.contact-grid,.eyebrow){opacity:0!important}
html[data-motion=on] [data-construction=pending] .project-visual{background:transparent!important;outline:1px solid var(--line);outline-offset:-1px}
html[data-motion=on] [data-construction=pending] .project-visual>*{opacity:0!important}
html[data-motion=on] [data-construction=pending] .project-visual:before,html[data-motion=on] [data-construction=pending] .project-visual:after{opacity:0!important}

/* The drawing pass and the persistent crew share a document coordinate space. */
.construction-stage{overflow:visible;contain:style;z-index:55}
.construction-crew{position:absolute;left:0;top:0;width:100%;height:0;z-index:55;pointer-events:none}
.construction-cursor{--cursor-color:#7034ce;z-index:2}
.construction-cursor.crew-1{--cursor-color:#37323f}.construction-cursor.crew-2{--cursor-color:#3a7b70}.construction-cursor.crew-3{--cursor-color:#aa5d88}
.construction-cursor>svg{width:24px;height:29px;transform-origin:0 0}
.construction-cursor>span{top:25px;left:12px}
.construction-probe{border:0!important;margin:0!important;padding:0!important;opacity:0!important}
html[data-boot=build] :is(.site-header,main,.site-footer){opacity:0}
html[data-motion=on] [data-construction=pending] .project-visual{outline:0}
html[data-motion=on] [data-construction=pending] .origin-story{opacity:0}
html[data-motion=on] [data-construction=pending]{border-color:transparent}
html[data-motion=on] [data-construction=pending]:after{opacity:0}
html[data-motion=on]:has(#elsewhere[data-construction=pending]) .site-footer{opacity:0}
.collage-card:before{opacity:var(--backing-progress,1);scale:calc(.86 + var(--backing-progress,1)*.14);translate:calc((1 - var(--backing-progress,1))*12px) calc((1 - var(--backing-progress,1))*8px)}
[data-construction=building] .collage-card:before{opacity:var(--backing-progress,1)}
[data-construction=building] .card-float,[data-construction=building] .hero-signature svg{animation-name:float!important;animation-play-state:paused!important}
[data-construction=building] .hero-signature svg{animation-name:signature-drift!important}
.origin-story{overflow-anchor:none}
.build-controls{position:fixed;z-index:64;right:22px;bottom:22px;display:flex;align-items:center;gap:3px;padding:5px;border:1px solid #7034ce35;background:var(--paper);box-shadow:0 5px 25px #27183a12;border-radius:24px;font:10px Manrope,sans-serif}
.build-controls button{border:0;background:none;color:var(--ink);cursor:pointer;border-radius:20px;padding:10px 12px;display:flex;gap:7px;align-items:center}
.build-controls [data-follow]{background:var(--purple);color:white}
.build-controls [data-follow] i{width:6px;height:6px;border-radius:50%;background:currentColor}
.build-controls [data-follow][aria-pressed=true] i{animation:beacon-breathe .8s infinite alternate}
.build-controls [data-settle]{color:var(--muted);font-size:9px}
html[data-motion=off] .construction-crew{display:none}
@media(max-width:600px){.construction-stage{inset:0}.construction-cursor>svg{width:24px;height:29px}.build-controls{bottom:max(12px,env(safe-area-inset-bottom));right:10px}.build-controls button{padding:9px 10px}.build-controls [data-settle]{font-size:8px}}
body:has(.construction-dock:not([hidden])) .build-controls{bottom:84px}
html[data-theme=night] .construction-cursor.crew-1{--cursor-color:#b2a5c4}
html[data-motion=on] :has(#project-atlas[data-construction=pending])>.work-intro{opacity:0}
.collage-card:before{scale:1;translate:0 0;clip-path:inset(0 var(--plate-inset,0%) var(--plate-inset,0%) 0)}
/* Decorative pointers may touch a viewport edge without creating a sideways page. */
body{overflow-x:clip}
.construction-cursor[data-edge=right]>span{left:auto;right:8px;border-radius:5px 0 5px 5px}
html{overflow-x:clip}
/* Review space lets the final scene be framed like the preceding chapters. */
body:has(.construction-dock:not([hidden])){padding-bottom:100vh}
/* Expanding a story must not make a lower project become the scroll anchor. */
html,body{overflow-anchor:none}
.construction-cursor.crew-4{--cursor-color:#976126}.construction-cursor.crew-5{--cursor-color:#39739d}
html[data-theme=night] .construction-cursor.crew-4{--cursor-color:#d4aa71}html[data-theme=night] .construction-cursor.crew-5{--cursor-color:#78b9df}
