/*
Theme Name: CIT
Theme URI: https://citpartner.com
Author: CammackIT
Author URI: https://citpartner.com
Description: Low-voltage + IT services landing page for CIT (CammackIT). Interactive node-mesh background, logo cursor, and Z-depth flythrough sections. Standalone theme, no parent required.
Version: 1.2.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: Proprietary
Text Domain: cit
*/

/* ---------------------------------------------------------------------------
   Everything below is the compiled landing page CSS. Fonts load via
   @import so the theme has no external font enqueue.
   --------------------------------------------------------------------------- */

@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@300;400;500;600&display=swap");
html,body{overflow-x:hidden}
#root{overflow:visible!important}
:root{
  --bg:oklch(98.5% 0.003 15);
  --red:oklch(55% 0.22 25);
  --red-dark:oklch(45% 0.2 25);
  --text:oklch(15% 0.005 15);
  --text-2:oklch(40% 0.01 15);
  --dim:oklch(52% 0.01 15);
  --border:oklch(90% 0.005 15 / 0.5);
  --surface:oklch(96.5% 0.004 15);
  --ease:cubic-bezier(0.16,1,0.3,1);
  --px:clamp(1rem,4vw,5rem);
  --sec-py:clamp(4rem,8vw,9rem);
  /* Fluid content width: grows with the viewport, caps for readability. */
  --wrap:min(94vw,118rem);
  --measure:64ch;
  --video-max:min(94vw,68rem);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem;overflow-x:hidden}
html,body,#root{height:auto;min-height:100%}

body{
  font-family:'JetBrains Mono',ui-monospace,monospace;
  background:var(--bg);color:var(--text);line-height:1.7;
  font-size:clamp(0.9rem,0.85rem + 0.25vw,1rem);
  -webkit-font-smoothing:antialiased;overflow:visible;
}
body.hide-cursor{cursor:none}
body.hide-cursor a,body.hide-cursor button,body.hide-cursor .clickable{cursor:none}

/* AMBIENT LAYERS */
.grain{position:fixed;inset:0;pointer-events:none;z-index:9998;opacity:.035;mix-blend-mode:multiply}
.ambient{position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 80% 50% at 50% 30%,oklch(95% 0.01 25 / .4),transparent)}
#particleCanvas{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.parallax-panel{position:fixed;border-radius:2px;border:1px solid oklch(92% 0.004 15 / .22);background:oklch(98% 0.003 15 / .2);backdrop-filter:blur(1px);pointer-events:none;z-index:2}
.pp1{width:14vw;height:10vw;top:15%;left:-3vw}
.pp2{width:8vw;height:14vw;top:40%;right:-2vw}
.pp3{width:20vw;height:6vw;top:65%;left:5%}
.pp4{width:11vw;height:11vw;top:80%;right:8%}

/* CURSOR */
.logo-cursor{position:fixed;pointer-events:none;z-index:99999;width:clamp(1.5rem,2vw,1.75rem);height:auto;filter:drop-shadow(0 2px 4px oklch(55% 0.22 25 / .3));top:0;left:0}
.cursor-glow{position:fixed;width:60px;height:60px;background:radial-gradient(circle,oklch(55% 0.22 25 / .05),transparent 70%);border-radius:50%;pointer-events:none;z-index:99997;transform:translate(-50%,-50%);top:0;left:0}
.cursor-particles{position:fixed;pointer-events:none;z-index:99998;transform:translate(-50%,-50%)}
.cursor-trail{position:fixed;top:0;left:0;pointer-events:none;z-index:99995}
.trail-orb{position:absolute;width:4px;height:4px;background:var(--red);border-radius:50%;opacity:0;will-change:transform,opacity}
.cursor-particle{position:absolute;width:3px;height:3px;background:var(--red);border-radius:50%;opacity:0;left:0;top:0}
.cursor-particle.burst{animation:cp-burst .4s var(--ease) forwards;animation-delay:var(--d,0ms)}
.cursor-particle.converge{animation:cp-converge .4s var(--ease) forwards;animation-delay:var(--d,0ms)}
@keyframes cp-burst{0%{opacity:1;transform:translate(0,0) scale(1)}80%{opacity:.8}100%{opacity:0;transform:translate(var(--sx),var(--sy)) scale(0)}}
@keyframes cp-converge{0%{opacity:1;transform:translate(var(--sx),var(--sy)) scale(1)}80%{opacity:.6}100%{opacity:0;transform:translate(0,0) scale(0)}}

/* INTRO */
.intro-overlay{position:fixed;inset:0;z-index:100000;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .8s var(--ease)}
.intro-overlay.done{opacity:0;pointer-events:none}
.intro-logo-container{position:relative;width:120px;height:120px}
.intro-particle{position:absolute;width:3px;height:3px;background:var(--red);border-radius:50%;opacity:0;left:50%;top:50%;animation:ipg 1.5s var(--ease) forwards;animation-delay:var(--d,0ms)}
@keyframes ipg{0%{opacity:1;transform:translate(var(--sx),var(--sy)) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(0,0) scale(0)}}
.intro-logo-reveal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.8);animation:ilr .6s var(--ease) 1.1s forwards}
.intro-logo-reveal svg{width:80px;height:auto}
@keyframes ilr{to{opacity:1;transform:scale(1)}}

/* HEARTBEAT */
.heartbeat{position:fixed;bottom:0;left:0;right:0;height:2px;z-index:9997;overflow:hidden;pointer-events:none}
.heartbeat-pulse{position:absolute;top:0;left:-20%;width:20%;height:100%;background:linear-gradient(90deg,transparent,var(--red),transparent);animation:hbm 3s linear infinite;opacity:.4}
@keyframes hbm{to{left:100%}}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;border-bottom:none;padding:clamp(.6rem,1vw,.85rem) var(--px);display:flex;align-items:center;gap:clamp(.5rem,1vw,1rem);background:transparent;transition:background .4s,border-color .4s,box-shadow .4s}
.nav.scrolled{background:transparent;border-bottom-color:transparent;box-shadow:none}
.nav-logo{display:flex;align-items:center;gap:.5rem;color:var(--text);text-decoration:none}
.nav-logo svg{width:clamp(1.6rem,2.5vw,2rem);height:auto}
.nav-logo span{font-family:'Orbitron',sans-serif;font-size:clamp(.95rem,1vw,1.1rem);font-weight:800;letter-spacing:.12em}
.nav-links{display:flex;gap:clamp(1rem,2vw,1.5rem);list-style:none;margin-left:auto}
.nav-links a{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);text-decoration:none;transition:color .2s}
.nav-links a:hover{color:var(--red)}

