/* Shared motion layer for all pages */
.fx-progress{position:fixed;top:0;left:0;height:2px;width:100%;background:#b5e32a;transform-origin:0 50%;transform:scaleX(0);z-index:1100;pointer-events:none}
.fx-line{display:block;overflow:hidden}
.fx-line>span{display:inline-block;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.fx-js:not(.fx-ready) .fx-line>span{transform:translateY(105%)}
.fx-spot{position:relative;isolation:isolate}
.fx-mag{transition:transform .25s cubic-bezier(.2,.8,.2,1)!important;will-change:transform}
.fx-js .section-tag::before,.fx-js .page-tag::before,.fx-js .hero-tag::before{transform:scaleX(0);transform-origin:0 50%;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.fx-js .fx-tag-in::before{transform:scaleX(1)}
.fx-par{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
body.fx-leave{opacity:0;transition:opacity .25s ease}
@media (hover:none),(pointer:coarse){.cursor{display:none!important}}
@media (prefers-reduced-motion:reduce){.fx-line>span{transform:none!important;transition:none}.fx-progress{display:none}.fx-mag,.fx-par{transition:none!important}body.fx-leave{opacity:1;transition:none}.marquee-track{animation:none!important}}
/* ===== Mobile layer ===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{overflow-x:clip}
a,button{-webkit-tap-highlight-color:rgba(181,227,42,.15)}
@media (max-width:900px){
  nav{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}
  .nav-toggle{width:44px;height:44px;align-items:center;justify-content:center;padding:0;margin-right:-10px}
  .nav-toggle span{transition:transform .3s,opacity .2s}
  .nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-toggle.open span:nth-child(2){opacity:0}
  .nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav-links{top:var(--fx-nav-h,60px)!important;max-height:0;overflow-y:auto}
  .nav-links.open{max-height:calc(100vh - var(--fx-nav-h,60px))!important}
  .nav-links li a{min-height:48px;display:flex!important;align-items:center;justify-content:center}
  footer{padding-bottom:max(24px,env(safe-area-inset-bottom))!important}
  footer a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px}
  .btn-primary,.btn-outline{min-height:48px;display:inline-flex!important;align-items:center;justify-content:center}
  .cs-showmore-btn{min-height:44px;width:100%}
  .hero-stat-label{font-size:10px!important}
  p,li{text-wrap:pretty}
  h1,h2{text-wrap:balance}
}
@media (max-width:420px){
  .hero-title,.page-hero-title{font-size:clamp(40px,12.5vw,56px)!important}
  .hero-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hero-stat{padding-left:10px!important;padding-right:10px!important}
}
body.fx-menu-open{overflow:hidden}

/* Hero artwork stops at the stats bar */
.hero-stats,.hero-availability{background:#080808!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;z-index:2}
@media (max-width:900px){.page-hero-right{min-height:340px!important}}

/* Analytics consent banner */
.fx-consent{position:fixed;left:16px;right:16px;bottom:16px;max-width:520px;z-index:1200;background:#141414;border:1px solid rgba(255,255,255,.12);padding:16px 18px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-family:'DM Sans',sans-serif}
.fx-consent p{font-size:12px;line-height:1.6;color:rgba(232,228,220,.7);flex:1 1 220px;margin:0}
.fx-consent div{display:flex;gap:8px}
.fx-consent button{font:500 11px 'DM Sans',sans-serif;letter-spacing:1.5px;text-transform:uppercase;padding:10px 16px;min-height:40px;cursor:pointer;border:1px solid rgba(255,255,255,.12);background:transparent;color:#e8e4dc}
.fx-consent button[data-v=granted]{background:#b5e32a;color:#080808;border-color:#b5e32a}

/* Cursor dot stays hidden until the mouse first moves (no dot parked in the corner) */
.cursor{opacity:0;transition:transform .1s,opacity .2s}
html.fx-cursor-on .cursor{opacity:1}

/* ===== PREMIUM POLISH: one spacing and type scale across the whole site ===== */
@media (min-width: 901px) {
  .journey, .values, .skills, .testimonials, .faq, .builds, .process, .timeline-section, .education, .case-studies, .sp-section { padding-top: 72px; padding-bottom: 72px; }
  .home-cta, .about-cta, .exp-cta, .svc-cta, .portfolio-cta, .side-project, .explore, .sp-cta { padding-top: 64px; padding-bottom: 64px; }
  h2.section-title, .skills-left h2, h2.contact-h2, .builds .section-title { font-size: 56px; }
  .home-cta h2, .about-cta h2, .exp-cta h2, .svc-cta h2, .portfolio-cta h2 { font-size: 52px; }
  .explore-title { font-size: 44px; }
}
@media (max-width: 900px) {
  h2.section-title, .skills-left h2, h2.contact-h2, .builds .section-title { font-size: 42px; }
  .home-cta h2, .about-cta h2, .exp-cta h2, .svc-cta h2, .portfolio-cta h2 { font-size: 40px; }
}
@media (max-width: 520px) {
  h2.section-title, .skills-left h2, h2.contact-h2, .builds .section-title { font-size: 36px; }
  .home-cta h2, .about-cta h2, .exp-cta h2, .svc-cta h2, .portfolio-cta h2 { font-size: 34px; }
}

/* Expertise lists: readable by default, brighter on hover */
.svc-list li { color: rgba(232,228,220,0.66); }
.svc-list li strong { color: rgba(232,228,220,0.92); }

/* Home FAQ: heading on the left, questions on the right */
.faq-aside { font-size: 14px; color: var(--text2); line-height: 1.8; font-weight: 300; margin-top: 4px; max-width: 340px; }
@media (min-width: 901px) {
  .faq { display: grid; grid-template-columns: minmax(280px, 0.7fr) 1.3fr; column-gap: 96px; align-items: start; }
  .faq > .section-tag, .faq > .section-title, .faq > .faq-aside { grid-column: 1; }
  .faq > .section-title { margin-bottom: 18px; }
  .faq > .faq-list { grid-column: 2; grid-row: 1 / span 4; max-width: none; margin-top: 0; }
}

/* Contact: intro on the left, the three contact rows on the right */
@media (min-width: 901px) {
  .contact-info { max-width: none; margin: 0; padding: 72px 60px; display: grid; grid-template-columns: minmax(300px, 0.75fr) 1.25fr; column-gap: 96px; align-items: start; }
  .contact-info > .section-tag, .contact-info > .contact-h2, .contact-info > .contact-intro { grid-column: 1; }
  .contact-info > .contact-rows { grid-column: 2; grid-row: 1 / span 3; margin-top: 0; }
  .contact-intro { margin-bottom: 0; }
}

/* Sitemap: full-width rows with a hover state */
.sm-wrap { max-width: none; padding-bottom: 72px; }
.sm-list li { padding: 22px 18px; transition: background 0.2s ease, padding-left 0.25s ease; }
.sm-list li:hover { background: rgba(181,227,42,0.05); padding-left: 26px; }
@media (max-width: 900px) { .sm-wrap { padding-bottom: 64px; } .sm-list li { padding: 18px 4px; } .sm-list li:hover { padding-left: 4px; } }
/* ===== Silkpath sample-report card (Home) and hero button row (Portfolio) ===== */
.sk-btns { margin-top: 28px; }
.pf-hero-btns { margin-top: 28px; display: flex; gap: 14px; flex-wrap: wrap; }
.pf-hero-btns .btn-primary, .pf-hero-btns .btn-outline { padding: 14px 30px; font-size: 11px; letter-spacing: 2px; }
.side-project { grid-template-columns: minmax(0, 1fr) minmax(320px, 440px); gap: 72px; }
.sk-win { display: block; text-decoration: none; background: var(--bg3); border: 1px solid var(--border2); box-shadow: 0 30px 70px rgba(0,0,0,.45); transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .25s; }
.sk-win:hover, .sk-win:focus-visible { transform: translateY(-6px); border-color: rgba(181,227,42,.45); }
.sk-bar { display: flex; align-items: center; gap: 6px; padding: 12px 16px; border-bottom: 1px solid var(--border); font-size: 11px; color: var(--text3); letter-spacing: .5px; }
.sk-bar i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,.14); display: inline-block; }
.sk-bar > span { margin-left: 10px; }
.sk-body { display: grid; gap: 14px; padding: 22px 22px 20px; }
.sk-top { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.sk-top > span { display: block; }
.sk-top b { display: block; font-family: 'Bebas Neue', sans-serif; font-size: 46px; line-height: 1; color: var(--accent); font-weight: 400; }
.sk-top small { display: block; font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--text3); margin-top: 4px; }
.sk-row { display: grid; grid-template-columns: 78px 1fr 44px; align-items: center; gap: 12px; font-size: 12px; color: var(--text2); }
.sk-row b { font-weight: 500; color: var(--text); text-align: right; font-size: 12px; }
.sk-track { display: block; height: 6px; background: rgba(255,255,255,.06); border-radius: 3px; overflow: hidden; }
.sk-fill { display: block; height: 100%; width: var(--w); border-radius: 3px; transform-origin: 0 50%; }
.sk-e { background: #ff6b6b; } .sk-w { background: #f5a524; } .sk-n { background: #7aa7ff; } .sk-a { background: var(--accent); }
.sk-go { display: block; margin-top: 4px; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--accent); }
.sk-go span { display: inline-block; transition: transform .25s; } .sk-win:hover .sk-go span { transform: translateX(5px); }
.sk-js .sk-fill { transform: scaleX(0); }
.sk-js .sk-win.sk-in .sk-fill { transform: scaleX(1); transition: transform 1.3s cubic-bezier(.2,.8,.2,1); }
.sk-js .sk-win.sk-in .sk-row:nth-of-type(3) .sk-fill { transition-delay: .1s; } .sk-js .sk-win.sk-in .sk-row:nth-of-type(4) .sk-fill { transition-delay: .2s; } .sk-js .sk-win.sk-in .sk-row:nth-of-type(5) .sk-fill { transition-delay: .3s; }
@media (max-width: 900px) { .side-project { grid-template-columns: 1fr; gap: 36px; } }
@media (prefers-reduced-motion: reduce) { .sk-js .sk-fill { transform: none !important; transition: none !important; } .sk-win { transition: none; } }

/* ===== Each page gets its own card personality ===== */
.rm-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
.rm-chip { font-size: 11px; letter-spacing: .4px; color: var(--text); padding: 7px 11px; border: 1px solid rgba(181,227,42,.28); background: rgba(181,227,42,.06); }

/* HOME: wide service cards, two across on desktop and one across on phones */
.services-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 40px 60px 72px; background: transparent; border: 0; }
.svc-card { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 26px; align-content: start; padding: 34px 32px 32px; background: var(--bg3) !important; border: 1px solid var(--border) !important; transition: border-color .3s, background .3s; }
.svc-card:hover { background: var(--surface) !important; border-color: rgba(181,227,42,.4) !important; }
.svc-card .svc-icon { grid-row: 1 / span 3; margin: 2px 0 0; }
.svc-card .svc-name, .svc-card .svc-desc, .svc-card .rm-chips { grid-column: 2; }
.svc-card .svc-name { font-size: 19px; margin-bottom: 10px; }
.svc-card .svc-num { position: absolute; top: 12px; right: 22px; font-size: 64px; color: rgba(255,255,255,.05); transition: color .3s; }
.svc-card:hover .svc-num { color: rgba(181,227,42,.45); }
.svc-card .svc-accent-bar { height: 3px; }
@media (max-width: 900px) { .services-grid { padding: 32px 24px 64px; } .svc-card { padding: 28px 24px; column-gap: 20px; } }
@media (max-width: 640px) { .services-grid { grid-template-columns: 1fr; padding: 24px 20px 56px; } .svc-card { grid-template-columns: 1fr; } .svc-card .svc-icon { grid-row: auto; margin-bottom: 14px; } .svc-card .svc-name, .svc-card .svc-desc, .svc-card .rm-chips { grid-column: 1; } }
/* ABOUT: editorial numbered rows instead of boxes */
.values-grid { display: block; margin-top: 40px; border-top: 1px solid var(--border2); background: transparent; }
.value-card { display: grid; grid-template-columns: 140px minmax(0, .9fr) minmax(0, 1.3fr); align-items: center; column-gap: 40px; padding: 34px 8px; border: 0 !important; border-bottom: 1px solid var(--border) !important; background: transparent !important; position: relative; overflow: hidden; transition: padding-left .35s cubic-bezier(.2,.8,.2,1), background .35s; }
.value-card:hover { padding-left: 28px; background: linear-gradient(90deg, rgba(181,227,42,.07), transparent 70%) !important; }
.value-card .rm-ico, .value-card .value-bar { display: none; }
.value-card .value-num { position: static; font-size: 84px; line-height: .85; color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.22); transition: -webkit-text-stroke-color .3s, color .3s; }
.value-card:hover .value-num { -webkit-text-stroke-color: var(--accent); color: rgba(181,227,42,.12); }
.value-card .value-name { margin: 0; font-family: 'Bebas Neue', sans-serif; font-size: 34px; font-weight: 400; letter-spacing: 1px; transition: color .3s; }
.value-card:hover .value-name { color: var(--accent); }
.value-card .value-desc { font-size: 14px; max-width: 520px; }
@media (max-width: 900px) { .value-card { grid-template-columns: 76px 1fr; row-gap: 8px; column-gap: 20px; padding: 26px 0; } .value-card .value-num { font-size: 56px; grid-row: span 2; } .value-card .value-name { font-size: 28px; } .value-card .value-desc { grid-column: 2; } .value-card:hover { padding-left: 10px; } }

/* EXPERTISE: service blocks stack over each other as you scroll */
.svc-blocks { padding: 48px 60px 56px; background: var(--bg); }
.svc-block { grid-template-columns: .95fr 1.05fr; position: sticky; top: 96px; margin-bottom: 40px; background: var(--bg3); border: 1px solid var(--border2); box-shadow: 0 -24px 50px rgba(0,0,0,.45); }
.svc-block:nth-child(2) { top: 116px; } .svc-block:nth-child(3) { top: 136px; } .svc-block:nth-child(4) { top: 156px; }
.svc-block:nth-child(even) .svc-block-info { order: 0; border-left: 0; border-right: 1px solid var(--border); }
.svc-block:nth-child(even) .svc-block-detail { order: 0; }
.svc-block-info { padding: 52px 48px; border-right: 1px solid var(--border); }
.svc-block-detail { padding: 52px 48px; background: transparent; }
.svc-block-num { top: auto; bottom: 14px; right: 24px; font-size: 130px; }
.svc-list li { color: rgba(232,228,220,.78); }
.svc-list li strong { color: #e8e4dc; }
.process-grid { gap: 0; background: transparent; border-top: 1px solid var(--border2); margin-top: 56px; }
.process-step { background: transparent; padding: 38px 30px 8px 0; position: relative; }
.process-step:hover { background: transparent; }
.process-step::before { content: ''; position: absolute; top: -6px; left: 0; width: 11px; height: 11px; background: var(--accent); border-radius: 50%; box-shadow: 0 0 0 5px rgba(181,227,42,.14); transition: transform .3s, box-shadow .3s; }
.process-step:hover::before { transform: scale(1.35); box-shadow: 0 0 0 8px rgba(181,227,42,.18); }
@media (max-width: 900px) {
  .svc-blocks { padding: 32px 20px 64px; }
  .svc-block { position: static; grid-template-columns: 1fr; margin-bottom: 20px; box-shadow: none; }
  .svc-block-info, .svc-block-detail { padding: 36px 22px; border-right: 0 !important; }
  .process-grid { border-top: 0; border-left: 1px solid var(--border2); margin-left: 6px; }
  .process-step { padding: 0 0 34px 28px; } .process-step::before { top: 4px; left: -6px; }
}

/* EXPERIENCE: internship cards as pass-style tiles with a lime spine */
.mgmt-grid { gap: 16px; background: transparent; }
.mgmt-card { background: var(--bg3); border: 1px solid var(--border); border-left: 3px solid var(--accent); padding: 32px 30px; transition: transform .3s, border-color .3s, background .3s; }
.mgmt-card:hover { transform: translateX(6px); background: var(--surface); border-color: rgba(181,227,42,.35); border-left-color: var(--accent); }
.mgmt-date { display: inline-block; padding: 5px 10px; border: 1px dashed var(--border2); }

/* CONTACT: clean link rows with a sliding arrow */
.contact-row { position: relative; }
.contact-row::after { content: '\2192'; margin-left: auto; color: var(--accent); opacity: .35; font-size: 20px; transition: transform .3s, opacity .3s; }
.contact-row:hover::after { transform: translateX(8px); opacity: 1; }

/* PORTFOLIO: case studies keep their original panels, with a subtle border response */
.cs-card { transition: border-color .3s; }
.cs-card:hover { border-color: rgba(181,227,42,.3); }

/* staggered reveal (only where the layout does not already animate itself) */
.cardsys-js .cs-rv { opacity: 0; translate: 0 22px; transition: opacity .7s ease var(--d, 0ms), translate .7s cubic-bezier(.2,.8,.2,1) var(--d, 0ms), padding-left .35s, background .35s, border-color .3s, transform .3s; }
.cardsys-js .cs-rv.cs-in { opacity: 1; translate: 0 0; }
@media (prefers-reduced-motion: reduce) { .cardsys-js .cs-rv { opacity: 1; translate: none; transition: none; } .svc-card, .value-card, .mgmt-card { transition: none; } }
/* Icons stay straight; they glow when the cursor enters their card */
.svc-icon, .sp-ico, .rm-ico, .contact-row-icon, .sp-tab-ico { transform: none !important; transition: box-shadow .35s ease, background .35s ease !important; }
.svc-icon svg, .sp-ico svg, .rm-ico svg, .contact-row-icon svg { transition: filter .35s ease; }
.svc-card:hover .svc-icon, .svc-card.on .svc-icon, .sp-card:hover .sp-ico, .sp-feat-item:hover .sp-ico, .sp-tab:hover .sp-ico, .sp-tab.on .sp-ico, .value-card:hover .rm-ico, .contact-row:hover .contact-row-icon {
  background: rgba(181,227,42,.22) !important; box-shadow: inset 0 0 0 1px rgba(181,227,42,.6);
}
.svc-card:hover .svc-icon svg, .svc-card.on .svc-icon svg, .sp-card:hover .sp-ico svg, .sp-feat-item:hover .sp-ico svg, .sp-tab:hover .sp-ico svg, .sp-tab.on .sp-ico svg, .value-card:hover .rm-ico svg, .contact-row:hover .contact-row-icon svg { filter: none; }
/* ===== Tighter vertical rhythm ===== */
.cs-group { margin-bottom: 48px; }
.case-studies .cs-group:last-of-type, .case-studies .cs-group:last-of-type .cs-card:last-child { margin-bottom: 0; }
.svc-block { margin-bottom: 28px; } .svc-block:last-child { margin-bottom: 0; }
.services-header { padding-top: 64px; padding-bottom: 36px; }
.mgmt-inner { padding-top: 56px; padding-bottom: 56px; }
@media (max-width: 900px) { .cs-group { margin-bottom: 36px; } }
/* ===== Page heroes: more room around the headline on every page ===== */
@media (min-width: 901px) {
  .page-hero:not(.sp-phero) { min-height: 620px; }
  .page-hero:not(.sp-phero) .page-hero-left { padding: 104px 72px 88px 60px; }
  .page-hero-title { margin-bottom: 4px; }
  .page-hero-sub { margin-top: 30px; max-width: 460px; line-height: 1.9; }
  .page-hero-left .hero-btns, .page-hero-left .cta-btns, .page-hero-left .pf-hero-btns { margin-top: 40px; }
  .page-tag { margin-bottom: 26px; }
}
@media (max-width: 900px) {
  .page-hero:not(.sp-phero) .page-hero-left { padding: 64px 24px 56px; }
  .page-hero-sub { margin-top: 24px; line-height: 1.85; }
  .page-tag { margin-bottom: 20px; }
  .page-hero-left .hero-btns, .page-hero-left .cta-btns, .page-hero-left .pf-hero-btns { margin-top: 32px; }
}
@media (max-width: 520px) { .page-hero:not(.sp-phero) .page-hero-left { padding: 56px 20px 48px; } }
/* ===== Footer (all pages) ===== */
footer.site-footer { display: block; background: #050505; border-top: 1px solid var(--border); padding: 64px 60px 28px; text-align: left; }
.ft-top { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 48px; padding-bottom: 44px; border-bottom: 1px solid var(--border); }
.ft-brand .footer-logo { font-size: 26px; color: var(--text); }
.ft-line { font-size: 13px; line-height: 1.8; color: var(--text2); font-weight: 300; margin-top: 14px; max-width: 360px; }
.ft-cta { display: inline-flex; align-items: center; margin-top: 22px; padding: 12px 22px; border: 1px solid rgba(181,227,42,.45); color: var(--accent); text-decoration: none; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; transition: background .2s, color .2s; }
.ft-cta:hover { background: var(--accent); color: #080808; }
.ft-col { display: flex; flex-direction: column; gap: 12px; }
.ft-h { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--accent); margin-bottom: 4px; }
.ft-col a { color: var(--text2); text-decoration: none; font-size: 13px; transition: color .2s, transform .2s; width: fit-content; }
.ft-col a:hover { color: var(--text); transform: translateX(3px); }
.ft-bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 22px; }
@media (max-width: 900px) {
  footer.site-footer { padding: 48px 24px max(24px, env(safe-area-inset-bottom)); text-align: left; }
  .ft-top { grid-template-columns: 1fr 1fr; gap: 32px 24px; }
  .ft-brand { grid-column: 1 / -1; }
  footer.site-footer .ft-col a { min-height: 36px; padding: 0; }
}
@media (max-width: 520px) { .ft-top { grid-template-columns: 1fr; } .ft-bottom { flex-direction: column; gap: 6px; } }

/* ===== Home: results at a glance ===== */
.results { padding: 72px 60px; background: var(--bg); border-top: 1px solid var(--border); }
.rs-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin-bottom: 40px; }
.rs-sub { font-size: 13px; color: var(--text2); max-width: 300px; line-height: 1.7; text-align: right; font-weight: 300; }
.rs-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--border); border-left: 1px solid var(--border); }
.rs-card { position: relative; display: flex; flex-direction: column; padding: 34px 32px 30px; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); text-decoration: none; overflow: hidden; transition: background .35s; }
.rs-card::before { content: ''; position: absolute; inset: 0; background: radial-gradient(420px circle at 0% 0%, rgba(181,227,42,.10), transparent 60%); opacity: 0; transition: opacity .4s; }
.rs-card:hover { background: var(--bg2); }
.rs-card:hover::before { opacity: 1; }
.rs-num { position: relative; font-family: 'Bebas Neue', sans-serif; font-size: 72px; line-height: .9; color: var(--accent); letter-spacing: 1px; }
.rs-label { position: relative; margin-top: 14px; font-size: 15px; color: var(--text); font-weight: 500; }
.rs-meta { position: relative; margin-top: 6px; font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--text3); }
.rs-go { position: relative; margin-top: 22px; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--accent); opacity: .6; transition: opacity .3s; }
.rs-go::after { content: ' \2192'; display: inline-block; transition: transform .3s; }
.rs-card:hover .rs-go { opacity: 1; } .rs-card:hover .rs-go::after { transform: translateX(5px); }
@media (max-width: 900px) { .results { padding: 56px 24px; } .rs-head { flex-direction: column; align-items: flex-start; gap: 14px; } .rs-sub { text-align: left; } .rs-grid { grid-template-columns: 1fr 1fr; } .rs-num { font-size: 56px; } .rs-card { padding: 26px 20px; } }
@media (max-width: 520px) { .results { padding: 48px 20px; } .rs-grid { grid-template-columns: 1fr; } }

