.article.clinical-body .procedure-visual{margin:0 0 42px;border:1px solid var(--line);background:#fff;scroll-margin-top:24px}
.procedure-visual-heading{padding:25px 27px 20px}
.article.clinical-body .procedure-visual-heading h2{font-size:22px;margin:0 0 9px}
.article.clinical-body .procedure-visual-heading p{font-size:12px;margin:0;color:var(--muted)}
.procedure-stage-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid var(--line)}
.procedure-stage-buttons button{border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);padding:17px 8px;font-size:13px;line-height:1.5;word-break:keep-all;overflow-wrap:anywhere;min-width:0}
.procedure-stage-buttons button:last-child{border-right:0}.procedure-stage-buttons button span{display:block;font-size:10px;letter-spacing:.08em;margin-bottom:7px;color:var(--teal)}
.procedure-stage-buttons button[aria-selected="true"]{color:var(--teal);background:var(--soft);box-shadow:inset 0 -2px var(--teal)}
.procedure-stage-buttons button.is-past span{color:var(--ink)}
.procedure-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:25px;align-items:center;padding:16px 27px 25px;min-height:280px}
.procedure-stage[hidden]{display:none!important}.procedure-stage-art{min-width:0}.procedure-drawing{display:block;width:100%;max-width:360px;margin:auto;height:auto}
.procedure-stage-copy{min-width:0}.procedure-stage-count{font-size:10px;letter-spacing:.13em;color:var(--teal)}
.procedure-atlas{display:block;width:100%;height:auto;max-height:330px;object-fit:contain;aspect-ratio:3/2}
.procedure-stage-art picture{display:block;width:100%}
.procedure-laser-application{position:relative;width:100%;aspect-ratio:1600/1063}
.procedure-laser-application .procedure-atlas{aspect-ratio:auto;max-height:none;width:100%;height:auto}
.procedure-laser-light{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.is-current .procedure-laser-emission{animation:laser-delivery 2.8s ease-in-out 2}
@keyframes laser-delivery{0%,100%{opacity:.65}50%{opacity:1}}
.procedure-stage.preparation-detail{grid-template-columns:minmax(0,1fr);gap:20px;padding-top:26px}
.article.clinical-body ol.procedure-preparation{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.article.clinical-body .procedure-preparation li{list-style:none;margin:0;padding:0;min-width:0}
.procedure-preparation picture{display:block;margin-bottom:14px}
.article.clinical-body .procedure-preparation h4{font-size:17px;font-weight:500;color:var(--ink);margin:7px 0 8px;line-height:1.5}
.article.clinical-body .procedure-preparation p{font-size:13px;line-height:1.8;margin:0;color:var(--muted)}
@media(max-width:760px){.article.clinical-body ol.procedure-preparation{grid-template-columns:minmax(0,1fr);gap:24px}.procedure-preparation picture{max-width:360px;margin:0 auto 9px}.article.clinical-body .procedure-preparation li+li{padding-top:20px;border-top:1px solid var(--line)}}
.procedure-stage.no-art{grid-template-columns:minmax(0,1fr);min-height:185px;padding-top:30px}
.procedure-stage.no-art .procedure-stage-copy{max-width:650px}
.procedure-motion{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);align-items:center;gap:24px;padding:0 27px 25px}
.procedure-motion video{display:block;width:100%;height:auto;min-width:0;background:#fff;border:1px solid var(--line)}
.procedure-player{min-width:0}.procedure-chapters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:10px}
.procedure-chapters button{min-width:0;padding:9px 3px;border:0;border-bottom:2px solid transparent;background:#fff;color:var(--muted);font-size:11px;line-height:1.6;word-break:keep-all}
.procedure-chapters button span{display:block;font-size:9px;letter-spacing:.1em;margin-bottom:3px}
.procedure-chapters button[aria-current="step"]{background:#f2faf9;color:var(--teal);border-bottom-color:var(--teal)}
.procedure-chapters button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.article.clinical-body a.procedure-source-link{display:inline-flex;gap:18px;align-items:center;font-size:13px;line-height:1.7;margin-top:5px;padding-bottom:8px;border-bottom:1px solid var(--teal);text-decoration:none;color:var(--teal)}
.article.clinical-body .procedure-motion h3{font-size:23px;line-height:1.5;margin:10px 0 16px}
.article.clinical-body .procedure-motion p{font-size:13px;line-height:1.9;margin:0 0 12px}
@media(max-width:760px){.procedure-motion{grid-template-columns:minmax(0,1fr);gap:19px;padding:0 19px 20px}.article.clinical-body .procedure-motion h3{font-size:21px;margin:8px 0 12px}.procedure-motion h3 br{display:none}}
.article.clinical-body .procedure-stage-copy h3{font-size:21px;line-height:1.5;margin:12px 0}
.article.clinical-body .procedure-stage-copy p{font-size:14px;line-height:1.9}
.is-interactive .procedure-stage.is-current{animation:stage-reveal .3s ease-out}
.is-interactive .is-current .visual-injection{animation:injection-enter .8s ease-out;transform-origin:center}
.is-interactive .is-current .visual-rotor{animation:separation-turn 1.6s ease-in-out;transform-origin:180px 140px}
.is-interactive .is-current .visual-pulse{animation:point-focus 1.3s ease-out}
.is-interactive .is-current .visual-path{stroke-dasharray:7 4;animation:path-flow 1.2s linear 2}
@keyframes stage-reveal{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes injection-enter{from{transform:translate(9px,-9px)}to{transform:none}}
@keyframes separation-turn{from{transform:rotate(-140deg)}to{transform:rotate(0)}}
@keyframes point-focus{0%{opacity:.25}50%{opacity:1}100%{opacity:1}}
@keyframes path-flow{to{stroke-dashoffset:-22}}
@media(max-width:760px){.procedure-visual-heading{padding:21px 19px 17px}.article.clinical-body .procedure-visual-heading h2{font-size:20px}.procedure-stage-buttons button{font-size:11px;padding:14px 5px}.procedure-stage-buttons button span{font-size:9px}.procedure-stage{grid-template-columns:minmax(0,1fr);gap:0;padding:10px 20px 25px;min-height:0}.procedure-drawing{max-width:260px}.article.clinical-body .procedure-stage-copy h3{font-size:19px;margin:10px 0}.article.clinical-body .procedure-stage-copy p{font-size:13px}.article.clinical-body .procedure-visual{margin-bottom:32px}}
@media(prefers-reduced-motion:reduce){.procedure-visual *{animation:none!important}}
.procedure-loop{margin:26px 0 30px}
.procedure-loop-video{display:block;width:100%;height:auto;aspect-ratio:3/2;background:#fff;object-fit:contain}
.procedure-stage-video{display:block;width:100%;height:auto;aspect-ratio:3/2;background:#fff}
.procedure-video-frame{overflow:hidden;background:#fff;aspect-ratio:3/2;border:0}
.procedure-video-frame video{display:block;width:100%;height:100%;transform:scale(1.03);transform-origin:50% 50%;border:0;outline:0}
/* A layer drawn above the video keeps browsers from promoting it to a hardware overlay plane
   (which ignores the crop above) and masks any dark decoder edge with the page white. */
.procedure-video-frame{position:relative;isolation:isolate}
.procedure-video-frame::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 6px #fff;pointer-events:none;z-index:1}
/* Seen on screen but never in screenshots = hardware overlay (MPO) edge artefact. A non-opaque video
   cannot be promoted to an overlay plane, so it is composited with the page like any image. */
.procedure-video-frame video,.procedure-loop-video{opacity:.999;will-change:auto}
