.r3-edge{position:fixed;inset:0;pointer-events:none;z-index:1250}
.r3-edge__a{position:absolute;pointer-events:auto;display:flex;align-items:center;justify-content:center;gap:10px;min-width:44px;min-height:44px;font:10px/1.5 var(--mono,ui-monospace,monospace);letter-spacing:.16em;text-transform:uppercase;color:#c4c4ca;text-decoration:none;text-shadow:0 2px 9px #000;background:rgba(0,0,0,.35);transition:color .2s,background .2s}
.r3-edge__a:hover{color:var(--orange,#e8432e);background:rgba(0,0,0,.7)}
.r3-edge__a:focus-visible,.r3-edge-m a:focus-visible{outline:2px solid var(--orange,#e8432e);outline-offset:5px}
.r3-edge__ar{font:28px/1 var(--body,system-ui,sans-serif);font-weight:300;color:var(--orange,#e8432e)}
.r3-edge--l{left:0;top:50%;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);padding:18px 10px;border-left:1px solid rgba(255,0,0,.35)}
.r3-edge--l .r3-edge__ar{writing-mode:horizontal-tb;transform:rotate(180deg)}
.r3-edge--r{right:0;top:50%;writing-mode:vertical-rl;transform:translateY(-50%);padding:18px 10px;border-left:1px solid rgba(255,0,0,.35)}
.r3-edge--r .r3-edge__ar{writing-mode:horizontal-tb}
.r3-edge--u{left:50%;top:88px;transform:translateX(-50%);flex-direction:column;gap:2px;border-top:1px solid rgba(255,0,0,.35);padding:6px 20px}
.r3-edge--d{bottom:16px;left:50%;transform:translateX(-50%);flex-direction:column;gap:3px;padding:7px 20px;border-bottom:1px solid rgba(255,0,0,.35)}
.r3-edge-m{display:none}
@media(max-width:900px){
.r3-edge{display:none}
.r3-edge-m{position:fixed;inset:auto 0 0;z-index:1250;display:flex;justify-content:space-around;background:rgba(0,0,0,.94);border-top:1px solid rgba(255,0,0,.25);padding:7px 4px calc(7px + env(safe-area-inset-bottom));backdrop-filter:blur(12px)}
.r3-edge-m a{min-height:44px;padding:0 7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--orange,#e8432e);font:16px/1.2 var(--mono,monospace);text-decoration:none}
.r3-edge-m a span{font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#9a9aa2)}
.r3-edge-m a[aria-current] span{color:var(--fg,#fff)}
.r3-edge-m a[aria-current]{border-top:1px solid var(--orange,#e8432e)}
body{padding-bottom:64px}
}
/* Old side rails + mega menu are replaced by the edge navigation on every sub-page */
.r3-rail,.r3-mega,.r3-scroll{display:none!important}
.r3-edge--u{top:14px}
/* slide transitions: "l" = travelling left on the canvas (page slides right), "r" = travelling right */
html{--r3-slide:.33s cubic-bezier(.4,0,.2,1)}
html.r3-out-l,html.r3-out-r,html.r3-in-l,html.r3-in-r{overflow-x:hidden}
html.r3-out-l body,html.r3-out-r body{transition:transform var(--r3-slide),opacity var(--r3-slide)}
html.r3-out-l body{transform:translateX(18vw);opacity:0}
html.r3-out-r body{transform:translateX(-18vw);opacity:0}
@keyframes r3-in-from-left{from{transform:translateX(-18vw);opacity:0}to{transform:none;opacity:1}}
@keyframes r3-in-from-right{from{transform:translateX(18vw);opacity:0}to{transform:none;opacity:1}}
html.r3-in-l body{animation:r3-in-from-left .4s cubic-bezier(.2,.7,.2,1)}
html.r3-in-r body{animation:r3-in-from-right .4s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){html.r3-out-l body,html.r3-out-r body{transition:none}html.r3-in-l body,html.r3-in-r body{animation:none}}
/* Equipment page: quick category tabs down the right edge */
.r3-qtabs{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:1240;display:flex;flex-direction:column;gap:6px}
.r3-qtab{writing-mode:vertical-rl;display:flex;align-items:center;justify-content:center;min-width:40px;padding:16px 9px;font:10px/1.2 var(--mono,ui-monospace,monospace);letter-spacing:.16em;text-transform:uppercase;color:#c4c4ca;text-decoration:none;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.12);border-right:0;border-radius:8px 0 0 8px;transition:color .2s,background .2s,padding .2s,border-color .2s}
.r3-qtab:hover,.r3-qtab:focus-visible{color:#fff;background:rgba(241,54,41,.85);border-color:#f13629;padding-right:16px;outline:0}
.r3-qtab.is-on{color:#fff;background:#f13629;border-color:#f13629}
@media(max-width:900px){
.r3-qtabs{top:auto;bottom:calc(64px + env(safe-area-inset-bottom));left:0;right:0;transform:none;flex-direction:row;overflow-x:auto;gap:6px;padding:6px 10px;background:rgba(0,0,0,.85);scrollbar-width:none}
.r3-qtabs::-webkit-scrollbar{display:none}
.r3-qtab{writing-mode:horizontal-tb;flex:0 0 auto;padding:9px 14px;border:1px solid rgba(255,255,255,.18);border-radius:999px;min-width:0}
}
/* Floating phone: bottom-left, red, with a ring pulse and a periodic "ringing" shake */
body.r3 .r3-call-toggle{right:auto;left:18px;bottom:max(18px,env(safe-area-inset-bottom));z-index:1240}
body.r3 .r3-call-toggle button.r3-callpill{position:relative;width:52px;height:52px;min-width:52px;min-height:52px;background:#f13629;border:0;color:#fff;box-shadow:0 6px 22px rgba(241,54,41,.45);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
body.r3 .r3-call-toggle button.r3-callpill:hover,body.r3 .r3-call-toggle button.r3-callpill[aria-expanded="true"]{background:#ff4a3d;transform:scale(1.1);box-shadow:0 8px 28px rgba(241,54,41,.65)}
body.r3 .r3-call-toggle button.r3-callpill svg{width:22px;height:22px;transform-origin:50% 50%;animation:r3-ring 5s ease-in-out infinite}
body.r3 .r3-call-toggle button.r3-callpill::before,body.r3 .r3-call-toggle button.r3-callpill::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #f13629;opacity:0;animation:r3-pulse 2.6s ease-out infinite;pointer-events:none}
body.r3 .r3-call-toggle button.r3-callpill::after{animation-delay:1.3s}
body.r3 .r3-call-popover{right:auto;left:0;bottom:64px;transform-origin:0 100%;animation:r3-pop .22s cubic-bezier(.2,.8,.2,1)}
@keyframes r3-pulse{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.9);opacity:0}}
@keyframes r3-ring{0%,60%,100%{transform:rotate(0)}64%{transform:rotate(-16deg)}68%{transform:rotate(14deg)}72%{transform:rotate(-12deg)}76%{transform:rotate(10deg)}80%{transform:rotate(-6deg)}84%{transform:rotate(0)}}
@keyframes r3-pop{from{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:none}}
@media(max-width:900px){body.r3 .r3-call-toggle{bottom:calc(76px + env(safe-area-inset-bottom));left:14px}body.r3:has(.r3-qtabs) .r3-call-toggle{bottom:calc(128px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){body.r3 .r3-call-toggle button.r3-callpill svg,body.r3 .r3-call-toggle button.r3-callpill::before,body.r3 .r3-call-toggle button.r3-callpill::after,body.r3 .r3-call-popover{animation:none}}

/* Contact tab: hangs under the logo in the top-left corner. Drops in from the corner on load; on hover it slides diagonally up-left. */
.r3-edge__a.r3-edge--u{left:0!important;right:auto!important;top:80px!important;bottom:auto!important;transform:translate(10px,10px);flex-direction:row!important;gap:10px!important;padding:10px 18px 10px 16px!important;border:0!important;border-left:2px solid #f13629!important;border-bottom:1px solid rgba(255,0,0,.35)!important;background:rgba(0,0,0,.72)!important;transition:transform .35s cubic-bezier(.2,.8,.2,1),color .2s,background .2s;animation:r3-contact-drop .8s cubic-bezier(.2,.8,.2,1) .4s backwards}
.r3-edge__a.r3-edge--u::before{content:"";position:absolute;right:100%;bottom:100%;width:12px;height:12px;background:rgba(0,0,0,.72)}
.r3-edge__a.r3-edge--u:hover,.r3-edge__a.r3-edge--u:focus-visible{transform:translate(0,0);color:#fff!important;background:rgba(241,54,41,.9)!important}
.r3-edge__a.r3-edge--u:hover::before,.r3-edge__a.r3-edge--u:focus-visible::before{background:rgba(241,54,41,.9)}
.r3-edge__a.r3-edge--u .r3-edge__ar{font-size:22px;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.r3-edge__a.r3-edge--u:hover .r3-edge__ar,.r3-edge__a.r3-edge--u:focus-visible .r3-edge__ar{transform:translate(-4px,-4px);color:#fff}
@keyframes r3-contact-drop{from{transform:translate(-120%,-140%);opacity:0}to{transform:translate(10px,10px);opacity:1}}
@media(prefers-reduced-motion:reduce){.r3-edge__a.r3-edge--u{animation:none}}
/* Contact is "up-left": hover nudges the screen down-right; click slides it fully away diagonally. */
body.r3>:not(.r3-edge):not(.r3-edge-m):not(.r3-qtabs):not(.r3-call-toggle):not(script):not(style):not(link):not(canvas):not(aside):not(dialog){transition:translate .45s cubic-bezier(.2,.8,.2,1)}
html.r3-peek body.r3>:not(.r3-edge):not(.r3-edge-m):not(.r3-qtabs):not(.r3-call-toggle):not(script):not(style):not(link):not(canvas):not(aside):not(dialog){translate:26px 26px}
html.r3-out-u,html.r3-in-u{overflow:hidden}
html.r3-out-u body{transition:transform .4s cubic-bezier(.4,0,.2,1),opacity .4s;transform:translate(32vw,32vh);opacity:0}
@keyframes r3-in-from-upleft{from{transform:translate(-32vw,-32vh);opacity:0}to{transform:none;opacity:1}}
html.r3-in-u body{animation:r3-in-from-upleft .45s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){html.r3-out-u body{transition:none}html.r3-in-u body{animation:none}html.r3-peek body.r3>*{translate:none!important}}
