/* Shared night-sky theme. Content and original assets remain in index.html. */
:root{
  --bg:#050b15;--card-bg:rgba(13,23,40,.82);--text:#e5ecfc;
  --text-muted:#9aaac3;--border:rgba(152,181,226,.15);
  --cyan-deep:#82ddea;--purple-deep:#b4a3ef;--purple-dark:#c4b6f6;
}
body{background:var(--bg);color:var(--text);color-scheme:dark}
::selection{background:#7863c866;color:#fff}
section[id],footer[id]{scroll-margin-top:88px}
.bg-orbs{opacity:.65}.bg-orbs .orb{filter:blur(90px)}
.dot-grid svg{opacity:.055}
.tech-grid{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;transition:opacity .8s;background-image:linear-gradient(#7fa8cf0a 1px,transparent 1px),linear-gradient(90deg,#7fa8cf0a 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,transparent 0,#000 18%,#000 82%,transparent 100%)}
.tech-grid::before{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,#72dce90a 48%,#72dce918 50%,#72dce90a 52%,transparent 65%);background-size:240% 100%;animation:gridScan 12s linear infinite}
.tech-grid::after{content:'';position:absolute;left:0;right:0;top:50%;height:50%;opacity:.5;background:repeating-linear-gradient(90deg,#8aa9d510 0 1px,transparent 1px 9vw),repeating-linear-gradient(0deg,#8aa9d50a 0 1px,transparent 1px 58px);transform:perspective(500px) rotateX(58deg) scaleX(1.3);transform-origin:50% 0;mask-image:linear-gradient(#000,transparent 82%)}
.tech-grid.is-visible{opacity:1}
.tech-grid:not(.is-visible)::before,.page-hidden *,.page-hidden *::before,.page-hidden *::after{animation-play-state:paused!important}
.effects-ready .hero:not(.motion-active) .particle-mist{animation-play-state:paused}
.section-constellation{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:0;transition:opacity .8s;mix-blend-mode:screen}
.section-constellation.is-visible{opacity:1}
.nav,.nav.scrolled{background:rgba(5,11,21,.85);border-bottom:1px solid var(--border);backdrop-filter:blur(20px)}
.nav-logo span{color:#e4ebff}.nav-logo img{border-radius:6px}
.nav-links a{color:#a7b5ce;font-size:12px}.nav-links a:hover{color:#fff}
.nav-links a[aria-current="location"]{color:#94e4ed}
.nav-links a[aria-current="location"]::after{width:100%}
.nav-links li:last-child a{border:1px solid #bfd0ff33;border-radius:4px;padding:7px 17px}
.nav::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:linear-gradient(90deg,#77dfea,#a28aea);transform:scaleX(var(--reading-progress,0));transform-origin:left;box-shadow:0 0 8px #77dfea66}
.section{padding:118px max(6vw,24px);isolation:isolate}
.section-label{font-size:10px;color:#94cbdc;letter-spacing:.24em;margin-bottom:20px}
.section-label::before{width:32px;background:#79d9e6;box-shadow:0 0 14px #79d9e666}
.section-title{font-size:clamp(30px,4vw,54px);font-weight:500;letter-spacing:.025em;color:#e8efff;margin-bottom:17px}
.section-desc{font-size:14px;color:#98a9c3;letter-spacing:.04em}
.section-divider{max-width:540px;gap:22px;opacity:.75}
.section-divider .line{background:linear-gradient(90deg,transparent,#87b6dd55,transparent)}
.section-divider .diamond{width:5px;height:5px;opacity:.65;box-shadow:0 0 14px currentColor;animation:dividerBreathe 4s ease-in-out infinite}
.section-divider .diamond:nth-child(3){animation-delay:1s}
.section-divider .diamond:nth-child(5){animation-delay:2s}
#services::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 0 15%,#20758c0c,transparent 40%),radial-gradient(ellipse at 100% 60%,#714cb614,transparent 40%);pointer-events:none}
#services::after{content:'EPLUS / TECHNOLOGY MATRIX';position:absolute;z-index:-1;top:150px;right:7vw;color:#8dcfe31d;font-size:9px;letter-spacing:.42em;writing-mode:vertical-rl;padding:18px 8px;border-right:1px solid #86d7e329;border-left:1px solid #86d7e30d}
#services .rust-deco{opacity:.07;filter:grayscale(1) drop-shadow(0 0 30px #68c8ea);top:120px;width:220px;right:6%}
.services-grid{gap:30px;margin-top:55px}
.service-card{
  --accent:130,216,231;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  column-gap:46px;row-gap:14px;align-items:start;
  padding:40px;border-radius:18px;border:1px solid rgba(var(--accent),.17);
  background:linear-gradient(115deg,rgba(17,31,48,.93),rgba(9,16,31,.92));
  box-shadow:0 20px 60px #00000021;backdrop-filter:blur(18px);
  transition:border-color .4s,box-shadow .4s,opacity .8s,transform .8s;
}
.service-card:nth-child(2){--accent:171,151,235}
.service-card:nth-child(3){--accent:117,207,215}
.service-card:nth-child(4){--accent:144,169,241}
.service-card>*{min-width:0}
.service-card::before{background:radial-gradient(650px circle at var(--mouse-x,50%) var(--mouse-y,50%),rgba(var(--accent),.1),transparent 65%)}
.service-card::after{left:0;right:0;top:0;height:1px;opacity:.6;background:linear-gradient(90deg,transparent,rgba(var(--accent),.7),transparent);transform:translateX(-70%);animation:cardEdge 9s ease-in-out infinite}
.service-card:hover{transform:none;border-color:rgba(var(--accent),.42);box-shadow:0 22px 70px #0004,0 0 40px rgba(var(--accent),.05)}
.card-icon{grid-column:1;grid-row:1;width:48px;height:48px;margin:0 0 5px;border:1px solid rgba(var(--accent),.23);border-radius:13px;position:relative}
.card-icon.dev,.card-icon.ops,.card-icon.embed,.card-icon.research{background:linear-gradient(135deg,rgba(var(--accent),.12),rgba(var(--accent),.025));color:rgb(var(--accent))}
.card-icon::after{content:'';position:absolute;inset:-7px;border:1px solid transparent;border-top-color:rgba(var(--accent),.55);border-right-color:rgba(var(--accent),.16);border-radius:50%;animation:iconOrbit 9s linear infinite}
.service-card:hover .card-icon{transform:translateY(-3px);box-shadow:0 0 25px rgba(var(--accent),.13)}
.card-title{grid-column:1;grid-row:2;font-size:clamp(17px,1.65vw,24px);font-weight:550;line-height:1.5;color:#e3edff;margin:0;letter-spacing:0}
.card-desc{grid-column:1;grid-row:3;color:#a3b1c8;font-size:13px;line-height:1.95;text-align:left}
.card-desc .desc-lead,.card-desc .desc-tail{color:#cad7ec;font-weight:500}
.card-desc .desc-item::before{background:rgb(var(--accent));width:4px;height:4px;box-shadow:0 0 9px rgba(var(--accent),.4)}
.card-badge{grid-column:1;grid-row:4;justify-self:start;margin:0;background:rgba(var(--accent),.08);color:rgb(var(--accent));border:1px solid rgba(var(--accent),.17);font-size:10px;letter-spacing:.06em}
.card-badge::before{background:rgb(var(--accent))}
.card-tech{grid-column:1;grid-row:5;margin-top:3px;gap:8px}
.card-tech img{height:34px;max-width:90px;width:auto;object-fit:contain;padding:6px;border-radius:7px;background:#dce6f2;opacity:.82;filter:none;transition:transform .3s,opacity .3s,box-shadow .3s}
.card-tech img:hover{opacity:1;transform:translateY(-4px);box-shadow:0 5px 20px rgba(var(--accent),.16)}
.honor-wall{grid-column:2;grid-row:1/6;align-self:center;min-width:0;width:100%;margin:0;padding:27px 0;border-top:1px solid rgba(var(--accent),.12);border-bottom:1px solid rgba(var(--accent),.12);background:radial-gradient(ellipse at center,rgba(var(--accent),.05),transparent 70%);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.honor-track{animation-duration:48s}
.honor-track img{height:225px;margin-right:16px;border-radius:8px;border:4px solid #dce4f1;opacity:.94;box-shadow:0 12px 25px #0005}
.honor-track img:hover{transform:scale(1.035);box-shadow:0 10px 24px rgba(var(--accent),.2);opacity:1}
.effects-ready .service-card:not(.motion-active) .honor-track{animation-play-state:paused}
.service-card:hover .honor-track{animation-play-state:paused}
.reveal{transition-property:opacity,transform,filter;transition-duration:.85s;transition-timing-function:cubic-bezier(.16,1,.3,1);transform:translateY(32px);filter:blur(3px)}
.reveal.visible{filter:blur(0)}
.service-card.reveal{transition-delay:0s}
#about{padding-top:120px;padding-bottom:140px}
#about::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 25% 50%,#3146811c,transparent 60%);pointer-events:none}
#about::after{content:'';position:absolute;z-index:-1;inset:8% 5%;opacity:.35;background:linear-gradient(90deg,#81ccdb29 0 34px,transparent 34px calc(100% - 34px),#8179d629 calc(100% - 34px)) top/100% 1px no-repeat,linear-gradient(90deg,#81ccdb29 0 34px,transparent 34px calc(100% - 34px),#8179d629 calc(100% - 34px)) bottom/100% 1px no-repeat;pointer-events:none}
.about-grid{max-width:1180px;margin-top:40px;grid-template-columns:1fr 1.05fr;gap:100px}
.about-visual{width:100%;max-width:440px;perspective:800px}
.about-visual::before,.about-visual::after{content:'';position:absolute;inset:4%;border:1px solid #96c2e025;border-radius:50%;pointer-events:none}
.about-visual::before{border-top-color:#85d8e4aa;border-left-color:#85d8e455;animation:iconOrbit 24s linear infinite;box-shadow:0 0 40px #56aee40b,inset 0 0 35px #68b9e60b}
.about-visual::after{inset:14%;border-style:dashed;border-color:#b3a4f033;animation:iconOrbit 40s linear infinite reverse}
.about-visual .glass-panel{border-radius:20px;backdrop-filter:blur(5px)}
.about-visual .glass-panel.p2{top:14%;right:10%;width:70%;height:70%;background:linear-gradient(135deg,#62c9dc08,#8270d408);border-color:#89a0df22;transform:rotate(20deg);animation:panelOrbit 16s ease-in-out infinite}
.about-visual .glass-panel.p3{bottom:15%;left:10%;width:70%;height:70%;background:linear-gradient(135deg,#a89ad808,#5dabdf08);border-color:#a997df22;animation:panelOrbit 16s ease-in-out infinite reverse}
.about-svg-wrap{width:65%;animation-duration:10s}
.about-svg-wrap svg{filter:brightness(1.35) drop-shadow(0 0 20px #658aef44)}
.about-svg-wrap::before{opacity:.1;animation-duration:18s}
.about-visual .ambient-glow{background:radial-gradient(circle,#5465d333,transparent 68%);filter:blur(35px)}
.about-visual .floating-dot{width:5px;height:5px;box-shadow:0 0 18px #75d9ed}
.about-visual .floating-dot.d1{top:16%;right:15%}.about-visual .floating-dot.d2{bottom:20%;left:8%}
.about-text h3{font-size:clamp(28px,3.4vw,44px);font-weight:500;letter-spacing:.04em;margin-bottom:24px}
.about-text p{font-size:14px;line-height:2.2;color:#a5b3cc}
.about-copy p+p{margin-top:18px}
.about-archive-link{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px;padding:15px 17px;border:1px solid #8edce33d;border-radius:9px;background:linear-gradient(105deg,#6fd4df12,#8b78d70a);color:#c9eaf0;text-decoration:none;transition:border-color .35s,background .35s,transform .35s}
.about-archive-link>span{font-size:13px;letter-spacing:.04em}.about-archive-link small{display:block;margin-bottom:6px;color:#789eb4;font:8px/1 Inter,sans-serif;letter-spacing:.2em}
.about-archive-link svg{flex:0 0 auto;transition:transform .35s}.about-archive-link:hover{border-color:#8edce37d;background:linear-gradient(105deg,#6fd4df1d,#8b78d712);transform:translateY(-2px)}.about-archive-link:hover svg{transform:translate(2px,-2px)}
.about-archive-link:focus-visible{outline:2px solid #9be6ed;outline-offset:4px}
.stats-row{gap:20px;margin-top:30px;border-top:1px solid #9eb9e026;padding-top:28px}
.stat-item{flex:1;min-width:0;position:relative;padding:0 0 12px}
.stat-item::after{content:'';position:absolute;left:0;bottom:0;width:28px;height:1px;background:linear-gradient(90deg,#87dfe8,#a191e2);transition:width .5s;box-shadow:0 0 10px #7ee0e044}
.stat-item:hover::after{width:70%}
.stat-num{font-size:28px;font-weight:500;background-image:linear-gradient(115deg,#b7edf5,#b0a6ef)}
.stat-label{font-size:10px;letter-spacing:.15em;color:#7f93b2;margin-top:9px}
.footer{isolation:isolate;padding:120px max(6vw,24px) 35px;border-top:1px solid #849fca1a;background:linear-gradient(180deg,#080f1b11,#040913)}
.footer::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 35%,#4c579e21,transparent 62%)}
.contact-section{position:relative;padding-bottom:95px}
.contact-section::before,.contact-section::after{content:'';position:absolute;z-index:-1;left:50%;top:45%;width:720px;height:360px;border:1px solid #89b7d514;border-radius:50%;pointer-events:none;transform:translate(-50%,-50%) rotate(-18deg);animation:contactOrbit 18s ease-in-out infinite alternate}
.contact-section::after{width:850px;height:420px;border-color:#a594e411;animation-delay:-9s;transform:translate(-50%,-50%) rotate(18deg)}
.contact-card{max-width:650px;padding:36px 40px;gap:36px;margin-top:42px;border-radius:18px;border-color:#a9baf332;background:linear-gradient(125deg,#132138ed,#0c1428ed);box-shadow:0 30px 85px #0005,0 0 70px #8272d008}
.contact-card::before{background:radial-gradient(500px circle at var(--mouse-x,50%) var(--mouse-y,50%),#789ade20,transparent 65%)}
.contact-card::after{content:'';position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(110deg,transparent 25%,#b3d9ff08 48%,transparent 70%);background-size:250% 100%;animation:contactSheen 9s ease-in-out infinite}
.contact-card:hover{transform:translateY(-4px);border-color:#a9baf366;box-shadow:0 35px 80px #0006,0 0 50px #8c77d910}
.qr-wrap{border-radius:12px;padding:12px;border-color:#d2e8f3;box-shadow:0 0 0 6px #95b9df0a,0 0 35px #799ee422}
.contact-label{color:#a9bedb;font-size:10px}.contact-num{font-size:32px;background-image:linear-gradient(110deg,#b3eef3,#b6a9f1)}
.contact-tip{font-size:12px;color:#9eafc9;line-height:1.9}
.contact-copy{padding:10px 19px;font-size:11px;border-radius:5px;background:#a8c6ff0c;color:#d6e5fa;border-color:#aac6f343}
.contact-copy:hover{background:#a8c6ff20;border-color:#aac6f380;box-shadow:0 0 20px #a8c6ff12}
.contact-copy:focus-visible,.footer-links a:focus-visible,.nav-links a:focus-visible{outline:2px solid #8bdfef;outline-offset:5px}
.footer-inner{border-top-color:#b7ceef17;padding-top:30px}.footer-brand img{opacity:.9;border-radius:5px}
.footer-brand span{font-size:12px;color:#b6c6df}.footer-links a{font-size:11px}.footer-copy{font-size:10px;color:#7586a1}
.effects-ready .service-card:not(.motion-active)::after,.effects-ready .service-card:not(.motion-active) .card-icon::after,
.effects-ready #about:not(.motion-active) *,.effects-ready #about:not(.motion-active) ::before,.effects-ready #about:not(.motion-active) ::after,
.effects-ready #contact:not(.motion-active) ::before,.effects-ready #contact:not(.motion-active) ::after{animation-play-state:paused}
@keyframes cardEdge{0%,100%{transform:translateX(-75%);opacity:.25}50%{transform:translateX(75%);opacity:.9}}
@keyframes iconOrbit{to{transform:rotate(360deg)}}
@keyframes panelOrbit{0%,100%{transform:rotate(12deg) translateY(0)}50%{transform:rotate(25deg) translateY(-8px)}}
@keyframes dividerBreathe{50%{opacity:.2;transform:rotate(135deg)}}
@keyframes contactOrbit{to{transform:translate(-50%,-50%) rotate(12deg) scale(1.06)}}
@keyframes contactSheen{0%,30%{background-position:100% 0}80%,100%{background-position:0 0}}
@keyframes gridScan{to{background-position:-240% 0}}
@keyframes mobileGridScan{from{transform:translate3d(-120%,0,0)}to{transform:translate3d(310%,0,0)}}
@media(max-width:1050px){
  .service-card{column-gap:26px;padding:30px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}
  .honor-track img{height:180px}.about-grid{gap:50px}.about-visual{max-width:350px}
}
@media(max-width:800px){
  .section{padding:85px 24px}.services-grid{margin-top:38px;gap:24px}
  .service-card{display:flex;flex-direction:column;gap:14px;padding:26px}
  .card-title{font-size:20px}.card-desc{font-size:13px}.card-tech{margin-top:4px}
  .honor-wall{align-self:stretch;margin-top:10px;padding:19px 0}.honor-track img{height:170px}
  .about-grid{grid-template-columns:1fr;gap:40px;max-width:600px}.about-visual{max-width:310px}
  #about{padding-top:80px;padding-bottom:90px}.about-text h3{font-size:32px}
  .footer{padding:85px 24px 28px}.contact-card{padding:28px;gap:27px}
  .contact-section::before{width:90vw}.contact-section::after{width:105vw}
}
@media(max-width:480px){
  .service-card{padding:24px 20px;border-radius:14px}.card-title{font-size:18px;overflow-wrap:anywhere}
  .card-tech img{height:31px;padding:5px}.honor-track img{height:148px;margin-right:12px}
  .about-grid{margin-top:20px}.about-visual{max-width:270px}.about-text p{font-size:13px}
  .stats-row{gap:12px}.stat-num{font-size:24px}.contact-card{padding:28px 22px;flex-direction:column;text-align:center}
  .contact-num{font-size:clamp(23px,7vw,30px)}.contact-section{padding-bottom:65px}
  .footer-inner{gap:22px}.footer-links{gap:24px}#services .rust-deco{width:110px;top:90px}
}
/* Touch devices: avoid overlapping fixed, filtered and animated compositing layers. */
@media(max-width:800px),(pointer:coarse){
  .bg-orbs,.dot-grid{display:none}
  .tech-grid{display:block;opacity:0;mask-image:none;-webkit-mask-image:none;background-size:48px 48px;transition:opacity .4s}
  .tech-grid.is-visible{opacity:.48}
  .tech-grid::before{left:-70%;right:auto;width:70%;background:linear-gradient(90deg,transparent,#72dce904 30%,#72dce925 50%,#9887df12 63%,transparent);background-size:100% 100%;animation:mobileGridScan 16s linear infinite;will-change:transform}
  .tech-grid::after{display:none}
  .section-constellation{display:block;mix-blend-mode:normal;transition:opacity .4s}
  .section-constellation.is-visible{opacity:.64}
  .content{background:radial-gradient(ellipse at 0 35%,#12233166,transparent 38%)}
  .nav,.nav.scrolled,.nav.on-hero{padding:12px 0;background:#080f1d;backdrop-filter:none;-webkit-backdrop-filter:none;transition:none}
  .nav::after{display:none}
  .service-card,.contact-card,.about-visual .glass-panel{backdrop-filter:none;-webkit-backdrop-filter:none}
  .service-card{background:linear-gradient(115deg,#111f30,#09101f);box-shadow:none;transition:none}
  .service-card:hover{transform:none;box-shadow:none;border-color:rgba(var(--accent),.17)}
  .service-card::before,.service-card::after,.card-icon::after,.contact-card::before,.contact-card::after{display:none}
  .card-icon,.service-card:hover .card-icon{transform:none;box-shadow:none;transition:none}
  .card-badge::before,.section-divider .diamond,#services .rust-deco{animation:none}
  #services .rust-deco{filter:none}
  .honor-wall{overflow:hidden;mask-image:none;-webkit-mask-image:none}
  .honor-track{animation:honorScroll 48s linear infinite}
  .service-card.motion-active .honor-track{animation-play-state:running}
  .service-card.motion-active .honor-wall:active .honor-track{animation-play-state:paused}
  .honor-track img,.honor-track img:hover{transform:none;box-shadow:none;transition:none;cursor:default}
  .about-visual{perspective:none}
  .about-visual *,.about-visual::before,.about-visual::after,.about-visual *::before,.about-visual *::after{filter:none;transition:none}
  .about-visual .ambient-glow{animation:none;background:radial-gradient(circle,#5465d32b,transparent 68%)}
  .about-svg-wrap::before{display:block;animation:none;background:radial-gradient(circle,#68cde333,transparent 68%);opacity:.4}
  .about-visual::before{box-shadow:none}
  .about-visual .glass-panel.p2{transform:rotate(20deg)}
  .about-visual .glass-panel.p3{transform:rotate(-12deg)}
  .about-svg-wrap{animation:aboutSvgFloat 10s ease-in-out infinite}
  .about-svg-wrap svg{filter:none}
  .about-archive-link,.about-archive-link:hover{transform:none;transition:none}
  .contact-section::before,.contact-section::after{display:none}
  .contact-card,.contact-card:hover{background:linear-gradient(125deg,#132138,#0c1428);transform:none;box-shadow:none;transition:none;border-color:#a9baf332}
  .qr-wrap{box-shadow:none}
  .particle-mist{animation:none;filter:none;will-change:auto;opacity:.25}
  .hero-inner>*{animation:none}
  .hero-art{animation:none}
  /* Transform/opacity only: retain the reveal motion without a blur repaint. */
  .reveal{filter:none;transition:opacity .65s ease,transform .65s cubic-bezier(.16,1,.3,1);transition-delay:0s}
  .reveal:not(.visible){opacity:0;transform:translateY(22px)}
  .reveal.visible{opacity:1;transform:none;filter:none}
}
@media(prefers-reduced-motion:reduce){
  .reveal,.reveal:not(.visible){opacity:1;transform:none;filter:none}.section-constellation,.tech-grid{transition:none}.tech-grid::before{animation:none;background-position:50% 0}
  .honor-wall{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.honor-track{animation:none}
  .service-card::after{transform:none}.service-card:hover,.contact-card:hover{transform:none}
}
