/* ExcellenceTek — navy ground, coral signal, sky as a quiet second accent. Layout: dark hero per page, light content, dark closing band. */
:root{--ink:#0F1E36;--deep:#0A1526;--panel:#16304F;--coral:#F2782F;--coral-d:#B4460E;--coral-l:#F9A066;--sky:#8CCBF5;--blue:#2F7FD0;--mist:#F5F7F9;--white:#fff;--slate:#4A5B6B;--line:#D9E0E6;--on-dark:#C9D5E0;--display:'Archivo','Arial Black',Arial,sans-serif;--body:'IBM Plex Sans','Segoe UI',Arial,sans-serif;--wrap:1200px}
*{box-sizing:border-box}

body{margin:0;font-family:var(--body);font-size:17px;line-height:1.6;color:var(--ink);background:var(--mist);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--display);margin:0;text-wrap:balance}
h1{font-weight:800;font-size:clamp(42px,6.4vw,84px);letter-spacing:-.04em;line-height:.98}
h2{font-weight:800;font-size:clamp(30px,4.2vw,50px);letter-spacing:-.03em;line-height:1.04}
h3{font-weight:800;font-size:22px;letter-spacing:-.02em;line-height:1.15}
p{margin:0}
.eyebrow{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-d);display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--coral)}
.dark .eyebrow{color:var(--coral-l)}
.lead{font-size:clamp(18px,1.6vw,21px);line-height:1.55;color:var(--slate);max-width:36em}
.dark .lead{color:var(--on-dark)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;background:var(--coral);color:var(--ink);font-weight:600;font-size:16px;text-decoration:none;border:0;cursor:pointer;font-family:inherit;transition:transform .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(242,120,47,.35)}
.btn svg{transition:transform .2s}.btn:hover svg{transform:translateX(4px)}
.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4)}
.btn.ghost:hover{box-shadow:inset 0 0 0 1.5px #fff}
.btn.dk{background:var(--ink);color:#fff}.btn.dk:hover{box-shadow:0 12px 30px rgba(15,30,54,.3)}
.link{font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;border-bottom:0}
.link svg{transition:transform .2s}.link:hover svg{transform:translateX(4px)}
.link:hover{color:var(--coral-d)}.dark .link:hover{color:var(--coral-l)}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(10,21,38,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-family:var(--display);font-weight:800;font-size:25px;letter-spacing:-.035em;line-height:1}
.logo b{color:var(--coral);font-weight:800}
.nav{display:flex;align-items:center;gap:6px}
.nav a{color:#fff;text-decoration:none;font-size:15px;font-weight:500;padding:0 14px;min-height:44px;display:inline-flex;align-items:center;border-radius:999px;transition:background .2s}
.nav a:hover,.nav a.on{background:rgba(255,255,255,.1)}
.nav a.cta{background:var(--coral);color:var(--ink);font-weight:600;margin-left:10px;padding:0 20px}
.nav a.cta:hover{background:var(--coral-l)}
.burger{display:none;width:48px;height:48px;border:0;background:transparent;cursor:pointer;position:relative;border-radius:12px}
.burger span{position:absolute;left:12px;right:12px;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .2s,top .3s}
.burger span:nth-child(1){top:16px}.burger span:nth-child(2){top:23px}.burger span:nth-child(3){top:30px}
.open .burger span:nth-child(1){top:23px;transform:rotate(45deg)}.open .burger span:nth-child(2){opacity:0}.open .burger span:nth-child(3){top:23px;transform:rotate(-45deg)}
@media(max-width:960px){
.burger{display:block}
.nav{position:fixed;top:72px;left:0;right:0;bottom:0;height:calc(100dvh - 72px);background:var(--deep);flex-direction:column;align-items:stretch;gap:0;padding:24px;overflow:auto;visibility:hidden;opacity:0;transform:translateY(-12px);transition:opacity .25s,transform .25s,visibility .25s}
.open .nav{visibility:visible;opacity:1;transform:none}
.nav a{font-family:var(--display);font-weight:800;font-size:32px;letter-spacing:-.03em;padding:14px 4px;border-radius:0;border-bottom:1px solid rgba(255,255,255,.1);min-height:64px}
.nav a:hover,.nav a.on{background:none;color:var(--coral-l)}
.nav a.cta{margin:28px 0 0;border-radius:999px;justify-content:center;font-family:var(--body);font-size:18px;border:0;color:var(--ink)}
}

/* sections */
.dark{background:var(--ink);color:#fff}
.deep{background:var(--deep)}
.white{background:#fff}
section{position:relative}
.sec{padding:clamp(72px,9vw,120px) 0}
.head{display:flex;flex-direction:column;gap:16px;max-width:780px;margin-bottom:48px}
.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:30px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .3s,border-color .3s;transform-style:preserve-3d;will-change:transform}
.card:hover{box-shadow:0 24px 60px rgba(15,30,54,.12);border-color:#B9C7D4}
.card p,.card li{color:var(--slate);font-size:16px}
.card ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.dark .card{background:var(--panel);border-color:rgba(255,255,255,.1)}
.dark .card:hover{border-color:rgba(255,255,255,.3);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.dark .card p,.dark .card li{color:var(--on-dark)}
.num{width:40px;height:40px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px;flex-shrink:0}
.dark .num{background:var(--coral);color:var(--ink)}
.idx{font-size:13px;font-weight:600;color:var(--coral-d);font-variant-numeric:tabular-nums;letter-spacing:.06em}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:13px;font-weight:500;padding:5px 12px;border-radius:999px;background:var(--mist);border:1px solid var(--line);color:var(--ink)}
.dark .chip{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14);color:#fff}

/* hero */
.hero{background:var(--deep);color:#fff;padding:calc(72px + clamp(48px,7vw,96px)) 0 clamp(64px,8vw,110px);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 85% 30%,rgba(140,203,245,.16),transparent 60%),radial-gradient(40% 50% at 10% 100%,rgba(242,120,47,.14),transparent 60%);pointer-events:none}
.hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(70% 80% at 50% 30%,#000,transparent);mask-image:radial-gradient(70% 80% at 50% 30%,#000,transparent);pointer-events:none}
.hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:56px;align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:26px;align-items:flex-start}
.hero h1 em{font-style:normal;color:var(--coral)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.orbit{position:absolute;font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:-.01em;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;gap:8px;animation:float 6s ease-in-out infinite}
.orbit i{width:8px;height:8px;border-radius:50%;background:var(--coral)}
.orbit.o1{top:8%;left:2%}.orbit.o2{top:46%;right:-2%;animation-delay:-2s}.orbit.o3{bottom:8%;left:10%;animation-delay:-4s}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* 3D photo scene for sub-page heroes */
.scene{perspective:1400px;max-width:520px;width:100%;margin:0 auto;padding:20px 0}
.scene-in{position:relative;transform-style:preserve-3d;transform:rotateY(-16deg) rotateX(6deg);animation:sway 9s ease-in-out infinite;transition:transform .3s ease-out}
@keyframes sway{0%,100%{transform:rotateY(-16deg) rotateX(6deg)}50%{transform:rotateY(-8deg) rotateX(2deg)}}
.scene img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:24px;box-shadow:0 50px 100px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.14)}
.scene::after{content:""}
.tag{position:absolute;background:#fff;color:var(--ink);border-radius:16px;padding:14px 18px;font-size:14px;font-weight:600;display:flex;align-items:center;gap:10px;box-shadow:0 20px 50px rgba(0,0,0,.35);animation:float 5s ease-in-out infinite;white-space:nowrap}
.tag i{width:26px;height:26px;border-radius:50%;background:var(--coral);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.tag.t1{top:9%;left:-8%;transform:translateZ(90px)}
.tag.t2{top:44%;right:-10%;transform:translateZ(140px);animation-delay:-1.6s;background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.2)}
.tag.t3{bottom:10%;left:-4%;transform:translateZ(60px);animation-delay:-3.2s}
@media(max-width:560px){.tag.t1{left:0}.tag.t2{right:0}.tag.t3{left:0}.tag{font-size:13px;padding:10px 14px}}

/* marquee */
.marq{background:var(--deep);border-top:1px solid rgba(255,255,255,.08);padding:22px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marq-t{display:flex;gap:48px;width:max-content;animation:marq 48s linear infinite}
.marq-t span{font-family:var(--display);font-weight:700;font-size:18px;color:#8FA3B5;white-space:nowrap;display:flex;align-items:center;gap:48px}
.marq-t span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--coral)}
@keyframes marq{to{transform:translateX(-50%)}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:0;border-top:1px solid var(--line)}
.stat{padding:36px 24px 36px 0;border-bottom:1px solid var(--line)}
.stat b{font-family:var(--display);font-weight:800;font-size:clamp(48px,6vw,76px);letter-spacing:-.04em;line-height:1;display:block;font-variant-numeric:tabular-nums}
.stat span{color:var(--slate);font-size:16px;display:block;margin-top:8px}

/* split cards (audiences) */
.aud{border-radius:28px;overflow:hidden;position:relative;min-height:480px;display:flex;align-items:flex-end;color:#fff;text-decoration:none;isolation:isolate}
.aud img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.aud:hover img{transform:scale(1.06)}
.aud::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,21,38,.1) 20%,rgba(10,21,38,.92) 78%);z-index:-1}
.aud-b{padding:36px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.aud p{color:var(--on-dark)}

/* 3D plates */
.plates{perspective:1300px;height:440px;display:flex;align-items:center;justify-content:center}
.plates-in{position:relative;width:min(300px,62vw);height:min(190px,40vw);transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-38deg);animation:turn 14s ease-in-out infinite}
@keyframes turn{0%,100%{transform:rotateX(58deg) rotateZ(-38deg)}50%{transform:rotateX(54deg) rotateZ(-26deg)}}
.plate{position:absolute;inset:0;border-radius:24px;display:flex;align-items:flex-end;padding:18px 22px;font-family:var(--display);font-weight:800;font-size:clamp(16px,2.4vw,22px);letter-spacing:-.02em;box-shadow:-24px 24px 50px rgba(0,0,0,.35);animation:lift 5s ease-in-out infinite}
.plate.a{background:var(--panel);color:#fff;border:1px solid rgba(255,255,255,.18);--z:0px}
.plate.b{background:#fff;color:var(--ink);--z:80px;animation-delay:-1.6s}
.plate.c{background:var(--coral);color:var(--ink);--z:160px;animation-delay:-3.2s}
@keyframes lift{0%,100%{transform:translateZ(var(--z))}50%{transform:translateZ(calc(var(--z) + 18px))}}

/* band with photo */
.band{color:#fff;overflow:hidden;isolation:isolate}
.band>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.band::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,21,38,.95) 0%,rgba(10,21,38,.75) 55%,rgba(10,21,38,.45) 100%);z-index:-1}
.band h2{font-size:clamp(36px,5.6vw,72px);letter-spacing:-.04em;line-height:1;max-width:14em}
.band .lead{color:var(--on-dark)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:0;counter-reset:s}
.step{padding:28px 28px 28px 0;border-top:2px solid var(--ink);display:flex;flex-direction:column;gap:10px}
.dark .step{border-color:rgba(255,255,255,.3)}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--display);font-weight:800;font-size:44px;letter-spacing:-.04em;color:var(--coral);line-height:1}
.step p{color:var(--slate);font-size:16px}.dark .step p{color:var(--on-dark)}

/* media split */
.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:56px;align-items:center}
.split img{border-radius:24px;aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:0 30px 70px rgba(15,30,54,.18)}
.stack{display:flex;flex-direction:column;gap:20px;align-items:flex-start}
.tick{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.tick li{display:flex;gap:12px;align-items:flex-start}
.tick li::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--coral);margin-top:9px;flex-shrink:0}

