/* Linx Networks Ltd — data cabling landing page */
:root{--bg:#07121e;--bg2:#0a1928;--panel:#0d2030;--ink:#eef7ff;--muted:#9aafc2;--teal:#0099a8;--cyan:#55f0e4;--line:rgba(162,203,226,.16);--orange:#f15a42;--yellow:#ffc72c;--max:1200px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:#f7fafc;color:#102334;font-family:"DM Sans",Arial,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.wrap{width:min(var(--max),calc(100% - 48px));margin-inline:auto}.skip-link{position:absolute;top:-100px;left:16px;background:white;color:#07121e;padding:12px;z-index:1000}.skip-link:focus{top:12px}.topline{background:#030a12;color:#9db3c4;font-size:.76rem;letter-spacing:.04em}.topline-inner{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:16px}.topline a{color:#d8f7f5}.status-dot,.pulse,.form-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan);margin-right:8px}.site-header{position:sticky;top:0;z-index:50;background:rgba(5,15,25,.92);backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08);color:white}.nav-wrap{height:78px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}.brand-mark{width:32px;height:32px;display:grid;grid-template-columns:repeat(2,1fr);gap:3px;transform:rotate(-8deg)}.brand-mark span{background:var(--cyan);border-radius:2px}.brand-mark span:nth-child(2),.brand-mark span:nth-child(3){background:var(--orange)}.brand-name{font:700 1.02rem "Space Grotesk",sans-serif;letter-spacing:.12em;line-height:1.1}.brand-name span{display:block;font:500 .57rem "DM Sans",sans-serif;letter-spacing:.35em;color:#94aabc;margin-top:4px}.nav-links{display:flex;align-items:center;gap:30px;font-size:.88rem;color:#bdcbd8}.nav-links>a:not(.nav-cta):hover{color:var(--cyan)}.nav-cta{background:var(--teal);color:white;padding:12px 17px;border-radius:4px;transition:transform .2s,background .2s}.nav-cta:hover,.btn-primary:hover{background:#08aebb;transform:translateY(-2px)}.menu-toggle{display:none;background:transparent;border:1px solid #385064;border-radius:4px;width:44px;height:42px;padding:10px;cursor:pointer}.menu-toggle span{display:block;height:2px;background:white;margin:5px 0;transition:.25s}
.hero{position:relative;overflow:hidden;background:var(--bg);color:white;min-height:660px;padding:88px 0 22px}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(98,163,196,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(98,163,196,.055) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,black,transparent 90%);pointer-events:none}.orb{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}.orb-one{width:420px;height:420px;right:-90px;top:20px;background:radial-gradient(circle,rgba(0,153,168,.15),transparent 70%)}.orb-two{width:340px;height:340px;left:-180px;bottom:-150px;background:radial-gradient(circle,rgba(241,90,66,.12),transparent 70%)}.hero-layout{position:relative;display:grid;grid-template-columns:1.02fr .98fr;align-items:center;gap:35px;min-height:510px}.hero-copy{padding:22px 0 35px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.18em;font-weight:700;color:#76dcd8}.eyebrow-line{width:27px;height:1px;background:var(--orange);display:inline-block}.hero h1,.section h2,.band-copy h2,.contact-copy h2{font:600 clamp(2.7rem,5vw,4.7rem)/1.05 "Space Grotesk",sans-serif;letter-spacing:-.055em;margin:23px 0}.hero h1{max-width:670px}.gradient-text{background:linear-gradient(105deg,#fff 0%,#73f2e8 45%,#29b6cb 75%,#f15a42 130%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-lead{max-width:590px;color:#a9bdcd;font-size:1.07rem;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:15px 20px;font-weight:700;font-size:.88rem;border:1px solid transparent;border-radius:3px;cursor:pointer;transition:transform .2s,background .2s,border-color .2s}.btn-primary{background:var(--teal);color:white;box-shadow:0 9px 30px rgba(0,153,168,.15)}.text-link{color:#c6f5f0;font-size:.88rem;font-weight:600}.text-link span{margin-left:8px;color:var(--cyan)}.hero-proof{display:flex;gap:13px;align-items:center;margin-top:42px;padding-top:20px;border-top:1px solid var(--line);max-width:490px}.proof-icon{width:37px;height:37px;display:grid;place-items:center;border:1px solid #2a5965;border-radius:50%;font-size:1.35rem;color:var(--cyan)}.hero-proof p{font-size:.8rem;color:#9eb2c2;line-height:1.5;margin:0}.hero-proof strong{color:#edf8fc;font-size:.86rem}.hero-visual{position:relative;min-height:465px;display:flex;align-items:center;justify-content:center}.visual-label{position:absolute;z-index:4;color:#8da9bb;font-size:.61rem;letter-spacing:.13em;display:flex;gap:8px;align-items:center}.label-top{top:18px;left:14px}.label-bottom{bottom:13px;left:15px;right:15px;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}.network-art{position:relative;width:min(100%,570px);height:430px}.network-ring{position:absolute;border:1px solid rgba(66,204,204,.14);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%) rotateX(62deg);}.ring-a{width:440px;height:350px}.ring-b{width:350px;height:270px}.ring-c{width:250px;height:190px}.network-lines{position:absolute;width:100%;height:100%;inset:0;overflow:visible;animation:lineFloat 7s ease-in-out infinite}.server-rack{position:absolute;z-index:2;width:116px;height:220px;left:50%;top:50%;transform:translate(-50%,-44%);background:linear-gradient(120deg,#1a3549,#091521);border:1px solid #3c7082;border-radius:5px;padding:10px;box-shadow:0 0 45px rgba(0,216,207,.12),inset 0 0 18px rgba(0,0,0,.8);animation:rackFloat 5s ease-in-out infinite}.rack-top{height:9px;display:flex;gap:5px;margin-bottom:8px}.rack-top span{width:5px;height:5px;border-radius:50%;background:var(--cyan)}.rack-unit{height:34px;border:1px solid #34556a;background:#0a1825;margin:5px 0;display:flex;align-items:center;gap:5px;padding:0 5px}.rack-unit i{width:6px;height:6px;border-radius:50%;background:#48e7c8;box-shadow:0 0 7px #48e7c8}.rack-unit b{height:3px;flex:1;background:#31546b}.rack-base{height:8px;border-top:2px solid #31546b;margin-top:5px}.node{position:absolute;z-index:3;width:90px;height:76px;border:1px solid rgba(92,220,219,.35);background:rgba(8,26,39,.88);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-shadow:0 12px 25px #02091180;animation:nodeFloat 5s ease-in-out infinite}.node-symbol{font-size:1.55rem;color:var(--cyan)}.node small{font-size:.48rem;letter-spacing:.1em;color:#9cb9c7}.node-a{left:5%;top:17%}.node-b{right:4%;top:14%;animation-delay:-1.4s}.node-c{right:6%;bottom:12%;animation-delay:-2.5s}.hero-bottom{position:relative;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;color:#617d90;font-size:.62rem;letter-spacing:.14em}.scroll-hint{color:#9eb5c6}.scroll-hint span{color:var(--cyan);margin-left:8px}
.trust-strip{background:#fff;border-bottom:1px solid #e4ebf0}.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:24px 0;gap:18px}.trust-grid>div{display:flex;align-items:center;gap:14px;border-right:1px solid #e4ebf0;padding-right:10px}.trust-grid>div:last-child{border:0}.trust-number{font:600 1.35rem "Space Grotesk",sans-serif;color:var(--teal)}.trust-grid p{font-size:.82rem;font-weight:600;margin:0;color:#31495b}
.section{padding:105px 0}.services-section,.usecases-section{background:#f7fafc}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-bottom:44px}.section-heading .eyebrow,.faq-intro .eyebrow{color:#008b97}.section h2,.contact-copy h2,.band-copy h2{font-size:clamp(2.3rem,4vw,3.7rem);color:#0b1d2c;margin:17px 0 0}.muted-heading{color:#8ca1b1}.section-heading>p{max-width:390px;color:#627789;margin:0 0 7px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.service-card{background:#fff;border:1px solid #e0e9ee;padding:26px 23px 23px;min-height:370px;display:flex;flex-direction:column;transition:transform .25s,border-color .25s,box-shadow .25s}.service-card:hover{transform:translateY(-6px);border-color:#8ddbdc;box-shadow:0 18px 40px rgba(16,53,73,.08)}.card-top{display:flex;justify-content:space-between;align-items:center}.service-icon{width:46px;height:46px;border:1px solid #c7ecea;background:#edfbfa;color:#008f99;display:grid;place-items:center;font-size:1.5rem}.card-index{font-size:.6rem;letter-spacing:.1em;color:#8399a8}.service-card h3{font:600 1.24rem/1.25 "Space Grotesk",sans-serif;margin:25px 0 10px;color:#112a3c}.service-card p,.service-card li{font-size:.83rem;color:#687d8d}.service-card ul{padding-left:17px;margin:10px 0 24px}.service-card li{padding:3px 0}.card-link{display:flex;justify-content:space-between;align-items:center;margin-top:auto;border-top:1px solid #e8eef2;padding-top:16px;color:#007f8b;font-size:.78rem;font-weight:700}.card-link span{font-size:1.1rem}
.dark-band{background:#07121e;color:white;padding:100px 0;position:relative;overflow:hidden}.dark-band:before{content:"";position:absolute;width:500px;height:500px;right:-250px;top:-250px;border:1px solid rgba(0,216,207,.16);border-radius:50%;box-shadow:0 0 0 45px rgba(0,216,207,.025),0 0 0 95px rgba(0,216,207,.02)}.band-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:90px;position:relative}.band-copy h2{color:white;max-width:550px}.band-copy>p{max-width:510px;color:#9bb0c0;line-height:1.8;margin:24px 0 29px}.btn-outline{border-color:#46616f;color:white}.btn-outline:hover{border-color:var(--cyan);background:rgba(0,216,207,.07)}.benefit-list{border-top:1px solid var(--line)}.benefit{display:grid;grid-template-columns:45px 1fr;gap:16px;padding:23px 0;border-bottom:1px solid var(--line)}.benefit>span{font:600 1.1rem "Space Grotesk",sans-serif;color:var(--cyan)}.benefit h3{font:600 1.2rem "Space Grotesk",sans-serif;margin:0 0 6px}.benefit p{margin:0;color:#9bb0c0;font-size:.88rem;max-width:480px}
.usecase-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #dbe5eb}.usecase{display:grid;grid-template-columns:40px 1fr 20px;gap:14px;align-items:start;padding:25px 18px 25px 0;border-bottom:1px solid #dbe5eb;transition:background .2s}.usecase:nth-child(odd){margin-right:30px}.usecase:nth-child(even){padding-left:25px;border-left:1px solid #dbe5eb}.usecase>span{font:600 .85rem "Space Grotesk",sans-serif;color:#0099a8}.usecase h3{margin:0 0 7px;font:600 1.12rem "Space Grotesk",sans-serif}.usecase p{margin:0;color:#6b7f8d;font-size:.84rem}.usecase>b{color:#0099a8;font-size:1.1rem}.process-section{background:#fff}.process-track{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.process-step{position:relative}.step-no{font:600 2.5rem "Space Grotesk",sans-serif;color:#d5e5e9}.step-line{height:2px;background:linear-gradient(90deg,#0099a8,#dce9ed);margin:13px 0 23px;position:relative}.step-line:before{content:"";position:absolute;width:8px;height:8px;background:#0099a8;top:-3px;left:0;border-radius:50%;box-shadow:0 0 0 5px #e4f7f6}.process-step h3{font:600 1.15rem "Space Grotesk",sans-serif;margin:0 0 8px}.process-step p{font-size:.85rem;color:#6c8090;margin:0;max-width:245px}
.faq-section{background:#edf4f7}.faq-layout{display:grid;grid-template-columns:.75fr 1.25fr;gap:90px}.faq-intro h2{font:600 clamp(2.3rem,4vw,3.3rem)/1.1 "Space Grotesk",sans-serif;letter-spacing:-.04em;margin:20px 0}.faq-intro p{color:#657c8d;max-width:340px;margin-bottom:25px}.faq-intro .text-link{color:#007f8b}.faq-list details{border-bottom:1px solid #cfdee5}.faq-list details:first-child{border-top:1px solid #cfdee5}.faq-list summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 0;font-weight:700;color:#142c3e}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{font-size:1.4rem;color:#0099a8;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{color:#617889;font-size:.9rem;margin:0;padding:0 35px 20px 0;max-width:680px}
.contact-section{position:relative;overflow:hidden;background:#07121e;color:white;padding:100px 0}.contact-glow{position:absolute;width:650px;height:650px;right:-300px;bottom:-400px;border-radius:50%;background:radial-gradient(circle,rgba(0,153,168,.22),transparent 70%)}.contact-layout{position:relative;display:grid;grid-template-columns:1fr .8fr;gap:90px;align-items:start}.contact-copy h2{color:white;max-width:600px}.contact-copy>p{color:#9bb0c0;max-width:520px;line-height:1.8;margin:23px 0 30px}.contact-details{border-top:1px solid var(--line);max-width:490px}.contact-details>a,.contact-details>div{display:flex;flex-direction:column;align-items:flex-start;position:relative;border-bottom:1px solid var(--line);padding:15px 30px 15px 0;font-size:.87rem;color:#e5f0f5}.contact-details span{font-size:.6rem;letter-spacing:.15em;color:#79d9d6;margin-bottom:5px}.contact-details b{position:absolute;right:5px;top:24px;color:var(--cyan)}.contact-form{background:#0c1e2d;border:1px solid #284354;padding:28px;box-shadow:0 20px 60px #0002}.form-head{display:flex;align-items:center;justify-content:space-between;font-size:.68rem;letter-spacing:.16em;color:#8fa9ba;margin-bottom:23px}.form-dot{margin:0}.contact-form label{display:block;font-size:.77rem;color:#c4d4de;margin:14px 0 7px}.contact-form input,.contact-form textarea{width:100%;border:1px solid #2b4557;background:#071521;color:white;padding:12px 13px;border-radius:2px;outline:none;font-size:.86rem}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(85,240,228,.09)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#60798a}.contact-form textarea{resize:vertical}.form-submit{width:100%;margin-top:18px}.form-note,.form-status{font-size:.68rem;color:#8ba2b2;line-height:1.5}.form-status{color:var(--cyan)}
.site-footer{background:#030a12;color:#8ca3b4}.footer-main{display:flex;align-items:center;gap:28px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.1)}.footer-main>p{margin:0;font-size:.82rem}.back-top{margin-left:auto;font-size:.68rem;letter-spacing:.1em;color:#b5c8d4}.footer-bottom{display:flex;justify-content:space-between;gap:20px;padding:17px 0;font-size:.68rem}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes rackFloat{0%,100%{transform:translate(-50%,-44%)}50%{transform:translate(-50%,-47%)}}@keyframes nodeFloat{0%,100%{translate:0 0}50%{translate:0 -9px}}@keyframes lineFloat{0%,100%{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}
@media(max-width:1000px){.hero-layout{grid-template-columns:1fr .9fr;gap:10px}.hero h1{font-size:clamp(2.8rem,5vw,4rem)}.service-grid{grid-template-columns:repeat(2,1fr)}.band-layout,.contact-layout{gap:45px}.faq-layout{gap:45px}.nav-links{gap:18px}.network-art{transform:scale(.9)}}@media(max-width:760px){.wrap{width:min(100% - 36px,var(--max))}.topline-inner{font-size:.66rem}.topline-inner>a{display:none}.nav-wrap{height:70px}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:70px;left:0;right:0;background:#07121e;padding:16px 22px 24px;border-bottom:1px solid #2b4352;flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex}.nav-links>a{padding:13px 4px}.nav-links .nav-cta{text-align:center;margin-top:8px}.hero{padding-top:53px;min-height:0}.hero-layout{grid-template-columns:1fr;gap:8px}.hero-copy{padding:10px 0 0}.hero h1{font-size:clamp(2.8rem,12vw,4.2rem)}.hero-lead{font-size:.98rem}.hero-visual{min-height:390px;margin-top:0}.network-art{height:365px;transform:scale(.85)}.hero-bottom{font-size:.54rem}.trust-grid{grid-template-columns:repeat(2,1fr);padding:18px 0}.trust-grid>div{border:0;padding:7px 0}.trust-grid p{font-size:.76rem}.section{padding:75px 0}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:18px}.service-grid{grid-template-columns:1fr}.service-card{min-height:0}.dark-band,.contact-section{padding:75px 0}.band-layout,.contact-layout,.faq-layout{grid-template-columns:1fr;gap:45px}.band-copy h2,.contact-copy h2,.section h2{font-size:clamp(2.4rem,10vw,3.4rem)}.usecase-grid{grid-template-columns:1fr}.usecase:nth-child(odd){margin-right:0}.usecase:nth-child(even){padding-left:0;border-left:0}.process-track{grid-template-columns:repeat(2,1fr);row-gap:35px}.faq-layout{gap:25px}.contact-form{padding:22px}.footer-main{flex-wrap:wrap;gap:15px}.footer-main>p{width:100%;order:3}.back-top{margin-left:auto}.footer-bottom{flex-direction:column;gap:5px}.label-top{left:0}.label-bottom{left:0;right:0}.node-a{left:0}.node-b{right:0}.node-c{right:0}}@media(max-width:420px){.wrap{width:calc(100% - 30px)}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.hero-visual{min-height:330px}.network-art{transform:scale(.7);width:140%;margin-inline:-20%}.label-bottom{font-size:.49rem}.trust-grid{gap:7px}.trust-number{font-size:1.1rem}.trust-grid p{font-size:.7rem}.process-track{grid-template-columns:1fr}.process-step p{max-width:none}.usecase{grid-template-columns:28px 1fr 15px}.contact-details>div{line-height:1.6}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Attached Linx Networks menu system */
.brand-logo{width:42px;height:42px;object-fit:contain;display:block}.brand:has(.brand-logo:not([src])) .brand-logo{display:none}
.nav-links{gap:clamp(9px,1.25vw,19px);font-size:.79rem}.nav-simple{white-space:nowrap}.nav-dropdown{position:relative}.nav-trigger{appearance:none;border:0;background:transparent;color:#bdcbd8;font:inherit;white-space:nowrap;padding:12px 0;cursor:pointer;display:flex;align-items:center;gap:7px}.nav-trigger:hover,.nav-trigger[aria-expanded="true"],.nav-trigger.active{color:var(--cyan)}.chevron{font-size:1rem;transition:transform .2s}.nav-trigger[aria-expanded="true"] .chevron{transform:rotate(180deg)}.dropdown-panel{position:absolute;top:calc(100% + 13px);left:-15px;min-width:245px;padding:18px;background:rgba(5,17,28,.98);border:1px solid rgba(85,240,228,.24);box-shadow:0 20px 50px #0008;border-radius:5px;display:none;grid-template-columns:1fr;gap:16px;z-index:80;backdrop-filter:blur(18px)}.nav-dropdown.is-open .dropdown-panel,.nav-dropdown:hover .dropdown-panel,.nav-dropdown:focus-within .dropdown-panel{display:grid}.dropdown-panel-right{left:auto;right:0}.dropdown-group{display:grid;gap:7px}.dropdown-group strong{font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;color:var(--cyan);padding-bottom:7px;border-bottom:1px solid var(--line)}.dropdown-group a{font-size:.79rem;color:#c1d0dc;padding:5px 0;white-space:normal}.dropdown-group a:hover{color:white;transform:translateX(3px)}
@media(min-width:761px){.nav-dropdown:hover .dropdown-panel{display:grid}.nav-dropdown:hover .nav-trigger .chevron{transform:rotate(180deg)}}
@media(max-width:1200px) and (min-width:761px){.nav-wrap{width:calc(100% - 30px)}.brand{gap:7px}.brand-logo{width:32px;height:32px}.brand-mark{display:none}.brand-name{font-size:.83rem}.brand-name span{font-size:.48rem}.nav-links{gap:10px;font-size:.71rem}.nav-cta{padding:10px 11px}}
@media(max-width:760px){.nav-links{top:70px;left:0;right:0;max-height:calc(100vh - 70px);overflow-y:auto;align-items:stretch;gap:0;padding:12px 20px 24px}.nav-links>a,.nav-trigger{display:flex;width:100%;text-align:left;padding:13px 2px;border-bottom:1px solid rgba(255,255,255,.07);font-size:.9rem}.nav-dropdown{border-bottom:1px solid rgba(255,255,255,.07)}.nav-trigger{justify-content:space-between;border-bottom:0}.dropdown-panel,.dropdown-panel-right{position:static;min-width:0;padding:12px 15px 15px;margin:0 0 12px;border-radius:3px;box-shadow:none;background:#091a29;display:none}.nav-dropdown.is-open .dropdown-panel{display:grid}.nav-dropdown:hover .dropdown-panel{display:none}.nav-dropdown:hover.is-open .dropdown-panel{display:grid}.nav-cta{justify-content:center;margin-top:15px;padding:14px}.brand-logo{width:34px;height:34px}.brand-mark{display:none}}


/* Navigation implementation: full desktop dropdowns and tap-friendly mobile menus */
.brand-logo{display:block;width:auto;height:42px;max-width:170px;object-fit:contain}
.nav-wrap{gap:20px}
.nav-links{gap:clamp(10px,1.2vw,20px)}
.nav-dropdown{position:relative;display:flex;align-items:center}
.nav-trigger{font:inherit;color:var(--text,#eef7ff);background:transparent;border:0;cursor:pointer;padding:12px 2px;white-space:nowrap}
.nav-trigger:hover,.nav-trigger:focus-visible,.nav-links>a:hover{color:var(--cyan,#00d8cf)}
.chevron{display:inline-block;margin-left:4px;transition:transform .2s ease}
.nav-dropdown.is-open .chevron{transform:rotate(180deg)}
.dropdown-panel{position:absolute;top:calc(100% + 10px);left:0;z-index:1000;display:none;min-width:230px;padding:12px;background:rgba(7,18,30,.98);border:1px solid rgba(124,247,237,.2);border-radius:14px;box-shadow:0 22px 60px rgba(0,0,0,.4);backdrop-filter:blur(18px)}
.nav-dropdown:hover>.dropdown-panel,.nav-dropdown:focus-within>.dropdown-panel,.nav-dropdown.is-open>.dropdown-panel{display:flex;flex-direction:column}
.dropdown-panel a{display:block;padding:10px 12px;border-radius:8px;color:var(--muted,#b9c9d8);font-size:.9rem;white-space:nowrap}
.dropdown-panel a:hover,.dropdown-panel a:focus-visible{background:rgba(0,216,207,.1);color:#fff}
.dropdown-group{display:flex;flex-direction:column;min-width:180px}
.dropdown-heading{padding:10px 12px 6px;color:var(--cyan,#00d8cf);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.dropdown-group+.dropdown-group{border-left:1px solid rgba(255,255,255,.1);margin-left:8px;padding-left:8px}
@media(min-width:1101px){.nav-dropdown:has(.dropdown-group)>.dropdown-panel{flex-direction:row;min-width:600px}}
@media(max-width:1100px){
  .nav-wrap{flex-wrap:wrap}
  .menu-toggle{display:flex}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 90px);overflow:auto;flex-direction:column;align-items:stretch;gap:0;padding:14px 22px 24px;background:rgba(5,15,26,.99);border-top:1px solid rgba(124,247,237,.15);box-shadow:0 22px 50px rgba(0,0,0,.4)}
  .nav-links.open{display:flex}
  .nav-links>a,.nav-trigger{display:flex;width:100%;align-items:center;justify-content:space-between;padding:13px 8px;text-align:left}
  .nav-dropdown{display:block;width:100%}
  .dropdown-panel{position:static;min-width:0;width:100%;padding:4px 8px 10px;margin:0 0 8px;border-radius:10px;box-shadow:none;background:rgba(255,255,255,.035);backdrop-filter:none}
  .nav-dropdown:hover>.dropdown-panel{display:none}
  .nav-dropdown.is-open>.dropdown-panel,.nav-dropdown:focus-within>.dropdown-panel{display:flex}
  .dropdown-group{min-width:0}
  .dropdown-group+.dropdown-group{border-left:0;margin-left:0;padding-left:0}
  .dropdown-panel a{white-space:normal}
}
@media(max-width:560px){.brand-logo{height:34px;max-width:125px}.brand-name{font-size:.9rem}}


/* Dedicated Discuss a Project page */
.discuss-hero{position:relative;overflow:hidden;padding:82px 0 65px;border-bottom:1px solid var(--line)}
.discuss-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 82% 10%,rgba(0,216,207,.14),transparent 40%),linear-gradient(135deg,rgba(9,27,43,.25),transparent 65%);pointer-events:none}
.discuss-hero-grid{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:55px;align-items:center}
.discuss-hero h1{font-size:clamp(3rem,6.5vw,5.7rem);line-height:.99;letter-spacing:-.065em;margin:22px 0 24px;max-width:780px}
.discuss-hero p{max-width:650px;color:var(--muted);font-size:1.05rem;line-height:1.8}
.discuss-kicker{display:inline-flex;align-items:center;gap:10px;color:var(--cyan);font-size:.7rem;letter-spacing:.17em;text-transform:uppercase}
.discuss-kicker:before{content:"";width:28px;height:1px;background:var(--cyan)}
.discuss-visual{min-height:365px;position:relative;display:grid;place-items:center}
.orbit{position:absolute;border:1px solid rgba(85,240,228,.19);border-radius:50%;width:min(100%,370px);aspect-ratio:1;animation:orbitSpin 24s linear infinite}
.orbit:before,.orbit:after{content:"";position:absolute;width:9px;height:9px;background:var(--cyan);border-radius:50%;box-shadow:0 0 20px var(--cyan)}
.orbit:before{top:12%;left:20%}.orbit:after{bottom:14%;right:16%;background:var(--orange);box-shadow:0 0 20px var(--orange)}
.orbit.orbit-two{width:min(78%,285px);animation-direction:reverse;border-style:dashed;opacity:.7}
.project-core{width:175px;height:175px;border-radius:28px;border:1px solid rgba(85,240,228,.38);background:linear-gradient(145deg,rgba(14,42,58,.96),rgba(4,15,26,.98));box-shadow:0 0 80px rgba(0,216,207,.13),inset 0 0 40px rgba(0,216,207,.08);display:grid;place-items:center;text-align:center;transform:rotate(-6deg)}
.project-core strong{display:block;color:#f4ffff;font-family:'Space Grotesk',sans-serif;font-size:1.15rem;letter-spacing:-.04em}
.project-core span{display:block;color:var(--cyan);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;margin-top:8px}
.core-symbol{font-size:2.4rem;color:var(--cyan);line-height:1;margin-bottom:10px;text-shadow:0 0 20px rgba(85,240,228,.7)}
.discuss-main{padding:70px 0 100px}
.discuss-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:55px;align-items:start}
.discuss-sidebar h2{font-size:clamp(2rem,3vw,3.15rem);line-height:1.08;letter-spacing:-.055em;margin:15px 0}
.discuss-sidebar>p{color:var(--muted);line-height:1.8}
.office-card{padding:21px 0;border-bottom:1px solid var(--line)}
.office-card h3{font-size:.77rem;letter-spacing:.14em;color:var(--cyan);text-transform:uppercase;margin:0 0 10px}
.office-card p{font-size:.9rem;line-height:1.7;color:#c2d1dc;margin:0}
.office-card a{color:#edfaff;overflow-wrap:anywhere}
.contact-method{display:flex;gap:13px;align-items:flex-start;padding:17px 0;border-bottom:1px solid var(--line)}
.contact-method-icon{display:grid;place-items:center;flex:0 0 38px;height:38px;border:1px solid rgba(85,240,228,.24);color:var(--cyan);border-radius:10px}
.contact-method small{display:block;color:#8da6b7;font-size:.65rem;letter-spacing:.14em;margin-bottom:5px}
.contact-method a{font-size:.9rem;color:#effaff;overflow-wrap:anywhere}
.discuss-form-card{position:relative;padding:clamp(23px,4vw,42px);background:linear-gradient(145deg,rgba(12,31,47,.96),rgba(5,16,27,.98));border:1px solid rgba(85,240,228,.2);box-shadow:0 25px 90px rgba(0,0,0,.18)}
.discuss-form-card:before{content:"";position:absolute;left:-1px;top:28px;height:55px;width:2px;background:var(--cyan);box-shadow:0 0 18px var(--cyan)}
.discuss-form-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}
.discuss-form-head h2{font-size:clamp(1.8rem,3vw,2.55rem);letter-spacing:-.05em;line-height:1.05;margin:9px 0}
.discuss-form-head p{color:var(--muted);font-size:.87rem;line-height:1.6;margin:0}
.live-tag{white-space:nowrap;color:var(--cyan);font-size:.62rem;letter-spacing:.12em;border:1px solid rgba(85,240,228,.24);padding:8px 10px}
.discuss-form{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.form-field{min-width:0}
.form-field.full{grid-column:1/-1}
.discuss-form label{display:block;color:#c4d4de;font-size:.75rem;margin:0 0 8px}
.discuss-form input,.discuss-form select,.discuss-form textarea{width:100%;min-height:48px;border:1px solid #2b4557;background:#061522;color:#f5fbff;padding:12px 14px;border-radius:3px;outline:none;font:inherit;font-size:.87rem}
.discuss-form select{appearance:auto}
.discuss-form textarea{min-height:145px;resize:vertical}
.discuss-form input:focus,.discuss-form select:focus,.discuss-form textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(85,240,228,.09)}
.discuss-form input::placeholder,.discuss-form textarea::placeholder{color:#60798a}
.discuss-form option{background:#07121e;color:#fff}
.discuss-submit{width:100%;justify-content:center;margin-top:4px}
.discuss-form-note{grid-column:1/-1;font-size:.72rem;color:#8ca3b4;line-height:1.65;margin:0}
.discuss-status{grid-column:1/-1;display:none;padding:14px 16px;border:1px solid rgba(85,240,228,.28);background:rgba(85,240,228,.06);color:#d9fffb;font-size:.85rem;line-height:1.6;overflow-wrap:anywhere}
.discuss-status.visible{display:block}
.discuss-status.error{border-color:rgba(255,135,111,.45);background:rgba(255,135,111,.07);color:#ffd9cf}
@keyframes orbitSpin{to{transform:rotate(360deg)}}
@media(max-width:900px){.discuss-hero-grid{grid-template-columns:1fr .7fr;gap:20px}.discuss-layout{grid-template-columns:1fr;gap:35px}.discuss-sidebar{display:grid;grid-template-columns:1fr 1fr;column-gap:30px}.discuss-sidebar .eyebrow,.discuss-sidebar h2,.discuss-sidebar>p{grid-column:1/-1}.office-card{align-self:start}.contact-method{align-self:start}}
@media(max-width:650px){.discuss-hero{padding:60px 0 38px}.discuss-hero-grid{grid-template-columns:1fr}.discuss-hero h1{font-size:clamp(2.8rem,13vw,4rem)}.discuss-visual{min-height:270px;margin-top:-4px}.orbit{width:260px}.orbit.orbit-two{width:205px}.project-core{width:135px;height:135px;border-radius:22px}.core-symbol{font-size:1.8rem;margin-bottom:5px}.project-core strong{font-size:1rem}.discuss-main{padding:50px 0 70px}.discuss-sidebar{display:block}.discuss-form{grid-template-columns:1fr}.form-field.full,.discuss-form-note,.discuss-status{grid-column:auto}.discuss-form-head{display:block}.live-tag{display:inline-block;margin-top:15px}.discuss-form-card{padding:23px 18px}}


/* Shared layouts for dedicated service pages */
.subpage-hero .hero-lead{max-width:700px}
.subpage-hero .hero-copy h1{max-width:800px}
.project-cta-panel{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px}
.project-cta-panel h3{font-size:clamp(1.5rem,3vw,2.2rem);margin:0;letter-spacing:-.04em}
.project-cta-panel>p{color:var(--muted);line-height:1.7;margin:0}
.project-cta-panel .form-submit{display:inline-flex;width:auto;margin-top:8px}
@media(max-width:800px){.subpage-hero .hero-layout{align-items:start}.subpage-hero .hero-visual{min-height:330px}}


/* =========================================================
   PAGE-SPECIFIC MOTION SYSTEM
   Each page has its own animation identity; reduced-motion is respected below.
   ========================================================= */
.hero-visual{isolation:isolate}
.hero-visual:after{content:"";position:absolute;inset:7% 4%;pointer-events:none;z-index:1;opacity:0}
body[data-page="home"] .hero-grid{animation:gridDrift 28s linear infinite}
body[data-page="home"] .network-lines{stroke-dasharray:7 8;animation:homeDataFlow 8s linear infinite}
body[data-page="home"] .server-rack{animation:homeRackHover 5.5s ease-in-out infinite}
body[data-page="home"] .node{animation:homeNodeHover 4.8s ease-in-out infinite}

body[data-page="about"] .network-ring{transform-origin:center;animation:aboutConstellation 22s linear infinite}
body[data-page="about"] .ring-b{animation-direction:reverse;animation-duration:16s}
body[data-page="about"] .ring-c{animation-duration:12s}
body[data-page="about"] .node{animation:aboutConstellationNode 7s ease-in-out infinite}
body[data-page="about"] .hero-copy.reveal{transform:translateX(-28px);filter:blur(3px)}
body[data-page="about"] .hero-copy.reveal.is-visible{transform:translateX(0);filter:blur(0);transition:opacity .85s ease,transform .85s cubic-bezier(.2,.75,.25,1),filter .85s ease}

body[data-page="design"] .hero-grid{background-size:36px 36px;animation:designBlueprint 9s linear infinite}
body[data-page="design"] .hero-visual:after{opacity:1;background:linear-gradient(105deg,transparent 0 44%,rgba(85,240,228,.13) 49%,rgba(85,240,228,.45) 50%,rgba(85,240,228,.1) 51%,transparent 56%);animation:designScan 5s ease-in-out infinite}
body[data-page="design"] .network-ring{border-style:dashed;animation:designBlueprintRing 15s linear infinite}
body[data-page="design"] .server-rack{animation:designBlueprintRack 7s ease-in-out infinite}
body[data-page="design"] .hero-copy.reveal{transform:translateY(24px) scale(.985)}
body[data-page="design"] .hero-copy.reveal.is-visible{transform:translateY(0) scale(1);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}

body[data-page="lan"] .network-lines{stroke-dasharray:5 18;animation:lanPacketRun 3.4s linear infinite}
body[data-page="lan"] .node{animation:lanEndpointPulse 2.8s ease-in-out infinite}
body[data-page="lan"] .node-b{animation-delay:.6s}body[data-page="lan"] .node-c{animation-delay:1.2s}
body[data-page="lan"] .server-rack{animation:lanCorePulse 3.8s ease-in-out infinite}
body[data-page="lan"] .hero-grid{animation:lanGridShift 18s ease-in-out infinite alternate}
body[data-page="lan"] .service-card.reveal{transform:translateY(28px) scale(.97)}
body[data-page="lan"] .service-card.reveal.is-visible{transform:translateY(0) scale(1);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}

body[data-page="wireless"] .network-ring{animation:wirelessSignal 4.5s ease-out infinite;transform-origin:center}
body[data-page="wireless"] .ring-b{animation-delay:1.1s}body[data-page="wireless"] .ring-c{animation-delay:2.2s}
body[data-page="wireless"] .orb-one{animation:wirelessOrb 9s ease-in-out infinite alternate}
body[data-page="wireless"] .node{animation:wirelessNodeFloat 6s ease-in-out infinite}
body[data-page="wireless"] .node-b{animation-delay:-2s}body[data-page="wireless"] .node-c{animation-delay:-4s}
body[data-page="wireless"] .hero-copy.reveal{transform:translateY(18px);clip-path:inset(0 0 100% 0)}
body[data-page="wireless"] .hero-copy.reveal.is-visible{transform:translateY(0);clip-path:inset(0 0 0 0);transition:opacity .7s ease,transform .7s ease,clip-path .9s cubic-bezier(.2,.8,.2,1)}

body[data-page="fiber"] .network-lines{stroke-dasharray:3 12;animation:fiberLightPulse 2.2s linear infinite}
body[data-page="fiber"] .network-ring{border-color:rgba(93,166,255,.22);animation:fiberCoreOrbit 11s linear infinite}
body[data-page="fiber"] .ring-b{animation-direction:reverse;animation-duration:8s}
body[data-page="fiber"] .server-rack{box-shadow:0 0 18px rgba(85,240,228,.18),inset 0 0 18px rgba(0,0,0,.8);animation:fiberOpticGlow 2.8s ease-in-out infinite}
body[data-page="fiber"] .node-symbol{animation:fiberSignalBlink 1.6s steps(2,end) infinite}

body[data-page="advanced"] .hero-visual:after{opacity:1;inset:0 10%;border-inline:1px solid rgba(85,240,228,.2);background:linear-gradient(180deg,transparent,rgba(85,240,228,.16),transparent);animation:advancedScanner 4.8s ease-in-out infinite}
body[data-page="advanced"] .network-lines{animation:advancedSignalNoise 1.7s steps(3,end) infinite}
body[data-page="advanced"] .node{animation:advancedDiagnostic 3.2s steps(2,end) infinite}
body[data-page="advanced"] .node-b{animation-delay:.8s}body[data-page="advanced"] .node-c{animation-delay:1.6s}
body[data-page="advanced"] .server-rack{animation:advancedRackScan 5.2s ease-in-out infinite}
body[data-page="advanced"] .hero-copy.reveal{transform:translateX(-20px);filter:contrast(1.2)}
body[data-page="advanced"] .hero-copy.reveal.is-visible{transform:translateX(0);filter:contrast(1);transition:opacity .7s ease,transform .7s ease,filter .7s ease}

body[data-page="datacenter"] .server-rack{animation:dcRackIdle 6s ease-in-out infinite}
body[data-page="datacenter"] .rack-unit i{animation:dcDriveActivity 1.1s steps(2,end) infinite}
body[data-page="datacenter"] .rack-unit:nth-of-type(3) i{animation-delay:.25s}
body[data-page="datacenter"] .rack-unit:nth-of-type(4) i{animation-delay:.5s}
body[data-page="datacenter"] .network-ring{animation:dcCoolingLoop 14s linear infinite}
body[data-page="datacenter"] .ring-b{animation-direction:reverse;animation-duration:10s}
body[data-page="datacenter"] .hero-grid{background-size:64px 64px;animation:gridDrift 40s linear infinite}

body[data-page="virtualization"] .server-rack{animation:virtualRackLift 5.5s cubic-bezier(.4,0,.2,1) infinite}
body[data-page="virtualization"] .node{animation:virtualTileHover 5s ease-in-out infinite}
body[data-page="virtualization"] .node-a{animation-delay:-1.2s}body[data-page="virtualization"] .node-b{animation-delay:-2.4s}body[data-page="virtualization"] .node-c{animation-delay:-3.6s}
body[data-page="virtualization"] .network-ring{border-radius:22%;animation:virtualPlaneRotate 18s linear infinite}
body[data-page="virtualization"] .ring-b{animation-direction:reverse;animation-duration:13s}
body[data-page="virtualization"] .service-card.reveal{transform:translateY(18px) rotateX(5deg);transform-origin:bottom}
body[data-page="virtualization"] .service-card.reveal.is-visible{transform:translateY(0) rotateX(0);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}

body[data-page="smart-hands"] .hero-visual:after{opacity:1;inset:14% 8%;background:linear-gradient(90deg,transparent calc(50% - 1px),rgba(85,240,228,.22) 50%,transparent calc(50% + 1px)),linear-gradient(0deg,transparent calc(50% - 1px),rgba(85,240,228,.22) 50%,transparent calc(50% + 1px));animation:smartHandsTarget 5s ease-in-out infinite}
body[data-page="smart-hands"] .node{border-radius:12px;animation:smartHandsLock 4s ease-in-out infinite}
body[data-page="smart-hands"] .node-b{animation-delay:1.3s}body[data-page="smart-hands"] .node-c{animation-delay:2.6s}
body[data-page="smart-hands"] .server-rack{animation:smartHandsFocus 6s ease-in-out infinite}
body[data-page="smart-hands"] .hero-copy.reveal{transform:translateX(24px)}
body[data-page="smart-hands"] .hero-copy.reveal.is-visible{transform:translateX(0);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}

body[data-page="imac"] .node-a{animation:imacMoveA 6s cubic-bezier(.45,0,.55,1) infinite}
body[data-page="imac"] .node-b{animation:imacMoveB 6s cubic-bezier(.45,0,.55,1) infinite}
body[data-page="imac"] .node-c{animation:imacMoveC 6s cubic-bezier(.45,0,.55,1) infinite}
body[data-page="imac"] .server-rack{animation:imacCentralize 6s ease-in-out infinite}
body[data-page="imac"] .network-lines{animation:imacRewire 4s ease-in-out infinite}
body[data-page="imac"] .hero-grid{background-size:44px 44px;animation:imacGridShift 12s linear infinite alternate}

body[data-page="relocation"] .server-rack{animation:relocationRackMove 8s cubic-bezier(.65,0,.35,1) infinite}
body[data-page="relocation"] .network-lines{animation:relocationCableTrail 4s linear infinite}
body[data-page="relocation"] .node-a{animation:relocationNodeA 8s ease-in-out infinite}
body[data-page="relocation"] .node-b{animation:relocationNodeB 8s ease-in-out infinite}
body[data-page="relocation"] .node-c{animation:relocationNodeC 8s ease-in-out infinite}
body[data-page="relocation"] .network-ring{animation:relocationRoute 8s ease-in-out infinite}

body[data-page="staff"] .network-ring{border-radius:50%;animation:staffOrbit 20s linear infinite}
body[data-page="staff"] .ring-b{animation-direction:reverse;animation-duration:14s}
body[data-page="staff"] .node{animation:staffTeamOrbit 7s ease-in-out infinite}
body[data-page="staff"] .node-b{animation-delay:-2.3s}body[data-page="staff"] .node-c{animation-delay:-4.6s}
body[data-page="staff"] .server-rack{animation:staffTeamCore 4.6s ease-in-out infinite}
body[data-page="staff"] .hero-copy.reveal{transform:translateY(30px) scale(.98)}
body[data-page="staff"] .hero-copy.reveal.is-visible{transform:translateY(0) scale(1);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}

body[data-page="discuss"] .orbit{animation:discussOrbitFast 16s linear infinite}
body[data-page="discuss"] .orbit-two{animation-direction:reverse;animation-duration:10s}
body[data-page="discuss"] .project-core{animation:discussCoreTilt 7s ease-in-out infinite}
body[data-page="discuss"] .discuss-hero-copy{animation:discussTextRise .85s cubic-bezier(.16,1,.3,1) both}

/* Page-specific keyframes */
@keyframes gridDrift{to{background-position:52px 52px,52px 52px}}
@keyframes homeDataFlow{to{stroke-dashoffset:-120}}
@keyframes homeRackHover{0%,100%{transform:translate(-50%,-44%)}50%{transform:translate(-50%,-48%)}}
@keyframes homeNodeHover{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes aboutConstellation{to{transform:translate(-50%,-50%) rotateX(62deg) rotate(360deg)}}
@keyframes aboutConstellationNode{0%,100%{translate:0 0}50%{translate:0 -13px}}
@keyframes designBlueprint{to{background-position:36px 36px,36px 36px}}
@keyframes designScan{0%,100%{transform:translateX(-38%);opacity:.25}50%{transform:translateX(38%);opacity:.9}}
@keyframes designBlueprintRing{to{rotate:360deg}}
@keyframes designBlueprintRack{0%,100%{transform:translate(-50%,-44%) rotateY(-4deg)}50%{transform:translate(-50%,-44%) rotateY(4deg)}}
@keyframes lanPacketRun{to{stroke-dashoffset:-184}}
@keyframes lanEndpointPulse{0%,100%{box-shadow:0 12px 25px #02091180}50%{box-shadow:0 0 28px rgba(85,240,228,.45)}}
@keyframes lanCorePulse{0%,100%{box-shadow:0 0 20px rgba(0,216,207,.1),inset 0 0 18px rgba(0,0,0,.8)}50%{box-shadow:0 0 70px rgba(0,216,207,.28),inset 0 0 18px rgba(0,0,0,.8)}}
@keyframes lanGridShift{from{background-position:0 0,0 0}to{background-position:26px 26px,-26px -26px}}
@keyframes wirelessSignal{0%{transform:translate(-50%,-50%) scale(.72);opacity:.2}55%{opacity:.8}100%{transform:translate(-50%,-50%) scale(1.18);opacity:.08}}
@keyframes wirelessOrb{from{transform:translate(-30px,-10px) scale(.9)}to{transform:translate(25px,20px) scale(1.12)}}
@keyframes wirelessNodeFloat{0%,100%{translate:0 0}50%{translate:0 -15px}}
@keyframes fiberLightPulse{to{stroke-dashoffset:-90}}
@keyframes fiberCoreOrbit{to{transform:translate(-50%,-50%) rotateX(62deg) rotate(360deg)}}
@keyframes fiberOpticGlow{0%,100%{filter:brightness(.9);box-shadow:0 0 18px rgba(85,240,228,.1),inset 0 0 18px rgba(0,0,0,.8)}50%{filter:brightness(1.3);box-shadow:0 0 55px rgba(85,240,228,.35),inset 0 0 18px rgba(0,0,0,.8)}}
@keyframes fiberSignalBlink{0%,40%,100%{opacity:1}50%,70%{opacity:.4}}
@keyframes advancedScanner{0%,100%{transform:translateY(-35%);opacity:.15}50%{transform:translateY(35%);opacity:.8}}
@keyframes advancedSignalNoise{0%,100%{opacity:.7;transform:translate(0,0)}33%{opacity:1;transform:translate(1px,-2px)}66%{opacity:.82;transform:translate(-1px,1px)}}
@keyframes advancedDiagnostic{0%,100%{opacity:1;filter:none}50%{opacity:.72;filter:brightness(1.8)}}
@keyframes advancedRackScan{0%,100%{transform:translate(-50%,-44%)}50%{transform:translate(-50%,-44%) scale(1.025)}}
@keyframes dcRackIdle{0%,100%{transform:translate(-50%,-44%)}50%{transform:translate(-50%,-45.5%)}}
@keyframes dcDriveActivity{0%,100%{opacity:.45;box-shadow:none}50%{opacity:1;box-shadow:0 0 10px #48e7c8}}
@keyframes dcCoolingLoop{to{transform:translate(-50%,-50%) rotateX(62deg) rotate(360deg)}}
@keyframes virtualRackLift{0%,100%{transform:translate(-50%,-44%) translateY(0)}50%{transform:translate(-50%,-44%) translateY(-12px)}}
@keyframes virtualTileHover{0%,100%{translate:0 0;scale:1}50%{translate:0 -12px;scale:1.035}}
@keyframes virtualPlaneRotate{to{transform:translate(-50%,-50%) rotateX(62deg) rotate(360deg)}}
@keyframes smartHandsTarget{0%,100%{transform:scale(.9);opacity:.35}50%{transform:scale(1.03);opacity:.9}}
@keyframes smartHandsLock{0%,100%{outline:0 solid rgba(85,240,228,0)}50%{outline:1px solid rgba(85,240,228,.45);outline-offset:7px}}
@keyframes smartHandsFocus{0%,100%{filter:brightness(.95)}50%{filter:brightness(1.2)}}
@keyframes imacMoveA{0%,100%{translate:0 0}50%{translate:12px 18px}}
@keyframes imacMoveB{0%,100%{translate:0 0}50%{translate:-15px 10px}}
@keyframes imacMoveC{0%,100%{translate:0 0}50%{translate:-8px -12px}}
@keyframes imacCentralize{0%,100%{transform:translate(-50%,-44%) scale(1)}50%{transform:translate(-50%,-44%) scale(.96)}}
@keyframes imacRewire{0%,100%{opacity:.5;stroke-dasharray:4 12}50%{opacity:1;stroke-dasharray:12 5}}
@keyframes imacGridShift{from{background-position:0 0,0 0}to{background-position:44px 0,0 44px}}
@keyframes relocationRackMove{0%,100%{transform:translate(-50%,-44%) translateX(-13px)}50%{transform:translate(-50%,-44%) translateX(13px)}}
@keyframes relocationCableTrail{to{stroke-dashoffset:-150}}
@keyframes relocationNodeA{0%,100%{translate:-8px 0}50%{translate:8px 0}}
@keyframes relocationNodeB{0%,100%{translate:8px 0}50%{translate:-8px 0}}
@keyframes relocationNodeC{0%,100%{translate:0 7px}50%{translate:0 -7px}}
@keyframes relocationRoute{0%,100%{opacity:.4}50%{opacity:1}}
@keyframes staffOrbit{to{transform:translate(-50%,-50%) rotateX(62deg) rotate(360deg)}}
@keyframes staffTeamOrbit{0%,100%{translate:0 0}50%{translate:0 -11px}}
@keyframes staffTeamCore{0%,100%{box-shadow:0 0 25px rgba(0,216,207,.12)}50%{box-shadow:0 0 65px rgba(0,216,207,.3)}}
@keyframes discussOrbitFast{to{transform:rotate(360deg)}}
@keyframes discussCoreTilt{0%,100%{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(2deg) translateY(-7px)}}
@keyframes discussTextRise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

@media(prefers-reduced-motion:reduce){
  body[data-page] .hero-grid,body[data-page] .orb,body[data-page] .network-lines,body[data-page] .network-ring,body[data-page] .server-rack,body[data-page] .node,body[data-page] .hero-visual:after,body[data-page] .project-core,body[data-page] .discuss-hero-copy{animation:none!important}
  body[data-page] .hero-copy.reveal,body[data-page] .hero-copy.reveal.is-visible{filter:none;clip-path:none;transform:none}
}

/* ===== Bespoke service-scene illustrations: lightweight SVG + CSS only ===== */
.service-scene{position:relative;isolation:isolate;width:min(100%,570px);height:auto;aspect-ratio:600/450;margin:auto;filter:drop-shadow(0 22px 42px rgba(0,0,0,.24))}
.service-scene svg{display:block;width:100%;height:100%;overflow:visible}
.service-scene text{font:600 10px/1.2 "Space Grotesk",sans-serif;letter-spacing:1.5px;fill:#8baebf}
.service-scene rect,.service-scene path,.service-scene circle{vector-effect:non-scaling-stroke}
.service-scene .visual-label{pointer-events:none}
/* About: geographic service map with connected buildings and location pins */
.scene-about .scene-panel{fill:#081723;stroke:#244858;stroke-width:1.2}.scene-about .map-grid{fill:none;stroke:#193746;stroke-width:.7;opacity:.65}.scene-about .map-road{fill:none;stroke:#315568;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.scene-about .about-building rect{fill:#123449;stroke:#56cdd0;stroke-width:1.5}.scene-about .about-building path{fill:#52c8cb;opacity:.65}.scene-about .about-hub circle{fill:#0b2535;stroke:#35d9d0;stroke-width:1.5}.scene-about .about-hub path{stroke:#a6fff3;stroke-width:2}.scene-about .about-link{fill:none;stroke:#28d6d0;stroke-width:2;stroke-dasharray:5 8;animation:aboutMapLink 4s linear infinite}.scene-about .link-two{animation-delay:-1.2s}.scene-about .link-three{animation-delay:-2.3s}.scene-about .about-pin circle:first-child{fill:#ffc72c;stroke:#fff2b2;stroke-width:1}.scene-about .about-pin circle:last-child{fill:none;stroke:#ffc72c;opacity:.7;transform-box:fill-box;transform-origin:center;animation:aboutMapPin 2.8s ease-out infinite}.scene-about .pin-two circle:last-child{animation-delay:.8s}.scene-about .pin-three circle:last-child{animation-delay:1.6s}.scene-about .building-two{animation:aboutBuildingLift 5s ease-in-out infinite}
/* Network planning: technical blueprint, drawn routes and a moving survey line */
.scene-design .blueprint-board{fill:#092338;stroke:#2b7892}.scene-design .blueprint-grid{fill:none;stroke:#27617b;stroke-width:.65;opacity:.65}.scene-design .floor-plan{fill:rgba(12,67,91,.24);stroke:#70cde1;stroke-width:2;stroke-linejoin:round}.scene-design .floor-plan path{fill:none}.scene-design .design-route{fill:none;stroke:#ffc72c;stroke-width:2.5;stroke-dasharray:7 7;animation:designRouteDraw 5s linear infinite}.scene-design .route-b{stroke:#43e4d8;animation-delay:-2.5s}.scene-design .design-node circle{fill:#ffc72c;stroke:#fff3b4;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:designNodePulse 2.3s ease-in-out infinite}.scene-design .design-node circle:nth-child(2n){animation-delay:.5s}.scene-design .blueprint-scan{stroke:#a6fff7;stroke-width:2;filter:drop-shadow(0 0 7px #28d6d0);animation:designSurveyScan 5s ease-in-out infinite}
/* LAN: patch panel, physical cable drops and travelling packets */
.scene-lan .lan-backplate{fill:#091824;stroke:#294b5d}.scene-lan .lan-switch>rect{fill:#132c3e;stroke:#47748a;stroke-width:1.5}.scene-lan .lan-switch>rect:nth-child(2){fill:#07131e;stroke:#203e50}.scene-lan .lan-ports rect{fill:#07131c;stroke:#2d5a6b;stroke-width:1.2}.scene-lan .lan-switch circle{fill:#55edbd;filter:drop-shadow(0 0 4px #55edbd)}.scene-lan .lan-cables{fill:none;stroke:#e4a85b;stroke-width:4;stroke-linecap:round}.scene-lan .lan-cables path:nth-child(2){stroke:#46d6d1}.scene-lan .lan-cables path:nth-child(3){stroke:#669eff}.scene-lan .lan-cables path:nth-child(4){stroke:#ed7e69}.scene-lan .lan-endpoints rect{fill:#102c3e;stroke:#3d7a8d}.scene-lan .lan-packet{fill:#fff1a6;filter:drop-shadow(0 0 5px #ffc72c);animation:lanPacketTravel 3.5s linear infinite}.scene-lan .packet-two{fill:#6affec;animation-delay:-1.75s}.scene-lan .lan-endpoints{animation:lanEndpointStatus 2.5s steps(2,end) infinite}
/* Wireless: architectural floor plan and expanding RF field */
.scene-wireless .wireless-board{fill:#091925;stroke:#244758}.scene-wireless .wireless-floor{fill:rgba(17,51,67,.38);stroke:#416b7d;stroke-width:1.4}.scene-wireless .wireless-floor rect{fill:#0d2534;stroke:#31586a;stroke-width:1}.scene-wireless .wifi-ap circle{fill:#09202c;stroke:#72f6e8;stroke-width:2}.scene-wireless .wifi-ap path{fill:none;stroke:#72f6e8;stroke-width:2.5;stroke-linecap:round}.scene-wireless .wifi-waves{fill:none;stroke:#41ded4;stroke-width:2.5;stroke-linecap:round;transform-box:fill-box;transform-origin:center;animation:wifiExpand 3.4s ease-out infinite}.scene-wireless .wave-left{animation-delay:-1.7s;stroke:#5e9eff;opacity:.65}.scene-wireless .wifi-client rect{fill:#153c50;stroke:#69dce0;stroke-width:1.5}.scene-wireless .wifi-client path,.scene-wireless .wifi-client circle{fill:#5ef1d9;stroke:#5ef1d9}.scene-wireless .client-one{animation:wifiClientPing 3.5s ease-in-out infinite}.scene-wireless .client-two{animation:wifiClientPing 3.5s ease-in-out -1.2s infinite}.scene-wireless .client-three{animation:wifiClientPing 3.5s ease-in-out -2.4s infinite}
/* Fibre optics: long cable strands with light moving through the glass core */
.scene-fiber .fiber-board{fill:#081824;stroke:#24485a}.scene-fiber .fiber-cable{fill:none;stroke:#285a77;stroke-width:13;stroke-linecap:round;opacity:.85}.scene-fiber .fiber-cable path:nth-child(2){stroke:#34546c}.scene-fiber .fiber-cable path:nth-child(3){stroke:#23516d}.scene-fiber .fiber-core{fill:none;stroke:#4cf8eb;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:3 15;filter:drop-shadow(0 0 5px #4cf8eb);animation:fiberCoreTravel 1.8s linear infinite}.scene-fiber .fiber-pulse{fill:#d9fffb;stroke:#4cf8eb;stroke-width:2;filter:drop-shadow(0 0 10px #2de6ff);animation:fiberPulseTravel 4s linear infinite}.scene-fiber .pulse-b{fill:#ffc72c;stroke:#fff0a4;animation-delay:-2s;animation-duration:4.8s}.scene-fiber .fiber-end rect{fill:#12394c;stroke:#62d8e6;stroke-width:1.5}.scene-fiber .fiber-end rect:nth-child(2){fill:#07141f;stroke:#326d82}.scene-fiber .fiber-spec rect{fill:#0d2c3e;stroke:#2e6279}.scene-fiber .fiber-spec path{stroke:#4ddcd8;stroke-width:2}
/* Advanced technical: live diagnostic instrument, waveform and scanning telemetry */
.scene-advanced .diag-frame{fill:#081722;stroke:#2c4d5d}.scene-advanced .diag-header{fill:#102b3a;stroke:#2d5265}.scene-advanced .diag-header circle{fill:#ffc72c}.scene-advanced .diag-metric rect,.scene-advanced .diag-chart,.scene-advanced .diag-status rect{fill:#0b202d;stroke:#254a5d}.scene-advanced .diag-metric text:nth-of-type(odd),.scene-advanced .diag-status text:first-of-type{font-size:8px;fill:#7fa5b8}.scene-advanced .diag-metric text:nth-of-type(even){font-size:18px;fill:#7cf4e4;letter-spacing:.3px}.scene-advanced .diag-chart-grid{fill:none;stroke:#1b3b4a;stroke-width:.7}.scene-advanced .diag-wave{fill:none;stroke:#43f2df;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:18 5;filter:drop-shadow(0 0 4px #43f2df);animation:diagWaveFlow 2s linear infinite}.scene-advanced .diag-scan{stroke:#ffc72c;stroke-width:2;filter:drop-shadow(0 0 5px #ffc72c);animation:diagSweep 4.5s ease-in-out infinite}.scene-advanced .diag-status circle{fill:#52edb8;filter:drop-shadow(0 0 4px #52edb8);animation:diagStatusBlink 1.8s steps(2,end) infinite}.scene-advanced .diag-status circle:nth-of-type(2){animation-delay:.5s}.scene-advanced .diag-status circle:nth-of-type(3){animation-delay:1s}.scene-advanced .diag-status path{stroke:#315364}
/* Data centre: perspective aisle, server units and cool-air movement */
.scene-datacenter .dc-wall{fill:#0a1b29;stroke:#315466;stroke-width:1.5}.scene-datacenter .dc-floor{fill:url(#dcfloor);stroke:#234b5d}.scene-datacenter .dc-rack>path:first-child{fill:#102c3d;stroke:#4b8295;stroke-width:1.5}.scene-datacenter .dc-rack>path:nth-child(2){fill:#07131e;stroke:#31566a;stroke-width:1.2}.scene-datacenter .dc-rack .dc-lights{fill:none;stroke:#54f0c6;stroke-width:3;stroke-linecap:round;stroke-dasharray:2 12;animation:dcRackActivity 1.1s steps(2,end) infinite}.scene-datacenter .rack-mid .dc-lights{animation-delay:.35s}.scene-datacenter .rack-right .dc-lights{animation-delay:.7s}.scene-datacenter .dc-air{fill:none;stroke:#53cfe0;stroke-width:2;stroke-dasharray:10 10;opacity:.75;animation:dcAirFlow 4s linear infinite}.scene-datacenter .dc-air path:nth-child(2){animation-delay:-2s;stroke:#7bafff}
/* Virtualization: one physical host fans out into isolated virtual workloads */
.scene-virtualization .virt-board{fill:#091925;stroke:#25495b}.scene-virtualization .virt-physical rect{fill:#102f42;stroke:#4c8497;stroke-width:1.4}.scene-virtualization .virt-physical rect:not(:first-child){fill:#071721;stroke:#31576b}.scene-virtualization .virt-physical path{stroke:#52d9d4;stroke-width:2}.scene-virtualization .virt-physical circle{fill:#55efc4;filter:drop-shadow(0 0 4px #55efc4)}.scene-virtualization .virt-bus{fill:none;stroke:#40ded4;stroke-width:2;stroke-dasharray:6 8;animation:virtBusFlow 2.5s linear infinite}.scene-virtualization .virt-vm rect{fill:#102b3d;stroke:#3c8397;stroke-width:1.4}.scene-virtualization .virt-vm path{fill:#164459;stroke:#5ee7df;stroke-width:1}.scene-virtualization .virt-vm text{font-size:9px;fill:#b6e8f0;letter-spacing:.5px}.scene-virtualization .vm-one{animation:virtWorkloadOne 4s ease-in-out infinite}.scene-virtualization .vm-two{animation:virtWorkloadTwo 4s ease-in-out infinite}.scene-virtualization .vm-three{animation:virtWorkloadThree 4s ease-in-out infinite}.scene-virtualization .virt-packet{fill:#fff3a7;filter:drop-shadow(0 0 5px #ffc72c);animation:virtPacketFlow 3s linear infinite}
/* Smart Hands: precision tool arm, rack target and verified task state */
.scene-smart-hands .hands-board{fill:#081824;stroke:#24495b}.scene-smart-hands .hands-rack rect{fill:#102b3b;stroke:#4a8192;stroke-width:1.4}.scene-smart-hands .hands-rack path{fill:#07151f;stroke:#31576a;stroke-width:1.2}.scene-smart-hands .hands-rack circle{fill:#4be7bc;filter:drop-shadow(0 0 4px #4be7bc)}.scene-smart-hands .hands-arm{fill:none;stroke:#66b6d0;stroke-width:12;stroke-linecap:round;stroke-linejoin:round;transform-origin:95px 145px;animation:handsArmReach 4.8s ease-in-out infinite}.scene-smart-hands .hands-arm circle{fill:#173e53;stroke:#8ce6f1;stroke-width:3}.scene-smart-hands .hands-tool{fill:none;stroke:#ffc72c;stroke-width:4;stroke-linecap:round;animation:handsToolTurn 4.8s ease-in-out infinite}.scene-smart-hands .hands-target{fill:none;stroke:#ffc72c;stroke-width:1.5;stroke-dasharray:5 5;transform-box:fill-box;transform-origin:center;animation:handsTargetLock 3s linear infinite}.scene-smart-hands .target-two{stroke:#49e8dc;animation-direction:reverse;animation-duration:4s}.scene-smart-hands .hands-crosshair{fill:none;stroke:#ffc72c;stroke-width:1.5}.scene-smart-hands .hands-check circle{fill:#0d332f;stroke:#55edbd;stroke-width:2}.scene-smart-hands .hands-check path{fill:none;stroke:#55edbd;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:50;stroke-dashoffset:50;animation:handsCheckDraw 4.8s ease-in-out infinite}
/* IMAC: install, move and change stages in a sequential operations cycle */
.scene-imac .imac-board{fill:#091925;stroke:#25495b}.scene-imac .imac-track{fill:none;stroke:#2c596b;stroke-width:4;stroke-dasharray:5 9}.scene-imac .imac-stage circle{fill:#0e2939;stroke:#3a7185;stroke-width:2}.scene-imac .imac-stage rect{fill:#102f42;stroke:#6be3e0;stroke-width:1.5}.scene-imac .imac-stage path{fill:none;stroke:#6be3e0;stroke-width:2.5;stroke-linecap:round}.scene-imac .imac-stage text{font-size:10px;fill:#b0d6e3}.scene-imac .stage-install{animation:imacStageFocus 6s ease-in-out infinite}.scene-imac .stage-move{animation:imacStageFocus 6s ease-in-out -2s infinite}.scene-imac .stage-change{animation:imacStageFocus 6s ease-in-out -4s infinite}.scene-imac .imac-flow{fill:#ffc72c;filter:drop-shadow(0 0 6px #ffc72c);animation:imacFlow 3s linear infinite}.scene-imac .flow-two{fill:#4ce7d9;animation-delay:-1.5s;animation-duration:3.6s}
/* Relocation: mobile rack travels between labelled sites along a transfer path */
.scene-relocation .reloc-board{fill:#091925;stroke:#25495b}.scene-relocation .reloc-site rect{fill:#0f2a3b;stroke:#3b7084;stroke-width:1.4}.scene-relocation .reloc-site path{fill:#07151f;stroke:#31576a;stroke-width:1.2}.scene-relocation .reloc-route{fill:none;stroke:#4fe4d7;stroke-width:2.5;stroke-dasharray:8 8;animation:relocRouteFlow 2.5s linear infinite}.scene-relocation .route-alt{stroke:#ffc72c;stroke-dasharray:3 12;animation-delay:-1.2s}.scene-relocation .reloc-cart{fill:#14374a;stroke:#66dce3;stroke-width:1.5;filter:drop-shadow(0 0 9px rgba(40,220,215,.14));animation:relocRackJourney 7s cubic-bezier(.45,0,.55,1) infinite}.scene-relocation .reloc-cart path{fill:#07151f;stroke:#31576a}.scene-relocation .reloc-cart circle{fill:#ffc72c;stroke:#fff0a6}.scene-relocation .reloc-arrow{fill:none;stroke:#ffc72c;stroke-width:2;animation:relocArrowBlink 1.5s ease-in-out infinite}
/* Staff augmentation: resource allocation board and delivery timeline, not an orbit motif */
.scene-staff .staff-board{fill:#091925;stroke:#25495b}.scene-staff .staff-header{fill:#102d3e;stroke:#315d70}.scene-staff .staff-card rect{fill:#102a3a;stroke:#3c7487;stroke-width:1.4}.scene-staff .staff-card circle{fill:#164256;stroke:#64dce0;stroke-width:1.5}.scene-staff .staff-card path{fill:none;stroke:#64dce0;stroke-width:2}.scene-staff .staff-card text{font-size:8px;fill:#b4d6e0;letter-spacing:.4px}.scene-staff .staff-card>rect:last-child{fill:#ffc72c;stroke:none;transform-origin:left;animation:staffCapacity 3s ease-in-out infinite}.scene-staff .staff-card-two>rect:last-child{animation-delay:-1s}.scene-staff .staff-card-three>rect:last-child{animation-delay:-2s}.scene-staff .staff-connector{fill:none;stroke:#40d8d2;stroke-width:2;stroke-dasharray:5 7;animation:staffAssignFlow 3s linear infinite}.scene-staff .staff-timeline{fill:#0c2230;stroke:#31576a}.scene-staff .staff-timeline+path{fill:none;stroke:#31576a;stroke-width:2}.scene-staff .staff-milestones circle{fill:#53ebbd;stroke:#b2fff1;stroke-width:1;transform-box:fill-box;transform-origin:center;animation:staffMilestone 3.2s ease-in-out infinite}.scene-staff .staff-milestones circle:nth-child(2){animation-delay:.7s}.scene-staff .staff-milestones circle:nth-child(3){animation-delay:1.4s}.scene-staff .staff-milestones circle:nth-child(4){animation-delay:2.1s}
@keyframes aboutMapLink{to{stroke-dashoffset:-52}}@keyframes aboutMapPin{0%{opacity:.8;transform:scale(.6)}85%,100%{opacity:0;transform:scale(1.9)}}@keyframes aboutBuildingLift{50%{transform:translateY(-5px)}}
@keyframes designRouteDraw{to{stroke-dashoffset:-56}}@keyframes designNodePulse{50%{transform:scale(1.6);filter:drop-shadow(0 0 6px #ffc72c)}}@keyframes designSurveyScan{0%,100%{transform:translateY(0);opacity:.25}50%{transform:translateY(300px);opacity:1}}
@keyframes lanPacketTravel{0%{transform:translate(112px,202px)}20%{transform:translate(112px,270px)}45%{transform:translate(140px,270px)}70%{transform:translate(140px,330px)}100%{transform:translate(205px,330px)}}@keyframes lanEndpointStatus{50%{opacity:.7}}
@keyframes wifiExpand{0%{opacity:.95;transform:scale(.55)}75%,100%{opacity:0;transform:scale(1.45)}}@keyframes wifiClientPing{50%{filter:drop-shadow(0 0 8px #4be9df);transform:translateY(-3px)}}
@keyframes fiberCoreTravel{to{stroke-dashoffset:-72}}@keyframes fiberPulseTravel{0%{transform:translate(70px,150px)}45%{transform:translate(275px,345px)}100%{transform:translate(530px,150px)}}
@keyframes diagWaveFlow{to{stroke-dashoffset:-46}}@keyframes diagSweep{0%,100%{transform:translateX(0);opacity:.3}50%{transform:translateX(270px);opacity:1}}@keyframes diagStatusBlink{50%{opacity:.35}}
@keyframes dcRackActivity{50%{opacity:.3}}@keyframes dcAirFlow{to{stroke-dashoffset:-80}}
@keyframes virtBusFlow{to{stroke-dashoffset:-56}}@keyframes virtWorkloadOne{50%{filter:drop-shadow(0 0 8px rgba(67,231,218,.35))}}@keyframes virtWorkloadTwo{50%{filter:drop-shadow(0 0 8px rgba(91,161,255,.35))}}@keyframes virtWorkloadThree{50%{filter:drop-shadow(0 0 8px rgba(255,199,44,.25))}}@keyframes virtPacketFlow{0%{transform:translate(192px,225px)}50%{transform:translate(265px,225px)}100%{transform:translate(335px,340px)}}
@keyframes handsArmReach{0%,100%{transform:rotate(0)}48%,65%{transform:rotate(-5deg) translate(8px,-4px)}}@keyframes handsToolTurn{0%,45%,100%{transform:rotate(0)}55%,70%{transform:rotate(12deg)}}@keyframes handsTargetLock{to{transform:rotate(360deg)}}@keyframes handsCheckDraw{0%,50%{stroke-dashoffset:50}70%,100%{stroke-dashoffset:0}}
@keyframes imacStageFocus{0%,25%,100%{filter:none;opacity:.65}12%{filter:drop-shadow(0 0 12px rgba(64,231,218,.45));opacity:1}}@keyframes imacFlow{0%{transform:translate(100px,225px)}100%{transform:translate(500px,225px)}}
@keyframes relocRouteFlow{to{stroke-dashoffset:-64}}@keyframes relocRackJourney{0%,10%{transform:translateX(-90px)}45%,55%{transform:translateX(0)}90%,100%{transform:translateX(90px)}}@keyframes relocArrowBlink{50%{opacity:.35}}
@keyframes staffCapacity{0%,100%{transform:scaleX(.45);opacity:.6}50%{transform:scaleX(1);opacity:1}}@keyframes staffAssignFlow{to{stroke-dashoffset:-48}}@keyframes staffMilestone{50%{transform:scale(1.6);filter:drop-shadow(0 0 5px #53ebbd)}}
@media(max-width:760px){.service-scene{width:100%;max-width:540px}.subpage-hero .hero-visual{min-height:0;padding-bottom:34px}.service-scene text{font-size:11px}}
@media(prefers-reduced-motion:reduce){.service-scene *{animation:none!important;scroll-behavior:auto!important}.scene-about .about-pin circle:last-child{opacity:.35;transform:none}}
/* Keep each service scene as the dominant motion; shared hero ambience stays static. */
body[data-page]:not([data-page="home"]):not([data-page="discuss"]) .hero-grid,
body[data-page]:not([data-page="home"]):not([data-page="discuss"]) .orb{animation:none!important}
body[data-page]:not([data-page="home"]):not([data-page="discuss"]) .hero-visual:after{display:none!important;animation:none!important}
