:root{--ink:#07080B;--g1:#111319;--g2:#1A1D24;--line:rgba(245,243,239,.09);--warm:#F5F3EF;--mut:rgba(245,243,239,.68);--acc:#F36C40}
body{background:var(--ink);color:var(--warm);font-family:Inter,system-ui,sans-serif}
h1,h2,h3,.btn,.eyebrow,.num,.svc-n,.step-n{font-family:'Space Grotesk',Inter,sans-serif}
.site-header.compact,.site-header.open{background:rgba(7,8,11,.72);backdrop-filter:blur(14px) saturate(1.4);border-bottom-color:var(--line)}
.btn-ghost{border-color:rgba(245,243,239,.28);color:var(--warm);background:rgba(245,243,239,.03);backdrop-filter:blur(6px)}
.btn-ghost:hover{border-color:var(--warm)}
.btn-primary{box-shadow:0 0 0 0 rgba(243,108,64,.0)}
.btn-primary:hover{box-shadow:0 10px 40px -8px rgba(243,108,64,.65)}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--acc)}
.h2{font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.04;letter-spacing:-.02em;font-weight:600;margin-top:1rem;max-width:18ch}
.intro{margin-top:1.25rem;max-width:42rem;color:var(--mut);font-size:1.1rem}
.sec{padding:clamp(5rem,10vw,9rem) 0;position:relative}
/* hero */
.hero{position:relative;min-height:clamp(640px,100svh,980px);max-height:1100px;display:flex;align-items:center;overflow:hidden;isolation:isolate}
.hero-gl{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero-fallback{position:absolute;inset:0;z-index:-3;background:radial-gradient(60% 60% at 70% 40%,rgba(243,108,64,.22),transparent 60%),var(--ink)}
.hero-vignette{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,8,11,.92) 0%,rgba(7,8,11,.55) 45%,rgba(7,8,11,0) 75%),linear-gradient(0deg,var(--ink) 0%,transparent 30%)}
.hero-in{padding-top:7rem;padding-bottom:6rem}
.hero-title{font-size:clamp(2.7rem,7vw,6rem);line-height:.98;letter-spacing:-.035em;font-weight:600;max-width:13ch;margin:1.5rem 0}
.hero-title .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em}
.hero-title .w>span{display:inline-block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.16,1,.3,1)}
.hero-title.go .w>span{transform:none}
.lead{max-width:36rem;color:var(--mut);font-size:1.15rem;margin-bottom:2.5rem}
.scroll-cue{position:absolute;bottom:2rem;left:50%;width:1px;height:56px;background:var(--line);overflow:hidden}
.scroll-cue span{position:absolute;inset:0;background:var(--acc);animation:cue 2.2s cubic-bezier(.6,0,.2,1) infinite}
@keyframes cue{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}
/* spotlight cards */
.spot{position:relative;background:linear-gradient(180deg,var(--g1),rgba(17,19,25,.6));border:1px solid var(--line);border-radius:14px;overflow:hidden}
.spot::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(243,108,64,.16),transparent 45%)}
.spot::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;padding:1px;opacity:0;transition:opacity .4s;background:radial-gradient(300px circle at var(--mx,50%) var(--my,50%),rgba(243,108,64,.8),transparent 50%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.spot:hover::before,.spot:hover::after{opacity:1}
/* strip */
.strip{border-block:1px solid var(--line);background:linear-gradient(180deg,#0B0C10,var(--ink))}
.strip-in{display:grid;gap:2rem;padding-block:3rem;align-items:center}
@media(min-width:1024px){.strip-in{grid-template-columns:20rem 1fr}}
.strip h2{font-family:'Space Grotesk';font-size:1.3rem;font-weight:600}.strip p{color:var(--mut);font-size:.92rem;margin-top:.4rem}
.logos{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}
@media(min-width:640px){.logos{grid-template-columns:repeat(5,1fr)}}
.logo-tile{height:92px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:rgba(245,243,239,.02);transition:background .35s,border-color .35s,transform .35s}
.logo-tile img{filter:brightness(0) invert(1);opacity:.62}
.logo-tile:hover{background:#F5F3EF;border-color:#F5F3EF;transform:translateY(-3px)}
.logo-tile:hover img{filter:none;opacity:1}
.logo-tile[data-logo=semc]:hover img{filter:brightness(0)}
@media(max-width:639px){.logo-tile:last-child{grid-column:1/-1}}
/* disciplines */
.disc-grid{margin-top:3.5rem;display:grid;gap:1rem}
@media(min-width:700px){.disc-grid{grid-template-columns:1fr 1fr}}@media(min-width:1100px){.disc-grid{grid-template-columns:repeat(3,1fr)}}
.disc{padding:2rem}
.disc-top{display:flex;align-items:center;gap:.75rem}
.node{width:10px;height:10px;transform:rotate(45deg);border:1.5px solid var(--acc);box-shadow:0 0 14px rgba(243,108,64,.6)}
.disc-line{flex:1;height:1px;background:linear-gradient(90deg,rgba(243,108,64,.6),transparent)}
.num{font-size:.75rem;color:var(--mut)}
.disc h3{font-size:1.35rem;margin-top:1.5rem;font-weight:600}.disc>p{color:var(--mut);margin-top:.6rem}
.roles{margin-top:1.1rem;display:grid;gap:.35rem;font-size:.9rem;color:rgba(245,243,239,.78)}
.roles li{display:flex;gap:.6rem}.roles li::before{content:"";flex:none;width:6px;height:1px;margin-top:.75em;background:var(--acc)}
/* services */
.services{background:radial-gradient(70% 50% at 100% 0%,rgba(243,108,64,.08),transparent 60%),#0B0C10;border-top:1px solid var(--line)}
.svc-track{margin-top:3.5rem;display:grid;gap:1rem;counter-reset:s}
@media(min-width:800px){.svc-track{grid-template-columns:1fr 1fr}}
.svc-track-wrap{max-width:78rem;margin:0 auto;padding:0 1.25rem}@media(min-width:640px){.svc-track-wrap{padding:0 2rem}}
.svc{padding:2.25rem;min-height:15rem}
.svc-n{font-size:3.5rem;font-weight:600;line-height:1;background:linear-gradient(180deg,var(--acc),rgba(243,108,64,.15));-webkit-background-clip:text;background-clip:text;color:transparent}
.svc h3{font-size:1.55rem;margin-top:1.25rem;font-weight:600}.svc p{color:var(--mut);margin-top:.7rem}
.svc-foot{margin-top:3rem;display:grid;gap:2rem;border-top:1px solid var(--line);padding-top:2.5rem}
@media(min-width:900px){.svc-foot{grid-template-columns:1fr 1fr}}
.flex{color:var(--mut)}.close{font-family:'Space Grotesk';font-size:1.7rem;font-weight:600;line-height:1.2}.close span{color:var(--acc)}
/* how */
.steps{position:relative;margin-top:3.5rem;display:grid;gap:2.5rem}
@media(min-width:900px){.steps{grid-template-columns:repeat(3,1fr);gap:3rem}}
.steps-line{position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--line)}
.steps-line span{position:absolute;inset:0;background:linear-gradient(var(--acc),transparent);transform-origin:top;transform:scaleY(var(--p,0))}
@media(min-width:900px){.steps-line{left:0;right:0;top:7px;bottom:auto;height:1px;width:auto}.steps-line span{background:linear-gradient(90deg,var(--acc),rgba(243,108,64,.2));transform-origin:left;transform:scaleX(var(--p,0))}}
.step{position:relative;padding-left:2.5rem}@media(min-width:900px){.step{padding:3rem 0 0}}
.step-dot{position:absolute;left:0;top:2px;width:15px;height:15px;transform:rotate(45deg);border:1.5px solid var(--acc);background:var(--ink);box-shadow:0 0 18px rgba(243,108,64,.5)}
@media(min-width:900px){.step-dot{top:0}}
.step-n{color:var(--acc);font-weight:600;font-size:.85rem}.step h3{font-size:1.6rem;margin-top:.3rem}.step p{color:var(--mut);margin-top:.6rem}
/* experience */
.experience{background:#0B0C10;border-top:1px solid var(--line)}
.xp-grid{margin-top:3.5rem;display:grid;gap:1rem}
@media(min-width:960px){.xp-grid{grid-template-columns:1.25fr 1fr}.xp-riot{grid-row:span 2}}
.xp{padding:2.25rem}.xp h3{font-size:1.8rem;margin-top:1rem}.xp>p{color:var(--mut);margin-top:.6rem}
.xp-logo{height:30px;width:auto;filter:brightness(0) invert(1);opacity:.85;transition:filter .4s}.xp:hover .xp-logo{filter:none}.xp:hover .xp-logo[data-logo=semc]{filter:none}
.xp-loc{margin-top:1.75rem}.xp-loc>p:not(.eyebrow){color:rgba(245,243,239,.8);margin-top:.4rem}
.roles.cols{grid-template-columns:1fr 1fr}
.broader{margin-top:2rem;color:var(--mut)}.broader strong{color:var(--warm);font-family:'Space Grotesk'}
/* team */
.team-grid{margin-top:3.5rem;display:grid;gap:1rem}@media(min-width:860px){.team-grid{grid-template-columns:repeat(3,1fr)}}
.member{padding:1.5rem;display:flex;flex-direction:column;transition:transform .3s}
.photo{aspect-ratio:4/3;border-radius:10px;display:grid;place-items:center;background:radial-gradient(circle at 30% 20%,rgba(243,108,64,.25),transparent 55%),linear-gradient(135deg,#1A1D24,#0B0C10);border:1px solid var(--line)}
.photo span{font-family:'Space Grotesk';font-size:3.5rem;font-weight:600;letter-spacing:-.03em}
.member h3{margin-top:1.4rem;font-size:1.3rem}.role{color:var(--acc);font-size:.88rem;font-weight:600;margin-top:.2rem}.bio{color:var(--mut);margin-top:.9rem;flex:1}
.li{margin-top:1.25rem;font-weight:600;font-size:.9rem;text-underline-offset:4px}
/* contact */
.contact{background:radial-gradient(60% 70% at 0% 100%,rgba(243,108,64,.14),transparent 60%),#0B0C10;border-top:1px solid var(--line)}
.contact-in{display:grid;gap:3rem}@media(min-width:960px){.contact-in{grid-template-columns:1fr 1.2fr;align-items:start}}
.form{padding:2rem}
.f input,.f textarea{border-color:rgba(245,243,239,.16);background:rgba(7,8,11,.6)}
.f input:focus,.f textarea:focus{border-color:var(--acc);outline:none;box-shadow:0 0 0 3px rgba(243,108,64,.25)}
.f label span{color:var(--acc)}.note{color:var(--mut)}.note a,.mail{color:var(--warm)}
.status{font-size:.9rem;color:#FFB59C}
/* footer */
.site-footer{border-top:1px solid var(--line);padding-top:3.5rem}
.foot{display:grid;gap:2.5rem}@media(min-width:800px){.foot{grid-template-columns:1.5fr 1fr}.foot nav ul{text-align:right}}
.foot-logo{height:3rem;width:auto}.foot p{color:var(--mut);margin-top:1.25rem;max-width:28rem;font-size:.92rem}
.aan{display:inline-flex;align-items:center;gap:.75rem;margin-top:1.25rem;font-size:.85rem;color:var(--mut);text-decoration:none}.aan img{height:22px;width:auto}
.foot nav li{margin-bottom:.6rem}.foot nav a{text-decoration:none;color:rgba(245,243,239,.8)}.foot nav a:hover{color:var(--warm)}
.copy{padding-block:1.5rem;margin-top:2.5rem;border-top:1px solid var(--line);font-size:.78rem;color:rgba(245,243,239,.55)}
.why{border-top:1px solid var(--line)}.why-mark{background:radial-gradient(circle at 50% 60%,rgba(243,108,64,.22),transparent 65%),var(--g1);border:1px solid var(--line)}.traits h3{color:var(--warm)}.traits li{border-left:1px solid var(--acc);padding-left:1rem}
