.sw-logo{display:flex;width:max-content;max-width:100%;align-items:center;padding:10px 18px;border-radius:14px;background:#fff;box-shadow:0 18px 40px -18px rgba(0,0,0,.6);margin-bottom:20px}
.sw-logo img{height:44px;width:auto;max-width:210px;object-fit:contain}
.sw-logo.is-light{background:var(--x-bg);box-shadow:none;border:1px solid var(--x-line);padding:8px 14px}
.sw-logo.is-light img{height:38px}
.sw-hero-title span{background-size:220% 100%;animation:swShimmer 6s ease-in-out infinite}
@keyframes swShimmer{0%,100%{background-position:0 0}50%{background-position:100% 0}}

.sw-hero{--gx:70%;--gy:30%}
.sw-hero::after{background:radial-gradient(520px circle at var(--gx) var(--gy),rgba(123,219,149,.16),transparent 60%),linear-gradient(180deg,transparent 70%,rgba(16,32,66,.55))}
.sw-progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:9999;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--x-accent),#7BDB95,#5aa8ff);pointer-events:none}

.sw-window{background:#0b1630;transform:rotateY(-6deg) rotateX(2deg)}
.sw-window-bar em{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.sw-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:#7BDB95;letter-spacing:.06em;text-transform:uppercase}
.sw-live i{width:7px;height:7px;border-radius:50%;background:#7BDB95;animation:ntsxPulse 2s infinite}
.sw-ui{display:grid;grid-template-columns:42px minmax(0,1fr) 168px;grid-template-rows:minmax(360px,1fr)}
.sw-ui-solo{grid-template-columns:1fr;grid-template-rows:auto}
.sw-ui-tools{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 0;background:#0e1c3b;border-right:1px solid rgba(255,255,255,.07)}
.sw-ui-tools i{width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.1)}
.sw-ui-tools i.on{background:linear-gradient(135deg,var(--x-accent),var(--x-accent-2));box-shadow:0 0 14px rgba(40,163,74,.7)}
.sw-ui-canvas{position:relative;overflow:hidden;min-height:360px;background:#0b1630}
.sw-ui-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.8);animation:swKen 22s ease-in-out infinite alternate}
@keyframes swKen{from{transform:scale(1.02)}to{transform:scale(1.14) translate(-1.5%,1%)}}
.sw-ui-canvas::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,22,48,.1),rgba(11,22,48,.45))}
.sw-ui-solo .sw-ui-canvas{aspect-ratio:16/10.5;min-height:0}
.sw-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:2}
.sw-overlay .sw-pipe-base{fill:none;stroke:rgba(10,24,56,.7);stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.sw-overlay .sw-pipe-base.is-main{stroke-width:11}
.sw-overlay .sw-pipe{fill:none;stroke:#7fe0ff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4 14;animation:swFlow 1.3s linear infinite;filter:drop-shadow(0 0 4px rgba(127,224,255,.9))}
.sw-overlay .sw-pipe-main{stroke:#9fffc0;stroke-width:4;filter:drop-shadow(0 0 5px rgba(159,255,192,.9))}
.sw-overlay .sw-head{fill:#9fffc0;stroke:#0b1630;stroke-width:2.5}
.sw-overlay .sw-ring{fill:rgba(124,255,176,.14);stroke:rgba(159,255,192,.85);stroke-width:1.6;transform-box:fill-box;transform-origin:center;animation:swPing 3.6s ease-out infinite;opacity:0}
.sw-overlay .sw-valve{fill:#ffc14d;stroke:#0b1630;stroke-width:1.5}
.sw-overlay .sw-pump circle{fill:#1B325D;stroke:#9fffc0;stroke-width:3}
.sw-overlay .sw-pump path{fill:#9fffc0}
.sw-overlay text{fill:#fff;font:700 13px/1 ui-monospace,Menlo,Consolas,monospace;paint-order:stroke;stroke:rgba(8,18,40,.85);stroke-width:4px}
.sw-overlay .sw-scan{animation:swScan 5.5s ease-in-out infinite}
@keyframes swScan{0%{transform:translateX(0)}70%,100%{transform:translateX(1250px)}}
.sw-ui-side{padding:16px 14px;background:#0e1c3b;border-left:1px solid rgba(255,255,255,.07);color:#fff;font-size:12px}
.sw-ui-side h4{margin:0 0 12px;font-size:13px;color:#7BDB95;letter-spacing:.04em}
.sw-ui-side dl{margin:0;display:grid;gap:12px}
.sw-ui-side dl div{display:grid;grid-template-columns:1fr auto;gap:2px 6px}
.sw-ui-side dt{color:rgba(255,255,255,.55)}
.sw-ui-side dd{margin:0;font-weight:700}
.sw-bar{grid-column:1/-1;height:5px;border-radius:5px;background:rgba(255,255,255,.1);position:relative;overflow:hidden}
.sw-bar::after{content:"";position:absolute;inset:0;width:var(--w);border-radius:5px;background:linear-gradient(90deg,var(--x-accent),#7BDB95);animation:swBar 3.5s ease-in-out infinite alternate}
@keyframes swBar{from{transform:scaleX(.55);transform-origin:0 50%}to{transform:scaleX(1);transform-origin:0 50%}}
.sw-ui-side ul{list-style:none;margin:16px 0 0;padding:12px 0 0;border-top:1px solid rgba(255,255,255,.1);display:grid;gap:9px}
.sw-ui-side li{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.75)}
.sw-ui-side li span{width:8px;height:8px;border-radius:2px;background:#7fe0ff}
.sw-ui-side li:nth-child(2) span{background:#9fffc0}.sw-ui-side li:nth-child(3) span{background:#ffc14d}
.sw-ui-side li b{margin-left:auto;color:#fff}
.sw-float{position:absolute;z-index:3;right:-22px;bottom:-62px;margin:0;width:190px;border-radius:16px;overflow:hidden;border:3px solid #fff;box-shadow:0 30px 60px -20px rgba(0,0,0,.6);animation:swBob 7s ease-in-out infinite;animation-delay:-2s}
.sw-float img{width:100%;aspect-ratio:4/3;object-fit:cover}
.sw-float figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 8px;font-size:11.5px;font-weight:700;color:#fff;background:linear-gradient(180deg,transparent,rgba(0,0,0,.7))}
.sw-badge{left:-10px}

.sw-projects{padding:92px 0;background:var(--x-surface-2)}
.sw-pj-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:240px;gap:18px}
.sw-pj{position:relative;display:block;overflow:hidden;border-radius:var(--x-r-lg);background:#0f1f40;box-shadow:var(--x-shadow-sm);color:#fff;text-decoration:none;isolation:isolate}
.sw-pj.is-lead{grid-column:span 2;grid-row:span 2}
.sw-pj img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--x-ease);z-index:-2}
.sw-pj:hover img{transform:scale(1.09)}
.sw-pj-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 35%,rgba(8,18,40,.86))}
.sw-pj::before{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14);pointer-events:none}
.sw-pj-cap{position:absolute;left:0;right:0;bottom:0;padding:22px 24px;display:flex;flex-direction:column;gap:6px;transform:translateY(8px);transition:transform .5s var(--x-ease)}
.sw-pj:hover .sw-pj-cap{transform:none}
.sw-pj-cap em{align-self:flex-start;font-style:normal;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 11px;border-radius:999px;background:rgba(40,163,74,.9)}
.sw-pj-cap strong{font-size:18px;line-height:1.3;letter-spacing:-.01em}
.sw-pj.is-lead .sw-pj-cap strong{font-size:26px}

.sw-partners{padding:84px 0 76px;background:#fff;overflow:hidden}
.sw-marquee{position:relative;margin-top:10px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.sw-marquee-track{display:flex;align-items:center;gap:22px;width:max-content;margin:0;padding:14px 0;list-style:none;animation:swMarquee 38s linear infinite}
.sw-marquee:hover .sw-marquee-track{animation-play-state:paused}
@keyframes swMarquee{to{transform:translateX(-50%)}}
.sw-marquee-track li{flex:none;display:grid;place-items:center;width:190px;height:96px;border-radius:18px;background:var(--x-bg);border:1px solid var(--x-line);transition:transform .35s var(--x-ease),box-shadow .35s,border-color .35s,background .35s}
.sw-marquee-track li:hover{transform:translateY(-6px);background:#fff;box-shadow:var(--x-shadow-md);border-color:transparent}
.sw-marquee-track a{display:grid;place-items:center;width:100%;height:100%}
.sw-marquee-track img{max-width:128px;max-height:52px;width:auto;height:auto;object-fit:contain;filter:grayscale(1);opacity:.7;transition:filter .35s,opacity .35s,transform .35s}
.sw-marquee-track li:hover img{filter:none;opacity:1;transform:scale(1.06)}

.sw-card-logo{position:absolute;right:14px;bottom:14px;display:grid;place-items:center;padding:8px 12px;border-radius:12px;background:#fff;box-shadow:var(--x-shadow-md)}
.sw-card-logo img{height:28px;width:auto;max-width:120px;object-fit:contain;aspect-ratio:auto}
.sw-card:hover .sw-card-logo img{transform:none}
.sw-spot-stage .sw-overlay{z-index:2}
.sw-spot-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,22,48,.35),transparent 40%)}
.sw-spot-stage img{filter:saturate(.95) brightness(.85)}
.sw-arch-stage .sw-ui-solo .sw-ui-canvas{aspect-ratio:16/11}

.sw-tile.is-hero{position:relative}
.sw-tile.is-hero::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:linear-gradient(120deg,#7BDB95,transparent 30%,#5aa8ff 60%,transparent 80%,#7BDB95);background-size:300% 100%;animation:swBorder 7s linear infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
@keyframes swBorder{to{background-position:300% 0}}

@media (max-width:1024px){
  .sw-ui{grid-template-columns:36px minmax(0,1fr)}
  .sw-ui-side{display:none}
  .sw-float{right:8px;bottom:-30px;width:150px}
  .sw-pj-grid{grid-template-columns:repeat(2,1fr)}
  .sw-pj.is-lead{grid-column:span 2;grid-row:span 1}
}
@media (max-width:640px){
  .sw-pj-grid{grid-template-columns:1fr;grid-auto-rows:220px}
  .sw-pj.is-lead{grid-column:auto}
  .sw-float{display:none}
  .sw-logo img{height:36px}
  .sw-marquee-track li{width:150px;height:80px}
}
@media (prefers-reduced-motion:reduce){
  .sw-ui-photo,.sw-marquee-track,.sw-overlay .sw-scan,.sw-bar::after,.sw-tile.is-hero::after,.sw-hero-title span{animation:none}
  .sw-overlay .sw-ring{opacity:.4;transform:scale(.6)}
}
.sw-split-art .sw-ui-photo,.sw-panel-art .sw-ui-photo{filter:saturate(1) brightness(.92)}
.sw-split-art::after,.sw-panel-art::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(11,22,48,.55))}
.sw-panel-art{position:relative}
.sw-split-art svg.sw-overlay,.sw-panel-art svg.sw-overlay{padding:0}
.sw .sw-ui-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none}
.sw .sw-card-media img,.sw .sw-spot-stage img{height:100%}
