/* =====================================================================
   REOSYS v2 polish — typography, depth, icons, flow, interaction
   (loaded after modern.css)
   ===================================================================== */
body{word-break:keep-all;overflow-wrap:break-word;text-rendering:optimizeLegibility}
h1,h2,h3{text-wrap:balance}
p,li{text-wrap:pretty}
::selection{background:var(--blue);color:#fff}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:8px}
html{scrollbar-color:#9fb3e8 var(--bg)}
body{background:radial-gradient(1200px 520px at 90% -80px,rgba(47,107,255,.08),transparent 60%),radial-gradient(900px 480px at -10% 40%,rgba(34,211,238,.06),transparent 60%),var(--bg)}
.ic{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* header: hide on scroll down, show on scroll up */
.rs-header{transition:transform .4s var(--ease),background .3s,box-shadow .3s,backdrop-filter .3s}
.rs-header.hide{transform:translateY(-100%)}
.nav-open .rs-header.hide{transform:none}
.rs-menu a{position:relative}
.rs-menu a:not(.active):after{content:"";position:absolute;left:50%;bottom:4px;width:0;height:2px;border-radius:2px;background:var(--lime);transition:.3s var(--ease);transform:translateX(-50%)}
.rs-menu a:not(.active):hover:after{width:18px}

/* hero depth */
.rs-fx{position:absolute;inset:0;z-index:1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 70% 40%,#000 20%,transparent 75%);overflow:hidden}
.rs-fx:after{content:"";position:absolute;left:0;right:0;height:140px;top:-140px;background:linear-gradient(transparent,rgba(34,211,238,.14),transparent);animation:scan 7s linear infinite}
@keyframes scan{to{transform:translateY(calc(100vh + 280px))}}
.rs-hero h1{filter:drop-shadow(0 6px 30px rgba(0,0,0,.35))}
.rs-stage{position:relative;--rx:0deg;--ry:0deg}
.rs-stage .rs-console{transform:perspective(1400px) rotateY(calc(-7deg + var(--ry))) rotateX(calc(3deg + var(--rx)));transition:transform .25s ease-out}
.rs-stage:hover .rs-console{transform:perspective(1400px) rotateY(var(--ry)) rotateX(var(--rx))}
.rs-chip{position:absolute;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:99px;font-size:13px;font-weight:700;color:#fff;background:rgba(8,20,58,.78);border:1px solid var(--glass-line);backdrop-filter:blur(14px);box-shadow:0 18px 40px rgba(0,0,0,.4);animation:float 6s ease-in-out infinite}
.rs-chip i{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 0 rgba(184,240,77,.7);animation:pulse 2.4s infinite}
.rs-chip .ic{color:var(--cyan);font-size:16px}
.rs-chip.c1{left:-46px;bottom:-22px}
.rs-chip.c2{right:-18px;top:-20px;animation-delay:-3s}
@keyframes float{50%{transform:translateY(-10px)}}

/* spotlight cards (cursor-following glow) */
.rs-biz article,.rs-roles article,.rs-feat div,.rs-steps li,.rs-flow li{position:relative}
.rs-biz article:before,.rs-roles article:before,.rs-feat div:before,.rs-steps li:after,.rs-flow li:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(47,107,255,.14),transparent 45%)}
.rs-roles article:before,.rs-feat div:before,.rs-biz article.feat:before{background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(34,211,238,.16),transparent 45%)}
.rs-biz article:hover:before,.rs-roles article:hover:before,.rs-feat div:hover:before,.rs-steps li:hover:after,.rs-flow li:hover:after{opacity:1}

/* icon tiles */
.rs-feat i{color:#fff;box-shadow:0 10px 24px rgba(47,107,255,.35)}
.rs-feat i .ic{width:24px;height:24px}

/* data flow */
.rs-flowsec{background:#fff;border-block:1px solid var(--line)}
.rs-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:18px;position:relative}
.rs-flow:before{content:"";position:absolute;left:10%;right:10%;top:44px;height:2px;background:repeating-linear-gradient(90deg,#c9d6f5 0 8px,transparent 8px 16px)}
.rs-flow:after{content:"";position:absolute;left:10%;top:40px;width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 6px rgba(47,107,255,.18);animation:run 5.5s linear infinite}
@keyframes run{0%{left:10%;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:90%;opacity:0}}
.rs-flow li{position:relative;z-index:1;padding:0 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}
.rs-flow li i{display:grid;place-items:center;width:88px;height:88px;border-radius:26px;background:#fff;border:1px solid var(--line);color:var(--blue);font-style:normal;box-shadow:0 14px 34px rgba(11,36,96,.1);transition:.4s var(--ease);margin-bottom:10px}
.rs-flow li i .ic{width:36px;height:36px;stroke-width:1.5}
.rs-flow li:hover i{transform:translateY(-6px) scale(1.04);background:linear-gradient(135deg,var(--blue),#5b8cff);color:#fff;border-color:transparent;box-shadow:0 22px 44px rgba(47,107,255,.4)}
.rs-flow li:nth-child(4) i{background:var(--navy);color:var(--lime);border-color:var(--navy)}
.rs-flow li b{font-size:17px;letter-spacing:-.03em}
.rs-flow li span{font-size:13.5px;color:var(--sub);max-width:200px}
.rs-flow li:after{inset:-8px -2px;border-radius:20px}

/* showcase screenshot (home air section) */
.rs-showcase{position:relative;margin:56px auto 8px;max-width:1080px}
.rs-showcase:before{content:"";position:absolute;inset:8% -4% -6%;background:radial-gradient(closest-side,rgba(47,107,255,.55),transparent 72%);filter:blur(30px);z-index:0}
.rs-showcase .rs-shot{position:relative;z-index:1;border-color:rgba(255,255,255,.18);box-shadow:0 50px 110px rgba(0,0,0,.55);transform:perspective(1800px) rotateX(4deg);transform-origin:50% 100%;transition:transform .8s var(--ease)}
.rs-showcase .rs-shot:hover{transform:perspective(1800px) rotateX(0) translateY(-6px)}
.rs-showcase figcaption{position:relative;z-index:1;margin-top:18px;text-align:center;font-size:13px;color:rgba(255,255,255,.55)}
.rs-showcase.reveal{transform:translateY(28px)}
.rs-showcase.reveal.visible{transform:none}

/* richer sub-page heroes: grid texture */
.rs-sub:before{background-image:radial-gradient(800px 380px at 85% 0,rgba(47,107,255,.45),transparent 60%),radial-gradient(500px 300px at 5% 100%,rgba(34,211,238,.18),transparent 60%),linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:auto,auto,56px 56px,56px 56px}
main.sub>.subhero{background-image:radial-gradient(800px 380px at 85% 0,rgba(47,107,255,.45),transparent 60%),linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:auto,56px 56px,56px 56px;background-color:var(--navy)}

/* buttons: light sheen on hover */
.rs-btn.primary,.rs-btn.lime{position:relative;overflow:hidden}
.rs-btn.primary:before,.rs-btn.lime:before{content:"";position:absolute;top:0;left:-70%;width:50%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .7s var(--ease)}
.rs-btn.primary:hover:before,.rs-btn.lime:hover:before{left:130%}

/* staggered reveal */
.rs-flow li.reveal,.rs-feat .reveal,.rs-steps .reveal{transition-delay:calc(var(--i,0)*90ms)}

/* footer accent line */
.rs-footer{position:relative}
.rs-footer:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--blue),var(--cyan),var(--lime),transparent)}

@media(max-width:1100px){
  .rs-flow{grid-template-columns:1fr;gap:26px}
  .rs-flow:before,.rs-flow:after{display:none}
  .rs-flow li{flex-direction:row;text-align:left;align-items:center;gap:18px}
  .rs-flow li i{margin:0;width:68px;height:68px;border-radius:20px}
  .rs-flow li i .ic{width:28px;height:28px}
  .rs-flow li b,.rs-flow li span{display:block;max-width:none}
  .rs-chip.c1{left:8px;bottom:-18px}
  .rs-chip.c2{right:8px;top:-18px}
  .rs-showcase .rs-shot{transform:none}
}
@media(max-width:640px){.rs-chip{font-size:12px;padding:8px 12px}.rs-fx{background-size:44px 44px}}
@media(prefers-reduced-motion:reduce){.rs-fx:after,.rs-chip,.rs-flow:after{animation:none}}
.rs-flow li div{display:block}
@media(max-width:1100px){.rs-flow li div{flex:1}}

.rs-flow li div b{display:block;margin-bottom:6px}
.rs-flow li div span{display:block;margin:0 auto}
@media(max-width:1100px){.rs-flow li div span{margin:0}}
@media(max-width:640px){.rs-feat{grid-template-columns:1fr 1fr;gap:12px}.rs-feat div{padding:18px 14px}.rs-feat i{width:40px;height:40px;margin-bottom:12px}.rs-feat b{font-size:15px}.rs-feat span{font-size:12.5px}}
/* final alignment fixes */
.product-what.wrap,.product-lineup.wrap,.product-service.wrap{background:transparent}
.product-what.wrap{padding-top:100px;padding-bottom:60px}
.form-wrap{padding-top:64px;padding-bottom:96px;min-height:0}
.inquiry-form h2{margin:0 0 24px;font-size:26px;letter-spacing:-.04em}
@media(min-width:1101px) and (max-width:1280px){.rs-menu a{padding:9px 10px;font-size:14px}.rs-header .rs-nav{gap:20px}}
/* back-to-top: hidden until the page is scrolled, clear tap target */
.floating-top{opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s,transform .3s var(--ease),background .2s}
.scrolled .floating-top{opacity:1;pointer-events:auto;transform:none}
.floating-top:hover{transform:translateY(-3px);background:#c9f76b}
#page-top{position:absolute;top:0;left:0;width:1px;height:1px}
