/* Motion enhancement. Content is readable even if this file or motion.js fails. */
main{position:relative;z-index:1}#pointer-trail{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.65}.edge-streams{position:fixed;inset:80px 0 0;pointer-events:none;z-index:0;overflow:hidden}.edge-streams>i{position:absolute;width:28vw;max-width:500px;height:1px;top:10%;right:0;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0}.edge-streams>i:last-child{top:auto;right:auto;left:0;bottom:15%;transform:rotate(180deg)}
.motion-toggle{border:1px solid var(--line);height:32px;border-radius:2px;display:flex;align-items:center;gap:6px;padding:0 8px;font-size:10px}.motion-toggle svg{width:13px;height:13px;color:var(--accent)}.motion-toggle>i{width:4px;height:4px;border-radius:50%;background:var(--accent)}.motion-toggle[aria-pressed=false]{color:var(--muted)}.motion-toggle[aria-pressed=false]>i{background:var(--muted);opacity:.5}.motion-toggle:disabled{opacity:.6}.motion-toggle:hover{border-color:var(--strong-line)}
.system-svg{width:100%;height:auto;aspect-ratio:480/540;display:block;fill:none;stroke:none;transform:perspective(900px) rotateX(var(--scene-rx,0deg)) rotateY(var(--scene-ry,0deg));transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .3s;transform-origin:center}.visual-frame{background:#e5e9dd}.system-svg .stack-layer{transition:transform .7s cubic-bezier(.22,1,.36,1)}.system-svg .layer-surface{transition:fill .3s,stroke .3s,stroke-width .3s}.system-svg .layer-circuit{opacity:.26;transition:opacity .3s}.system-svg .scene-core{transform-box:fill-box;transform-origin:center}.system-svg .scene-connector{stroke-linecap:round}.visual-frame[data-selected=interface] .layer-interface .layer-surface,.visual-frame[data-selected=logic] .layer-logic .layer-surface,.visual-frame[data-selected=data] .layer-data .layer-surface{stroke:#b7432c;stroke-width:1.9;fill:#fff8ed}.visual-frame[data-selected=interface] .layer-interface .layer-circuit,.visual-frame[data-selected=logic] .layer-logic .layer-circuit,.visual-frame[data-selected=data] .layer-data .layer-circuit{opacity:.9}.visual-frame.is-expanded .layer-interface{transform:translateY(-28px)}.visual-frame.is-expanded .layer-data{transform:translateY(23px)}.scene-tracer{opacity:0}.scene-packet{opacity:0}.scene-controls{border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:stretch;gap:10px;font-family:var(--mono);font-size:9px;min-height:43px;margin-top:4px}.scene-controls>div{display:flex;gap:16px}.scene-controls button{font-size:9px;padding:11px 0;position:relative;min-height:40px;color:var(--muted)}.scene-controls button[aria-pressed=true]{color:var(--accent)}.scene-controls [data-layer-select][aria-pressed=true]:after{content:'';height:2px;left:0;right:0;bottom:-1px;background:var(--accent);position:absolute}.scene-controls #scene-expand{display:flex;align-items:center;gap:6px;color:var(--secondary)}.scene-controls #scene-expand[aria-pressed=true]{color:var(--accent)}.scene-controls #scene-expand span{font-size:14px}.visual-caption{min-height:28px;margin-top:12px}.visual-caption>span:first-child{font-size:8px;line-height:1.7;max-width:70%}.visual-caption>span:last-child{font-size:6px;align-self:flex-start;line-height:2;white-space:nowrap}
:root[data-theme=dark] .system-svg{filter:brightness(.8) saturate(.72)}.frame-mark.top{right:auto;left:-46px}.frame-mark.bottom{left:auto;right:-46px}.signal{overflow:hidden}.signal>em.signal-runner{position:absolute;width:76px;height:2px;left:-80px;top:13px;background:linear-gradient(90deg,transparent,var(--accent));opacity:0;z-index:1}.signal>em.signal-runner.reverse{top:auto;bottom:12px;left:auto;right:-80px;background:linear-gradient(90deg,var(--accent),transparent)}.section-topline{position:relative;overflow:hidden}.section-topline:after{content:'';pointer-events:none;position:absolute;bottom:0;height:2px;width:110px;background:linear-gradient(90deg,transparent,var(--accent));left:-110px;opacity:0}.capability-grid{overflow:hidden}.capability-grid:before{left:-50px}.capability-grid>div{transition:background-color .25s}.capability-grid>div:hover{background:var(--accent-soft)}.method-list li{transition:padding-left .3s,background-color .3s}.method-list li:hover{padding-left:5px;background:var(--accent-soft)}
html[data-motion=on] .scene-tracer{opacity:.7;animation:circuit-travel 5.8s linear infinite}html[data-motion=on] .scene-packet{animation:packet-flow 4.2s ease-in-out infinite}html[data-motion=on] .layer-float{animation:layer-breathe 6s ease-in-out infinite}html[data-motion=on] .layer-logic .layer-float{animation-delay:-1.4s}html[data-motion=on] .layer-data .layer-float{animation-delay:-2.8s}html[data-motion=on] .layer-circuit{animation:layer-signal 5s linear infinite}html[data-motion=on] .layer-logic .layer-circuit{animation-delay:-1.6s}html[data-motion=on] .layer-data .layer-circuit{animation-delay:-3.2s}html[data-motion=on] .scene-core{animation:core-breathe 3.8s ease-in-out infinite}html[data-motion=on] .layer-led{animation:led-breathe 3s ease-in-out infinite}html[data-motion=on] .layer-logic .layer-led{animation-delay:-1s}html[data-motion=on] .layer-data .layer-led{animation-delay:-2s}html[data-motion=on] .frame-mark.top{animation:frame-sweep 6.8s cubic-bezier(.65,0,.35,1) infinite}html[data-motion=on] .frame-mark.bottom{animation:frame-sweep-back 7.2s cubic-bezier(.65,0,.35,1) -2s infinite}html[data-motion=on] .signal-runner{animation:signal-sweep 4.8s cubic-bezier(.65,0,.35,1) infinite}html[data-motion=on] .signal-runner.reverse{animation-name:signal-sweep-back;animation-duration:5.6s;animation-delay:1.2s}html[data-motion=on] .signal>b{animation:signal-node 4s ease-in-out infinite}html[data-motion=on] .section-topline:after{animation:topline-sweep 8s cubic-bezier(.65,0,.35,1) infinite}html[data-motion=on] .capability-grid:before{animation:panel-sweep 6s ease-in-out -2s infinite}html[data-motion=on] .edge-streams>i{animation:edge-pass 7s ease-in-out infinite}html[data-motion=on] .edge-streams>i:last-child{animation-delay:-3.4s;animation-direction:reverse}
@keyframes layer-breathe{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes core-breathe{0%,100%{opacity:1;transform:translateY(0)}50%{opacity:.78;transform:translateY(-4px)}}@keyframes led-breathe{0%,100%{opacity:.35}50%{opacity:1}}@keyframes layer-signal{to{stroke-dashoffset:-320}}@keyframes circuit-travel{to{stroke-dashoffset:-846}}@keyframes packet-flow{0%,8%{opacity:0;transform:translateY(0)}18%{opacity:.8}75%{opacity:.8}94%,100%{opacity:0;transform:translateY(190px)}}@keyframes frame-sweep{0%,10%{opacity:0;left:-46px}20%,75%{opacity:1}90%,100%{opacity:0;left:100%}}@keyframes frame-sweep-back{0%,10%{opacity:0;right:-46px}20%,75%{opacity:1}90%,100%{opacity:0;right:100%}}@keyframes signal-sweep{0%,10%{left:-80px;opacity:0}20%,75%{opacity:.8}90%,100%{left:100%;opacity:0}}@keyframes signal-sweep-back{0%,10%{right:-80px;opacity:0}20%,75%{opacity:.8}90%,100%{right:100%;opacity:0}}@keyframes signal-node{0%,100%{opacity:.6;transform:rotate(45deg) scale(.85)}50%{opacity:1;transform:rotate(45deg) scale(1.1)}}@keyframes topline-sweep{0%,15%{left:-110px;opacity:0}25%,70%{opacity:.7}90%,100%{left:100%;opacity:0}}@keyframes panel-sweep{0%,15%{left:-50px;opacity:0}25%,70%{opacity:1}90%,100%{left:100%;opacity:0}}@keyframes edge-pass{0%,100%{opacity:0;translate:40% 0}40%{opacity:.18}75%{translate:-50% 0;opacity:0}}
/* Non-looping actions remain short; pointer motion only enhances fine-pointer devices. */
html[data-motion=on] .brand,html[data-motion=on] .nav-tools>a,html[data-motion=on] .nav-tools>button{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .25s cubic-bezier(.2,.8,.2,1),color .2s,border-color .2s}html[data-motion=on] .project-image{transform:perspective(900px) rotateX(var(--card-rx,0deg)) rotateY(var(--card-ry,0deg));transition:transform .4s cubic-bezier(.2,.8,.2,1);isolation:isolate}html[data-motion=on] .project-image:after{content:'';pointer-events:none;position:absolute;inset:0;z-index:1;background:radial-gradient(circle at var(--shine-x,50%) var(--shine-y,50%),#ffffff2b,transparent 65%);opacity:0;transition:opacity .3s}html[data-motion=on] .project-image:hover:after{opacity:1}html[data-motion=on] .project-image>img{transform:scale(1.015) translate(var(--image-x,0px),var(--image-y,0px));transition:transform .45s,filter .45s}html[data-motion=on] .project-image:hover>img{transform:scale(1.045) translate(var(--image-x,0px),var(--image-y,0px))}
html[data-motion=on] .form-visual>span b{animation:form-check 5s ease-in-out infinite}html[data-motion=on] .form-visual>span:nth-child(2) b{animation-delay:.5s}html[data-motion=on] .form-visual>span:nth-child(3) b{animation-delay:1s}@keyframes form-check{0%,12%{opacity:.4;translate:0 3px}25%,82%{opacity:1;translate:0 0}100%{opacity:.4;translate:0 3px}}
.site-menu nav>a{position:relative;overflow:hidden;isolation:isolate}.site-menu nav>a:before{content:'';position:absolute;inset:0;background:#eff1e8;z-index:-1;transform:translateY(102%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.site-menu nav>a:hover,.site-menu nav>a:focus-visible{color:#a6432c}.site-menu nav>a:hover:before,.site-menu nav>a:focus-visible:before{transform:translateY(0)}.site-menu nav>a:hover small,.site-menu nav>a:focus-visible small{color:#777e6e}
html[data-page-hidden=true] *,html[data-page-hidden=true] *:before,html[data-page-hidden=true] *:after,body.overlay-open .view *,body.overlay-open .view *:before,body.overlay-open .view *:after,.visual-column.is-offscreen *,.visual-column.is-offscreen *:before{animation-play-state:paused!important}html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}html[data-motion=off] #pointer-trail{visibility:hidden}html[data-motion=off] .frame-mark.top{left:auto;right:0}html[data-motion=off] .frame-mark.bottom{right:auto;left:0}html[data-motion=off] .capability-grid:before{left:calc(50% - 24px)}
@media(max-width:1149px){.nav-tools{gap:11px}.desktop-nav{gap:18px;left:45%}.scene-controls button{font-size:10px}.visual-caption>span:first-child{font-size:9px}.visual-caption>span:last-child{font-size:7px}}
@media(max-width:800px){.edge-streams{display:none}.visual-caption>span:last-child{display:none}.visual-caption>span:first-child{max-width:100%}.scene-controls>div{gap:14px}}
@media(max-width:620px){.motion-toggle{height:36px;width:34px;justify-content:center;padding:0}.motion-toggle>span,.motion-toggle>i{display:none}.motion-toggle>svg{width:16px;height:16px}.nav-tools{gap:11px}.system-svg{transform:none!important}.scene-controls{min-height:48px}.scene-controls button{min-height:44px;font-size:11px}.scene-controls>div{gap:24px}.visual-caption>span:first-child{font-size:10px}.signal{margin-top:13px}}
@media(hover:none),(pointer:coarse){#pointer-trail{display:none}.project-image,.system-svg{transform:none!important}.project-image:after{display:none}.brand,.nav-tools>a,.nav-tools>button{translate:0 0!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}#pointer-trail,.edge-streams{display:none!important}.system-svg,.project-image{transform:none!important}.brand,.nav-tools>a,.nav-tools>button{translate:0 0!important}}
@media print{#pointer-trail,.edge-streams,.motion-only{display:none!important}*,*:before,*:after{animation:none!important}}