/* PRIMITIVES */
.sec{padding:var(--sec-py) var(--px);width:100%;max-width:var(--wrap);margin:0 auto;position:relative;z-index:5}
.label{font-family:'Orbitron',sans-serif;font-size:clamp(.75rem,.7rem + .15vw,.95rem);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--red);margin-bottom:clamp(1rem,2vw,1.5rem)}
.heading{font-family:'Orbitron',sans-serif;font-size:clamp(1.4rem,3.4vw,3.9rem);font-weight:700;line-height:1.15;margin-bottom:clamp(.75rem,1.5vw,1rem);text-wrap:balance}
.sub{color:var(--text-2);font-size:clamp(1rem,.95rem + .2vw,1.15rem);max-width:var(--measure);line-height:1.8;margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.reveal{opacity:0;filter:blur(6px);transform:translateY(16px);transition:opacity .6s var(--ease),filter .6s var(--ease),transform .6s var(--ease)}
.reveal.vis{opacity:1;filter:blur(0);transform:translateY(0)}
.btn-red{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:oklch(98% 0.005 15);background:var(--red);padding:.95em 1.6em;border:none;text-decoration:none;display:inline-block;transition:background .2s,transform .15s var(--ease),box-shadow .25s}
.btn-red:hover{background:var(--red-dark);transform:translateY(-2px);box-shadow:0 8px 24px oklch(55% 0.22 25 / .2)}
.btn-ghost{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);padding:.95em 1.6em;border:1px solid var(--border);background:none;text-decoration:none;display:inline-block;transition:border-color .2s,color .2s}
.btn-ghost:hover{border-color:var(--red);color:var(--red)}

/* HERO */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding-top:clamp(5rem,12vh,8rem)}
.hero-copy{position:relative;z-index:2}
.astro-layer{position:absolute;top:0;bottom:0;left:50%;width:100vw;margin-left:-50vw;overflow:visible;pointer-events:none;z-index:1}
.hero-eyebrow{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:clamp(1rem,2vw,1.5rem);opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.hero-eyebrow.show{opacity:1;transform:translateY(0)}
.hero h1{font-family:'Orbitron',sans-serif;font-size:clamp(1.6rem,5vw,5.6rem);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;line-height:1.15;margin-bottom:clamp(1rem,2vw,1.5rem)}
.hero h1 .line2{color:var(--red);display:block;min-height:1.2em}
.typed-cursor{display:inline-block;width:.55em;height:.82em;background:var(--red);margin-left:2px;vertical-align:baseline;position:relative;top:.08em}
.typed-cursor.blink{animation:cb 1s step-end infinite}
.typed-cursor.shrink{width:7px;height:7px;animation:none;opacity:0;transition:opacity .6s ease}
@keyframes cb{0%,100%{opacity:1}50%{opacity:0}}
.hero-support{font-size:clamp(.95rem,.9rem + .35vw,1.3rem);color:var(--text-2);max-width:54ch;line-height:1.8;opacity:0;transform:translateY(10px);transition:opacity .6s var(--ease),transform .6s var(--ease);margin-bottom:1.5rem}
.hero-support.show{opacity:1;transform:translateY(0)}
.hero-ctas{display:flex;gap:.75rem;flex-wrap:wrap;opacity:0;transition:opacity .6s var(--ease)}
.hero-ctas.show{opacity:1}

/* SERVICE STRIP */
.svc-strip{display:grid;grid-template-columns:repeat(9,1fr);align-content:end;align-items:stretch;margin:clamp(2.5rem,5vw,3.5rem) 0 0;position:relative;z-index:5;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.svc-cell{min-width:0;padding:clamp(1.1rem,1.8vw,1.9rem) clamp(.4rem,1vw,1rem);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.6rem;text-align:center;border:none;border-right:1px solid var(--border);background:transparent;transition:background .3s;font:inherit;color:inherit;cursor:pointer}
.svc-cell svg{width:clamp(20px,1.5vw,30px);height:auto;color:var(--dim);filter:drop-shadow(0 0 6px var(--bg));transition:color .3s,transform .3s var(--ease)}
/* The faceplate has fine interior detail (pin ticks), so it needs a lighter
   stroke than the other icons to avoid merging. */
.svc-cell[data-cit-service="cabling"] svg,.svc-box .svc-lb-icon svg[data-icon="cable"]{stroke-width:1.15}
.svc-cell span:not(.svc-note){font-family:'Orbitron',sans-serif;font-size:clamp(.75rem,.7rem + .22vw,1rem);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);line-height:1.3;min-height:2.6em;display:flex;align-items:flex-start;justify-content:center;text-wrap:balance;text-shadow:0 0 10px var(--bg),0 0 4px var(--bg);transition:color .3s}
/* 8 columns: only the trailing edge loses its divider. */
.svc-cell:nth-child(9n){border-right:none}
.svc-cell{position:relative}
.svc-cell::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--red);transform:scaleX(0);transform-origin:center;transition:transform .3s var(--ease)}
.svc-cell:hover::after{transform:scaleX(1)}
.svc-cell:hover svg{color:var(--red);transform:translateY(-2px)}
.svc-cell:hover span:not(.svc-note){color:var(--text)}

.scroll-hint{position:absolute;bottom:clamp(1rem,3vh,2rem);left:50%;transform:translateX(-50%);z-index:5;display:flex;flex-direction:column;align-items:center;gap:4px;transition:opacity .4s}
.scroll-hint.hidden{opacity:0;pointer-events:none}
.scroll-hint-line{width:1px;height:24px;background:linear-gradient(to bottom,transparent,var(--red));animation:sp 2s ease-in-out infinite}
.scroll-hint-chev{width:8px;height:8px;border-right:1.5px solid var(--red);border-bottom:1.5px solid var(--red);transform:rotate(45deg);animation:sb 2s ease-in-out infinite}
@keyframes sp{0%,100%{opacity:.3}50%{opacity:1}}
@keyframes sb{0%,100%{transform:rotate(45deg) translateY(0)}50%{transform:rotate(45deg) translateY(3px)}}