/* ===== Contact: at a glance for recruiters ===== */
.glance { padding: 72px 60px; background: var(--bg2); border-top: 1px solid var(--border); }
.gl-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 36px; }
.gl-card { display: flex; flex-direction: column; gap: 8px; padding: 28px 24px; background: var(--bg3); border: 1px solid var(--border); border-top: 2px solid var(--accent); }
.gl-k { font-size: 10px; letter-spacing: 2.5px; text-transform: uppercase; color: var(--text3); }
.gl-v { font-family: 'Bebas Neue', sans-serif; font-size: 30px; letter-spacing: 1px; color: var(--text); line-height: 1; margin-top: 4px; }
.gl-s { font-size: 13px; color: var(--text2); line-height: 1.7; font-weight: 300; }
.gl-s a { color: var(--accent); text-decoration: none; }
.gl-btn { margin-top: auto; align-self: flex-start; padding: 12px 20px; background: var(--accent); color: #080808; text-decoration: none; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; font-weight: 500; transition: opacity .2s; }
.gl-btn:hover { opacity: .85; }
@media (max-width: 900px) { .glance { padding: 56px 24px; } .gl-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .glance { padding: 48px 20px; } .gl-grid { grid-template-columns: 1fr; } }

/* ===== Experience: timeline line that fills as you scroll ===== */
@media (min-width: 901px) {
  .exp-list { position: relative; }
  .exp-list::before, .exp-list::after { content: ''; position: absolute; left: -30px; top: 0; width: 2px; height: 100%; background: var(--border2); }
  .exp-list::after { background: linear-gradient(var(--accent), rgba(181,227,42,.4)); height: calc(var(--tl, 0) * 100%); box-shadow: 0 0 12px rgba(181,227,42,.45); }
}

/* ===== Back to top (all pages) ===== */
.to-top { position: fixed; right: 22px; bottom: 22px; z-index: 900; width: 48px; height: 48px; border-radius: 50%; border: 0; padding: 0; background: rgba(12,12,12,.92); color: var(--accent); cursor: pointer; display: grid; place-items: center; opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .3s, transform .3s; }
.to-top.show { opacity: 1; transform: none; pointer-events: auto; }
.to-top svg { position: absolute; inset: 0; width: 48px; height: 48px; transform: rotate(-90deg); }
.to-top circle { fill: none; stroke-width: 2; }
.to-top .tt-track { stroke: rgba(255,255,255,.12); }
.to-top .tt-fill { stroke: var(--accent); stroke-dasharray: 138.2; stroke-dashoffset: calc(138.2 - 138.2 * var(--p, 0)); }
.to-top span { position: relative; font-size: 18px; line-height: 1; }
.to-top:hover { background: #1a1a1a; }
.to-top:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
body:has(.fx-consent) .to-top { bottom: 110px; }
@media (prefers-reduced-motion: reduce) { .to-top { transition: none; } }
.glance .section-title { font-family: 'Bebas Neue', sans-serif; font-size: 56px; font-weight: 400; color: var(--text); letter-spacing: 1px; line-height: .95; }
.glance .section-tag { display: flex; align-items: center; gap: 8px; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: var(--accent); margin-bottom: 14px; }
.glance .section-tag::before { content: ''; width: 20px; height: 1px; background: var(--accent); }
@media (max-width: 900px) { .glance .section-title { font-size: 42px; } }
.ft-bottom { padding-right: 72px; }
@media (max-width: 520px) { .ft-bottom { padding-right: 64px; } }

.cs-card { scroll-margin-top: 96px; }


@media (max-width: 520px) { .ft-top { grid-template-columns: 1fr 1fr; gap: 28px 20px; } .ft-top .ft-col:last-child { grid-column: 1 / -1; } .rs-card { padding: 24px 20px; } .rs-num { font-size: 52px; } }


/* ===== Layout rhythm: one set of spacing rules for every page =====
   section padding 72 (calls to action 64), label to heading 14, heading block to content 44 (phones 32) */
.section-tag { margin-bottom: 14px; }
.explore .section-tag { margin-bottom: 14px; }
@media (min-width: 901px) {
  .rs-head, .journey-header, .timeline-header, .builds-head { margin-bottom: 44px; }
  .values-grid, .process-grid, .edu-grid, .gl-grid { margin-top: 44px; }
  .sp-h2 { font-size: 56px; margin-bottom: 44px; }
  .sp-h2:has(+ .sp-text) { margin-bottom: 18px; }
  .sp-h2 + .sp-text { margin-bottom: 44px; }
  .sp-h2.sp-cta-h { margin-bottom: 12px; }
  .explore-title { margin-bottom: 32px; }
  .mgmt-inner { padding-top: 72px; padding-bottom: 72px; }
  .brands-strip { padding-top: 56px; padding-bottom: 56px; }
  .tools-strip { padding-top: 64px; padding-bottom: 64px; }
  .svc-blocks { padding-top: 72px; padding-bottom: 72px; }
  /* contact: keep the label, heading and intro together while the rows sit on the right */
  .contact-info { grid-template-rows: auto auto 1fr; }
}
@media (max-width: 900px) {
  .rs-head, .journey-header, .timeline-header, .builds-head { margin-bottom: 32px; }
  .values-grid, .process-grid, .edu-grid, .gl-grid { margin-top: 32px; }
  .sp-h2 { margin-bottom: 32px; }
  .sp-h2:has(+ .sp-text) { margin-bottom: 14px; }
  .sp-h2 + .sp-text { margin-bottom: 32px; }
  .explore-title { margin-bottom: 24px; }
  .results, .glance, .journey, .values, .skills, .process, .timeline-section, .education, .case-studies, .builds, .faq, .sp-section { padding-top: 56px; padding-bottom: 56px; }
}
@media (max-width: 520px) {
  .results, .glance, .journey, .values, .skills, .process, .timeline-section, .education, .case-studies, .builds, .faq, .sp-section { padding-top: 48px; padding-bottom: 48px; }
}
/* one card padding and one gap for card grids */
.soft-grid { gap: 16px; }
.ex-card, .gl-card, .mgmt-card, .sp-step { padding: 30px 28px; }
@media (min-width: 901px) { .svc-card { padding: 30px 28px; } }
@media (max-width: 520px) { .ex-card, .gl-card, .mgmt-card, .sp-step, .svc-card { padding: 24px 20px; } }
/* phones: one side gutter (20px) and one vertical rhythm (48px) everywhere */
@media (max-width: 520px) {
  .explore, .sp-cta, .sp-section, .results, .glance, .home-cta, .about-cta, .exp-cta, .svc-cta, .portfolio-cta, .side-project, .journey, .values, .skills, .process, .timeline-section, .education, .case-studies, .builds, .faq, .tools-strip, .brands-strip, .mgmt-inner, .svc-blocks, .services-header, .services-grid, .contact-info { padding-left: 20px !important; padding-right: 20px !important; }
  .explore, .sp-cta, .home-cta, .about-cta, .exp-cta, .svc-cta, .portfolio-cta, .side-project, .tools-strip, .mgmt-inner { padding-top: 48px !important; padding-bottom: 48px !important; }
  footer.site-footer { padding-left: 20px; padding-right: 20px; }
}

/* ===== Phone fixes ===== */
@media (max-width: 520px) {
  /* button pairs stack full width so labels stay on one line */
  .cta-btns, .sp-btns, .pf-hero-btns, .hero-btns, .page-hero-btns, .sk-btns { display: flex; flex-direction: column; align-items: stretch; gap: 12px; }
  .cta-btns a, .sp-btns a, .pf-hero-btns a, .hero-btns a, .page-hero-btns a, .sk-btns a { width: 100%; white-space: nowrap; justify-content: center; text-align: center; flex: none !important; }
  /* decorative artwork blocks that read as empty space on a phone */
  .intro-visual, .bio-visual { display: none !important; }
  /* stat rows sit side by side */
  .intro-meta { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .intro-meta-item { padding: 16px 12px !important; }
  .intro-meta-num { font-size: 30px !important; }
  .intro-meta-label { font-size: 9px !important; letter-spacing: 1px !important; }
  /* results: two per row */
  .rs-grid { grid-template-columns: 1fr 1fr; }
  .rs-card { padding: 22px 16px; }
  .rs-num { font-size: 40px; }
  .rs-label { font-size: 13px; margin-top: 10px; }
  .rs-meta { font-size: 9px; letter-spacing: 1px; }
  .rs-go { margin-top: 14px; font-size: 10px; letter-spacing: 1.5px; }
  /* back-to-top a little smaller and tucked in */
  .to-top { width: 42px; height: 42px; right: 14px; bottom: 14px; }
  .to-top svg { width: 42px; height: 42px; }
}
footer .footer-logo { display: inline-block !important; min-height: 0 !important; padding: 0 !important; }

@media (max-width: 520px) { .rs-meta, .intro-meta-label, .sp-cap, .sp-bars em, .rp-tag { font-size: 10px !important; } }


/* very tall blocks never wait for a scroll reveal (on phones they could stay blank for a long stretch) */
.cs-card.rv, .exp-item.rv, .svc-block.rv, .build-card.rv, .cs-group.rv { opacity: 1 !important; transform: none !important; }
@media (max-width: 900px) {
  .page-hero-right.sp-crawlpanel { min-height: 500px !important; }
  .sp-hud { gap: 6px 14px; padding: 9px 12px; font-size: 10px; }
}
@media (max-width: 520px) { .page-hero-right.sp-crawlpanel { min-height: 460px !important; } }

/* ===== Hover gradient for every card: none at rest, a faint lime wash fades in from the top-left on hover ===== */
.svc-card, .rs-card, .sp-card, .svc-block, .mgmt-card, .gl-card, .cs-card, .build-card, .edu-card, .sk-win {
  background-image: linear-gradient(135deg, rgba(181,227,42,0.09), rgba(181,227,42,0) 45%) !important;
  background-size: 220% 220% !important;
  background-position: 100% 100% !important;
  background-repeat: no-repeat !important;
  transition: background-position .5s ease, background-color .3s ease, border-color .3s ease, transform .3s ease !important;
}
.svc-card:hover, .rs-card:hover, .sp-card:hover, .svc-block:hover, .mgmt-card:hover, .gl-card:hover, .cs-card:hover, .build-card:hover, .edu-card:hover, .sk-win:hover {
  background-position: 0% 0% !important;
}
/* the featured AEO card loses its resting tint too, and gets a slightly stronger wash on hover */
.sp-card.sp-t-ai { background-image: linear-gradient(135deg, rgba(181,227,42,0.14), rgba(181,227,42,0) 45%) !important; }
.sp-card.sp-t-ai:hover { background-image: linear-gradient(135deg, rgba(181,227,42,0.14), rgba(181,227,42,0) 45%) !important; }
/* results cards had their own corner glow; the shared wash replaces it */
.rs-card::before { display: none; }
@media (hover: none) { .svc-card, .rs-card, .sp-card, .svc-block, .mgmt-card, .gl-card, .cs-card, .build-card, .edu-card, .sk-win { background-image: none !important; } }
@media (prefers-reduced-motion: reduce) { .svc-card, .rs-card, .sp-card, .svc-block, .mgmt-card, .gl-card, .cs-card, .build-card, .edu-card, .sk-win { transition: none !important; } }

/* softer hover wash (same for every card, including the AEO card) */
.svc-card, .rs-card, .sp-card, .svc-block, .mgmt-card, .gl-card, .cs-card, .build-card, .edu-card, .sk-win,
.sp-card.sp-t-ai, .sp-card.sp-t-ai:hover {
  background-image: linear-gradient(135deg, rgba(181,227,42,0.05), rgba(181,227,42,0) 40%) !important;
}
.sp-card.sp-t-ai:hover { border-color: rgba(181,227,42,0.32) !important; }
