*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body),sans-serif;background:var(--p);color:#e4e8ed;overflow-x:hidden;margin:0}
h1,h2,h3,.fd{font-family:var(--font-heading),sans-serif}

/* Reveal */
.rv{opacity:0;transform:translateY(18px);transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1)}
.rv.s1{transition-delay:.12s}.rv.s2{transition-delay:.24s}.rv.s3{transition-delay:.36s}
.rv.on{opacity:1;transform:none}

/* CTA teal sweep */
.btn-t{position:relative;overflow:hidden;background:var(--a);transition:transform .2s,box-shadow .2s;display:inline-flex;align-items:center;justify-content:center}
.btn-t::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transform:translateX(-120%);transition:transform .52s}
.btn-t:hover::before{transform:translateX(120%)}
.btn-t:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(var(--a-rgb),.45)}

/* Ghost teal outline */
.btn-o{background:transparent;border:1px solid rgba(var(--a-rgb),.45);color:var(--a);transition:border-color .25s,background .25s;display:inline-flex;align-items:center;justify-content:center}
.btn-o:hover{border-color:var(--a);background:rgba(var(--a-rgb),.1)}

/* Card */
.ch{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,border-color .25s}
.ch:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.5),0 0 0 1px rgba(var(--a-rgb),.2)}

/* Underline */
.al{position:relative}
.al::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--a);transition:width .3s}
.al:hover::after{width:100%}

/* Hex grid pattern */
.hex-bg{background-image:url("data:image/svg+xml,%3Csvg width='60' height='52' xmlns='http://www.w3.org/2000/svg'%3E%3Cpolygon points='30,2 58,16 58,44 30,58 2,44 2,16' fill='none' stroke='rgba(20,184,166,0.06)' stroke-width='1'/%3E%3C/svg%3E");background-size:60px 52px}

/* Scan line overlay */
.scan-lines{background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px)}

/* Tech corner cutout on cards */
.corner-cut{clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,0 100%)}

/* Teal glow accent */
.teal-glow{text-shadow:0 0 20px rgba(var(--a-rgb),.5)}

/* Stat value */
.stat-v{font-family:var(--font-heading),sans-serif;font-size:clamp(40px,5.5vw,66px);font-weight:700;line-height:1;color:var(--a)}

/* Section label */
.sec-label{font-size:10px;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--a)}

/* Service icon box */
.icon-box{border:1px solid rgba(var(--a-rgb),.25);display:flex;align-items:center;justify-content:center;transition:border-color .25s,background .25s}
.icon-box:hover,.ch:hover .icon-box{border-color:var(--a);background:rgba(var(--a-rgb),.1)}

/* Terminal-style tag */
.ttag{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border:1px solid rgba(var(--a-rgb),.3);color:rgba(var(--a-rgb),1);font-family:var(--font-heading),sans-serif}

/* Nav */
#nav{transition:background .3s,border-color .3s;border-bottom:1px solid rgba(var(--a-rgb),.12)}
#nav.sc{background:rgba(var(--p-rgb),0.98)!important;backdrop-filter:blur(10px);border-color:rgba(var(--a-rgb),.18)}

/* Mobile menu */
#mmenu{transform:translateX(100%);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .3s}
#mmenu.op{transform:translateX(0);opacity:1;pointer-events:all}

input:focus,select:focus,textarea:focus{outline:1px solid var(--a);outline-offset:1px}