/* VIDEO */
.video-sec{padding:clamp(3rem,6vw,5rem) var(--px);position:relative;z-index:5}
.video-inner{width:100%;max-width:var(--video-max);margin:0 auto}
.video-cap{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--red);margin-bottom:1rem}
.video-wrap{position:relative;width:100%;aspect-ratio:16/9;border:1px solid var(--border);background:transparent;overflow:hidden}
.video-poster{position:absolute;inset:0;display:block;width:100%;height:100%;background:transparent;border:none;overflow:hidden;cursor:pointer;padding:0}


.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(58px,5vw,78px);height:clamp(58px,5vw,78px);border-radius:50%;background:var(--red);color:oklch(98% 0.005 15);display:flex;align-items:center;justify-content:center;padding-left:3px;box-shadow:0 10px 30px oklch(55% 0.22 25 / .28);transition:transform .35s var(--ease),box-shadow .35s}
.video-poster:hover .video-play{transform:translate(-50%,-50%) scale(1.07);box-shadow:0 14px 38px oklch(55% 0.22 25 / .34)}

.video-poster-label{position:relative;font-family:'Orbitron',sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:oklch(98% 0.005 15);text-shadow:0 1px 12px oklch(15% 0.005 15 / .5)}
.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:none}

/* FEATURED DOORS */
.featured-sec{position:relative;z-index:5}
.featured-inner{width:100%;max-width:var(--wrap);margin:0 auto;padding:var(--sec-py) var(--px)}
.featured-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.5rem);margin-top:clamp(1.5rem,3vw,2.5rem)}
.featured-card{background:oklch(98.5% 0.003 15 / .74);backdrop-filter:blur(2px);border:1px solid var(--border);padding:clamp(1.75rem,3vw,2.75rem);display:flex;flex-direction:column;gap:1rem;text-decoration:none;color:var(--text);position:relative;overflow:hidden;transition:border-color .4s,box-shadow .4s,transform .3s var(--ease)}
.featured-card:hover{border-color:oklch(55% 0.22 25 / .4);box-shadow:0 16px 48px oklch(55% 0.22 25 / .07);transform:translateY(-3px)}
.featured-card::after{content:'';position:absolute;top:0;left:0;width:0;height:2px;background:var(--red);transition:width .6s var(--ease)}
.featured-card:hover::after{width:100%}
.featured-card svg{color:var(--red);width:28px;height:28px}
.featured-eyebrow{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.featured-title{font-family:'Orbitron',sans-serif;font-size:clamp(1.1rem,2vw,1.5rem);font-weight:700;line-height:1.25;text-wrap:balance}
.featured-desc{color:var(--text-2);line-height:1.7;font-size:.95rem;max-width:34ch}
.featured-cta{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:auto;padding-top:1rem;transition:color .3s}
.featured-card:hover .featured-cta{color:var(--red)}

/* GENERAL DOORS */
.also-block{margin-top:clamp(2.5rem,5vw,3.5rem)}
.also-label{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);margin-bottom:1rem}
.general-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.5rem,1vw,1rem)}
.general-card{background:oklch(98.5% 0.003 15 / .7);backdrop-filter:blur(2px);border:1px solid var(--border);padding:clamp(1.5rem,2.5vw,2rem);text-decoration:none;color:var(--text);display:flex;flex-direction:column;gap:.5rem;transition:border-color .3s,transform .3s var(--ease)}
.general-card:hover{border-color:oklch(55% 0.22 25 / .3);transform:translateY(-2px)}
.general-num{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:700;color:var(--red);letter-spacing:.1em}
.general-title{font-family:'Orbitron',sans-serif;font-size:clamp(.85rem,1.1vw,1rem);font-weight:600;line-height:1.35;text-wrap:balance}
.general-desc{font-size:.875rem;color:var(--text-2);line-height:1.6}

/* DEEP DIVE + TIMELINE */
/* FLYTHROUGH */
.fly-container{position:relative;z-index:5}
.fly-sticky{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.85rem;width:100%;max-width:var(--wrap);margin:0 auto;padding:4.25rem var(--px) 1rem}

/* progress rail: shows position in the sequence, jumps on click */
.fly-rail{--fill:0%;position:relative;z-index:20;width:100%;max-width:56rem;padding-top:.5rem}
.fly-rail-track{position:absolute;top:.95rem;left:0;right:0;height:1px;background:var(--border)}
.fly-rail-fill{position:absolute;top:.95rem;left:0;width:var(--fill);height:1px;background:var(--red);box-shadow:0 0 8px oklch(55% 0.22 25 / .45)}
.fly-rail-stops{position:relative;list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;align-items:flex-start}
.fly-stop-item{display:flex}
.fly-stop{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:none;border:none;padding:0;cursor:pointer;font-family:'Orbitron',sans-serif}
.fly-stop-node{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--text-2);font-size:.76rem;font-weight:700;letter-spacing:.02em;transition:color .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease)}
.fly-stop-label{font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);white-space:nowrap;transition:color .3s var(--ease)}
.fly-stop.is-done .fly-stop-node{border-color:var(--red);color:var(--red)}
.fly-stop.is-active .fly-stop-node{border-color:var(--red);background:var(--red);color:oklch(98% 0.005 15);box-shadow:0 0 0 5px oklch(55% 0.22 25 / .14);transform:scale(1.1)}
.fly-stop.is-active .fly-stop-label{color:var(--red)}
.fly-stop:hover .fly-stop-node{border-color:var(--red);color:var(--red)}
.fly-stop.is-active:hover .fly-stop-node{color:oklch(98% 0.005 15)}
.fly-stop:hover .fly-stop-label{color:var(--text)}

.fly-viewport{position:relative;width:100%;flex:1;min-height:0;isolation:isolate;z-index:1;overflow:visible}