/* practice */
.search{width:100%;max-width:520px;min-height:56px;border-radius:999px;border:1.5px solid #8A99A8;padding:0 24px;font:inherit;font-size:17px;background:#fff;color:var(--ink)}
.pa{gap:20px}
.empty{padding:40px 0;color:var(--slate);display:none}

/* taglines */
.tags{display:flex;flex-direction:column}
.tags div{font-family:var(--display);font-weight:800;font-size:clamp(26px,4.4vw,56px);letter-spacing:-.035em;line-height:1.1;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.42);transition:color .3s,padding .3s}
.tags div:hover{color:#fff;padding-left:16px}
.tags div b{color:var(--coral);font-weight:800}

/* cta */
.cta-band{background:var(--coral);color:var(--ink)}
.cta-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px}
.cta-band h2{max-width:13em}

/* form */
form.card{gap:18px;padding:36px}
label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600}
input,select,textarea{min-height:52px;padding:0 16px;border:1.5px solid #8A99A8;border-radius:12px;font:inherit;font-size:16px;color:var(--ink);background:#fff;width:100%}
textarea{padding:14px 16px;min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:3px solid var(--sky);outline-offset:1px;border-color:var(--ink)}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:18px}
.note{font-size:15px;padding:14px 16px;border-radius:12px;background:#E9F6EE;color:#14532D;display:none}
.note.show{display:block}
.info{display:flex;flex-direction:column;gap:0}
.info div{padding:20px 0;border-bottom:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:2px}
.info small{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--coral-l);font-weight:600}

