/* Shared presentation layer. No PLC timing or model state is changed. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:lab-leave .18s ease-in both}
::view-transition-new(root){animation:lab-enter .32s cubic-bezier(.2,.7,.2,1) both}
@keyframes lab-leave{to{opacity:0;transform:translateY(-8px)}}
@keyframes lab-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes lab-reveal{from{opacity:.35;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes lab-feedback{50%{box-shadow:0 0 0 4px #d4f57530}}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{background-image:radial-gradient(ellipse at 8% 0%,#79984b12,transparent 55%)}
main{animation:lab-enter .45s ease-out both}
.motion-enter{animation:lab-reveal .48s cubic-bezier(.2,.7,.2,1) both}
button,a,input,select,summary{ -webkit-tap-highlight-color:#d4f57522 }
button,.download-button,.primary,.secondary{transition:background-color .18s,border-color .18s,box-shadow .18s,translate .18s}
button:not(:disabled):active,.download-button:active,.primary:active,.secondary:active{translate:0 2px}
button.motion-feedback{animation:lab-feedback .28s ease-out}
.nav-dropdown:not([hidden]){animation:lab-enter .18s ease-out}
.nav-toggle span{display:inline-block;transition:rotate .2s}.nav-toggle[aria-expanded=true] span{rotate:180deg}
.lab-card,.idea-card,.logic-card,.comparison-chart{transition:border-color .2s,box-shadow .2s,translate .2s}
@media(hover:hover) and (pointer:fine){.lab-card:hover,.idea-card:hover,.logic-card:hover,.comparison-chart:hover{translate:0 -3px;box-shadow:0 12px 30px #0003;border-color:#a5bc6d}button:not(:disabled):hover{box-shadow:0 3px 15px #d4f57512}}
.bar-track i{transition:width .45s ease-out}
.live-main #car{transition:bottom 50ms linear,background-color .2s}
.bit,.rung{transition:background-color .16s,border-color .16s}.bit.on,.rung.on{background-color:#29381e}
details[open] > :not(summary){animation:lab-enter .22s ease-out}
.motion-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 12px;margin-left:auto;border:1px solid #4c6045;border-radius:8px;background:#1d2b20;color:#c9d7bc;font:inherit;font-size:11px;cursor:pointer}
html.motion-off{scroll-behavior:auto}
html.motion-off *,html.motion-off *::before,html.motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
html.motion-off::view-transition-old(root),html.motion-off::view-transition-new(root){animation:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}::view-transition-old(root),::view-transition-new(root){animation:none!important}}