.fly-card{position:absolute;left:4%;right:4%;top:0;bottom:0;display:flex;align-items:center;border:1px solid var(--border);background:var(--bg);border-radius:2px;will-change:transform,opacity,filter;transform-origin:50% 50%;padding:clamp(1.25rem,2.4vw,2.25rem) clamp(1.5rem,3vw,2.75rem);overflow:hidden;backface-visibility:hidden;box-shadow:0 4px 20px oklch(15% 0.005 15 / .04);pointer-events:none}
.fly-card.fly-active{pointer-events:auto;box-shadow:0 40px 100px oklch(15% 0.005 15 / .18),0 14px 36px oklch(15% 0.005 15 / .1),0 4px 10px oklch(15% 0.005 15 / .05),0 0 0 1px oklch(15% 0.005 15 / .03);border-color:oklch(70% 0.01 15 / .32)}

.fly-card-inner{width:100%;max-width:62rem}
.fly-card .heading{margin-top:.15rem;font-size:clamp(1.5rem,2.6vw,2.15rem);line-height:1.08}
.fly-card .sub{margin-top:.45rem;font-size:clamp(.82rem,1vw,.92rem);line-height:1.55}
.fly-card .pain-grid{margin-top:clamp(.8rem,1.6vw,1.15rem);gap:.6rem}
.fly-card .pain-card{padding:.7rem .8rem;gap:.3rem}
.fly-card .pain-title{font-size:clamp(.76rem,.85vw,.84rem);line-height:1.3}
.fly-card .pain-fix{font-size:.78rem;line-height:1.45}
.fly-cta{margin-top:clamp(.8rem,1.5vw,1.2rem)}

.fly-skip{display:flex;align-items:center;gap:.5rem;background:none;border:1px solid var(--border);padding:.45rem 1.1rem;color:var(--text-2);font-family:'JetBrains Mono',monospace;font-size:.82rem;cursor:pointer;transition:all .3s;position:relative;z-index:20}
.fly-skip:hover{border-color:var(--red);color:var(--red)}
.fly-skip svg{color:var(--red)}
.pain-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:clamp(.75rem,1.5vw,1rem);margin-top:clamp(1.5rem,3vw,2rem)}
.pain-card{border:1px solid var(--border);padding:clamp(1rem,2vw,1.5rem);display:flex;flex-direction:column;gap:.5rem;background:var(--bg);transition:border-color .3s}
.pain-card:hover{border-color:oklch(55% 0.22 25 / .3)}
.pain-num{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.1em;color:var(--red)}
.pain-title{font-family:'Orbitron',sans-serif;font-size:clamp(.82rem,.9vw,.92rem);font-weight:600;line-height:1.4;text-wrap:balance}
.pain-fix{font-size:.9rem;color:var(--text-2);line-height:1.65}

/* SYSTEM */
.system-block{background:var(--surface);border:1px solid var(--border);padding:clamp(1.5rem,3vw,2.5rem);position:relative;overflow:hidden;margin-top:2rem}
.system-block::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--red),transparent);opacity:.6}
.steps-row{display:flex;margin-top:1.5rem}
.step-col{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem}
.step-num{font-family:'Orbitron',sans-serif;font-size:1.1rem;font-weight:700;color:var(--red)}
.step-title{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.step-text{font-size:.875rem;color:var(--text-2);max-width:165px;line-height:1.6}

/* CONTACT + FOOTER */
.contact-row{display:flex;flex-wrap:wrap;gap:clamp(2rem,4vw,4rem);margin-top:2rem;margin-bottom:2rem}
.c-label{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:.2em}
.c-value{font-size:1rem}
.c-value a{color:var(--text);text-decoration:none;border-bottom:1px solid oklch(55% 0.22 25 / .25);transition:border-color .2s}
.c-value a:hover{border-color:var(--red)}
.footer{border-top:1px solid var(--border);padding:clamp(1.5rem,3vw,2.5rem) var(--px);width:100%;max-width:var(--wrap);margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:clamp(1rem,3vw,2rem);flex-wrap:wrap;position:relative;z-index:5}
.footer span{font-size:.8rem;color:var(--text-2)}
.footer svg{width:24px;opacity:.25}

/* LIGHTBOXES */
.lb{position:fixed;inset:0;z-index:10001;background:oklch(12% 0.005 15 / .45);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s var(--ease);padding:1rem}
.lb.open{opacity:1;pointer-events:all}
.svc-box{background:var(--bg);width:min(100%,440px);padding:clamp(2rem,4vw,3rem);position:relative;box-shadow:0 24px 80px oklch(10% 0.01 15 / .14);border:1px solid var(--border);transform:translateY(8px);transition:transform .35s var(--ease)}
.lb.open .svc-box{transform:translateY(0)}
.lb-x{position:absolute;top:.6rem;right:.75rem;background:none;border:none;font-size:1.5rem;line-height:1;color:var(--dim);font-family:system-ui;transition:color .2s;padding:.25rem .4rem}
.lb-x:hover{color:var(--red)}
.svc-box .svc-lb-icon{color:var(--red);margin-bottom:1rem;display:block}
.svc-box .svc-lb-icon svg{width:32px;height:32px}
.svc-lb-title{font-family:'Orbitron',sans-serif;font-size:clamp(1rem,1.5vw,1.3rem);font-weight:700;margin-bottom:.75rem}
.svc-lb-desc{color:var(--text-2);line-height:1.8;margin-bottom:1.25rem;font-size:.95rem}
.svc-lb-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}
.svc-lb-tag{font-family:'Orbitron',sans-serif;font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);border:1px solid var(--border);padding:.4em .65em}
.form-box{background:var(--bg);width:min(100%,620px);height:min(82vh,760px);position:relative;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px oklch(10% 0.01 15 / .14);border:1px solid var(--border)}
.form-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.form-body iframe{width:100%;height:100%;min-height:600px;border:none;display:block}
.form-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Orbitron',sans-serif;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);pointer-events:none}

