.hero.hero-blueprint {
  --blueprint-play: paused;
  --blueprint-x: 0px;
  --blueprint-y: 0px;
  background: #081114;
}

.hero-blueprint::before {
  background: linear-gradient(90deg, #081114 0%, #081114ec 19%, #08111490 32%, transparent 53%),
    linear-gradient(0deg, #081114c9, transparent 18%);
}

.blueprint-scene-wrap{position:absolute;inset:0;z-index:-4;overflow:hidden;pointer-events:none}
.blueprint-scene,.blueprint-scene-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.45);transform:translate3d(calc(var(--blueprint-x) * -.25),calc(var(--blueprint-y) * -.25),0) scale(1.04);transition:transform 900ms cubic-bezier(.2,.65,.3,1)}
.blueprint-scene-wrap{opacity:.36}
.scene-fallback .blueprint-scene{visibility:hidden}
.scene-fallback .blueprint-scene-poster{animation:scene-fallback-pan 8s ease-in-out infinite alternate;animation-play-state:var(--blueprint-play)}
.blueprint-scene-wrap::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#081114 1%,transparent 45%)}
.blueprint-foundation{opacity:.13}

.blueprint-stage,
.blueprint-grid,
.blueprint-parallax,
.blueprint-drift {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.blueprint-stage {
  z-index: -3;
  overflow: hidden;
}

.blueprint-grid {
  background-image: linear-gradient(#74c4c408 1px, transparent 1px),
    linear-gradient(90deg, #74c4c408 1px, transparent 1px);
  background-size: 48px 48px;
  opacity: .8;
}

.blueprint-parallax {
  inset: -2%;
  transform: translate3d(var(--blueprint-x), var(--blueprint-y), 0);
  transition: transform 900ms cubic-bezier(.2, .65, .3, 1);
}

.blueprint-drift {
  transform-origin: 70% 50%;
  animation: blueprint-float 8s ease-in-out infinite alternate;
  animation-play-state: var(--blueprint-play);
}

.blueprint-drawing {
  position: absolute;
  top: 20%;
  right: 2%;
  width: 76%;
  height: auto;
  max-width: none;
  overflow: visible;
  transform: rotate(-13deg);
}

.bp-guides, .bp-register { opacity: .45; }

.blueprint-ready .blueprint-ink :is(path, rect, circle) {
  stroke-dasharray: 1;
  animation: blueprint-stroke 12s cubic-bezier(.2, .6, .3, 1) infinite both;
  animation-play-state: var(--blueprint-play);
}

.blueprint-ready .blueprint-ink .bp-detail :is(path, rect, circle) { animation-delay: .4s; }
.blueprint-ready .blueprint-ink .bp-etch :is(path, rect, circle) { animation-delay: .7s; }

.hero-blueprint.blueprint-ready.is-in-view:not(.motion-paused):not(.tab-hidden):not(.overlay-covered) {
  --blueprint-play: running;
}

.hero-blueprint.motion-paused .blueprint-ink :is(path, rect, circle) {
  animation: none;
  stroke-dashoffset: 0;
  opacity:1;
}
.hero-blueprint.motion-paused .blueprint-parallax,.hero-blueprint.motion-paused .blueprint-scene,.hero-blueprint.motion-paused .blueprint-scene-poster{transition:none}

.hero-foot-actions { display: flex; align-items: center; gap: 26px; }
.hero-foot-actions .icon-button { color: #c3d8d8; }
.hero-foot-actions [data-tooltip]::after { top: auto; bottom: calc(100% + 8px); }
.hero-blueprint .hero-subtitle { color: #c0d0d0; }
.hero-blueprint .hero-labels span:first-child { color: #dce9e8; }
.blueprint-model-switch { display: flex; align-items: center; gap: 3px; }
.blueprint-model-switch button { min-width: 56px; min-height: 44px; color: #9cb4b4; font-family: Barlow, sans-serif; font-size: 20px; border-bottom: 2px solid transparent; }
.blueprint-model-switch button[aria-pressed=true] { color: var(--cyan); border-bottom-color: var(--cyan); }
.blueprint-model-switch button:hover { color: var(--white); }

@keyframes blueprint-stroke {
  0% { stroke-dashoffset: 1; opacity:0; }
  22%,76% { stroke-dashoffset: 0; opacity:1; }
  94%,100% { stroke-dashoffset: 0; opacity:0; }
}

@keyframes blueprint-float {
  from { transform: translate3d(-18px, 10px, 0) rotate(-1deg); }
  to { transform: translate3d(18px, -10px, 0) rotate(1deg); }
}

@media (max-width: 800px) {
  .hero-blueprint::before {
    background: linear-gradient(90deg, #081114 0%, #081114b5 25%, transparent 62%),
      linear-gradient(0deg, #081114b8, transparent 40%);
  }
}

@media (max-width: 600px) {
  .hero-blueprint::before {
    background: linear-gradient(0deg, #081114 5%, #081114ed 24%, #0811145c 56%, transparent 80%);
  }
  .blueprint-drawing {
    width: 104%;
    left: -2%;
    right: auto;
    top: 10%;
    transform: rotate(-18deg);
  }
  .blueprint-grid { background-size: 36px 36px; }
  .blueprint-scene,.blueprint-scene-poster{object-position:58% center;transform:none}
  .blueprint-scene-wrap{opacity:.3}
  .blueprint-drift { animation-name: blueprint-float-mobile; }
  .blueprint-parallax { inset: 0; transform: none; }
  .hero-foot-actions { gap: 8px; }
  .bp-contour :is(path,rect,circle){vector-effect:non-scaling-stroke;stroke-width:1px}
  .bp-detail :is(path,rect,circle){vector-effect:non-scaling-stroke;stroke-width:.65px}
  .bp-etch{display:none}
}

@media (min-width:1800px){
  .blueprint-stage{max-width:1800px;margin-inline:auto}
  .hero-blueprint::before{background:none}
  .blueprint-stage::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#081114 0%,#081114ec 19%,#08111490 32%,transparent 53%),linear-gradient(0deg,#081114c9,transparent 18%)}
}

@keyframes blueprint-float-mobile {
  from { transform: translate3d(-4px, 8px, 0); }
  to { transform: translate3d(4px, -8px, 0); }
}

@keyframes scene-fallback-pan{from{transform:scale(1.04) translateX(-1%)}to{transform:scale(1.08) translateX(1%)}}

.hero-blueprint[data-blueprint-backdrop="workbench"]{background:#090909}
.hero-blueprint[data-blueprint-backdrop="workbench"]::before{background:linear-gradient(90deg,#090909 0%,#090909eb 22%,#09090966 35%,transparent 49%)}
.hero-blueprint[data-blueprint-backdrop="workbench"] .blueprint-grid{display:none}
.hero-blueprint[data-blueprint-backdrop="workbench"] .blueprint-parallax{inset:0;transform:none;transition:none}
.hero-blueprint[data-blueprint-backdrop="workbench"] .blueprint-drift{animation:none;transform:none}
.hero-blueprint[data-blueprint-backdrop="workbench"] .blueprint-stage::after{display:none}
.blueprint-board{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.blueprint-board--wide{transform:none}
.blueprint-board--compact{display:none}
.bench-composition{transform:translate3d(calc(var(--blueprint-x) * .12),calc(var(--blueprint-y) * .12),0);transition:transform 900ms ease-out}
.bench-continuous-lines{opacity:1}
.bench-continuous-lines use{stroke-dasharray:none;animation:none}
.bench-zone-ink{stroke-dasharray:1;animation:bench-zone-draw var(--zone-cycle) ease-in-out var(--zone-phase) infinite both;animation-play-state:var(--blueprint-play)}
.bench-study text,.bench-sheet-model{fill:#a7a7a7;stroke:none;font-family:'Arc Sans','Microsoft JhengHei',sans-serif;font-size:14px;font-weight:500}
.bench-sheet-model{font-size:18px;fill:#686868}
.bench-study-corners{fill:none;stroke:#4d4d4d;stroke-width:1}
.bench-detail-markers circle{fill:#181818;stroke:#838383;stroke-width:1}
.bench-detail-markers text{fill:#d2d2d2;stroke:none;font-family:Arial,sans-serif;font-size:10px}
.bench-sight{--study-cycle:10.7s;--study-phase:-4.3s;--drift-cycle:11.9s;--drift-phase:-1.8s;--trace-cycle:6.7s;--trace-phase:-.8s;--study-x:1px;--study-y:-4px}
.bench-magazine{--study-cycle:8.9s;--study-phase:-2.7s;--drift-cycle:15.7s;--drift-phase:-7.2s;--trace-cycle:9.1s;--trace-phase:-5.3s;--study-x:2px;--study-y:4px}
.bench-muzzle{--study-cycle:13.1s;--study-phase:-7.1s;--drift-cycle:18.1s;--drift-phase:-5.9s;--trace-cycle:11.3s;--trace-phase:-3.7s;--study-x:-4px;--study-y:1px}
.bench-study-motion{animation:bench-study-drift var(--drift-cycle) ease-in-out var(--drift-phase) infinite both;animation-play-state:var(--blueprint-play)}
.bench-study-ink{stroke-dasharray:1;animation:bench-zone-draw var(--study-cycle) ease-in-out var(--study-phase) infinite both;animation-play-state:var(--blueprint-play)}
.bench-trace{stroke-dasharray:.2 .8;animation:workbench-trace var(--trace-cycle) linear var(--trace-phase) infinite both;animation-play-state:var(--blueprint-play)}
.hero-blueprint.motion-paused .bench-zone-ink,.hero-blueprint.motion-paused .bench-study-ink{animation:none;stroke-dashoffset:0;opacity:.35}
.hero-blueprint.motion-paused .bench-study-motion{animation:none;transform:none}
.hero-blueprint.motion-paused .bench-trace{animation:none;opacity:0}
.hero-blueprint.motion-paused .bench-composition{transform:none;transition:none}
.hero-blueprint[data-blueprint-backdrop="workbench"] :is(.hero-subtitle,.hero-foot-actions .icon-button){color:#c4c4c4}
.hero-blueprint[data-blueprint-backdrop="workbench"] h1 span:last-child{color:rgb(246 247 247 / 74%)}
.hero-blueprint[data-blueprint-backdrop="workbench"] .hero-subtitle{color:rgb(236 239 239 / 64%)}
.hero-blueprint[data-blueprint-backdrop="workbench"] .hero-labels span:first-child{color:rgb(236 239 239 / 64%)}
.hero-blueprint[data-blueprint-backdrop="workbench"] .blueprint-model-switch button[aria-pressed="false"]{color:rgb(230 235 235 / 62%)}
.hero-blueprint[data-blueprint-backdrop="workbench"] .hero-foot .text-link{color:rgb(236 239 239 / 74%)}
.hero-blueprint[data-blueprint-backdrop="workbench"] .hero-foot .text-link:is(:hover,:focus-visible){color:#fff}

@keyframes bench-zone-draw{
  0%{stroke-dashoffset:1;opacity:.1}
  24%,56%{stroke-dashoffset:0;opacity:1}
  82%,100%{stroke-dashoffset:0;opacity:.05}
}
@keyframes bench-study-drift{
  0%,100%{transform:translate(0,0)}
  44%{transform:translate(var(--study-x),var(--study-y))}
  73%{transform:translate(calc(var(--study-x) * -.25),calc(var(--study-y) * -.25))}
}
@keyframes workbench-trace{
  0%{stroke-dashoffset:1.22;opacity:.15}
  12%,65%{opacity:.8}
  86%,100%{stroke-dashoffset:-.22;opacity:.15}
}

@media(min-width:1800px){
  .hero-blueprint[data-blueprint-backdrop="workbench"] .blueprint-stage{max-width:1920px}
}
@media(max-width:900px){
  .hero.hero-blueprint[data-blueprint-backdrop="workbench"]{--bench-scene-height:clamp(180px,calc(100svh - 530px),460px);height:auto;min-height:0;max-height:none}
  .blueprint-board--wide{display:none}
  .blueprint-board--compact{display:block;inset:0 0 auto;margin-inline:auto;width:min(100%,calc(var(--bench-scene-height) * 600 / 460));height:auto;aspect-ratio:600/460}
  .hero-blueprint[data-blueprint-backdrop="workbench"]::before{background:linear-gradient(90deg,#090909a6 0%,transparent 50%),linear-gradient(0deg,#090909 3%,transparent 60%)}
  .hero-blueprint[data-blueprint-backdrop="workbench"] .hero-inner{justify-content:flex-start;padding-top:calc(min(76.6667vw,var(--bench-scene-height)) + 20px);padding-bottom:100px}
  .hero-blueprint[data-blueprint-backdrop="workbench"] h1{font-size:72px;line-height:1.12}
  .hero-blueprint[data-blueprint-backdrop="workbench"] h1 span{display:inline}
  .hero-blueprint[data-blueprint-backdrop="workbench"] h1 span:first-child::after{content:none}
}
@media(max-width:600px){
  .hero-blueprint[data-blueprint-backdrop="workbench"] .hero-inner{padding-bottom:100px}
  .hero-blueprint[data-blueprint-backdrop="workbench"] h1{font-size:60px}
  .hero-blueprint[data-blueprint-backdrop="workbench"]::before{background:linear-gradient(0deg,#090909 5%,#090909ed 28%,transparent 61%)}
  .bench-composition{transform:none;transition:none}
  .blueprint-board--compact{top:0}
  .blueprint-board .bp-contour :is(path,rect,circle){stroke-width:.8px}
  .blueprint-board .bp-detail :is(path,rect,circle){stroke-width:.45px}
  .blueprint-board .bp-etch{display:inline}
  .blueprint-board .bp-etch :is(path,rect,circle){vector-effect:non-scaling-stroke;stroke-width:.3px}
  .bench-study text{font-size:16px}
  .bench-detail-markers text{font-size:8px}
  .bench-study-motion{--study-x:1px;--study-y:-2px}
}

@media (prefers-reduced-motion: reduce) {
  .blueprint-parallax { transform: none; transition: none; }
  .blueprint-drift { animation: none; transform: none; }
  .blueprint-scene,.blueprint-scene-poster{transform:none;transition:none;animation:none!important}
  .hero-blueprint .blueprint-ink :is(path, rect, circle) { animation: none; stroke-dashoffset: 0; opacity:1; }
  .bench-zone-ink,.bench-study-ink{animation:none!important;stroke-dashoffset:0;opacity:.35}
  .bench-study-motion,.bench-composition{animation:none!important;transform:none;transition:none}
  .bench-trace{animation:none!important;opacity:0}
}
