/* V3: explicit on-page playback and G102 repair illustration. */
.hero .kinetic-word{display:inline-block;white-space:nowrap}.hero .kinetic-letter,.brand-heading .kinetic-letter{display:inline-block;white-space:pre;transform-origin:50% 100%;will-change:transform,opacity}.kinetic-space{width:.23em;letter-spacing:0}.kinetic-word{display:inline-block;white-space:nowrap}.kinetic-letter{backface-visibility:hidden}.hero h1{line-height:1.32}.hero h1 .title-line{overflow:visible}.hero h1 em:after{display:none}.hero h1 em{background:linear-gradient(90deg,#bba67a,#f0dbb1,#bba67a);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;color:transparent}.hero .kinetic-word{padding-bottom:.12em;margin-bottom:-.12em}.hero-type-strip{display:flex;align-items:center;gap:16px;margin:19px 0 6px;border-left:2px solid #d5bb8b;padding-left:14px;min-height:41px}.hero-type-caption{font:7px/1.7 var(--mono);letter-spacing:.16em;color:#b5b999;flex-shrink:0}.hero-type-window{position:relative;min-height:36px;height:36px;overflow:hidden;min-width:260px}.hero-type-word{position:absolute;left:0;top:0;display:block;font-size:23px;line-height:36px;letter-spacing:-.055em;color:#dbc399;font-weight:500;white-space:nowrap}.hero-type-word:not(.is-current){visibility:hidden}.hero-lead{margin-top:18px}.hero-description{margin-top:8px}.hero-copy>.button{margin-top:24px}.type-replay{display:inline-flex;align-items:center;gap:8px;border:0;background:none;color:#c9c9b8;font:10px var(--sans);padding:8px 0;min-height:38px;margin-left:auto}.type-replay span{font-size:15px;color:#d4bd96}.motion-toggle{margin-left:0;font-size:10px;min-height:38px}.type-replay:hover,.motion-toggle:hover{color:#efe8d8}.hero-bottom{gap:24px}.hero h1 .kinetic-letter{text-shadow:0 1px 35px #0002}.motion-static .kinetic-letter{transform:none!important;opacity:1!important;filter:none!important}.motion-static *, .motion-static *:before,.motion-static *:after{animation-play-state:paused!important}.motion-static .hero-copy>*{opacity:1!important;transform:none!important}.motion-static [data-reveal]{opacity:1!important;transform:none!important}.motion-static .lab-panel.is-active h3,.motion-static .lab-panel.is-active p{opacity:1;transform:none}.motion-static .lab-big-type{opacity:1}.motion-static .hero-media,.motion-static .hero-ghost,.motion-static .closing-word{transform:none!important}
body.motion-on .hero h1 em{animation:kinetic-gold 5s ease-in-out infinite!important}body.motion-on .hero-scan i{animation:hero-scan 7s ease-in-out infinite!important}body.motion-on .target{animation:target-appear 1s 1s forwards!important}body.motion-on .target-point:before{animation:target-pulse 3.5s infinite!important}body.motion-on .target-point:after{animation:target-pulse 3.5s 1.7s infinite!important}body.motion-on .orbit-text{animation:brand-orbit 32s linear infinite!important}body.motion-on .orbit-dot{animation:brand-orbit 16s linear infinite!important}body.motion-on .brand-ribbon-track{animation:brand-marquee 30s linear infinite!important}body.motion-on .photo-reticle i{animation:photo-scan 8s 1s ease-in-out infinite!important}body.motion-on .lab-panel.is-active h3{animation:lab-copy-in .8s both!important}body.motion-on .lab-panel.is-active p{animation:lab-copy-in .8s .1s both!important}body.motion-on .lab-panel.is-active .lab-big-type{animation:lab-word-in 1.3s both!important}body.motion-on .repair-lab.is-auto .lab-tabs>button[aria-selected="true"]>i{animation:lab-progress 2.5s linear both!important}.brand-ribbon:hover .brand-ribbon-track{animation-play-state:running}
.repair-lab{background:#1c2723;padding-top:64px}.lab-heading{grid-template-columns:1fr auto;gap:13px 30px}.lab-model-note{font-size:10px;line-height:1.8;color:#a4b29e;text-align:right}.lab-model-note strong{font:500 15px var(--mono);letter-spacing:.1em;color:#d4d9bc;display:block;margin-bottom:6px}.lab-stage{grid-template-columns:1.3fr .95fr;gap:2%;min-height:560px}.lab-visual{height:560px;margin-left:-30px;margin-right:-15px;isolation:isolate}.lab-grid{display:none}.lab-visual:after{display:none}.g102-scene{position:absolute;width:100%;height:100%;left:0;top:0;overflow:visible}.lab-concept-label{right:auto;left:16px;bottom:0;font-size:9px;color:#8da08d;letter-spacing:0}.lab-copy{padding:30px 0 15px 10px}.lab-panel h3{font-weight:500;font-size:clamp(32px,3.3vw,48px);line-height:1.4}.lab-panel p{color:#b1c0ae;font-size:14px;line-height:1.95}.lab-big-type{-webkit-text-stroke-color:#d3dfc432}.lab-phase-label{color:#d3c59d;font-size:10px;letter-spacing:.1em;margin-bottom:24px}.lab-panels{min-height:245px}.lab-task-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px;max-width:390px}.lab-task-chips span{border:1px solid #78947859;color:#b7c9ad;padding:4px 10px;font-size:10px}.lab-copy>.rule-link{margin-top:22px}.lab-bottom{gap:36px;margin-top:18px;align-items:center}.lab-tabs{gap:20px}.lab-controls{display:flex;align-items:center;gap:18px;flex-shrink:0}.lab-controls button{font-size:10px;border:0;background:none;color:#d0c7a8;min-height:44px;padding:8px 0}.lab-controls button:hover{color:#fff4ce}.lab-controls .control-symbol{font:13px var(--mono);padding-right:7px}.lab-pagination{display:none}.lab-tab-instruction{font-size:10px;color:#899f89;margin-top:13px;letter-spacing:.01em}
.g102-piece{transform-box:fill-box;transform-origin:center;transition:transform 1.3s cubic-bezier(.2,.75,.2,1),opacity 1s,filter 1s!important}.g102-new-parts,.g102-cleaning-tools,.g102-replacement-tools,.g102-test-graphics,.g102-screws,.g102-disassembly-tool{opacity:0;pointer-events:none;transition:opacity .7s!important}.g102-click-ring{opacity:0}.g102-cable{opacity:1}.g102-shell{transform:translate(145px,-92px) rotate(10deg) scale(.86)}.g102-base{transform:translate(-102px,82px) rotate(-4deg) scale(.94)}.g102-components{transform:translate(0,-18px)}.g102-board{transform:translate(0,10px)}.g102-caption{opacity:.95}.g102-screws{opacity:.9}.g102-disassembly-tool{opacity:.85}.g102-rgb-glow{opacity:.5}.g102-screw>use{transform-box:fill-box;transform-origin:center}.g102-brush,.g102-solder,.driver-motion,.g102-new-parts{transform-box:fill-box;transform-origin:center}.g102-solder-glow{opacity:0}.g102-connection{opacity:0}.g102-test-graphics .g102-screen-cursor{transform-box:fill-box;transform-origin:center}
body.motion-on [data-phase="0"] .g102-shell{animation:g102-disassemble-shell 2.5s ease-in-out infinite!important}body.motion-on [data-phase="0"] .g102-base{animation:g102-disassemble-base 2.5s ease-in-out infinite!important}body.motion-on [data-phase="0"] .g102-board{animation:g102-disassemble-board 2.5s ease-in-out infinite!important}body.motion-on [data-phase="0"] .g102-components{animation:g102-disassemble-components 2.5s ease-in-out infinite!important}body.motion-on [data-phase="0"] .g102-screw>use{animation:g102-unscrew 3s ease-in-out infinite!important}body.motion-on [data-phase="0"] .screw-b>use{animation-delay:.4s!important}body.motion-on [data-phase="0"] .screw-c>use{animation-delay:.8s!important}body.motion-on [data-phase="0"] .driver-motion{animation:g102-driver 2.2s ease-in-out infinite!important}
[data-phase="1"] .g102-shell{transform:translate(138px,-53px) rotate(12deg) scale(.88)}[data-phase="1"] .g102-base{transform:translate(-114px,81px) rotate(-11deg) scale(.92)}[data-phase="1"] .g102-board{opacity:.2;transform:translate(0,14px) scale(.83)}[data-phase="1"] .g102-components{opacity:.16;transform:translate(0,0) scale(.85)}[data-phase="1"] .g102-cable{opacity:.15}[data-phase="1"] .g102-screws,[data-phase="1"] .g102-disassembly-tool{opacity:0}[data-phase="1"] .g102-cleaning-tools{opacity:1}
body.motion-on [data-phase="1"] .g102-brush{animation:g102-brush-sweep 2.1s ease-in-out infinite!important}body.motion-on [data-phase="1"] .g102-swab{animation:g102-swab-wipe 2.3s ease-in-out infinite!important}body.motion-on [data-phase="1"] .dust{animation:g102-dust-away 2.7s ease-out infinite!important}body.motion-on [data-phase="1"] .d2{animation-delay:.2s!important}body.motion-on [data-phase="1"] .d3{animation-delay:.4s!important}body.motion-on [data-phase="1"] .d4{animation-delay:.65s!important}body.motion-on [data-phase="1"] .d5{animation-delay:1s!important}body.motion-on [data-phase="1"] .d6{animation-delay:1.2s!important}body.motion-on [data-phase="1"] .sparkle{animation:g102-sparkle 2.7s ease-in-out infinite!important;transform-box:fill-box;transform-origin:center}body.motion-on [data-phase="1"] .sp2{animation-delay:1s!important}body.motion-on [data-phase="1"] .sp3{animation-delay:1.8s!important}
[data-phase="2"] .g102-shell{transform:translate(164px,-70px) rotate(14deg) scale(.77);opacity:.2}[data-phase="2"] .g102-base{transform:translate(-125px,88px) rotate(-8deg) scale(.9);opacity:.35}[data-phase="2"] .g102-board{transform:translate(0,8px) scale(1.08)}[data-phase="2"] .g102-components{transform:translate(0,3px) scale(1.08)}[data-phase="2"] .g102-cable{opacity:.2}[data-phase="2"] .g102-screws,[data-phase="2"] .g102-disassembly-tool{opacity:0}[data-phase="2"] .g102-new-parts,[data-phase="2"] .g102-replacement-tools{opacity:1}[data-phase="2"] .g102-tweezers{opacity:1}[data-phase="2"] .g102-part-tray{opacity:.8}
body.motion-on [data-phase="2"] .old-switches{animation:g102-remove-switch 2.45s ease-in-out infinite!important}body.motion-on [data-phase="2"] .g102-new-parts{animation:g102-install-switch 2.45s cubic-bezier(.4,0,.2,1) infinite!important}body.motion-on [data-phase="2"] .g102-tweezers{animation:g102-release 2.45s ease-in-out infinite!important}body.motion-on [data-phase="2"] .g102-solder{animation:g102-solder-work 2.45s ease-in-out infinite!important}body.motion-on [data-phase="2"] .g102-solder-glow{animation:g102-solder-light 2.45s ease-in-out infinite!important}body.motion-on [data-phase="2"] .g102-connection{animation:g102-connect 2.45s linear infinite!important}
[data-phase="3"] .g102-piece{transform:translate(-23px,5px) scale(1.03);opacity:1}[data-phase="3"] .g102-new-parts{opacity:0}[data-phase="3"] .g102-screws,[data-phase="3"] .g102-disassembly-tool{opacity:0}[data-phase="3"] .g102-test-graphics{opacity:1}[data-phase="3"] .g102-board,[data-phase="3"] .g102-components{opacity:0}[data-phase="3"] .g102-cable{transform:translate(-23px,5px) scale(1.03)}
body.motion-on [data-phase="3"] .g102-left-click{animation:g102-click-left 2.3s ease-in-out infinite!important}body.motion-on [data-phase="3"] .g102-right-click{animation:g102-click-left 2.3s 1.5s ease-in-out infinite!important}body.motion-on [data-phase="3"] .g102-click-ring{animation:g102-click-ring 2.3s ease-out infinite!important;transform-box:fill-box;transform-origin:center}body.motion-on [data-phase="3"] .g102-scroll-ribs{animation:g102-wheel-roll 1.3s linear infinite!important}body.motion-on [data-phase="3"] .g102-signal{animation:g102-signal-run 2.8s linear infinite!important}body.motion-on [data-phase="3"] .g102-screen-cursor{animation:g102-cursor-track 2.2s ease-in-out infinite!important}body.motion-on [data-phase="3"] .g102-click-rays{animation:g102-test-rays 2.3s infinite!important}body.motion-on [data-phase="3"] .g102-rgb-glow{animation:g102-rgb-breathe 3s ease-in-out infinite!important}
@keyframes kinetic-gold{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}@keyframes g102-disassemble-shell{0%,9%,100%{transform:translate(0,0)}36%,85%{transform:translate(145px,-92px) rotate(10deg) scale(.86)}}@keyframes g102-disassemble-base{0%,9%,100%{transform:translate(0,0)}36%,85%{transform:translate(-102px,82px) rotate(-4deg) scale(.94)}}@keyframes g102-disassemble-board{0%,9%,100%{transform:translate(0,0)}36%,85%{transform:translate(0,10px)}}@keyframes g102-disassemble-components{0%,9%,100%{transform:translate(0,0)}36%,85%{transform:translate(0,-18px)}}@keyframes g102-unscrew{0%,15%,100%{transform:translateY(0) rotate(0);opacity:0}35%{opacity:1}70%,85%{transform:translateY(-54px) rotate(220deg);opacity:1}}@keyframes g102-driver{0%,100%{transform:translateY(-7px) rotate(-8deg)}50%{transform:translateY(6px) rotate(8deg)}}@keyframes g102-brush-sweep{0%,100%{transform:translate(-43px,4px) rotate(-11deg)}45%{transform:translate(25px,27px) rotate(10deg)}70%{transform:translate(48px,5px) rotate(15deg)}}@keyframes g102-swab-wipe{0%,100%{translate:-20px -7px}50%{translate:35px 14px}}@keyframes g102-dust-away{0%{transform:translate(-6px,5px);opacity:0}18%{opacity:.85}100%{transform:translate(-88px,50px);opacity:0}}@keyframes g102-sparkle{0%,25%,100%{opacity:0;transform:scale(.3)}55%{opacity:.9;transform:scale(1.15)}75%{opacity:.4;transform:scale(.8)}}@keyframes g102-remove-switch{0%,10%{transform:translate(0,0);opacity:1}30%,82%{transform:translate(-135px,-84px) rotate(-12deg);opacity:.25}85%,100%{transform:translate(-135px,-84px) rotate(-12deg);opacity:0}}@keyframes g102-install-switch{0%,20%{transform:translate(170px,-97px) rotate(10deg);opacity:0}30%{opacity:1}42%{transform:translate(100px,-80px) rotate(6deg)}65%,91%{transform:translate(0,3px) scale(1.08);opacity:1}100%{transform:translate(0,3px) scale(1.08);opacity:0}}@keyframes g102-release{0%,62%{opacity:1;translate:0 0}75%,100%{opacity:0;translate:10px -60px}}@keyframes g102-solder-work{0%,42%,100%{transform:translate(55px,-65px);opacity:0}58%,88%{transform:translate(-3px,25px);opacity:1}94%{transform:translate(30px,-20px);opacity:0}}@keyframes g102-solder-light{0%,58%,95%,100%{opacity:0}68%,82%{opacity:.85}}@keyframes g102-connect{0%,66%,100%{opacity:0;stroke-dashoffset:30}73%,92%{opacity:.85;stroke-dashoffset:0}}@keyframes g102-click-left{0%,17%,29%,100%{filter:brightness(1)}21%,26%{filter:brightness(1.6)}}@keyframes g102-click-ring{0%,16%{opacity:0;transform:scale(.6)}20%{opacity:.9;transform:scale(.7)}52%,100%{opacity:0;transform:scale(2.1)}}@keyframes g102-wheel-roll{to{transform:translateY(6px)}}@keyframes g102-signal-run{to{stroke-dashoffset:-205}}@keyframes g102-cursor-track{0%,100%{transform:translate(-24px,12px)}45%{transform:translate(46px,-14px)}70%{transform:translate(18px,9px)}}@keyframes g102-test-rays{0%,16%,30%,100%{opacity:0}20%,26%{opacity:1}}@keyframes g102-rgb-breathe{0%,100%{opacity:.3}50%{opacity:.9}}
.motion-static .g102-scene *{animation-play-state:paused!important}.page-away .g102-scene *{animation-play-state:paused!important}.repair-lab.is-outside .g102-scene *{animation-play-state:paused!important}
@media(max-width:1100px){.lab-stage{grid-template-columns:1.3fr 1fr;min-height:500px}.lab-visual{height:500px;margin-left:-20px}.lab-copy{padding-left:0}.lab-panel h3{font-size:35px}.lab-panel p{font-size:13px}.lab-controls{gap:12px}.lab-tabs{gap:16px}.lab-tabs>button{font-size:12px;gap:10px}.lab-task-chips span{font-size:9px;padding:4px 8px}.lab-model-note strong{font-size:13px}.lab-bottom{gap:22px}.hero-type-word{font-size:21px}}
@media(max-width:850px){.lab-stage{grid-template-columns:1.2fr 1fr}.lab-visual{height:440px;margin-right:0;margin-left:-15px}.lab-panel h3{font-size:31px}.lab-panels{min-height:228px}.lab-phase-label{font-size:8px}.lab-task-chips{gap:5px;margin-top:16px}.lab-task-chips span{font-size:8px;padding:3px 6px}.lab-bottom{display:block}.lab-controls{justify-content:flex-end;margin-top:6px}.lab-tab-instruction{margin-top:4px}.lab-copy>.rule-link{font-size:10px;margin-top:15px}.hero-type-caption{font-size:6px}.hero-type-strip{gap:11px}.hero-type-window{min-width:230px}.hero-bottom{gap:15px}.type-replay,.motion-toggle{font-size:9px}}
@media(max-width:640px){.hero{padding-top:289px;min-height:875px}.hero h1{font-size:clamp(30px,8.6vw,51px);line-height:1.4}.hero-type-strip{margin-top:17px;margin-bottom:2px;padding-left:11px;min-height:35px;gap:10px}.hero-type-caption{font-size:5px;letter-spacing:.1em}.hero-type-window{height:31px;min-height:31px;min-width:205px}.hero-type-word{font-size:19px;line-height:31px}.hero-lead{margin-top:15px;font-size:11px}.hero-description{margin-top:8px}.hero-copy>.button{margin-top:21px}.hero-bottom{gap:9px}.hero-bottom p{font-size:5.5px;letter-spacing:.015em;max-width:90px}.type-replay{font-size:8px;gap:5px}.type-replay span{font-size:13px}.motion-toggle{font-size:8px;gap:5px;margin-right:2px}.hero-bottom>a span{font-size:15px}.lab-heading{display:block}.lab-model-note{margin-top:18px;text-align:left;font-size:9px}.lab-model-note strong{font-size:11px;margin-bottom:4px}.repair-lab{padding-top:44px;padding-bottom:24px}.lab-heading>p:last-child{margin-top:15px}.lab-stage{display:flex;flex-direction:column;min-height:0}.lab-visual{width:calc(100% + 34px);height:345px;margin:7px -17px 0}.g102-scene{width:114%;left:-7%}.lab-concept-label{font-size:7px;bottom:0;left:15px;right:10px;line-height:1.7}.lab-copy{width:100%;margin-top:20px;padding:28px 0 24px}.lab-phase-label{font-size:9px;margin-bottom:14px}.lab-panel h3{font-size:33px;line-height:1.4}.lab-panel p{font-size:12px;line-height:1.9}.lab-panels{min-height:195px}.lab-task-chips{margin-top:16px;gap:7px}.lab-task-chips span{font-size:10px;padding:4px 8px}.lab-copy>.rule-link{margin-top:21px;font-size:11px}.lab-bottom{margin-top:2px}.lab-tabs{gap:13px}.lab-tabs>button{font-size:12px;min-height:62px}.lab-tabs>button>span{font-size:8px}.lab-controls{display:flex;justify-content:space-between;border-top:1px solid #647e5c40;margin-top:10px;padding-top:4px}.lab-controls button{font-size:10px;min-height:42px}.lab-tab-instruction{font-size:9px;margin-top:8px}.lab-big-type{font-size:77px}.hero h1 .kinetic-space{width:.21em}}
@media(max-width:360px){.hero{padding-top:282px;min-height:851px}.hero h1{font-size:28px}.hero-type-window{min-width:185px}.hero-type-word{font-size:17px}.hero-type-caption{font-size:4.5px}.hero-bottom p{max-width:68px;font-size:5px}.type-replay,.motion-toggle{font-size:7px}.lab-visual{height:311px}.lab-panel h3{font-size:30px}.lab-task-chips span{font-size:9px}}
@media print{.hero-type-strip,.type-replay,.lab-controls{display:none!important}}
body.motion-on .repair-lab.is-outside .g102-scene *,body.motion-on.page-away .g102-scene *,body.motion-on.page-away .brand-ribbon-track{animation-play-state:paused!important}.kinetic-space{display:inline-block;white-space:pre}

/* Solid per-letter color remains visible during transformed glyph animation. */
.hero h1 em{background:none!important;color:#d7bd92!important;-webkit-text-fill-color:currentColor}
.hero h1 em .kinetic-letter{color:#d7bd92}
body.motion-on .hero h1 em{animation:kinetic-accent-color 4s ease-in-out infinite!important}
@keyframes kinetic-accent-color{0%,100%{color:#cdb184}50%{color:#f0dab1}}