@media(max-width:900px){
  .nav-links{display:none}
  .nav{flex-wrap:wrap;row-gap:.5rem}
  .nav .btn-red{padding:.85em 1.15em;font-size:.78rem;margin-left:auto}
  .hero-ctas{flex-direction:column;align-items:stretch}
  .hero-ctas .btn-red,.hero-ctas .btn-ghost{text-align:center}
  .parallax-panel,.logo-cursor,.cursor-glow,.cursor-particles,.cursor-trail{display:none}
  body.hide-cursor{cursor:auto}
  .featured-grid,.general-grid{grid-template-columns:1fr}
  .steps-row{flex-direction:column;align-items:flex-start;gap:1.5rem}
  .step-col{flex-direction:row;text-align:left;align-items:flex-start;gap:.75rem}
  .step-text{max-width:none}
  .scroll-hint{display:none}
  .fly-container{height:auto!important}
  .fly-sticky{position:static;height:auto;padding:0;gap:1rem}
  .fly-viewport{perspective:none;height:auto;flex:none;display:flex;flex-direction:column;gap:1rem}
  .fly-card{position:relative!important;inset:auto!important;transform:none!important;opacity:1!important;filter:none!important;visibility:visible!important;z-index:auto!important;pointer-events:auto!important;display:block;box-shadow:0 10px 30px oklch(15% 0.005 15 / .07)!important}
  .fly-skip{display:none}
  .fly-rail{max-width:none;overflow-x:auto;padding-bottom:.35rem}
  .fly-rail-track,.fly-rail-fill{display:none}
  .fly-rail-stops{gap:1.1rem;justify-content:flex-start}
  .fly-stop{flex-direction:row;gap:.45rem}
  .door-dot{left:-.1875rem}
  .form-box{width:100%;height:100%;max-height:none}
}
@media(max-width:520px){
  .footer{flex-direction:column;gap:.75rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .reveal,.hero-support,.hero-eyebrow,.hero-ctas{opacity:1;transform:none;filter:none}
  .intro-overlay{display:none}
  #particleCanvas,.parallax-panel{display:none}
}

/* THIRD-PARTY WIDGET ZONES
   Chat bubbles, cookie banners and the like: restore the native cursor and
   guarantee they sit above the ambient layers. Add selectors here if a new
   plugin fights the custom cursor. */
body.hide-cursor .cit-native-cursor,
body.hide-cursor .cit-native-cursor *,
body.hide-cursor [class*="chat-widget"],
body.hide-cursor [class*="chat-widget"] *,
body.hide-cursor [id*="chat-widget"],
body.hide-cursor [id*="chat-widget"] *,
body.hide-cursor [class*="tawk"],
body.hide-cursor [class*="tawk"] *,
body.hide-cursor [id*="tawk"],
body.hide-cursor [id*="tawk"] *,
body.hide-cursor [id*="crisp"],
body.hide-cursor [id*="crisp"] *,
body.hide-cursor [class*="crisp-client"],
body.hide-cursor [class*="crisp-client"] *,
body.hide-cursor [id*="intercom"],
body.hide-cursor [id*="intercom"] *,
body.hide-cursor [id*="hubspot-messages"],
body.hide-cursor [id*="hubspot-messages"] *,
body.hide-cursor [class*="fb_dialog"],
body.hide-cursor [class*="fb_dialog"] *,
body.hide-cursor [id*="drift-"],
body.hide-cursor [id*="drift-"] *,
body.hide-cursor [class*="zsiq"],
body.hide-cursor [class*="zsiq"] *,
body.hide-cursor iframe{cursor:auto!important}

/* Never let an ambient layer swallow a widget's clicks. */
#particleCanvas,.logo-cursor,.cursor-glow,.cursor-trail,.cursor-particles,
.astro-layer,.astro,.heartbeat{pointer-events:none!important}

/* The custom cursor hides itself over these zones; see cit.js. */
.cit-cursor-off .logo-cursor,
.cit-cursor-off .cursor-glow,
.cit-cursor-off .cursor-trail{opacity:0;transition:opacity .18s ease}

/* FOOTER SOCIAL */
.footer-copy{font-size:clamp(.8rem,.78rem + .12vw,.9rem);color:var(--text-2)}
.footer-social{list-style:none;display:flex;align-items:center;gap:clamp(.5rem,1.2vw,1rem);margin:0;padding:0}
.footer-social a{display:grid;place-items:center;width:2.35rem;height:2.35rem;color:var(--text-2);border:1px solid var(--border);transition:color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease)}
.footer-social a:hover{color:var(--red);border-color:var(--red);transform:translateY(-2px)}
.footer-social a:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.footer-mark{width:clamp(1.5rem,2vw,1.85rem);height:auto}
@media (max-width:640px){
  .footer{justify-content:center;text-align:center}
  .footer-copy{order:3;width:100%}
  .footer-social{order:1}
  .footer-mark{order:2}
}

/* ============================================================
   CHAT LAUNCHER -> FACEBOOK MESSENGER
   Bottom-left bubble, tease label on hover, CIT-branded panel.
   ============================================================ */
.cit-chat{position:fixed;left:clamp(1rem,2vw,1.75rem);bottom:clamp(1rem,2vw,1.75rem);z-index:99994;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem;}




