/* A wireframe becomes the real project, inside the existing laptop. */
.hero-vitrine .vh { max-width: 1240px; grid-template-columns: 1.05fr 1fr; gap: 64px; }
.vitrine-build { margin: 0; padding: 20px 22px 0; }
.vitrine-build .lap-screen { aspect-ratio: 1400 / 772; }
.vitrine-build .lap-body,.vitrine-build .lap-floor { animation: none; }
.vitrine-build .lap-lid { box-shadow: 0 34px 74px -22px rgba(2,6,23,.65),inset 0 1px 0 rgba(255,255,255,.14); }
.vitrine-build .lap-screen::after { z-index: 4; }
.build-wire { position: absolute; inset: 0; background: #101f35; color: #b7cbe4; opacity: 0; pointer-events: none; }
.build-wire svg { width: 100%; height: 100%; display: block; }
.build-blocks { fill: rgba(183,203,228,.04); }
.build-accents { color: #fbbf24; }
.build-scan { position: absolute; z-index: 3; top: 0; bottom: 0; left: 0; width: 2px; opacity: 0; background: #fbbf24; box-shadow: 0 0 20px 5px rgba(251,191,36,.3); pointer-events: none; }
.build-caption { text-align: center; color: var(--slate-300); font-size: .82rem; margin: 49px 0 18px; }
.build-controls { display: flex; justify-content: space-between; align-items: center; gap: 12px; max-width: 430px; margin: auto; }
.build-controls[hidden] { display: none; }
.build-steps { display: flex; gap: 17px; list-style: none; counter-reset: build-step; color: var(--slate-400); font-family: 'Space Grotesk',sans-serif; font-size: .67rem; }
.build-steps li { position: relative; padding: 10px 0; border-top: 1px solid rgba(159,176,200,.25); }
.build-steps li::before { counter-increment: build-step; content: '0' counter(build-step); display: inline-block; margin-right: 5px; opacity: .6; }
.build-toggle { display: inline-flex; gap: 6px; align-items: center; justify-content: center; min-height: 44px; min-width: 76px; padding: 8px; border-radius: 99px; border: 1px solid rgba(159,176,200,.3); background: rgba(15,29,56,.24); color: var(--slate-300); font: inherit; font-size: .66rem; cursor: pointer; }
.build-toggle svg { width: 13px; height: 13px; }
.build-toggle:hover { border-color: var(--amber); color: var(--white); }
.build-toggle:focus-visible { outline: 2px solid var(--amber); outline-offset: 4px; }
.vitrine-build.is-playing { --build-duration: 7s; }
.is-playing .build-wire { animation: build-reveal var(--build-duration) linear both; }
.is-playing .build-outline > * { stroke-dasharray: 1; animation: build-outline var(--build-duration) ease both; }
.is-playing .build-blocks > * { stroke-dasharray: 1; animation: build-blocks var(--build-duration) ease both; }
.is-playing .build-accents { animation: build-dots var(--build-duration) ease both; }
.is-playing .lap-screen img { animation: build-color var(--build-duration) ease both; }
.is-playing .build-scan { animation: build-scan var(--build-duration) linear both; }
.is-playing .build-steps li { animation: build-step var(--build-duration) linear both; }
.is-playing .build-steps li:nth-child(2) { animation-name: build-step-two; }
.is-playing .build-steps li:nth-child(3) { animation-name: build-step-three; }
.vitrine-build.is-paused * { animation-play-state: paused !important; }
.vitrine-build.is-complete .build-steps li { color: var(--amber); border-color: var(--amber); }
@keyframes build-outline { 0%,5% { stroke-dashoffset: 1; } 23%,100% { stroke-dashoffset: 0; } }
@keyframes build-blocks { 0%,17% { stroke-dashoffset: 1; } 39%,100% { stroke-dashoffset: 0; } }
@keyframes build-dots { 0%,29% { opacity: 0; } 40%,100% { opacity: 1; } }
@keyframes build-reveal { 0%,42% { opacity: 1; clip-path: inset(0); } 80%,99% { opacity: 1; clip-path: inset(0 0 0 100%); } 100% { opacity: 0; clip-path: inset(0 0 0 100%); } }
@keyframes build-color { 0%,42% { filter: grayscale(1); } 80%,100% { filter: grayscale(0); } }
@keyframes build-scan { 0%,41% { left: 0; opacity: 0; } 43% { left: 0; opacity: 1; } 79% { left: 99%; opacity: 1; } 81%,100% { left: 100%; opacity: 0; } }
@keyframes build-step { 0%,100% { color: var(--amber); border-color: var(--amber); } }
@keyframes build-step-two { 0%,41% { color: var(--slate-400); border-color: rgba(159,176,200,.25); } 43%,100% { color: var(--amber); border-color: var(--amber); } }
@keyframes build-step-three { 0%,78% { color: var(--slate-400); border-color: rgba(159,176,200,.25); } 80%,100% { color: var(--amber); border-color: var(--amber); } }
[data-theme="light"] .build-wire { background: #edf2f8; color: #667d98; }
[data-theme="light"] .build-toggle { background: rgba(255,255,255,.4); color: #334155; }
[data-theme="light"] .build-steps { color: #475569; }
[data-theme="light"] .vitrine-build { --amber: #b45309; }
@media (max-width: 980px) {
 .hero-vitrine .vh { grid-template-columns: 1fr; gap: 48px; }
 .vitrine-build { width: 100%; max-width: 560px; margin: 0 auto; }
}
@media (max-width: 480px) {
 .vitrine-build { padding: 8px 12px 0; }
 .build-caption { margin-top: 38px; font-size: .72rem; }
 .build-controls { flex-wrap: wrap; justify-content: center; gap: 6px 16px; }
 .build-steps { gap: 13px; font-size: .62rem; }
}
@media (prefers-reduced-motion: reduce) {
 .vitrine-build * { animation: none !important; }
 .build-wire,.build-scan { display: none; }
 .build-controls { display: none; }
}
