/* Motion and detail layer shared by the portfolio pages. */
.site-header{background:rgba(255,255,255,.96);backdrop-filter:blur(14px);transition:box-shadow .3s ease,background .3s ease}
.site-header.is-scrolled{box-shadow:0 8px 28px rgba(16,40,65,.09)}
.brand{gap:11px;letter-spacing:-.035em}
.brand-icon{display:block;width:44px;height:44px;flex:none;filter:drop-shadow(0 4px 7px rgba(17,48,78,.16));transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.brand:hover .brand-icon{transform:rotate(-7deg) scale(1.07);filter:drop-shadow(0 8px 10px rgba(17,48,78,.2))}
.nav-links a:not(.nav-contact){position:relative}
.nav-links a:not(.nav-contact)::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:2px;background:#3677cf;transition:right .28s ease}
.nav-links a:not(.nav-contact):hover::after,.nav-links a:not(.nav-contact):focus-visible::after{right:0}
.hero{isolation:isolate}
.hero::before{content:"";position:absolute;inset:0 0 0 auto;width:48%;pointer-events:none;opacity:.22;background-image:radial-gradient(#8aaec8 .8px,transparent .8px);background-size:19px 19px;mask-image:linear-gradient(to left,#000,transparent)}
.hero::after{content:"";position:absolute;z-index:-1;width:690px;height:690px;right:-170px;top:-175px;border-radius:50%;background:radial-gradient(circle,#dbeafb 0%,#e6f1fc88 39%,transparent 70%);pointer-events:none;animation:hero-glow 8s ease-in-out infinite alternate}
.hero-copy{animation:hero-rise .8s cubic-bezier(.2,.7,.2,1) both}
.hero-visual{animation:hero-rise .95s .12s cubic-bezier(.2,.7,.2,1) both}
.hero-photo-accent{background:linear-gradient(140deg,#d9ebfa 5%,#c7ddf1 75%,#a8c9e8 100%);box-shadow:18px 20px 45px #5c8db127;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.hero-visual:hover .hero-photo-accent{transform:translate(7px,8px)}
.hero .portrait-frame{transition:transform .55s cubic-bezier(.2,.7,.2,1),box-shadow .55s ease}
.hero .portrait-frame img{transition:transform .75s cubic-bezier(.2,.7,.2,1)}
.hero-visual:hover .portrait-frame{transform:translate(-3px,-5px);box-shadow:0 32px 60px #17385235}
.hero-visual:hover .portrait-frame img{transform:scale(1.035)}
.hero-spark{position:absolute;z-index:2;color:#4b8bd0;line-height:1;pointer-events:none;animation:spark-float 4.8s ease-in-out infinite}
.hero-spark-one{font-size:31px;top:-23px;right:-22px}
.hero-spark-two{font-size:17px;left:-24px;bottom:59px;animation-delay:-2.3s;color:#78afd9}
.hero .button.primary{position:relative;overflow:hidden;transition:transform .25s ease,background .25s ease,box-shadow .25s ease}
.hero .button.primary:hover{transform:translateY(-3px);box-shadow:0 13px 22px #17385228}
.hero .button.primary span{display:inline-block;transition:transform .25s ease}
.hero .button.primary:hover span{transform:translate(3px,-3px)}
.hero-recruiter-link span{display:inline-block;transition:transform .25s ease}
.hero-recruiter-link:hover span{transform:translateX(4px)}
.hero-proof strong{transition:color .3s ease,transform .3s ease;display:inline-block}
.hero-proof>div:hover strong{color:#347fd5;transform:translateY(-2px)}
.case-card{transition:transform .32s cubic-bezier(.2,.7,.2,1),box-shadow .32s ease,border-color .32s ease}
.case-card:hover{border-color:#bbd5ee;box-shadow:0 22px 43px #183a591b}
.case-card .case-art{overflow:hidden}
.case-card .case-art::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#ffffff72 50%,transparent 70%);transform:translateX(-140%);transition:transform .75s ease;pointer-events:none}
.case-card:hover .case-art::after{transform:translateX(140%)}
.method-grid>div{transition:background .25s ease,box-shadow .25s ease}
.method-grid>div:hover{background:#f1f7ff;box-shadow:inset 3px 0 #5a9be6}
.artifact-card{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.artifact-card:hover{box-shadow:0 12px 25px #17385210}
.cert-grid>div{transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.cert-grid>div:hover{transform:translateY(-5px);border-color:#b7d2eb;box-shadow:0 14px 27px #183a5912}
@keyframes hero-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@keyframes hero-glow{from{transform:translate(0,0) scale(1)}to{transform:translate(-30px,28px) scale(1.08)}}
@keyframes spark-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-9px) rotate(12deg)}}
@media(max-width:700px){.brand-icon{width:37px;height:37px}.hero::before{width:70%;opacity:.12}.hero::after{width:500px;height:500px;right:-230px;top:250px}.hero-spark-one{right:-10px}.hero-spark-two{left:-12px}.nav-links a:not(.nav-contact)::after{display:none}}
@media(prefers-reduced-motion:reduce){.hero-copy,.hero-visual,.hero::after,.hero-spark{animation:none!important}.hero .portrait-frame,.hero .portrait-frame img,.hero-photo-accent,.brand-icon,.case-card,.artifact-card,.cert-grid>div,.method-grid>div{transition:none!important}}

/* A calmer type scale and a tighter, consistent vertical rhythm. */
h2{font-size:clamp(2rem,3.1vw,2.85rem);line-height:1.17;letter-spacing:-.045em}
.section{padding:76px 0}
.section-top{align-items:center;gap:50px;margin-bottom:31px}
.section-top h2{max-width:620px;margin-top:10px}
.section-top>p{font-size:.94rem;line-height:1.65;max-width:345px}
.kicker{font-size:.67rem;letter-spacing:.16em}
.hero-grid{min-height:570px;padding-top:48px;padding-bottom:46px}
.hero h1{font-size:clamp(3.1rem,4.4vw,4.15rem);line-height:1.12;margin:23px 0 17px;letter-spacing:-.065em}
.hero-lead{font-size:1.02rem;line-height:1.65;max-width:500px}
.hero .hero-actions{margin-top:26px}
.hero-proof{margin-top:38px;padding-top:18px}
.hero .portrait-frame img{height:430px}
.hero-visual{width:min(100%,405px)}
.trust-inner{padding:16px 0}
.recruiter-panel{min-height:305px;padding:34px 40px}
.recruiter-panel h3{font-size:clamp(1.55rem,2.4vw,2.1rem);margin:10px 0 12px}
.recruiter-panel p{font-size:.96rem;line-height:1.65}
.panel-list{margin:19px 0}
.panel-actions{margin-top:22px}
.recruiter-step{padding:13px 17px}
.case-art{height:150px}
.case-top{padding:14px 17px}
.case-body{padding:22px}
.case-body h3{font-size:1.3rem;margin:9px 0}
.case-body p{font-size:.86rem;line-height:1.6}
.case-tags{margin-bottom:18px}
.lab-heading{padding:23px 31px}
.lab-heading h3{font-size:1.45rem}
.lab-form{padding:27px}
.lab-result{min-height:270px;padding:27px 32px}
.lab-foot{padding:17px 30px}
.method-grid>div{padding:20px 22px}
.method-grid h3{font-size:1.15rem;margin:12px 0 7px}
.method-grid p{font-size:.82rem}
.method-callout{padding:22px 30px;margin-top:18px}
.artifact-card{padding:14px 16px}
.experience-grid{gap:60px}
.timeline article{padding-bottom:31px}
.cert-grid>div{padding:17px 8px}
.about p{font-size:.95rem;line-height:1.7}
.contact{padding:70px 0}
.contact h2{font-size:clamp(2.2rem,3.5vw,3.4rem)}
.case-hero{padding:75px 0 60px}
.case-hero h1{font-size:clamp(2.7rem,4.2vw,4rem)}
.study{padding:75px 0}
.study-header h2{font-size:clamp(2rem,3.4vw,3.2rem)}
@media(max-width:1000px){.hero h1{font-size:clamp(2.75rem,4.6vw,3.75rem)}.hero .portrait-frame img{height:395px}.hero-grid{min-height:535px}.section{padding:67px 0}}
@media(max-width:700px){h2{font-size:clamp(1.85rem,7vw,2.45rem)}.section{padding:54px 0}.section-top{margin-bottom:24px}.section-top h2{margin-top:8px}.section-top>p{font-size:.9rem;margin-top:11px}.hero-grid{min-height:0;padding-top:41px;padding-bottom:39px;gap:27px}.hero h1{font-size:clamp(2.15rem,8.2vw,3.1rem);margin:21px 0 14px;line-height:1.12}.hero-lead{font-size:.96rem;line-height:1.6}.hero .hero-actions{margin-top:21px}.hero-proof{margin-top:27px;padding-top:15px}.hero-visual{width:min(78%,305px)}.hero .portrait-frame img{height:auto;aspect-ratio:4/4.5}.trust-inner{padding:12px 0}.recruiter-panel{min-height:285px;padding:24px}.recruiter-panel h3{font-size:1.55rem}.recruiter-step{padding:11px}.case-art{height:140px}.case-body{padding:20px}.lab-form{padding:23px}.lab-result{padding:24px;min-height:245px}.lab-heading{padding:22px 24px}.method-grid>div{padding:17px}.artifact-card{padding:13px}.contact{padding:56px 0}.study{padding:57px 0}.case-hero{padding:58px 0 48px}}

.automation-gallery{margin-top:30px}
.automation-intro{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:19px}
.automation-intro h3{font-size:1.35rem;margin:8px 0 0}
.automation-intro p{font-size:.82rem;max-width:390px;margin:0}
.automation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.automation-card{background:#fff;border:1px solid #dce6eb;border-radius:12px;overflow:hidden;box-shadow:0 12px 30px #17364a0a;transition:transform .25s ease,box-shadow .25s ease}
.automation-card:hover{transform:translateY(-3px);box-shadow:0 19px 36px #17364a14}
.automation-card-head{padding:22px 25px 16px;border-bottom:1px solid #e3eaf0}
.automation-card-head>span{font-size:.65rem;letter-spacing:.13em;font-weight:800;color:#3373ba}
.automation-card-head h4{font-size:1.17rem;margin:8px 0 5px}
.automation-card-head p{font-size:.81rem;margin:0}
.automation-card form{padding:19px 25px 18px;display:grid;grid-template-columns:1fr 1fr auto;gap:13px;align-items:end}
.automation-card label{display:grid;gap:6px;font-size:.72rem;font-weight:800;color:#425263}
.automation-card select{width:100%;height:40px;border:1px solid #cbd6dd;border-radius:6px;background:#fff;padding:0 9px;color:var(--ink);font-size:.79rem}
.automation-card button{min-height:40px;border:0;border-radius:6px;background:#17334f;color:#fff;padding:0 13px;font-size:.74rem;font-weight:800;white-space:nowrap}
.automation-card button:hover{background:#2e72c9}
.automation-output{min-height:99px;margin:0 25px 18px;padding:15px;background:#f1f7fb;border:1px solid #dce9f1;border-radius:7px;color:#536b7a;font-size:.79rem;display:grid;gap:4px;align-content:center}
.automation-output strong{color:#1a405e;font-size:.86rem}
.automation-output span{display:block}
.automation-rule{border-top:1px solid #e3eaf0;background:#f9fbfc;padding:12px 25px;font-size:.72rem;color:#607586}
.automation-rule b{color:#2b658d;margin-right:7px}
@media(max-width:1100px){.automation-card form{grid-template-columns:1fr 1fr}.automation-card button{grid-column:1/-1}}
@media(max-width:700px){.automation-gallery{margin-top:24px}.automation-intro{display:block}.automation-intro p{margin-top:7px}.automation-grid{grid-template-columns:1fr;gap:13px}.automation-card-head{padding:20px}.automation-card form{padding:17px 20px}.automation-output{margin:0 20px 16px}.automation-rule{padding:11px 20px}}
@media(max-width:400px){.automation-card form{grid-template-columns:1fr}.automation-card button{grid-column:auto}}

.hero-recruiter-link .mobile-cta-label{display:none}
@media(max-width:520px){
  .hero-recruiter-link .desktop-cta-label{display:none}
  .hero-recruiter-link .mobile-cta-label{display:inline}
  .hero-grid{display:grid;grid-template-columns:minmax(0,1fr) clamp(108px,34vw,150px);grid-template-areas:"kicker kicker" "title portrait" "lead lead" "actions actions" "proof proof";column-gap:14px;row-gap:13px;align-items:center;min-height:0;padding-top:31px;padding-bottom:30px}
  .hero-copy{display:contents}
  .hero-kicker{grid-area:kicker;margin:0 0 3px;font-size:.57rem;letter-spacing:.13em}
  .hero h1{grid-area:title;font-size:clamp(1.73rem,7.5vw,2.25rem);line-height:1.1;letter-spacing:-.06em;margin:0}
  .hero-visual{grid-area:portrait;width:100%;justify-self:end;padding:0 7px 9px 0}
  .hero .portrait-frame{border-width:5px;border-radius:9px}
  .hero .portrait-frame img{height:auto;aspect-ratio:3/4;object-position:center 14%}
  .hero-photo-accent{left:13px;top:13px;right:0;border-radius:9px}
  .hero-spark-one{font-size:17px;top:-10px;right:-4px}
  .hero-spark-two{font-size:11px;left:-9px;bottom:23px}
  .portrait-location{display:none}
  .hero-lead{grid-area:lead;max-width:none;margin:0;font-size:.93rem;line-height:1.56}
  .hero .hero-actions{grid-area:actions;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:9px;margin:2px 0 0}
  .hero .button.primary{min-height:42px;padding:9px 12px;font-size:.76rem;gap:7px}
  .hero-recruiter-link{font-size:.73rem;padding:8px 0;white-space:nowrap}
  .hero-recruiter-link span[aria-hidden]{margin-left:3px}
  .hero-proof{grid-area:proof;max-width:none;margin:3px 0 0;padding-top:14px;gap:8px}
  .hero-proof strong{font-size:1.35rem}
  .hero-proof span{font-size:.61rem}
}
@media(max-width:350px){.hero-grid{grid-template-columns:minmax(0,1fr) 102px;column-gap:10px}.hero h1{font-size:1.7rem}.hero .hero-actions{gap:7px}.hero .button.primary{font-size:.72rem}.hero-recruiter-link{font-size:.7rem}}