/* --- launcher --- */
.cit-chat-launch{position:relative;display:flex;align-items:center;gap:0;background:none;border:none;padding:0}
.cit-chat-mark{position:relative;display:grid;place-items:center;width:clamp(3.25rem,4vw,3.75rem);height:clamp(3.25rem,4vw,3.75rem);border-radius:50%;background:var(--red);color:oklch(98% 0.005 15);box-shadow:0 10px 30px oklch(55% 0.22 25 / .3),0 2px 8px oklch(15% 0.005 15 / .12);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.cit-chat-mark svg{width:52%;height:52%}
.cit-chat-launch:hover .cit-chat-mark{transform:translateY(-2px) scale(1.04);box-shadow:0 16px 40px oklch(55% 0.22 25 / .36),0 3px 10px oklch(15% 0.005 15 / .14)}
.cit-chat-launch:focus-visible{outline:none}
.cit-chat-launch:focus-visible .cit-chat-mark{outline:2px solid var(--text);outline-offset:3px}

/* pulse ring, stops once the panel is open */
.cit-chat-ping{position:absolute;left:0;bottom:0;width:clamp(3.25rem,4vw,3.75rem);height:clamp(3.25rem,4vw,3.75rem);border-radius:50%;border:2px solid var(--red);opacity:0;pointer-events:none;animation:cit-ping 3.4s var(--ease) infinite}
@keyframes cit-ping{0%{transform:scale(1);opacity:.5}70%{transform:scale(1.6);opacity:0}100%{transform:scale(1.6);opacity:0}}
.cit-chat.is-open .cit-chat-ping{animation:none;opacity:0}

/* --- tease label --- */
.cit-chat-tease{position:absolute;left:calc(100% + .7rem);top:50%;transform:translate(-8px,-50%);white-space:nowrap;background:var(--bg);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--red);padding:.6rem .95rem;font-family:'JetBrains Mono',monospace;font-size:clamp(.78rem,.76rem + .12vw,.88rem);line-height:1.2;box-shadow:0 8px 26px oklch(15% 0.005 15 / .1);opacity:0;pointer-events:none;transition:opacity .32s var(--ease),transform .32s var(--ease)}
.cit-chat.is-teasing .cit-chat-tease{opacity:1;transform:translate(0,-50%)}
.cit-chat.is-open .cit-chat-tease{opacity:0;transform:translate(-8px,-50%)}

/* --- panel --- */
.cit-chat-panel{width:min(20.5rem,calc(100vw - 2.5rem));max-height:min(30rem,calc(100vh - 7rem));background:var(--bg);border:1px solid var(--border);box-shadow:0 30px 80px oklch(15% 0.005 15 / .18),0 8px 24px oklch(15% 0.005 15 / .08);display:flex;flex-direction:column;overflow:hidden;transform-origin:0 100%;opacity:0;transform:translateY(10px) scale(.97);transition:opacity .26s var(--ease),transform .26s var(--ease)}
.cit-chat.is-shown .cit-chat-panel{opacity:1;transform:translateY(0) scale(1)}

.cit-chat-head{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;border-bottom:1px solid var(--border);background:var(--surface)}
.cit-chat-avatar{display:grid;place-items:center;width:2.35rem;height:2.35rem;flex:none;border:1px solid var(--border);background:var(--bg)}
.cit-chat-avatar svg{width:1.4rem;height:auto}
.cit-chat-id{display:flex;flex-direction:column;gap:.12rem;min-width:0}
.cit-chat-name{font-family:'Orbitron',sans-serif;font-size:.88rem;font-weight:700;letter-spacing:.04em}
.cit-chat-status{display:flex;align-items:center;gap:.35rem;font-size:.72rem;color:var(--text-2)}
.cit-chat-dot{width:6px;height:6px;border-radius:50%;background:oklch(62% 0.17 145);box-shadow:0 0 0 3px oklch(62% 0.17 145 / .18)}
.cit-chat-x{margin-left:auto;background:none;border:none;font-size:1.45rem;line-height:1;color:var(--dim);padding:0 .15rem;transition:color .2s}
.cit-chat-x:hover{color:var(--red)}

.cit-chat-body{padding:1.1rem 1rem;background:var(--bg);overflow-y:auto;min-height:0}
.cit-chat-msg{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}
.cit-chat-bubble-msg{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:2px 12px 12px 12px;padding:.8rem .95rem;font-size:.85rem;line-height:1.65;color:var(--text);max-width:100%}
.cit-chat-time{font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}

.cit-chat-foot{padding:.85rem 1rem 1rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem;flex:none}
.cit-chat-input{width:100%;resize:none;font-family:'JetBrains Mono',monospace;font-size:.85rem;line-height:1.55;color:var(--text);background:var(--bg);border:1px solid var(--border);padding:.6rem .7rem;transition:border-color .25s}
.cit-chat-input:focus{outline:none;border-color:var(--red)}
.cit-chat-input::placeholder{color:var(--dim)}
.cit-chat-send{display:flex;align-items:center;justify-content:center;gap:.45rem;width:100%;font-family:'Orbitron',sans-serif;font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:oklch(98% 0.005 15);background:var(--red);border:none;padding:.8rem 1rem;transition:background .2s,transform .18s var(--ease)}
.cit-chat-send:hover{background:var(--red-dark)}
.cit-chat-send:active{transform:translateY(1px)}
.cit-chat-send svg{flex:none}
.cit-chat.is-sending .cit-chat-send{opacity:.72;pointer-events:none}
.cit-chat.is-copied .cit-chat-send,.cit-chat.is-nocopy .cit-chat-send{pointer-events:none;opacity:.55}
.cit-chat-note{font-size:.68rem;line-height:1.4;color:var(--dim);text-align:center}

/* post-send confirmation: tells the visitor to paste */
.cit-chat-copied,.cit-chat-nocopy{display:none;align-items:center;justify-content:center;gap:.4rem;font-size:.72rem;line-height:1.4;text-align:center;padding:.5rem .6rem;border:1px solid oklch(62% 0.17 145 / .35);background:oklch(62% 0.17 145 / .07);color:oklch(38% 0.11 145)}
.cit-chat-copied svg{flex:none;color:oklch(52% 0.15 145)}
.cit-chat.is-copied .cit-chat-copied{display:flex}
.cit-chat.is-copied .cit-chat-note,.cit-chat.is-nocopy .cit-chat-note{display:none}
.cit-chat-nocopy{border-color:oklch(55% 0.22 25 / .3);background:oklch(55% 0.22 25 / .06);color:var(--red-dark)}
.cit-chat.is-nocopy .cit-chat-nocopy{display:flex}

@media (max-width:520px){
  .cit-chat{left:.85rem;right:.85rem;bottom:.85rem}
  .cit-chat-panel{width:100%}
  .cit-chat-tease{display:none}
}
@media (prefers-reduced-motion:reduce){
  .cit-chat-ping{animation:none;opacity:0}
  .cit-chat-panel,.cit-chat-tease,.cit-chat-mark{transition:none}
}

