:root {
  --ink: #071917;
  --ink-2: #0d2a27;
  --ink-3: #173c37;
  --paper: #faf9f5;
  --paper-2: #f0eee6;
  --white: #faf9f5;
  --lime: #d9ff55;
  --mint: #8ee8ce;
  --coral: #ff7557;
  --text: #0d2926;
  --muted: #58706c;
  --line: rgba(7, 25, 23, .14);
  --line-light: rgba(255, 255, 255, .16);
  --display: "Manrope", system-ui, sans-serif;
  --mono: "DM Mono", monospace;
  --shadow: 0 24px 70px rgba(6, 27, 24, .14);
  --radius: 24px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--paper); color: var(--text); font-family: var(--display); margin: 0; overflow-x: hidden; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img, video { display: block; max-width: 100%; }
::selection { background: var(--lime); color: var(--ink); }
.shell { margin-inline: auto; width: min(1240px, calc(100% - 48px)); }
.skip-link { background: var(--lime); color: var(--ink); left: 12px; padding: 12px 16px; position: fixed; top: -100px; z-index: 100; }
.skip-link:focus { top: 12px; }
h1, h2, h3, p { margin-top: 0; }
.section-title { font-size: clamp(2.25rem, 5.2vw, 5.2rem); font-weight: 700; letter-spacing: -.075em; line-height: .98; margin: 0; max-width: 11ch; }
.section-copy { color: var(--muted); font-size: 1rem; line-height: 1.75; margin: 22px 0 0; max-width: 58ch; }
.button { align-items: center; border: 0; border-radius: 999px; display: inline-flex; font-size: 14px; font-weight: 700; gap: 14px; justify-content: center; padding: 16px 20px; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button:hover { transform: translateY(-3px); }
.button:disabled { cursor: progress; opacity: .55; transform: none; }
[hidden] { display: none !important; }
.button:focus-visible, a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--coral); outline-offset: 3px; }
.button-primary { background: var(--lime); box-shadow: 0 10px 26px rgba(217, 255, 85, .12); color: var(--ink); }
.button-dark { background: var(--ink); color: white; }
.button-ghost { border: 1px solid rgba(255, 255, 255, .25); color: white; }
.button-icon { align-items: center; background: rgba(7, 25, 23, .1); border-radius: 50%; display: inline-flex; font-size: 16px; height: 28px; justify-content: center; width: 28px; }
.button-ghost .button-icon { background: rgba(255, 255, 255, .1); }
.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1); }
.js .reveal.is-visible { opacity: 1; transform: none; }