/* footer */
.ftr{background:var(--deep);color:var(--on-dark);padding:72px 0 32px;font-size:15px}
.ftr-g{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:40px}
.ftr h4{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#fff;margin:0 0 14px;font-weight:600}
.ftr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.ftr li a{text-decoration:none;min-height:36px;display:inline-flex;align-items:center}
.ftr li a:hover{color:#fff}
.cap{font-family:var(--display);font-weight:500;font-size:12px;letter-spacing:.26em;text-transform:uppercase;margin-top:14px}
.ftr-b{margin-top:56px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;font-size:14px}

/* motion */
.js .rv{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}.js .rv.d3{transition-delay:.24s}
.js .hero-copy>*{opacity:0;transform:translateY(22px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero-copy>*:nth-child(2){animation-delay:.1s}.js .hero-copy>*:nth-child(3){animation-delay:.2s}.js .hero-copy>*:nth-child(4){animation-delay:.3s}
@keyframes rise{to{opacity:1;transform:none}}
[data-page][hidden]{display:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .rv,.js .hero-copy>*{opacity:1;transform:none}html{scroll-behavior:auto}}

/* dropdown nav */
.has-sub{position:relative;display:flex;align-items:center}
.has-sub>a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:9px;opacity:.7}
.sub{position:absolute;top:100%;left:0;min-width:250px;background:#FFFFFF;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:8px;display:flex;flex-direction:column;box-shadow:0 30px 60px rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .2s,transform .2s,visibility .2s}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:none}
.nav .sub a{border-radius:10px;padding:0 14px;min-height:46px;width:100%}
@media(max-width:960px){
.has-sub{flex-direction:column;align-items:stretch}
.has-sub>a::after{display:none}
.sub{position:static;opacity:1;visibility:visible;transform:none;background:none;border:0;box-shadow:none;padding:6px 0 10px;min-width:0;border-bottom:1px solid rgba(255,255,255,.1)}
.nav .sub a{font-family:var(--body);font-weight:500;font-size:18px;letter-spacing:0;min-height:46px;padding:0 4px 0 18px;border:0;color:var(--on-dark)}
.nav .has-sub>a{border-bottom:0}
}
/* hero logo scene: the E mark in 3D, dots flowing into the coral point */
.flow{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.mark3d{perspective:1300px;width:100%;max-width:500px;aspect-ratio:1;margin:0 auto;position:relative}
.mark-in{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(20deg) rotateY(-28deg);animation:msway 10s ease-in-out infinite}
@keyframes msway{0%,100%{transform:rotateX(20deg) rotateY(-28deg)}50%{transform:rotateX(12deg) rotateY(-14deg)}}
.m-tile,.m-depth{position:absolute;inset:14%;border-radius:23%}
.m-depth{background:#04101C}
.m-tile{background:linear-gradient(145deg,#1B4268 0%,#0C2540 60%,#081B30 100%);border:1px solid rgba(255,255,255,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 60px 120px rgba(0,0,0,.55)}
.m-bar{position:absolute;left:30.5%;width:39%;height:9.7%;border-radius:10px;background:linear-gradient(180deg,#fff,#DCE6EE);box-shadow:0 18px 30px rgba(0,0,0,.4);animation:mbob 5s ease-in-out infinite;--z:46px;transform:translateZ(var(--z))}
.m-bar.b1{top:30.5%}.m-bar.b2{top:45.1%;width:21%;animation-delay:-1.2s}.m-bar.b3{top:59.7%;animation-delay:-2.4s}
@keyframes mbob{0%,100%{transform:translateZ(var(--z))}50%{transform:translateZ(calc(var(--z) + 16px))}}
.m-dot{position:absolute;left:56%;top:43.2%;width:13.5%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 34% 28%,#FFD3B5 0%,#F2782F 48%,#B4460E 100%);box-shadow:0 0 50px rgba(242,120,47,.75),0 0 120px rgba(242,120,47,.35);transform:translateZ(96px);animation:dbob 4s ease-in-out infinite}
@keyframes dbob{0%,100%{transform:translateZ(96px) scale(1)}50%{transform:translateZ(126px) scale(1.08)}}
.m-ring{position:absolute;left:62.75%;top:50%;width:0;height:0;transform-style:preserve-3d;transform:translateZ(100px)}
.m-ring i{position:absolute;border-radius:50%;border:1.5px solid rgba(255,255,255,.2);transform-style:preserve-3d}
.m-ring i::after{content:"";position:absolute;top:-5px;left:50%;width:9px;height:9px;margin-left:-5px;border-radius:50%;background:#fff;box-shadow:0 0 14px #fff}
.m-ring i.r1{width:210px;height:210px;margin:-105px;animation:spinA 9s linear infinite}
.m-ring i.r2{width:320px;height:320px;margin:-160px;animation:spinB 14s linear infinite}
.m-ring i.r2::after{background:var(--sky);box-shadow:0 0 14px var(--sky)}
.m-ring i.r3{width:430px;height:430px;margin:-215px;animation:spinC 20s linear infinite;border-color:rgba(255,255,255,.1)}
.m-ring i.r3::after{background:var(--coral);box-shadow:0 0 14px var(--coral)}
@keyframes spinA{from{transform:rotateX(68deg) rotateZ(0)}to{transform:rotateX(68deg) rotateZ(360deg)}}
@keyframes spinB{from{transform:rotateX(62deg) rotateY(24deg) rotateZ(360deg)}to{transform:rotateX(62deg) rotateY(24deg) rotateZ(0)}}
@keyframes spinC{from{transform:rotateX(74deg) rotateY(-18deg) rotateZ(0)}to{transform:rotateX(74deg) rotateY(-18deg) rotateZ(360deg)}}
.m-pulse{position:absolute;left:62.75%;top:50%;width:13.5%;aspect-ratio:1;margin:-6.75% 0 0 -6.75%;border-radius:50%;border:2px solid var(--coral);transform:translateZ(96px);animation:pulse 3s ease-out infinite;opacity:0}
.m-pulse.p2{animation-delay:-1.5s}
@keyframes pulse{0%{transform:translateZ(96px) scale(1);opacity:.8}100%{transform:translateZ(96px) scale(4.2);opacity:0}}
@media(max-width:560px){.m-ring i.r1{width:150px;height:150px;margin:-75px}.m-ring i.r2{width:230px;height:230px;margin:-115px}.m-ring i.r3{width:310px;height:310px;margin:-155px}}
.orbit.o1{top:6%;left:0}.orbit.o2{top:47%;right:0}.orbit.o3{bottom:5%;left:8%}
/* living dot */
.eyebrow::before{animation:blip 2.4s ease-in-out infinite}
@keyframes blip{0%,100%{box-shadow:0 0 0 0 rgba(242,120,47,.55)}50%{box-shadow:0 0 0 7px rgba(242,120,47,0)}}
.plate.d{background:var(--sky);color:var(--ink);--z:240px;animation-delay:-4.2s}
.plates.four{height:520px}
/* feature rows */
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:56px;align-items:center;padding:56px 0;border-top:1px solid var(--line)}
.feat:first-of-type{border-top:0;padding-top:0}
.feat img{border-radius:24px;aspect-ratio:4/3;object-fit:cover;width:100%;box-shadow:0 30px 70px rgba(15,30,54,.18)}
.feat.flip img{order:2}
@media(max-width:940px){.feat.flip img{order:0}}
.bignum{font-family:var(--display);font-weight:800;font-size:64px;letter-spacing:-.04em;line-height:1;color:var(--coral)}
.duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:20px}
.duo a{border-radius:28px;padding:44px;text-decoration:none;display:flex;flex-direction:column;gap:16px;align-items:flex-start;transition:transform .3s}
.duo a:hover{transform:translateY(-6px)}
.duo .k{background:var(--ink);color:#fff}.duo .c{background:var(--coral);color:var(--ink)}
.duo .k p{color:var(--on-dark)}
.checks{display:flex;flex-wrap:wrap;gap:10px}
.checks label{flex-direction:row;align-items:center;gap:8px;font-weight:500;font-size:15px;border:1.5px solid #8A99A8;border-radius:999px;padding:0 16px;min-height:44px;cursor:pointer}
.checks input{width:18px;height:18px;min-height:0;padding:0;accent-color:#F2782F}
input[type=file]{padding:12px 16px;min-height:52px}
.js main{animation:pgin .5s ease both}
@keyframes pgin{from{opacity:0}to{opacity:1}}
.crumb{font-size:14px;color:var(--on-dark);display:flex;gap:8px;align-items:center}
.crumb a{color:#fff;text-decoration:none}.crumb a:hover{color:var(--coral-l)}

.mapbox{border-radius:24px;overflow:hidden;box-shadow:0 30px 70px rgba(15,30,54,.18);border:1px solid var(--line);aspect-ratio:4/3;background:#E3E8ED}
.mapbox iframe{width:100%;height:100%;border:0;display:block}
.ftr li a[href^="mailto"]{min-height:36px}

/* map */
.mapgrid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:20px;align-items:stretch}
.mapgrid .map{min-height:420px;border-radius:24px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 70px rgba(15,30,54,.14);background:#E4E9EE}
.map iframe{width:100%;height:100%;min-height:420px;border:0;display:block}
@media(max-width:860px){.mapgrid{grid-template-columns:minmax(0,1fr)}}
.info a:hover,.ftr a:hover{color:#fff}

/* practice images */
.pa-card{padding-top:0;overflow:hidden}
.pa-media{margin:0 -30px 8px;aspect-ratio:3/2;overflow:hidden;background:#0A1F33;border-bottom:1px solid var(--line)}
.pa-media img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.pa-media.wide img{object-fit:contain}
.pa-card:hover .pa-media img{transform:scale(1.04)}
.dark .pa-media{border-color:rgba(255,255,255,.1)}

/* ===== final brand: white header, gem logo ===== */
.hdr{background:rgba(255,255,255,.97);border-bottom:1px solid #E3E8EE;box-shadow:0 6px 24px rgba(15,30,54,.06)}
.logo{color:var(--ink);gap:11px}
.logo span{font-weight:400;letter-spacing:-.03em}
.logo b{color:var(--ink);font-weight:900;letter-spacing:-.01em}
.logo svg{flex-shrink:0}
.nav a{color:var(--ink)}
.nav a.cta{color:var(--ink);background:var(--coral)}
.nav a.cta:hover{background:var(--coral-l)}
.burger span{background:var(--ink)}
.sub{background:#fff;border:1px solid #E3E8EE;box-shadow:0 24px 50px rgba(15,30,54,.14)}
@media(min-width:961px){.nav a:hover,.nav a.on{background:#EEF2F6}.nav .sub a:hover{background:#F3F6F9;color:var(--coral-d)}}
@media(max-width:960px){
.nav{background:#fff}
.nav a{border-bottom-color:#E3E8EE}
.nav a:hover,.nav a.on{color:var(--coral-d);background:none}
.nav .sub a{color:var(--slate)}
.sub{border-bottom:1px solid #E3E8EE}
}
.ftr .logo,.ftr .logo b{color:#fff}
.ftr .cap{font-family:var(--display);font-style:italic;font-weight:500;letter-spacing:0;text-transform:none;font-size:17px;color:var(--coral-l);margin-top:12px}
/* 3D gem hero */
.gem3d{perspective:1300px;width:100%;max-width:520px;aspect-ratio:1;margin:0 auto;position:relative}
.gem-in{position:absolute;inset:12%;transform-style:preserve-3d;animation:gsway 10s ease-in-out infinite}
@keyframes gsway{0%,100%{transform:rotateY(-22deg) rotateX(10deg) translateY(0)}50%{transform:rotateY(16deg) rotateX(4deg) translateY(-16px)}}
.gem-in svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.gem-in .g-back{transform:translateZ(-46px);filter:brightness(.28) saturate(.8)}
.gem-in .g-mid{transform:translateZ(-23px);filter:brightness(.5)}
.gem-in .g-front{transform:translateZ(0);filter:drop-shadow(0 40px 60px rgba(0,0,0,.45))}
.gem-glow{position:absolute;left:18%;right:18%;bottom:6%;height:14%;border-radius:50%;background:radial-gradient(closest-side,rgba(242,120,47,.38),rgba(47,127,208,.18),transparent);filter:blur(8px);animation:glow 10s ease-in-out infinite}
@keyframes glow{0%,100%{transform:scaleX(1);opacity:.9}50%{transform:scaleX(.82);opacity:.6}}
.g-ring{left:50%!important;top:47%!important;transform:none!important}
.g-core{position:absolute;left:50%;top:44%;width:2px;height:2px}
.gem-static{display:flex;justify-content:center;perspective:1000px}
.gem-static svg{animation:gtilt 8s ease-in-out infinite;filter:drop-shadow(0 30px 50px rgba(0,0,0,.4));max-width:100%;height:auto}
@keyframes gtilt{0%,100%{transform:rotateY(-14deg) translateY(0)}50%{transform:rotateY(12deg) translateY(-10px)}}
@media(max-width:960px){.sub{border:0;border-radius:0;box-shadow:none;border-bottom:1px solid #E3E8EE}}

/* hero photo mosaic */
.mosaic{position:relative;display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:1fr 1fr;gap:16px;height:540px;width:100%;max-width:580px;margin:0 auto}
.mo{margin:0;border-radius:22px;overflow:hidden;position:relative;box-shadow:0 30px 60px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12);background:var(--panel)}
.mo1{grid-row:1 / span 2}
.mo img{width:100%;height:100%;object-fit:cover;display:block;animation:kb 16s ease-in-out infinite alternate}
.mo2 img{animation-delay:-6s}.mo3 img{animation-delay:-11s}
@keyframes kb{from{transform:scale(1)}to{transform:scale(1.07)}}
.js .mo{opacity:0;transform:translateY(26px);animation:moin 1s cubic-bezier(.2,.7,.2,1) forwards}
.js .mo2{animation-delay:.15s}.js .mo3{animation-delay:.3s}
@keyframes moin{to{opacity:1;transform:none}}
.mchip{position:absolute;z-index:2;background:#fff;color:var(--ink);border-radius:14px;padding:12px 16px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;box-shadow:0 20px 44px rgba(0,0,0,.32);animation:float 7s ease-in-out infinite;white-space:nowrap}
.mchip b{font-family:var(--display);font-weight:800}
.c1{left:-26px;bottom:54px}
.c2{right:-14px;top:26px;animation-delay:-3.5s;background:var(--ink);color:#fff;border:1px solid rgba(255,255,255,.18)}
.c2 i{width:8px;height:8px;border-radius:50%;background:var(--coral);flex-shrink:0}
@media(max-width:600px){.mosaic{height:400px;gap:10px}.c1{left:8px;bottom:16px}.c2{right:8px;top:12px;font-size:12px;padding:9px 12px}}
/* header wordmark: TEK leads */
.logo{gap:8px;align-items:center}
.logo svg{width:38px;height:38px}
.logo span{font-size:20px;font-weight:400;letter-spacing:-.025em;line-height:1}
.logo b{font-size:29px;font-weight:900;letter-spacing:-.01em;margin-left:1px}

/* header wordmark v3: Excellence original size, larger TEK, gem tight to the name */
.logo{gap:5px;align-items:center}
.logo svg{width:38px;height:38px}
.logo span{font-family:'Montserrat','Archivo',Arial,sans-serif;font-size:25px;font-weight:400;letter-spacing:-.02em;line-height:1}
.logo b{font-family:'Montserrat','Archivo',Arial,sans-serif;font-size:33px;font-weight:900;letter-spacing:-.02em;margin-left:0}
@media(max-width:400px){.logo span{font-size:21px}.logo b{font-size:28px}.logo svg{width:32px;height:32px}}
.logo{gap:1px}.logo svg{margin-right:-2px}

/* home hero 3D wave */
.home-hero{min-height:640px}
.home-hero::after{display:none}
.wave{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
/* footer: tagline under the name, right-aligned to TEK */
.fbrand{display:inline-flex;flex-direction:column;align-items:flex-end}
.ftr .fbrand .cap{margin-top:4px;text-align:right}

/* ===== hero 3D platform ===== */
.stage3d{position:relative;width:100%;max-width:560px;height:560px;margin:0 auto;perspective:1700px}
.iso{position:absolute;left:50%;top:56%;width:380px;height:380px;margin:-190px 0 0 -190px;transform-style:preserve-3d;transform:rotateX(58deg) rotateZ(-40deg);animation:isoSway 14s ease-in-out infinite}
@keyframes isoSway{0%,100%{transform:rotateX(58deg) rotateZ(-40deg)}50%{transform:rotateX(54deg) rotateZ(-30deg)}}
.pl{position:absolute;border-radius:28px;transform-style:preserve-3d;animation:plf 7s ease-in-out infinite}
@keyframes plf{0%,100%{transform:translateZ(var(--z))}50%{transform:translateZ(calc(var(--z) + 12px))}}
.pl1{--z:0px;inset:0;padding:26px;background:linear-gradient(150deg,rgba(47,127,208,.30),rgba(15,30,54,.85) 70%);border:1px solid rgba(140,203,245,.35);box-shadow:0 0 0 1px rgba(255,255,255,.04) inset,0 60px 90px rgba(0,0,0,.55)}
.pl-h{font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#8CCBF5;margin-bottom:14px}
.pl-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.pl-grid span{height:62px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#DCE6F2;font-size:11.5px;font-weight:600;display:flex;align-items:flex-end;padding:8px;line-height:1.1}
.pl-grid span:nth-child(5n+2){background:rgba(140,203,245,.16);border-color:rgba(140,203,245,.4)}
.pl-grid span:nth-child(7n+4){background:rgba(242,120,47,.18);border-color:rgba(242,120,47,.45)}
.pl2{--z:96px;inset:17% 13%;padding:22px;background:linear-gradient(160deg,rgba(255,255,255,.96),rgba(225,234,244,.92));box-shadow:0 40px 70px rgba(0,0,0,.45);animation-delay:-2.3s}
.pf-top{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.pf-top .av{width:46px;height:46px;border-radius:50%;background:linear-gradient(140deg,#2F7FD0,#0F1E36);flex-shrink:0}
.pf-l{display:flex;flex-direction:column;gap:7px;flex:1}
.pf-l b{height:10px;width:70%;border-radius:6px;background:#0F1E36}
.pf-l s{height:8px;width:46%;border-radius:6px;background:#9FB0C3;text-decoration:none}
.pf-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.pf-chips span{font-size:11px;font-weight:600;color:#0F1E36;background:#E3ECF7;border-radius:999px;padding:4px 10px}
.pf-bars{display:flex;flex-direction:column;gap:8px}
.pf-bars i{height:7px;border-radius:6px;background:linear-gradient(90deg,#2F7FD0,#8CCBF5)}
.pl3{--z:190px;left:34%;top:30%;width:132px;height:112px;border-radius:22px;background:linear-gradient(150deg,#F7944F,#D2531A);box-shadow:0 30px 50px rgba(210,83,26,.45);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;animation-delay:-4.6s}
.mt-ic{width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center}
.mt-t{color:#fff;font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-.01em}
.beam{position:absolute;left:50%;top:50%;width:0;height:0;transform-style:preserve-3d}
.beam i{position:absolute;width:8px;height:8px;margin:-4px;border-radius:50%;background:#8CCBF5;box-shadow:0 0 14px #8CCBF5,0 0 4px #fff;animation:beamup 3.6s linear infinite;opacity:0}
.beam i:nth-child(2){animation-delay:-.72s}.beam i:nth-child(3){animation-delay:-1.44s;background:#F2782F;box-shadow:0 0 14px #F2782F}.beam i:nth-child(4){animation-delay:-2.16s}.beam i:nth-child(5){animation-delay:-2.88s}
@keyframes beamup{0%{transform:translateZ(10px);opacity:0}15%{opacity:1}85%{opacity:1}100%{transform:translateZ(260px);opacity:0}}
.iso-gem{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px;transform-style:preserve-3d;transform:translateZ(300px) rotateZ(40deg) rotateX(-58deg)}
.iso-gem svg{display:block;width:150px;height:150px;animation:gspin 9s ease-in-out infinite;filter:drop-shadow(0 26px 34px rgba(0,0,0,.5))}
@keyframes gspin{0%,100%{transform:rotateY(-24deg) translateY(0)}50%{transform:rotateY(24deg) translateY(-10px)}}
.iso-floor{position:absolute;left:12%;right:12%;bottom:4%;height:18%;border-radius:50%;background:radial-gradient(closest-side,rgba(47,127,208,.35),rgba(242,120,47,.10),transparent);filter:blur(10px)}
@media(max-width:600px){.stage3d{height:430px}.iso{transform:scale(.74) rotateX(58deg) rotateZ(-40deg);animation:none}}

/* form fields */
.fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.fld>label{font-size:14px;font-weight:600}
select{appearance:auto;-webkit-appearance:menulist;cursor:pointer}
button[disabled]{opacity:.7;cursor:wait}

.alt{margin:0;font-size:14px;color:var(--slate)}.alt a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.card p.alt,.dark .card p.alt{color:#475569}

/* ===== full-hero 3D landscape ===== */
.home-hero{min-height:720px;display:flex;align-items:center;padding-bottom:calc(72px + 40px)}
.home-hero .wrap{grid-template-columns:minmax(0,1fr);width:100%;position:relative;z-index:2}
.home-hero .hero-copy{max-width:680px}
.home-hero::before{z-index:1;background:linear-gradient(90deg,rgba(10,21,38,.94) 0%,rgba(10,21,38,.78) 34%,rgba(10,21,38,.15) 62%,rgba(10,21,38,0) 80%),linear-gradient(0deg,rgba(10,21,38,.55),rgba(10,21,38,0) 30%)}
.home-hero .wave{z-index:0}
@media(max-width:700px){.home-hero{min-height:640px}.home-hero::before{background:linear-gradient(180deg,rgba(10,21,38,.88) 0%,rgba(10,21,38,.7) 55%,rgba(10,21,38,.2) 100%)}}

/* technology strip: no edge fade, scrolls left to right, logo-ready */
.marq{-webkit-mask-image:none;mask-image:none;background:var(--deep)}
.marq-t{animation:marqR 48s linear infinite}
@keyframes marqR{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.marq-t .lg{display:flex;align-items:center;gap:48px}
.marq-t .lg img{height:30px;width:auto;max-width:140px;object-fit:contain;filter:brightness(0) invert(1);opacity:.75}

/* logo tiles in original colors */
.marq-t .lg{gap:48px}
.marq-t .lg img{filter:none;opacity:1;height:30px;max-width:120px}
.marq-t .lg::before{content:none}
.marq-t .lg{background:#fff;border-radius:12px;padding:8px 18px;gap:0}
.marq-t .lg::after{display:none}
.marq-t{align-items:center}
.marq-t .lg img{height:38px;max-width:150px}.marq-t .lg{padding:6px 16px}