/* SCORE HUD */
.hud{position:fixed;top:4.6rem;left:.8rem;z-index:9996;width:5.9rem;padding:.45rem .5rem .5rem;background:oklch(98.5% 0.003 15 / .84);backdrop-filter:blur(10px);border:1px solid var(--border);border-left:3px solid var(--red);box-shadow:0 8px 24px oklch(15% 0.005 15 / .07);animation:hud-in .45s var(--ease) both}
@keyframes hud-in{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.hud-top{display:flex;align-items:center;gap:.3rem;flex-wrap:wrap}
.hud-glyph{display:flex;color:var(--red)}
.hud-kills{font-family:'Orbitron',sans-serif;font-size:.8rem;font-weight:700;color:var(--text-2);line-height:1}
.hud-sep{display:none}
.hud-score{flex:0 0 100%;font-family:'Orbitron',sans-serif;font-size:1.3rem;font-weight:800;line-height:1;color:var(--text);display:flex;align-items:baseline;gap:.18rem;margin-top:.22rem;animation:hud-pop .32s var(--ease)}
.hud-unit{font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
@keyframes hud-pop{0%{transform:scale(1)}38%{transform:scale(1.13)}100%{transform:scale(1)}}
.hud-bar{position:relative;height:2px;background:var(--border);margin-top:.4rem;overflow:hidden}
.hud-bar-fill{position:absolute;inset:0 auto 0 0;background:var(--red);transition:width .4s var(--ease)}
.hud-hint{margin-top:.3rem;font-size:.75rem;line-height:1.25;color:var(--dim)}
.hud-code{margin-top:.4rem;display:flex;flex-direction:column;align-items:flex-start;gap:.12rem;width:100%;background:var(--red);border:none;padding:.38rem .45rem;cursor:pointer;text-align:left;transition:background .2s}
.hud-code:hover{background:var(--red-dark)}
.hud-code-word{font-family:'Orbitron',sans-serif;font-size:.78rem;font-weight:800;letter-spacing:.1em;color:oklch(98% 0.005 15);line-height:1}
.hud-code-sub{font-size:.75rem;line-height:1.2;color:oklch(99% 0.002 15)}
.hud-won{box-shadow:0 0 0 1px oklch(55% 0.22 25 / .22),0 12px 34px oklch(55% 0.22 25 / .15)}
@media (max-width:900px){.hud{display:none}}
@media (prefers-reduced-motion:reduce){.hud,.hud-score{animation:none}}
/* ASTRONAUT: drifts in from off-frame on load, then tumbles in place */
.astro{
  position:absolute;
  right:clamp(-30rem,-21vw,-9rem);
  bottom:clamp(-16rem,-10vw,-4rem);
  width:clamp(46rem,72vw,100rem);
  height:auto;
  opacity:0;
  transform:translate3d(30%,26%,0) rotate(20deg) scale(.86);
  /* desaturation + bottom fade are baked into the PNG so the
     compositor only has to move a flat layer. */
  will-change:transform;
  contain:paint;
}
/* enter runs once, then the drift loop takes over at the same resting pose */
.astro.show{
  animation:
    astro-enter 2.6s cubic-bezier(.16,.84,.28,1) both,
    astro-drift 26s ease-in-out 2.6s infinite;
}
@keyframes astro-enter{
  0%{opacity:0;transform:translate3d(34%,30%,0) rotate(22deg) scale(.84)}
  55%{opacity:.42}
  100%{opacity:.42;transform:translate3d(0,0,0) rotate(6deg) scale(1)}
}
@keyframes astro-drift{
  0%{transform:translate3d(0,0,0) rotate(6deg)}
  25%{transform:translate3d(-.9rem,-1.5rem,0) rotate(4.2deg)}
  50%{transform:translate3d(.5rem,-2.4rem,0) rotate(7.4deg)}
  75%{transform:translate3d(1rem,-1rem,0) rotate(5deg)}
  100%{transform:translate3d(0,0,0) rotate(6deg)}
}
@media (max-width:900px){
  .astro{right:-16rem;bottom:-6rem;width:58rem}
  @keyframes astro-enter{
    0%{opacity:0;transform:translate3d(34%,30%,0) rotate(22deg) scale(.84)}
    55%{opacity:.24}
    100%{opacity:.24;transform:translate3d(0,0,0) rotate(6deg) scale(1)}
  }
}
@media (max-width:600px){
  .astro{right:-13rem;bottom:-3rem;width:44rem}
}
@media (prefers-reduced-motion:reduce){
  .astro{opacity:.42;transform:rotate(6deg)}
  .astro.show{animation:none}
}



/* VIDEO POSTER: framed plate, mesh reads through the empty area */
.video-poster-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.4) contrast(1.03);transition:transform .7s var(--ease),filter .5s}
.video-poster:hover .video-poster-img{transform:scale(1.03);filter:saturate(.62) contrast(1.03)}
.video-vignette{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 45%,transparent 40%,oklch(90% 0.006 20 / .35) 100%);pointer-events:none}
.video-mark{position:absolute;right:-4%;bottom:-16%;width:38%;opacity:.055;pointer-events:none}
.video-mark svg{width:100%;height:auto;display:block}
.video-corner{position:absolute;width:clamp(14px,1.4vw,22px);height:clamp(14px,1.4vw,22px);border-color:var(--red);opacity:.55;pointer-events:none}
.video-corner.tl{top:clamp(.7rem,1vw,1.1rem);left:clamp(.7rem,1vw,1.1rem);border-top:2px solid;border-left:2px solid}
.video-corner.br{bottom:clamp(.7rem,1vw,1.1rem);right:clamp(.7rem,1vw,1.1rem);border-bottom:2px solid;border-right:2px solid}
.video-meta{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:clamp(.85rem,1.6vw,1.4rem) clamp(1rem,2vw,1.8rem);background:linear-gradient(to top,oklch(98.5% 0.003 15 / .92),transparent);pointer-events:none}
.video-title{font-family:'Orbitron',sans-serif;font-size:clamp(.72rem,.7rem + .2vw,.95rem);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.video-dur{font-family:'JetBrains Mono',monospace;font-size:clamp(.7rem,.68rem + .12vw,.82rem);font-weight:500;color:var(--red);border:1px solid oklch(55% 0.22 25 / .35);padding:.2em .55em;white-space:nowrap}

/* PROOF BAR: receipts, directly under the hero */
.proof-sec{position:relative;z-index:5;width:100%;max-width:var(--wrap);margin:0 auto;padding:clamp(2rem,4vw,3.5rem) var(--px) clamp(1.5rem,3vw,2.5rem)}
.proof-inner{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:clamp(1.25rem,2.4vw,2rem) 0}
.proof-row{list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;gap:clamp(1.5rem,4vw,4rem);margin:0;padding:0}
.proof-stat{display:flex;flex-direction:column;gap:.15rem}
.proof-n{font-family:'Orbitron',sans-serif;font-size:clamp(1.9rem,3.4vw,3.4rem);font-weight:800;line-height:1;color:var(--text);letter-spacing:-.02em}
.proof-l{font-family:'Orbitron',sans-serif;font-size:clamp(.7rem,.68rem + .18vw,.86rem);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-2)}
.proof-window{margin-left:auto;align-self:center}
.proof-window .proof-l{color:var(--red)}
.proof-clients{margin-top:clamp(1rem,2vw,1.5rem);font-family:'Orbitron',sans-serif;font-size:clamp(.72rem,.7rem + .2vw,.92rem);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);line-height:1.9}
.proof-kicker{margin-top:.5rem;font-size:clamp(.85rem,.82rem + .18vw,1rem);color:var(--dim);font-style:normal}