.site-header { background: rgba(250, 249, 245, .9); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 50; backdrop-filter: blur(18px); }
.nav { align-items: center; display: flex; height: 76px; justify-content: space-between; }
.brand { align-items: center; display: inline-flex; font-size: 17px; font-weight: 800; gap: 11px; letter-spacing: -.055em; min-height: 44px; }
.brand-mark { border-radius: 14px; display: inline-flex; flex-shrink: 0; height: 54px; overflow: hidden; transform: rotate(-6deg); width: 54px; }
.brand-mark img { display: block; height: 100%; width: 100%; }
.nav-links { align-items: center; display: flex; gap: 20px; }
.nav-links > a:not(.button) { color: #36534f; font-size: 13px; font-weight: 600; }
.nav-links > a:not(.button):hover { color: var(--coral); }
.nav .button { font-size: 13px; gap: 10px; padding: 10px 16px; }
.nav-call { align-items: center; color: var(--ink); display: inline-flex; font-size: 13px; font-weight: 700; gap: 8px; letter-spacing: -.02em; margin-left: auto; margin-right: 18px; }
.nav-call:hover { color: var(--coral); }
.nav-call-icon { display: inline-flex; }
.nav-call-icon svg { height: 16px; width: 16px; }
.menu-toggle { background: none; border: 0; display: none; height: 44px; padding: 9px; width: 44px; }
.menu-toggle i { background: var(--ink); display: block; height: 2px; margin: 5px auto; transition: transform .2s ease, opacity .2s ease; width: 23px; }
.menu-toggle.active i:first-child { transform: translateY(7px) rotate(45deg); }
.menu-toggle.active i:nth-child(2) { opacity: 0; }
.menu-toggle.active i:last-child { transform: translateY(-7px) rotate(-45deg); }

.hero { background: var(--ink); color: white; isolation: isolate; min-height: 100svh; overflow: hidden; position: relative; }
.hero::before, .hero::after { content: none; display: none; }
.hero-video { filter: none; height: 100%; inset: 0; object-fit: cover; object-position: center; position: absolute; transform: scale(1.3); transform-origin: center; width: 100%; z-index: -2; }
.hero-scrim { background: linear-gradient(90deg, rgba(7,25,23,.8) 0%, rgba(7,25,23,.74) 55%, rgba(7,25,23,.2) 82%, transparent 96%); inset: 0; pointer-events: none; position: absolute; z-index: 0; }
.hero-grid { align-items: center; display: flex; min-height: 100svh; padding: 90px 0 96px; position: relative; z-index: 2; }
.hero-copy { max-width: 850px; padding-top: 5px; }
.hero h1 { font-size: clamp(3.65rem, 8.2vw, 8.6rem); font-weight: 700; letter-spacing: -.09em; line-height: .88; margin: 0; max-width: 8.3ch; text-shadow: none; }
.hero h1 span { color: var(--lime); display: block; }
.hero-lede { color: #d9e8e3; font-size: clamp(1rem, 1.6vw, 1.15rem); line-height: 1.7; margin: 28px 0 0; max-width: 57ch; text-shadow: none; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 34px; }


.intro { background: var(--white); padding: 120px 0 48px; }
.infra-head { display: grid; gap: 28px; grid-template-columns: 1fr; justify-items: center; text-align: center; }
.infra-head .section-title { font-size: clamp(3.35rem, 6.25vw, 6.8rem); margin-top: 0; max-width: none; }
@media (min-width: 981px) { .infra-head .section-title { white-space: nowrap; } }
.infra-summary { align-items: center; display: flex; flex-direction: column; padding-bottom: 7px; }
.infra-summary .section-copy { font-size: clamp(1.2rem, 1.55vw, 1.5rem); font-weight: 450; line-height: 1.58; margin-left: auto; margin-right: auto; max-width: 47ch; text-align: center; }
.infra-panel { background: #061714; border: 1px solid #163a34; border-radius: 18px; color: white; margin-top: 54px; overflow: hidden; position: relative; }
.infra-panel::before { background-image: linear-gradient(rgba(142,232,206,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(142,232,206,.045) 1px, transparent 1px); background-size: 32px 32px; content: ""; inset: 45px 0 38px; pointer-events: none; position: absolute; }
.infra-panel-bar { align-items: center; border-bottom: 1px solid rgba(255,255,255,.1); color: #8daaa1; display: flex; font: 500 9px/1 var(--mono); justify-content: space-between; letter-spacing: .09em; min-height: 46px; padding: 0 24px; position: relative; text-transform: uppercase; z-index: 2; }
.infra-panel-bar span:first-child { align-items: center; color: #cde1db; display: flex; gap: 9px; }
.infra-panel-bar i { animation: status-pulse 2s ease-in-out infinite; background: var(--lime); border-radius: 50%; display: block; height: 7px; width: 7px; }
.infra-stage { align-items: center; display: grid; gap: 24px; grid-template-columns: 220px minmax(120px, 1fr) 440px; min-height: 410px; padding: 36px; position: relative; z-index: 1; }
.core-rack { background: #0c2521; border: 1px solid rgba(255,255,255,.15); border-radius: 8px; box-shadow: inset 0 0 0 5px #091d1a; min-height: 326px; padding: 21px 16px 16px; position: relative; }
.core-rack::before, .core-rack::after { background: #314a45; border-radius: 50%; content: ""; height: 4px; position: absolute; top: 10px; width: 4px; }
.core-rack::before { left: 10px; }.core-rack::after { right: 10px; }
.rack-heading { align-items: center; color: #8ca69f; display: flex; font: 500 8px/1 var(--mono); justify-content: space-between; letter-spacing: .08em; margin-bottom: 14px; text-transform: uppercase; }
.rack-heading b { color: var(--lime); font-weight: 500; }
.infra-rack-unit { background: #061411; border: 1px solid #28423d; border-radius: 3px; margin-top: 8px; min-height: 48px; padding: 9px 10px; }
.infra-rack-unit > span { color: #96ada6; display: block; font: 500 7px/1 var(--mono); letter-spacing: .08em; margin-bottom: 8px; text-transform: uppercase; }
.port-row { display: grid; gap: 4px; grid-template-columns: repeat(8, 1fr); }
.port-row i { background: #1a3631; border: 1px solid #38534d; border-radius: 1px; display: block; height: 7px; position: relative; }
.port-row i::after { animation: port-blink 2.6s steps(1) infinite; background: var(--lime); border-radius: 50%; content: ""; height: 2px; opacity: .25; position: absolute; right: 1px; top: 1px; width: 2px; }
.port-row i:nth-child(3n)::after { animation-delay: -.8s; }.port-row i:nth-child(4n)::after { animation-delay: -1.7s; background: var(--mint); }
@keyframes port-blink { 0%,72%,100% { opacity: .18; } 76%,88% { box-shadow: 0 0 5px currentColor; opacity: 1; } }
.gateway-line { align-items: center; display: flex; gap: 5px; }
.gateway-line i { background: #2c4943; border-radius: 50%; height: 5px; width: 5px; }.gateway-line i:first-child { animation: status-pulse 2.2s infinite; background: var(--mint); }.gateway-line span { background: #1a3631; height: 4px; margin-left: auto; width: 62%; }
.infra-links { height: 326px; min-width: 120px; position: relative; }
.infra-links svg { height: 100%; overflow: visible; width: 100%; }
.infra-links path { fill: none; stroke-linecap: round; }
.infra-links .link-base { stroke: rgba(142,232,206,.2); stroke-width: 2; }
.infra-links .link-live { animation: network-flow 3.8s linear infinite; stroke: var(--lime); stroke-dasharray: 3 14; stroke-width: 2; }
.infra-links .link-live:nth-of-type(6) { animation-delay: -.8s; }.infra-links .link-live:nth-of-type(7) { animation-delay: -1.6s; }.infra-links .link-live:nth-of-type(8) { animation-delay: -2.4s; }
@keyframes network-flow { to { stroke-dashoffset: -68; } }
.endpoint-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, 1fr); }
.endpoint-card { background: rgba(11,35,31,.92); border: 1px solid #24433d; border-radius: 8px; min-height: 145px; padding: 18px; position: relative; transition: border-color .25s ease, transform .25s ease; }
.endpoint-card:hover { border-color: #5d7d74; transform: translateY(-3px); }
.endpoint-card h3 { font-size: 16px; letter-spacing: -.03em; margin: 26px 0 5px; }
.endpoint-card p { color: #88a39b; font: 400 8px/1.45 var(--mono); letter-spacing: .04em; margin: 0; text-transform: uppercase; }
.endpoint-status { align-items: center; display: flex; gap: 6px; position: absolute; right: 14px; top: 14px; }
.endpoint-status::before { background: var(--mint); border-radius: 50%; content: ""; height: 5px; width: 5px; }
.endpoint-card:nth-child(2) .endpoint-status::before { background: var(--lime); }.endpoint-card:nth-child(3) .endpoint-status::before { background: var(--coral); }.endpoint-card:nth-child(4) .endpoint-status::before { background: #8db8ff; }
.endpoint-status { color: #718e86; font: 500 6px/1 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.services { background: var(--white); padding: 72px 0 125px; }
.services-head { display: flex; justify-content: center; padding-bottom: 62px; text-align: center; }
.services-head .section-title { font-size: clamp(3.2rem, 6vw, 6.5rem); margin: 0; max-width: none; }
.services-head .section-title span { display: block; white-space: nowrap; }
.service-grid { align-items: start; display: grid; gap: 14px; grid-template-columns: repeat(12, 1fr); }
.service-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); display: flex; flex-direction: column; min-height: 370px; overflow: hidden; padding: 27px; position: relative; transition: transform .3s ease, background .3s ease, color .3s ease, box-shadow .3s ease; }
.service-card:hover { box-shadow: var(--shadow); transform: translateY(-6px); }
.service-card:focus-visible { box-shadow: 0 0 0 4px rgba(217,255,85,.65), var(--shadow); outline: 0; transform: translateY(-4px); }
.service-card:nth-child(1), .service-card:nth-child(6) { grid-column: span 7; }
.service-card:nth-child(2), .service-card:nth-child(5) { grid-column: span 5; }
.service-card:nth-child(3), .service-card:nth-child(4) { grid-column: span 6; }
.service-card.featured { background: var(--ink); color: white; }
.service-card.accent { background: var(--mint); }
.service-top { align-items: center; display: flex; justify-content: space-between; }
.service-index { color: var(--muted); font: 500 9px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.featured .service-index { color: #96b7ad; }
.service-card h3 { font-size: clamp(1.72rem, 2.85vw, 2.55rem); letter-spacing: -.065em; line-height: 1.04; margin: 22px 0 0; }
.service-card p { color: var(--muted); font-size: 17px; line-height: 1.5; margin: 14px 0; max-width: 50ch; }
.featured p { color: #a9c4bb; }
.accent p { color: #31554f; }
.service-arrow { align-items: center; align-self: flex-end; border-radius: 50%; display: flex; flex: 0 0 auto; font-size: 18px; height: 36px; justify-content: center; transition: transform .25s ease; width: 36px; }
.service-card:hover .service-arrow { transform: rotate(45deg); }
.featured .service-arrow { background: var(--lime); color: var(--ink); }

/* Small system stories inside each service card */
.service-motion { border: 1px solid var(--line); border-radius: 15px; flex: 0 0 auto; height: 132px; margin-top: 16px; overflow: hidden; position: relative; transition: transform .3s ease; }
.service-motion::before { background-image: linear-gradient(rgba(7,25,23,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(7,25,23,.06) 1px, transparent 1px); background-size: 18px 18px; content: ""; inset: 0; mask-image: linear-gradient(to right, black, transparent); position: absolute; }
.featured .service-motion { border-color: rgba(255,255,255,.14); }
.featured .service-motion::before { background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px); }
.service-card:hover .service-motion { transform: translateY(-3px); }
.featured .fiber-end { border-color: var(--mint); color: var(--mint); }
.featured .fiber-end::after { background: var(--ink); }
.featured .splice-flash { border-color: var(--mint); }
.featured .camera-mini { background: var(--mint); }
.featured .camera-mini::before { border-color: var(--mint); }
.featured .camera-mini::after { background: var(--mint); }
.featured .motion-home { border-color: var(--white); }
.featured .motion-home::before { border-bottom-color: var(--white); }
.featured .motion-home::after { border-color: rgba(255,255,255,.72); }
.featured .access-door { border-color: var(--white); }
.featured .access-door::before { background: #bdd9cf; border-color: var(--white); }
.featured .access-door::after, .featured .access-reader { background: var(--mint); }
.featured .access-card { border-color: var(--white); }
.featured .wifi-access-point { background: var(--white); }
.featured .wifi-wave-mini { border-color: var(--mint); }
.featured .wifi-client { border-color: var(--ink); box-shadow: 0 0 0 1px var(--white); }

/* Structured cabling: runs terminate into a live patch panel. */
.cable-line { animation: cable-terminate 3.6s cubic-bezier(.3,.8,.25,1) infinite; border-radius: 99px; height: 2px; left: 8px; position: absolute; right: 76px; top: 18px; transform: scaleX(.06); transform-origin: left; }
.cable-line::before { background: inherit; border-radius: 50%; content: ""; height: 7px; left: -2px; position: absolute; top: -2px; width: 7px; }
.cable-line::after { background: currentColor; border: 2px solid currentColor; border-radius: 2px; content: ""; height: 8px; position: absolute; right: -3px; top: -3px; width: 10px; }
.cable-line:nth-child(1) { background: var(--lime); color: var(--lime); }
.cable-line:nth-child(2) { animation-delay: -.5s; background: var(--mint); color: var(--mint); top: 39px; }
.cable-line:nth-child(3) { animation-delay: -1s; background: var(--coral); color: var(--coral); top: 60px; }
.cable-line:nth-child(4) { animation-delay: -1.5s; background: #74b9ff; color: #74b9ff; top: 81px; }
@keyframes cable-terminate { 0%,12% { opacity: .35; transform: scaleX(.06); } 52%,88% { opacity: 1; transform: scaleX(1); } 100% { opacity: .35; transform: scaleX(.06); } }
.patch-mini { background: rgba(7,25,23,.72); border: 1px solid rgba(255,255,255,.2); border-radius: 7px; display: grid; gap: 5px; grid-template-columns: repeat(2, 1fr); padding: 8px; position: absolute; right: 9px; top: 10px; width: 59px; }
.patch-mini i { animation: patch-blink 2.2s ease-in-out infinite; background: #35534f; border-radius: 2px; height: 9px; }
.patch-mini i:nth-child(2), .patch-mini i:nth-child(5) { animation-delay: -.8s; }.patch-mini i:nth-child(3), .patch-mini i:nth-child(8) { animation-delay: -1.4s; }
@keyframes patch-blink { 0%,65%,100% { background: #35534f; box-shadow: none; } 70%,85% { background: var(--lime); box-shadow: 0 0 9px rgba(217,255,85,.6); } }

/* Fiber: two prepared ends meet and a light pulse passes through the splice. */
.fiber-end { animation-duration: 4s; animation-iteration-count: infinite; animation-timing-function: cubic-bezier(.4,.8,.2,1); border: 2px solid currentColor; height: 13px; position: absolute; top: 46px; width: calc(50% - 15px); }
.fiber-end::after { background: rgba(7,25,23,.85); content: ""; height: 3px; left: 0; position: absolute; right: 0; top: 3px; }
.fiber-left { animation-name: fiber-left-meet; border-radius: 9px 2px 2px 9px; color: #0f5c54; left: 5px; }
.fiber-right { animation-name: fiber-right-meet; border-radius: 2px 9px 9px 2px; color: #0f5c54; right: 5px; }
@keyframes fiber-left-meet { 0%,15%,100% { transform: translateX(-14px); } 36%,82% { transform: translateX(0); } }
@keyframes fiber-right-meet { 0%,15%,100% { transform: translateX(14px); } 36%,82% { transform: translateX(0); } }
.splice-flash { animation: splice-glow 4s ease-in-out infinite; background: white; border: 3px solid #0f5c54; border-radius: 50%; height: 18px; left: calc(50% - 9px); position: absolute; top: 43px; width: 18px; z-index: 2; }
@keyframes splice-glow { 0%,30%,100% { box-shadow: 0 0 0 rgba(255,255,255,0); transform: scale(.5); } 43%,75% { box-shadow: 0 0 8px white, 0 0 24px rgba(255,255,255,.9); transform: scale(1); } }
.light-pulse { animation: fiber-pulse 4s linear infinite; background: white; border-radius: 99px; box-shadow: 0 0 10px white; height: 4px; left: 7px; opacity: 0; position: absolute; top: 51px; width: 25px; z-index: 3; }
@keyframes fiber-pulse { 0%,41% { left: 7px; opacity: 0; } 46% { opacity: 1; } 78% { left: calc(100% - 33px); opacity: 1; } 84%,100% { left: calc(100% - 33px); opacity: 0; } }

/* Camera: the view cone sweeps a home and confirms the protected zone. */
.camera-mini { background: var(--ink); border-radius: 10px 4px 4px 10px; height: 22px; left: 14px; position: absolute; top: 19px; transform: rotate(9deg); width: 48px; z-index: 3; }
.camera-mini::before { background: var(--mint); border: 4px solid var(--ink); border-radius: 50%; content: ""; height: 25px; left: -8px; position: absolute; top: -2px; width: 25px; }
.camera-mini::after { background: var(--ink); content: ""; height: 25px; position: absolute; right: 4px; top: 17px; transform: rotate(31deg); transform-origin: top; width: 4px; }
.scan-beam { animation: camera-scan 5s ease-in-out infinite; background: linear-gradient(90deg, rgba(217,255,85,.42), rgba(217,255,85,0)); clip-path: polygon(0 45%, 100% 0, 100% 100%); height: 80px; left: 47px; position: absolute; top: 27px; transform: rotate(-8deg); transform-origin: 0 50%; width: 145px; z-index: 1; }
@keyframes camera-scan { 0%,100% { opacity: .32; transform: rotate(-13deg); } 50% { opacity: .75; transform: rotate(11deg); } }
.motion-home { border: 2px solid var(--ink); bottom: 14px; height: 52px; position: absolute; right: 14px; width: 88px; z-index: 2; }
.motion-home::before { border-bottom: 32px solid var(--ink); border-left: 48px solid transparent; border-right: 48px solid transparent; content: ""; left: -6px; position: absolute; top: -31px; }
.motion-home::after { border: 5px solid var(--white); bottom: 10px; content: ""; height: 23px; left: 13px; position: absolute; width: 25px; }
.secure-check { align-items: center; animation: secured 5s ease-in-out infinite; background: var(--lime); border: 3px solid var(--white); border-radius: 50%; bottom: 18px; color: var(--ink); display: flex; font-size: 10px; font-weight: 800; height: 25px; justify-content: center; position: absolute; right: 8px; width: 25px; z-index: 4; }
@keyframes secured { 0%,28%,100% { opacity: .25; transform: scale(.7); } 47%,75% { opacity: 1; transform: scale(1); } }

/* Access: a credential approaches, the reader verifies it, and the door opens. */
.access-door { border: 2px solid var(--ink); height: 92px; position: absolute; right: 22px; top: 15px; width: 64px; }
.access-door::before { animation: door-open 4s ease-in-out infinite; background: #e9e9df; border: 1px solid var(--ink); content: ""; inset: 6px; position: absolute; transform-origin: right; }
.access-door::after { background: var(--ink); border-radius: 50%; content: ""; height: 5px; left: 12px; position: absolute; top: 49px; width: 5px; }
@keyframes door-open { 0%,40%,100% { transform: perspective(120px) rotateY(0); } 58%,82% { transform: perspective(120px) rotateY(-42deg); } }
.access-reader { background: var(--ink); border-radius: 5px; height: 40px; position: absolute; right: 96px; top: 39px; width: 25px; }
.access-reader::after { animation: reader-ok 4s ease-in-out infinite; background: var(--coral); border-radius: 50%; content: ""; height: 6px; left: 10px; position: absolute; top: 8px; width: 6px; }
@keyframes reader-ok { 0%,38%,100% { background: var(--coral); box-shadow: none; } 46%,82% { background: var(--lime); box-shadow: 0 0 10px var(--lime); } }
.access-card { animation: card-tap 4s ease-in-out infinite; background: var(--white); border: 2px solid var(--ink); border-radius: 4px; height: 32px; position: absolute; right: 156px; top: 44px; transform: rotate(-8deg); width: 47px; }
.access-card::after { background: var(--coral); border-radius: 99px; content: ""; height: 4px; left: 8px; position: absolute; top: 8px; width: 21px; }
@keyframes card-tap { 0%,15%,100% { transform: translateX(0) rotate(-8deg); } 40%,65% { transform: translateX(36px) rotate(0); } }

/* Wi-Fi: a wired access point broadcasts to nearby devices. */
.wifi-access-point { background: var(--ink); border-radius: 12px; bottom: 14px; height: 19px; left: calc(50% - 38px); position: absolute; width: 76px; z-index: 3; }
.wifi-access-point::after { animation: reader-ok 2.6s ease-in-out infinite; background: var(--lime); border-radius: 50%; content: ""; height: 5px; position: absolute; right: 10px; top: 7px; width: 5px; }
.wifi-wave-mini { animation: wifi-broadcast 3.2s ease-out infinite; border: 2px solid var(--ink); border-radius: 50%; bottom: -23px; clip-path: inset(0 0 50% 0); height: 85px; left: calc(50% - 43px); opacity: 0; position: absolute; width: 85px; }
.wifi-wave-mini:nth-child(2) { animation-delay: -1.05s; }.wifi-wave-mini:nth-child(3) { animation-delay: -2.1s; }
@keyframes wifi-broadcast { 0% { opacity: .8; transform: scale(.2); } 80%,100% { opacity: 0; transform: scale(1.45); } }
.wifi-client { background: var(--coral); border: 3px solid var(--white); border-radius: 50%; box-shadow: 0 0 0 1px var(--ink); height: 14px; position: absolute; top: 27px; width: 14px; z-index: 4; }
.client-one { animation: client-ping 3s ease-in-out infinite; left: 18%; }.client-two { animation: client-ping 3s -1.5s ease-in-out infinite; right: 18%; top: 42px; }
@keyframes client-ping { 50% { box-shadow: 0 0 0 8px rgba(255,117,87,.12); transform: scale(1.1); } }

/* Rack cleanup: loose paths draw themselves into labelled, parallel runs. */
.rack-cables { height: 100%; inset: 0; position: absolute; width: 100%; }
.rack-cables path { animation: route-cables 4.4s ease-in-out infinite; fill: none; stroke: var(--mint); stroke-dasharray: 180; stroke-dashoffset: 180; stroke-linecap: round; stroke-width: 3; }
.rack-cables path:nth-child(2) { animation-delay: -.55s; stroke: var(--lime); }.rack-cables path:nth-child(3) { animation-delay: -1.1s; stroke: var(--coral); }.rack-cables path:nth-child(4) { animation-delay: -1.65s; stroke: #74b9ff; }
@keyframes route-cables { 0%,10% { opacity: .25; stroke-dashoffset: 180; } 55%,86% { opacity: 1; stroke-dashoffset: 0; } 100% { opacity: .25; stroke-dashoffset: -180; } }
.rack-mini { background: #102b28; border: 1px solid rgba(255,255,255,.2); border-radius: 6px; bottom: 11px; padding: 7px; position: absolute; right: 10px; top: 11px; width: 73px; }
.rack-mini i { animation: rack-light 2.2s ease-in-out infinite; border: 1px solid rgba(255,255,255,.18); display: block; height: 13px; margin-bottom: 5px; position: relative; }
.rack-mini i::after { background: #3b5b56; border-radius: 50%; content: ""; height: 4px; position: absolute; right: 5px; top: 4px; width: 4px; }
.rack-mini i:nth-child(2) { animation-delay: -.7s; }.rack-mini i:nth-child(3) { animation-delay: -1.4s; }
@keyframes rack-light { 0%,100% { border-color: rgba(255,255,255,.18); box-shadow: none; } 50% { border-color: rgba(217,255,85,.5); box-shadow: inset 0 0 12px rgba(217,255,85,.07); } }

.spaces { background: var(--ink); color: white; padding: 120px 0; }
.spaces-head { align-items: start; display: flex; flex-direction: column; gap: 20px; }
.spaces-head .section-title { max-width: none; }
.spaces-head .section-copy { color: #a6c0b8; max-width: 58ch; }
.space-grid { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin-top: 55px; }
.space-card { background: #0b2925; border: 1px solid rgba(255,255,255,.2); border-radius: 24px; overflow: hidden; padding: 42px; position: relative; }
.space-card.residential { background: #faf9f5; border-color: rgba(7,25,23,.16); color: var(--ink); }
.space-type { align-items: center; background: var(--lime); border-radius: 999px; color: var(--ink); display: inline-flex; font: 700 13px/1 var(--mono); letter-spacing: .07em; min-height: 42px; padding: 0 18px; position: relative; text-transform: uppercase; z-index: 4; }
.commercial .space-type { color: var(--ink); }
.residential .space-type { background: var(--ink); color: #fff; }
.space-card h3 { font-size: clamp(1.9rem, 2.9vw, 2.7rem); letter-spacing: -.05em; line-height: 1.06; margin: 22px 0 0; max-width: 16ch; position: relative; text-wrap: balance; z-index: 4; }
.space-card > p { color: #d4e4df; font-size: 15px; line-height: 1.65; margin: 16px 0 0; max-width: 44ch; position: relative; z-index: 4; }
.residential > p { color: #405954; }
.space-list { list-style: none; margin: 34px 0 0; padding: 0; position: relative; z-index: 4; }
.space-list li { border-top: 1px solid rgba(255,255,255,.16); }
.residential .space-list li { border-top-color: rgba(7,25,23,.14); }
.space-list a { align-items: center; color: #dceae5; display: flex; font-size: 15px; gap: 14px; justify-content: space-between; line-height: 1.4; min-height: 52px; padding: 12px 0; transition: color .2s ease, padding .2s ease; }
.residential .space-list a { color: #23423c; }
.space-list i { color: var(--lime); flex: 0 0 auto; font-style: normal; font-size: 14px; opacity: .75; transition: transform .2s ease; }
.residential .space-list i { color: var(--coral); }
.space-list a:hover { color: var(--lime); padding-left: 6px; }
.residential .space-list a:hover { color: var(--coral); }
.space-list a:hover i { transform: translate(3px,-3px); opacity: 1; }



.coverage { padding: 125px 0; }
.coverage-grid { display: grid; gap: 16px; grid-template-columns: .82fr 1.18fr; }
.coverage-copy { background: var(--coral); border-radius: 28px; display: flex; flex-direction: column; min-height: 510px; padding: clamp(30px, 5vw, 58px); }
.coverage-copy h2 { font-size: clamp(2.5rem, 5vw, 5rem); letter-spacing: -.08em; line-height: .92; margin: 0; max-width: 8ch; }
.coverage-copy p { color: #6d2b20; font-size: 14px; line-height: 1.65; margin: 20px 0 0; max-width: 38ch; }
.coverage-note { border-top: 1px solid rgba(7,25,23,.2); font: 500 9px/1.5 var(--mono); letter-spacing: .07em; margin-top: auto; padding-top: 17px; text-transform: uppercase; }
.area-panel { background: var(--ink); border-radius: 28px; color: white; min-height: 510px; overflow: hidden; padding: 37px; position: relative; }
.area-list { display: grid; grid-template-columns: 1fr 1fr; position: relative; }
.area-list a { align-items: center; border-bottom: 1px solid var(--line-light); color: #d6e6e0; display: flex; font-size: clamp(1rem, 2vw, 1.35rem); font-weight: 600; letter-spacing: -.04em; padding: 18px 10px 18px 0; transition: color .2s ease, padding .2s ease; }
.area-list a:nth-child(odd) { margin-right: 25px; }
.area-list a:hover { color: var(--lime); padding-left: 8px; }
.area-status { align-items: center; bottom: 31px; color: #9dbbb2; display: flex; font: 500 9px/1 var(--mono); gap: 8px; letter-spacing: .08em; position: absolute; text-transform: uppercase; }
.area-status i { animation: status-pulse 2s ease-in-out infinite; background: var(--lime); border-radius: 50%; height: 8px; width: 8px; }
@keyframes status-pulse { 50% { box-shadow: 0 0 0 7px rgba(217,255,85,.08); } }

.faq { background: var(--paper); padding: 125px 0; }
.faq-grid { display: grid; gap: 9vw; grid-template-columns: .78fr 1.22fr; }
.faq .section-title { max-width: 8ch; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { align-items: center; cursor: pointer; display: flex; font-size: 17px; font-weight: 700; gap: 20px; justify-content: space-between; letter-spacing: -.04em; list-style: none; padding: 23px 0; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { align-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--coral); content: "+"; display: flex; flex: 0 0 auto; font-size: 21px; font-weight: 400; height: 31px; justify-content: center; width: 31px; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { color: var(--muted); font-size: 13px; line-height: 1.75; margin: -3px 50px 23px 0; max-width: 66ch; }

.contact { background: var(--ink); color: white; overflow: hidden; padding: 120px 0; position: relative; }
.contact::before { background: radial-gradient(circle, rgba(217,255,85,.14), transparent 60%); content: ""; height: 650px; left: -280px; position: absolute; top: -210px; width: 650px; }
.contact-grid { display: grid; gap: 9vw; grid-template-columns: .86fr 1.14fr; position: relative; }
.contact h2 { font-size: clamp(2.7rem, 5.4vw, 5.7rem); letter-spacing: -.08em; line-height: .94; margin: 20px 0 0; max-width: 8ch; }
.contact-copy > p { color: #a8c1b9; font-size: 14px; line-height: 1.7; margin: 23px 0 0; max-width: 42ch; }
.project-form { display: grid; gap: 18px; }
.form-row { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.field { display: grid; gap: 8px; }
.field label { color: #bcd6cc; font: 500 12px/1.4 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.field input, .field select, .field textarea { background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.18); border-radius: 12px; color: white; outline: 0; padding: 14px 15px; width: 100%; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(217,255,85,.08); }
.field select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--lime) 50%), linear-gradient(135deg, var(--lime) 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-repeat: no-repeat; background-size: 5px 5px; }
.field option { background: var(--ink); }
.field textarea { min-height: 110px; resize: vertical; }
.form-footer { align-items: center; display: flex; flex-wrap: wrap; gap: 18px; justify-content: space-between; }
/* The note reads as one line. Below its 340px basis the footer wraps and
   gives it the full row rather than breaking it in two. */
.form-footer > div { flex: 1 1 340px; }
.form-footer .button { margin-left: auto; }
.form-status { color: var(--mint); font-size: 12px; margin: 0; min-height: 19px; }
.form-note { color: #7f9d94; font-size: 10px; line-height: 1.5; margin: 0; }
.form-status.is-error { color: var(--coral); }

.contact-direct { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; margin-top: 34px; }
.contact-direct a { align-items: center; background: rgba(255,255,255,.04); border: 1px solid var(--line-light); border-radius: 14px; column-gap: 13px; display: grid; grid-template-columns: auto minmax(0, 1fr); padding: 15px 16px; row-gap: 3px; transition: background .25s ease, border-color .25s ease, transform .25s ease; }
.contact-direct a:hover { background: rgba(255,255,255,.07); border-color: var(--lime); transform: translateY(-2px); }
.contact-direct span { align-items: center; color: var(--lime); display: flex; grid-row: span 2; }
.contact-direct span svg { height: 20px; width: 20px; }
.contact-direct b { color: white; font-size: 15px; letter-spacing: -.03em; overflow-wrap: anywhere; }
.contact-direct-mail b { font-size: 13px; }
.contact-direct i { color: #8fada4; font: 500 9px/1 var(--mono); font-style: normal; letter-spacing: .07em; text-transform: uppercase; }

/* Honeypot: reachable by bots that fill every field, invisible to people. */
.form-hp { height: 0; margin: 0; opacity: 0; overflow: hidden; pointer-events: none; position: absolute; width: 0; }

.form-success { align-content: start; background: rgba(217,255,85,.06); border: 1px solid rgba(217,255,85,.32); border-radius: var(--radius); display: grid; justify-items: start; padding: clamp(30px, 4vw, 44px); }
.form-success-mark { align-items: center; background: var(--lime); border-radius: 50%; color: var(--ink); display: flex; font-size: 21px; font-weight: 800; height: 46px; justify-content: center; width: 46px; }
.form-success h3 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); letter-spacing: -.05em; margin: 22px 0 0; }
.form-success p { color: #a8c1b9; font-size: 14px; line-height: 1.7; margin: 12px 0 0; max-width: 40ch; }
.form-success a { border-bottom: 1px solid var(--lime); color: var(--lime); }

footer { background: #04110f; color: #91aaa2; padding: 31px 0; }
.footer-grid { align-items: center; display: grid; font: 400 9px/1.5 var(--mono); gap: 25px; grid-template-columns: 1fr auto 1fr; letter-spacing: .04em; text-transform: uppercase; }
footer .brand { color: white; font-family: var(--display); font-size: 14px; text-transform: none; }
footer .brand-mark { height: 56px; width: 56px; }
.footer-links { display: flex; gap: 17px; justify-self: end; }
.footer-links a, .footer-grid > span a { align-items: center; display: inline-flex; min-height: 44px; }
.footer-grid > span a { border-bottom: 1px solid rgba(255,255,255,.22); }
.footer-grid > span a:hover { border-bottom-color: var(--lime); color: var(--lime); }
.footer-links a:hover { color: var(--lime); }
.back-top { align-items: center; background: var(--lime); border: 0; border-radius: 50%; bottom: 18px; color: var(--ink); display: flex; font-size: 18px; height: 44px; justify-content: center; opacity: 0; position: fixed; right: 18px; transform: translateY(12px); transition: opacity .25s ease, transform .25s ease; width: 44px; z-index: 40; }
.back-top.visible { opacity: 1; transform: none; }

/* .hero-copy is capped at 850px, so it only stops filling the shell above
   ~1100px. Below that the copy spans the full width and the horizontal
   scrim leaves its right-hand end unprotected, so run the scrim down. */
@media (max-width: 1100px) {
  .hero-scrim { background: linear-gradient(180deg, rgba(7,25,23,.62) 0%, rgba(7,25,23,.78) 38%, rgba(7,25,23,.86) 100%); }
}
/* The nav needs ~1006px to sit on one line, so it collapses well before
   the 760px used for the rest of the layout. */
@media (max-width: 1100px) {
  .nav { height: 80px; }.nav-call { margin-right: 8px; min-height: 44px; }.menu-toggle { display: block; }.nav-links { align-items: stretch; background: var(--paper); border-bottom: 1px solid var(--line); display: none; flex-direction: column; gap: 0; inset: 80px 0 auto; padding: 18px 20px 24px; position: absolute; }.nav-links.open { display: flex; }.nav-links > a:not(.button) { border-bottom: 1px solid var(--line); font-size: 15px; padding: 17px 4px; }.nav-links .button { margin-top: 17px; width: 100%; }
}
@media (max-width: 980px) {
  .hero-grid { padding: 78px 0 84px; }.hero-copy { max-width: 720px; }.hero h1 { max-width: 8ch; }
  .infra-head, .faq-grid, .contact-grid { grid-template-columns: 1fr; }.infra-head { gap: 30px; }.infra-summary { max-width: 650px; }.infra-stage { grid-template-columns: 210px 1fr; }.infra-links { display: none; }.faq-grid, .contact-grid { gap: 55px; }
  .spaces-head { gap: 10px; }.space-grid { grid-template-columns: 1fr; }
  .coverage-grid { grid-template-columns: 1fr; }.coverage-copy { min-height: 420px; }.area-panel { min-height: 480px; }
}
@media (max-width: 760px) {
  /* The topology panel is a desktop illustration: too dense to read on a
     phone, so it is dropped rather than scaled down. */
  .infra-panel { display: none; }
  .shell { width: min(100% - 32px, 620px); }
  .hero-grid { min-height: 100svh; padding: 68px 0 72px; }.hero h1 { font-size: clamp(3.7rem, 15vw, 6rem); }.hero-video { object-position: 60% center; transform: scale(1.38); }
  .intro, .spaces, .process, .coverage, .faq, .contact { padding: 90px 0; }.intro { padding-bottom: 38px; }.services { padding: 58px 0 90px; }.services-head { padding-bottom: 46px; }.infra-panel { margin-top: 40px; }.infra-stage { grid-template-columns: 1fr; padding: 26px; }.core-rack { min-height: 300px; }.endpoint-grid { grid-column: auto; }
  .service-card:nth-child(n) { grid-column: span 12; }.space-card { padding: 32px; }
  .area-list { grid-template-columns: 1fr; }.area-list a:nth-child(odd) { margin-right: 0; }
  .form-row, .contact-direct { grid-template-columns: 1fr; }.footer-grid { grid-template-columns: 1fr; text-align: left; }.footer-links { justify-self: start; }
}
@media (max-width: 480px) {
  .nav-call-number { display: none; }.nav-call { height: 44px; justify-content: center; margin-right: 2px; width: 44px; }.nav-call-icon svg { height: 20px; width: 20px; }
  .hero h1 { font-size: 3.65rem; }.hero-actions { align-items: stretch; flex-direction: column; }.hero-actions .button { width: 100%; }
  .section-title { font-size: 2.8rem; }.services-head .section-title { font-size: clamp(2rem, 8.5vw, 3rem); }.infra-panel-bar span:last-child { display: none; }.infra-stage { padding: 20px; }.endpoint-grid { grid-template-columns: 1fr; }.space-card { padding: 27px; }.space-type { font-size: 12px; min-height: 38px; padding: 0 15px; }.space-card h3 { font-size: 2.1rem; }.form-footer { align-items: stretch; flex-direction: column; }.form-footer .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* ---- SEO: H1 kicker (keeps the keyword phrase in the H1 without changing the display type) */
.hero h1 .h1-kicker { color: rgba(255,255,255,.82); display: block; font: 500 13px/1.4 var(--mono); letter-spacing: .12em; margin-bottom: 22px; max-width: none; text-transform: uppercase; }
@media (max-width: 760px) { .site-header .brand-mark { height: 44px; width: 44px; } }
.site-header .brand { font-size: 25px; gap: 14px; letter-spacing: -.04em; }
@media (max-width: 760px) { .site-header .brand { font-size: 19px; gap: 11px; } }
/* Larger desktop nav text (Ahmet, 2026-11-02) */
@media (min-width: 1280px) {
  .site-header .nav-trigger, .site-header .nav-links > a:not(.button), .site-header .nav-call { font-size: 15px; }
  .site-header .nav-links .button { font-size: 14px; padding: 11px 18px; }
  .site-header .nav-links { gap: 24px; }
}
/* Phone number sits in the menu next to Contact on desktop; the separate icon stays for the mobile header */
.nav-links > a.nav-call-inline { align-items: center; color: var(--ink); display: inline-flex; font-weight: 700; gap: 8px; letter-spacing: -.02em; white-space: nowrap; }
.nav-call-inline svg { height: 17px; width: 17px; }
@media (min-width: 1101px) { .site-header .nav-call { display: none; } .nav-links { margin-left: auto; } }
@media (max-width: 1100px) { .nav-links > a.nav-call-inline { display: none; } }
/* Longer, keyword-led hero headline (2026-11-03) */
.hero h1 { font-size: clamp(3rem, 6.6vw, 6.6rem); letter-spacing: -.07em; line-height: .92; max-width: 12ch; }
@media (max-width: 1100px) { .hero h1 { max-width: 12ch; } }
@media (max-width: 760px) { .hero h1 { font-size: clamp(2.6rem, 12vw, 3.8rem); } }

/* How it works + trades */
.how { background: var(--paper-2); padding: 115px 0; }
.partners { background: var(--white); border-bottom: 1px solid var(--line); padding: 115px 0; }
.how .section-title, .partners .section-title { max-width: 16ch; }
.how-steps { counter-reset: none; display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 54px 0 0; padding: 0; }
.how-steps li { background: var(--white, #faf9f5); border: 1px solid var(--line); border-radius: var(--radius, 22px); padding: 32px; }
.how-steps b { align-items: center; background: var(--lime); border-radius: 50%; color: var(--ink); display: inline-flex; font-size: 15px; height: 46px; justify-content: center; width: 46px; }
.how-steps h3, .partner-grid h3 { font-size: clamp(1.35rem, 2vw, 1.75rem); letter-spacing: -.045em; line-height: 1.1; margin: 22px 0 0; }
.how-steps p, .partner-grid p { color: var(--muted); font-size: 16px; line-height: 1.6; margin: 12px 0 0; }
.partner-grid { display: grid; gap: 18px; grid-template-columns: repeat(4, 1fr); margin-top: 54px; }
.partner-grid article { background: var(--ink); border-radius: var(--radius, 22px); color: #fff; padding: 30px; }
.partner-grid article h3 { margin-top: 0; }
.partner-grid article h3::before { background: var(--lime); border-radius: 2px; content: ""; display: block; height: 4px; margin-bottom: 20px; width: 34px; }
.partner-grid article p { color: #b9cec8; }
@media (max-width: 1100px) { .partner-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 760px) {
  .how, .partners { padding: 80px 0; }
  .how-steps, .partner-grid { grid-template-columns: 1fr; margin-top: 36px; }
  .how-steps li, .partner-grid article { padding: 26px; }
}
.how-steps li h3 { margin-top: 0; }
/* New hero video (2026-11-04): less zoom so more of the racks show */
.hero-video { transform: none; }
@media (max-width: 760px) { .hero-video { transform: none; } }
/* Longer keyword H1 (2026-11-04) */
.hero h1 { font-size: clamp(2.6rem, 5.2vw, 5.4rem); max-width: 15ch; }
@media (max-width: 760px) { .hero h1 { font-size: clamp(2.3rem, 10.5vw, 3.2rem); } }
.site-header { background: var(--paper); backdrop-filter: none; }
.service-grid { align-items: stretch; }
.site-header .nav-links > a:not(.button) { color: var(--ink); font-weight: 700; }
.site-header .nav-links > a:not(.button):hover { color: var(--coral); }
.area-status { margin-top: 26px; position: static; }
@media (max-width: 760px) { .coverage-copy { min-height: 0; } }
