.implant-assembly{background:#102c3e;color:#fff;position:relative;scroll-margin-top:var(--clinic-header-height);isolation:isolate}
.assembly-sticky{padding:30px max(5vw,20px);display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.assembly-top{display:flex;align-items:center;justify-content:space-between;gap:15px}
.assembly-top .eyebrow{margin:0;color:#e7ca96;font-size:13px;letter-spacing:.18em}
.assembly-top>a{color:#e6edf1;font-size:14px;white-space:nowrap;padding:10px 0}
.assembly-content{display:grid;grid-template-columns:1fr 1.25fr;align-items:center;gap:3vw;flex:1;min-height:0;width:100%;max-width:1300px;margin:0 auto}
.assembly-copy h2{font-family:var(--serif,serif);font-size:clamp(36px,4.2vw,64px);font-weight:400;line-height:1.4;margin:8px 0 14px;color:#fff}
.assembly-intro{font-size:16px;line-height:1.8;color:#bfcdd5;margin:0 0 25px}
.assembly-steps{padding:0;margin:0;list-style:none}
.assembly-steps li{margin:22px 0}
.assembly-steps li>span{font-size:13px;color:#e7ca96;letter-spacing:.1em}
.assembly-steps h3{font-size:clamp(20px,2vw,27px);margin:9px 0;color:#fff;line-height:1.6}
.assembly-steps p{font-size:16px;color:#d5dfe5;line-height:1.9;max-width:29em;margin:0}
.assembly-stage{min-width:0;text-align:center;position:relative}
.assembly-scene{position:relative;width:min(100%,54svh,590px);aspect-ratio:1;margin:auto}
.assembly-halo{position:absolute;inset:4% -7% -2%;background:radial-gradient(ellipse,#b7d8e226,transparent 68%);pointer-events:none}
.assembly-piece{position:absolute;pointer-events:none}
.assembly-piece img{display:block;position:absolute;max-width:none;max-height:none;object-fit:fill}
.assembly-base{left:12%;top:52%;width:76%;height:36%;z-index:1}
.assembly-fixture{left:45%;top:54%;width:10%;height:27%;z-index:2;transform:translateY(var(--fixture-y,0px));opacity:var(--fixture-opacity,1)}
.assembly-abutment{left:45.5%;top:47%;width:9%;height:10%;z-index:3;transform:translateY(var(--abutment-y,0px));opacity:var(--abutment-opacity,1)}
.assembly-crown{left:38%;top:28%;width:24%;height:25%;z-index:4;transform:translateY(var(--crown-y,0px));opacity:var(--crown-opacity,1);transform-origin:50% 100%}
.assembly-scroll-hint{display:none;color:#b6c6cf;font-size:12px;letter-spacing:.16em;margin:0}
.assembly-scroll-hint span{display:inline-block;margin-left:12px;font-size:20px}
.assembly-bottom{margin-top:15px}
.assembly-track{height:2px;background:#ffffff26;margin:0 0 12px;overflow:hidden}
.assembly-track span{display:block;height:100%;width:var(--assembly-progress,100%);background:#e7ca96}
.assembly-bottom>p{font-size:12px;color:#bbcad3;line-height:1.7;margin:0;max-width:900px}
.implant-assembly.is-scroll-driven{height:300svh}
.is-scroll-driven .assembly-sticky{position:sticky;top:var(--clinic-header-height);height:calc(var(--assembly-viewport-height,100svh) - var(--clinic-header-height) - var(--contact-bar-height) - env(safe-area-inset-bottom,0px));min-height:0;box-sizing:border-box}
.is-scroll-driven .assembly-steps{min-height:145px}
.is-scroll-driven .assembly-steps li{margin:0}
.is-scroll-driven .assembly-scroll-hint{display:block}
@media(max-width:700px){
 .assembly-sticky{padding:15px 22px 14px}
 .assembly-top .eyebrow{font-size:11px;letter-spacing:.08em}
 .assembly-top>a{font-size:12px}
 .assembly-content{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .assembly-copy h2{font-size:30px;line-height:1.4;margin:5px 0 7px}
 .assembly-copy h2 br{display:none}
 .assembly-intro{font-size:14px;margin:0 0 8px}
 .assembly-stage{order:1;margin:auto 0;flex:1;display:flex;flex-direction:column;justify-content:center}
 .assembly-scene{width:min(100%,33svh,350px)}
 .assembly-copy{display:contents}
 .assembly-copy h2,.assembly-intro{order:0}
 .assembly-steps{order:2}
 .assembly-steps h3{font-size:20px;margin:4px 0}
 .assembly-steps p{font-size:14px;line-height:1.7;max-width:none}
 .assembly-steps li>span{font-size:11px}
 .assembly-scroll-hint{font-size:10px;margin-top:-8px}
 .assembly-bottom{margin-top:12px}
 .assembly-bottom>p{font-size:11px;line-height:1.5}
 .is-scroll-driven .assembly-steps{min-height:105px}
 .implant-assembly.is-scroll-driven{height:270svh}
 .is-scroll-driven .assembly-content{justify-content:center}
}
@media(max-width:700px){
 .assembly-compact .assembly-copy h2{font-size:25px;margin:0}
 .assembly-compact .assembly-intro,.assembly-compact .assembly-scroll-hint{display:none!important}
 .assembly-compact .assembly-scene{width:min(100%,30svh,280px)}
 .assembly-compact .assembly-sticky{padding-block:8px}
 .assembly-compact .assembly-steps p{font-size:13px}
 .assembly-compact.is-scroll-driven .assembly-steps{min-height:90px}
}
@media(prefers-reduced-motion:reduce),print{
 .implant-assembly.is-scroll-driven{height:auto}
 .is-scroll-driven .assembly-sticky{position:relative;top:auto;height:auto}
 .assembly-scroll-hint{display:none!important}
}

/* Fit original alpha bounds proportionally, with aligned component axes. */
.assembly-scene{overflow:hidden}
.assembly-base{left:20.94884%;top:42%;width:58.10233%;height:48%}
.assembly-base img{left:-10.27858%;top:-26.39535%;width:120.46110%;height:145.81395%}
.assembly-fixture{left:43.36563%;top:47%;width:13.26874%;height:38%}
.assembly-fixture img{left:-114.65969%;top:-7.86106%;width:328.27225%;height:114.62523%}
.assembly-abutment{left:45.17692%;top:30%;width:9.64615%;height:22%}
.assembly-abutment img{left:-86.84211%;top:-11.63462%;width:275.00000%;height:120.57692%}
.assembly-crown{left:37.58395%;top:20%;width:24.83211%;height:23%}
.assembly-crown img{left:-21.33939%;top:-25.98039%;width:142.33825%;height:153.67647%}

/* Larger close-up and separate front/back layers at the implant connection. */
.assembly-artwork{position:absolute;inset:0;transform:none}
.assembly-content{grid-template-columns:.8fr 1.5fr;gap:2vw}
.assembly-scene{width:min(100%,68svh,760px)}
.assembly-copy h2{font-size:clamp(34px,3.8vw,55px)}
.assembly-fixture{z-index:3;transform:translateY(var(--fixture-y,0px));transform-origin:50% 100%}
.assembly-abutment{z-index:2;top:32.2%;height:20.5%;width:8.98846%;left:45.50577%}
.assembly-crown{z-index:5;top:22%}
.assembly-screw{z-index:4;transform:translateY(var(--screw-y,0px));opacity:var(--screw-opacity,1)}
.assembly-seal{left:37.58395%;top:22%;width:24.83211%;height:23%;z-index:6;opacity:var(--seal-opacity,1)}
.assembly-seal img{left:-21.33939%;top:-25.98039%;width:142.33825%;height:153.67647%}
.implant-assembly.is-scroll-driven{height:calc(var(--assembly-viewport-height,100svh)*2.2)}
@media(max-width:700px){
 .assembly-content{display:flex;gap:0}
 .assembly-sticky{padding-inline:16px}
 .assembly-copy h2{font-size:27px;margin:3px 0}
 .assembly-intro{margin:0;font-size:13px}
 .assembly-scene{width:min(100%,45svh,520px)}
 .is-scroll-driven .assembly-steps{min-height:101px}
 .assembly-bottom{margin-top:8px}
 .assembly-scroll-hint{display:none!important}
 .implant-assembly.is-scroll-driven{height:calc(var(--assembly-viewport-height,100svh)*2.1)}
}
@media(max-width:700px){
 .assembly-compact .assembly-copy h2{font-size:23px}
 .assembly-compact .assembly-scene{width:min(100%,36svh,330px)}
 .assembly-compact .assembly-steps h3{font-size:18px}
 .assembly-compact .assembly-steps p{font-size:13px}
 .assembly-compact.is-scroll-driven .assembly-steps{min-height:88px}
}
@media(prefers-reduced-motion:reduce),print{.implant-assembly.is-scroll-driven{height:auto}}

/* The screw passes through the occlusal opening, behind its front rim. */
.assembly-screw-track{position:absolute;inset:0;z-index:6;clip-path:inset(0 0 73% 0);pointer-events:none}
.assembly-seal{z-index:7}
.assembly-crown{left:37.54049%;top:22%;width:24.91902%;height:23%}
.assembly-crown img{left:-21.17780%;top:-26.01227%;width:142.01586%;height:153.86503%}
.assembly-screw{left:48.88628%;top:27.4%;width:3.04744%;height:14%}
.assembly-screw img{left:-218.80342%;top:-9.11628%;width:535.89744%;height:116.65116%}
@media(max-width:700px){
 .is-scroll-driven .assembly-content{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0}
 .is-scroll-driven .assembly-stage{height:100%;min-height:0;margin:0;container-type:size}
 .is-scroll-driven .assembly-scene{width:min(100cqw,100cqh,45svh);flex-shrink:0}
}

.assembly-fixture-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.has-fixture-3d>img{visibility:hidden}
@media print{.assembly-fixture-canvas{display:none}.has-fixture-3d>img{visibility:visible}}

/* Keep stage text and the picture's square fixed throughout a scroll pass. */
.is-scroll-driven .assembly-steps{position:relative;height:var(--assembly-step-height,145px);min-height:var(--assembly-step-height,145px);flex-shrink:0}
.is-measuring-steps .assembly-steps li{position:absolute;top:0;left:0;right:0;margin:0}
.is-scroll-driven .assembly-scene{width:var(--assembly-scene-size,min(100%,68svh,760px));height:var(--assembly-scene-size,auto);max-width:100%;flex-shrink:0}
@media(max-width:700px){
 .is-scroll-driven .assembly-scene{width:var(--assembly-scene-size,min(100cqw,100cqh,45svh))}
}