/* WHY WE'RE DIFFERENT */
.diff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(1rem,2.2vw,2rem);margin-top:clamp(1.5rem,3vw,2.5rem)}
.diff-card{border-left:2px solid var(--red);padding:clamp(.5rem,1vw,.75rem) 0 clamp(.5rem,1vw,.75rem) clamp(1rem,2vw,1.75rem)}
.diff-num{font-family:'Orbitron',sans-serif;font-size:clamp(.78rem,.75rem + .15vw,.92rem);font-weight:700;letter-spacing:.1em;color:var(--red)}
.diff-title{margin-top:.4rem;font-family:'Orbitron',sans-serif;font-size:clamp(1.05rem,1rem + .45vw,1.5rem);font-weight:700;line-height:1.25;text-wrap:balance}
.diff-body{margin-top:.55rem;font-size:clamp(.92rem,.9rem + .2vw,1.08rem);line-height:1.75;color:var(--text-2);max-width:52ch}

/* COVERAGE */
.coverage-block{margin-top:clamp(1.75rem,3.4vw,2.75rem);padding-top:clamp(1.25rem,2.4vw,1.75rem);border-top:1px solid var(--border);max-width:72ch}
.coverage-long{font-family:'Orbitron',sans-serif;font-size:clamp(1rem,.95rem + .4vw,1.35rem);font-weight:700;line-height:1.35;text-wrap:balance}
.coverage-list{margin-top:.6rem;font-size:clamp(.88rem,.85rem + .18vw,1.02rem);line-height:1.9;color:var(--text-2)}
.coverage-note{margin-top:.5rem;font-family:'Orbitron',sans-serif;font-size:clamp(.72rem,.7rem + .15vw,.85rem);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}

/* SERVICE TILE NOTE (Managed IT: limited availability) */
.svc-cell{padding-bottom:calc(clamp(1.1rem,1.8vw,1.9rem) + 1.5rem)}
.svc-note{
  position:absolute;left:50%;bottom:clamp(.5rem,1vw,.85rem);
  display:inline-block;width:max-content;
  padding:.18em .5em;
  font-family:'JetBrains Mono',monospace;
  font-size:clamp(.56rem,.54rem + .08vw,.66rem);
  font-weight:600;font-style:italic;letter-spacing:.06em;text-transform:uppercase;
  line-height:1.25;white-space:nowrap;min-height:0;
  color:var(--red);background:var(--bg);
  border:1px solid oklch(55% 0.22 25 / .4);
  transform:translateX(-50%) rotate(-2.5deg);
  transition:transform .3s var(--ease),background .3s var(--ease),color .3s var(--ease)
}
.svc-cell:hover .svc-note{transform:translateX(-50%) rotate(-1deg) translateY(-1px);background:var(--red);color:oklch(98% 0.005 15)}

@media (max-width:900px){
  .diff-grid{grid-template-columns:1fr}
  .proof-window{margin-left:0;width:100%}
}

/* SERVICE STRIP BREAKPOINTS — 8 / 4 / 2 all divide evenly into 8 items,
   so a row is never left with an orphaned right border. */
@media (max-width:1280px){
  .svc-strip{grid-template-columns:repeat(3,1fr)}
  /* :nth-child(n) matches everything at the same specificity as the
     removals below, so the reset actually takes effect. */
  .svc-cell:nth-child(n){border-right:1px solid var(--border);border-bottom:none}
  .svc-cell:nth-child(3n){border-right:none}
  .svc-cell:nth-child(-n+6){border-bottom:1px solid var(--border)}
}
@media (max-width:640px){
  .svc-strip{grid-template-columns:repeat(2,1fr)}
  .svc-cell:nth-child(n){border-right:1px solid var(--border);border-bottom:none}
  .svc-cell:nth-child(2n){border-right:none}
  .svc-cell:nth-child(-n+8){border-bottom:1px solid var(--border)}
}

/* WP ADMIN BAR OFFSET */
body.admin-bar .nav{top:32px}
body.admin-bar .hud{top:calc(4.6rem + 32px)}
body.admin-bar .fly-sticky{height:calc(100vh - 32px);top:32px}
@media screen and (max-width:782px){
  body.admin-bar .nav{top:46px}
  body.admin-bar .hud{top:calc(4.6rem + 46px)}
  body.admin-bar .fly-sticky{height:calc(100vh - 46px);top:46px}
}

/* WP CORE ALIGNMENT / BLOCK EDITOR SAFETY */
.alignleft{float:left;margin-right:1.5rem}
.alignright{float:right;margin-left:1.5rem}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed;top:1rem;left:1rem;z-index:100001;width:auto;height:auto;clip:auto;padding:.75rem 1.25rem;background:var(--red);color:#fff;font-family:'Orbitron',sans-serif;font-size:.8rem}
