
:root{
  --font-heading:"Inter","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-body:"Noto Sans JP","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --container:1180px;
  --bg:#f7fbff;
  --bg-alt:#eef6ff;
  --surface:rgba(255,255,255,0.82);
  --surface-strong:#ffffff;
  --surface-soft:#f7fbff;
  --text:#0f172a;
  --muted:#526173;
  --line:rgba(15,23,42,0.10);
  --line-strong:rgba(14,165,233,0.20);
  --accent:#0ea5e9;
  --accent-rgb:14,165,233;
  --accent-2:#14b8a6;
  --accent-2-rgb:20,184,166;
  --accent-3:#7dd3fc;
  --deep:#07192d;
  --footer-bg:#07192d;
  --footer-text:#edf7ff;
  --header-bg-rgb:255,255,255;
  --accent-gradient:linear-gradient(135deg,#0ea5e9 0%,#14b8a6 45%,#7dd3fc 100%);
  --hero-gradient:radial-gradient(circle at 12% 18%, rgba(125,211,252,.50), transparent 34%), radial-gradient(circle at 82% 18%, rgba(20,184,166,.24), transparent 28%), radial-gradient(circle at 72% 74%, rgba(14,165,233,.18), transparent 32%), linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(244,251,255,.95) 100%);
  --message-gradient:linear-gradient(135deg,#07192d 0%,#0b2441 48%,#0f4c69 100%);
  --radius-xl:30px;
  --radius-lg:24px;
  --radius-md:18px;
  --button-radius:18px;
  --shadow-lg:0 24px 80px rgba(7,25,45,0.10);
  --shadow-md:0 16px 42px rgba(7,25,45,0.08);
  --shadow-sm:0 8px 22px rgba(7,25,45,0.08);
  --glow-one:rgba(125,211,252,0.40);
  --glow-two:rgba(20,184,166,0.16);
  --glow-three:rgba(14,165,233,0.16);
  --transition:220ms cubic-bezier(.22,1,.36,1);
}

*,
*::before,
*::after{box-sizing:border-box;}

html{scroll-behavior:smooth;}
body{
  margin:0;
  min-height:100%;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(var(--accent-rgb),0.05), transparent 28%),
    radial-gradient(circle at bottom right, rgba(var(--accent-2-rgb),0.04), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,255,255,0) 32%),
    var(--bg);
  font-family:var(--font-body);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.nav-open{overflow:hidden;}

img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
button,input,textarea,select{font:inherit;}
button{cursor:pointer;}
summary{cursor:pointer;}

.no-js .reveal{opacity:1;transform:none;}

.skip-link{
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
}
.skip-link:focus{
  top:16px;left:16px;z-index:9999;
  width:auto;height:auto;margin:0;padding:10px 14px;
  clip:auto;border-radius:14px;
  background:var(--deep);color:#fff;
}

.container{
  width:min(var(--container), calc(100% - 40px));
  margin-inline:auto;
}

.text-gradient{
  background:var(--accent-gradient);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}

.button-row{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
}
.button{
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:52px;
  padding:0 22px;
  border-radius:var(--button-radius);
  border:1px solid transparent;
  font-family:var(--font-heading);
  font-size:.96rem;
  font-weight:700;
  letter-spacing:.01em;
  transition:transform var(--transition), box-shadow var(--transition), border-color var(--transition), background var(--transition), color var(--transition), opacity var(--transition);
  overflow:hidden;
}
.button::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.45) 45%, transparent 100%);
  transform:translateX(-120%);
  transition:transform 520ms ease;
}
.button:hover{transform:translateY(-2px);}
.button:hover::after{transform:translateX(120%);}
.button--primary{
  background:var(--accent-gradient);
  color:#fff;
  box-shadow:0 18px 44px rgba(var(--accent-rgb),0.22);
}
.button--secondary{
  background:rgba(255,255,255,.58);
  color:var(--text);
  border-color:var(--line);
  backdrop-filter:blur(20px);
}
.button--secondary:hover{
  border-color:rgba(var(--accent-rgb),0.22);
  color:var(--accent);
}
.button--ghost{
  background:transparent;
  border-color:rgba(255,255,255,.22);
  color:#fff;
}
.button--small{min-height:46px;padding:0 18px;font-size:.9rem;}

.progress-bar{
  position:fixed;
  inset:0 auto auto 0;
  width:100%;
  height:3px;
  z-index:1200;
  pointer-events:none;
}
.progress-bar__value{
  display:block;
  width:100%;
  height:100%;
  background:var(--accent-gradient);
  transform-origin:left center;
  transform:scaleX(0);
}

.site-header{
  position:sticky;
  top:0;
  z-index:1100;
  backdrop-filter:blur(18px);
  background:rgba(var(--header-bg-rgb),0.72);
  border-bottom:1px solid transparent;
  transition:background var(--transition), border-color var(--transition), box-shadow var(--transition);
}
.site-header.is-scrolled{
  border-color:var(--line);
  box-shadow:0 16px 34px rgba(15,23,42,0.06);
}
.header-inner{
  min-height:84px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
}
.site-branding{display:flex;align-items:center;min-width:0;}
.brand-link,
.custom-logo-link{
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.brand-wordmark,
.custom-logo-link img{
  width:auto;
  height:clamp(38px, 4.3vw, 48px);
}
.header-nav{
  display:flex;
  align-items:center;
  gap:20px;
}
.primary-nav .menu,
.primary-nav__list,
.footer-nav__list{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  align-items:center;
  gap:clamp(14px, 2.2vw, 28px);
}
.primary-nav a,
.primary-nav__list a,
.footer-nav a,
.footer-nav__list a{
  position:relative;
  font-family:var(--font-heading);
  font-size:.95rem;
  font-weight:600;
  color:var(--muted);
  transition:color var(--transition);
}
.primary-nav a::after,
.primary-nav__list a::after,
.footer-nav a::after,
.footer-nav__list a::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:-7px;
  height:2px;
  border-radius:999px;
  background:var(--accent-gradient);
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform var(--transition);
}
.primary-nav a:hover,
.primary-nav__list a:hover,
.footer-nav a:hover,
.footer-nav__list a:hover{color:var(--text);}
.primary-nav a:hover::after,
.primary-nav__list a:hover::after,
.footer-nav a:hover::after,
.footer-nav__list a:hover::after{transform:scaleX(1);}

.nav-toggle{
  display:none;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  background:var(--surface-strong);
  color:var(--text);
  border-radius:999px;
  padding:11px 15px;
  font-family:var(--font-heading);
  font-weight:700;
  box-shadow:var(--shadow-sm);
}
.nav-toggle__line,
.nav-toggle__line::before,
.nav-toggle__line::after{
  display:block;
  width:18px;
  height:2px;
  border-radius:999px;
  background:currentColor;
  content:"";
  transition:transform var(--transition), opacity var(--transition);
}
.nav-toggle__line{position:relative;}
.nav-toggle__line::before{position:absolute;top:-6px;left:0;}
.nav-toggle__line::after{position:absolute;top:6px;left:0;}

.site-main{overflow:hidden;}

.hero,
.page-hero{
  position:relative;
  padding:clamp(56px, 8vw, 92px) 0;
  isolation:isolate;
}
.hero--home{
  padding-top:clamp(56px, 8vw, 98px);
  padding-bottom:0;
}
.hero-effects{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
}
.effect{
  position:absolute;
  inset:auto;
  pointer-events:none;
}
.effect--aurora{
  border-radius:50%;
  filter:blur(14px);
  animation:floatGlow 16s ease-in-out infinite;
}
.effect--one{
  width:min(44vw, 520px);
  aspect-ratio:1;
  top:-12%;
  left:-10%;
  background:radial-gradient(circle, var(--glow-one) 0%, rgba(255,255,255,0) 72%);
}
.effect--two{
  width:min(38vw, 420px);
  aspect-ratio:1;
  top:2%;
  right:-8%;
  background:radial-gradient(circle, var(--glow-two) 0%, rgba(255,255,255,0) 72%);
  animation-delay:-4s;
}
.effect--three{
  width:min(36vw, 360px);
  aspect-ratio:1;
  bottom:-14%;
  right:16%;
  background:radial-gradient(circle, var(--glow-three) 0%, rgba(255,255,255,0) 72%);
  animation-delay:-8s;
}
.effect--grid{
  inset:0;
  background-image:linear-gradient(rgba(var(--accent-rgb),0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--accent-rgb),0.06) 1px, transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(180deg, rgba(0,0,0,.7), rgba(0,0,0,0));
  opacity:.24;
}
.effect--ring{
  width:min(52vw, 580px);
  aspect-ratio:1;
  top:18%;
  right:-12%;
  border:1px solid rgba(var(--accent-rgb),0.16);
  border-radius:50%;
  animation:spinSlow 34s linear infinite;
}
.effect--beam{
  inset:22% auto auto -10%;
  width:44%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.92), transparent);
  transform:rotate(-12deg);
}
.network-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:.82;
}

.hero--home::before,
.page-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:var(--hero-gradient);
  z-index:-2;
}

.hero-layout{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);
  align-items:center;
  gap:clamp(28px, 5vw, 56px);
  padding-bottom:clamp(60px, 7vw, 90px);
}
.hero-copy,
.page-hero__content{
  position:relative;
  z-index:1;
}
.eyebrow{
  margin:0 0 16px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-heading);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
}
.eyebrow::before{
  content:"";
  width:34px;
  height:1px;
  background:currentColor;
  opacity:.48;
}
.hero h1,
.page-hero h1,
.section-heading h2,
.cta-panel h2,
.quote-card h3,
.article-title{
  margin:0;
  font-family:var(--font-heading);
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.08;
  color:var(--text);
}
.hero h1{
  font-size:clamp(2.75rem, 6vw, 5.4rem);
  max-width:11ch;
}
.page-hero h1{
  font-size:clamp(2.3rem, 4.6vw, 4.2rem);
  max-width:12ch;
}
.hero-lead,
.page-lead,
.section-heading p,
.panel-copy,
.metric-copy,
.section-card__desc,
.quote-copy,
.news-excerpt,
.profile-lead,
.contact-copy,
.cta-panel p,
.pillar-card p,
.position-card p,
.flow-card p,
.deliverable-card li,
.article-content,
.article-summary{
  color:var(--muted);
  font-size:1.02rem;
  line-height:1.9;
}
.hero-lead{max-width:60ch;margin:26px 0 32px;}
.page-lead{max-width:58ch;margin:22px 0 0;}

.chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:22px;
}
.chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:0 16px;
  border-radius:999px;
  border:1px solid rgba(var(--accent-rgb),0.14);
  background:rgba(255,255,255,.58);
  backdrop-filter:blur(18px);
  font-family:var(--font-heading);
  font-size:.86rem;
  font-weight:700;
  color:var(--text);
  box-shadow:var(--shadow-sm);
}
.chip::before{
  content:"";
  width:7px;height:7px;border-radius:50%;
  background:var(--accent-gradient);
  box-shadow:0 0 0 6px rgba(var(--accent-rgb),0.10);
}

.hero-panel--home{
  position:relative;
  padding:26px;
  border-radius:var(--radius-xl);
  background:linear-gradient(180deg, rgba(255,255,255,.84), rgba(255,255,255,.62));
  border:1px solid rgba(255,255,255,.58);
  box-shadow:var(--shadow-lg);
  overflow:hidden;
}
.hero-panel--home::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  background:linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,0));
  pointer-events:none;
}
.panel-kicker{
  position:relative;
  display:inline-flex;
  margin-bottom:16px;
  padding:8px 12px;
  border-radius:999px;
  font-family:var(--font-heading);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
  background:rgba(var(--accent-rgb),0.08);
  border:1px solid rgba(var(--accent-rgb),0.14);
}
.hero-wordmark{
  height:56px;
  width:auto;
  margin-bottom:14px;
}
.metric-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:14px;
  margin-top:24px;
}
.metric-card{
  position:relative;
  padding:18px;
  border-radius:var(--radius-lg);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(var(--accent-rgb),0.10);
  box-shadow:var(--shadow-sm);
  min-height:148px;
}
.metric-card::after{
  content:"";
  position:absolute;
  inset:auto 20px 0;
  height:3px;
  border-radius:999px 999px 0 0;
  background:var(--accent-gradient);
  opacity:.88;
}
.metric-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  min-height:42px;
  border-radius:14px;
  background:rgba(var(--accent-rgb),0.08);
  font-family:var(--font-heading);
  font-weight:800;
  color:var(--accent);
  margin-bottom:14px;
}
.metric-title{
  margin:0 0 6px;
  font-family:var(--font-heading);
  font-size:1.14rem;
  font-weight:800;
  line-height:1.3;
}
.metric-copy{font-size:.94rem;margin:0;}

.marquee-wrap{
  position:relative;
  z-index:2;
  overflow:hidden;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.56);
  backdrop-filter:blur(14px);
}
.marquee-track{
  display:flex;
  gap:0;
  min-width:max-content;
  animation:marqueeMove 34s linear infinite;
}
.marquee-wrap:hover .marquee-track{animation-play-state:paused;}
.marquee-item{
  display:inline-flex;
  align-items:center;
  gap:18px;
  padding:14px 22px;
  font-family:var(--font-heading);
  font-size:.85rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  white-space:nowrap;
}
.marquee-item::after{
  content:"";
  width:8px;height:8px;border-radius:50%;
  background:var(--accent-gradient);
  box-shadow:0 0 0 10px rgba(var(--accent-rgb),0.08);
}

.section{
  position:relative;
  padding:clamp(72px, 8vw, 108px) 0;
}
.section--soft{background:linear-gradient(180deg, rgba(255,255,255,.40), rgba(255,255,255,0) 26%), var(--bg-alt);}
.section--dark{
  color:#fff;
  background:var(--message-gradient);
}
.section--dark .section-heading h2,
.section--dark .quote-card h3,
.section--dark .section-card__title,
.section--dark .value-card h3,
.section--dark .cta-panel h2{color:#fff;}
.section--dark .section-heading p,
.section--dark .quote-copy,
.section--dark .value-card p,
.section--dark .cta-panel p{color:rgba(255,255,255,.72);}
.section--dark .eyebrow{color:rgba(255,255,255,.78);}
.section--dark .eyebrow::before{background:currentColor;}
.section--dark .section-card,
.section--dark .value-card,
.section--dark .quote-card{
  background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.10);
  box-shadow:none;
}
.section--dark .chip{
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.12);
  color:#fff;
}

.section-heading{
  display:grid;
  gap:18px;
  align-items:end;
  margin-bottom:34px;
}
.section-heading h2{
  font-size:clamp(2rem, 3.6vw, 3.4rem);
  max-width:14ch;
}
.section-heading p{max-width:64ch;margin:0;}
.section-heading--split{
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:18px 28px;
}
.section-heading--split > div:last-child{
  flex:1 1 320px;
  max-width:520px;
}
.section-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}

.highlight-grid,
.card-grid,
.value-grid,
.news-grid,
.pillars-grid,
.flow-grid,
.deliverable-grid,
.recruit-grid,
.selection-flow,
.related-grid{
  display:grid;
  gap:18px;
}
.highlight-grid{grid-template-columns:repeat(4, minmax(0,1fr));}
.card-grid--4,
.value-grid,
.recruit-grid,
.deliverable-grid{grid-template-columns:repeat(4, minmax(0,1fr));}
.card-grid--3,
.news-grid,
.pillars-grid,
.related-grid{grid-template-columns:repeat(3, minmax(0,1fr));}
.flow-grid{grid-template-columns:repeat(4, minmax(0,1fr));}
.selection-flow{grid-template-columns:repeat(4, minmax(0,1fr));}

.highlight-card,
.section-card,
.quote-card,
.value-card,
.news-card,
.profile-card,
.leadership-card,
.pillar-card,
.flow-card,
.deliverable-card,
.contact-card,
.position-card,
.cta-panel,
.article-card,
.sidebar-card{
  position:relative;
  padding:24px;
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  background:var(--surface);
  backdrop-filter:blur(22px);
  box-shadow:var(--shadow-md);
  overflow:hidden;
}
.highlight-card::after,
.section-card::after,
.value-card::after,
.news-card::after,
.profile-card::after,
.leadership-card::after,
.pillar-card::after,
.flow-card::after,
.deliverable-card::after,
.contact-card::after,
.position-card::after,
.cta-panel::after,
.article-card::after,
.sidebar-card::after{
  content:"";
  position:absolute;
  inset:auto 22px 0;
  height:3px;
  border-radius:999px 999px 0 0;
  background:var(--accent-gradient);
  opacity:.9;
}
.highlight-card::before,
.section-card::before,
.value-card::before,
.news-card::before,
.profile-card::before,
.leadership-card::before,
.pillar-card::before,
.flow-card::before,
.deliverable-card::before,
.contact-card::before,
.position-card::before,
.cta-panel::before,
.article-card::before,
.sidebar-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(var(--accent-rgb),0.10), rgba(var(--accent-rgb),0) 46%);
  pointer-events:none;
}
.highlight-card{min-height:164px;}
.highlight-card__label{
  display:block;
  margin-bottom:10px;
  font-family:var(--font-heading);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.highlight-card__value{
  margin:0 0 8px;
  font-family:var(--font-heading);
  font-size:1.48rem;
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.2;
}
.highlight-card p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.75;}

.section-card__number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  border-radius:14px;
  background:rgba(var(--accent-rgb),0.08);
  color:var(--accent);
  font-family:var(--font-heading);
  font-weight:800;
  margin-bottom:14px;
}
.section-card__title,
.value-card h3,
.pillar-card h3,
.flow-card h3,
.deliverable-card h3,
.contact-card h3,
.position-card h3{
  margin:0 0 8px;
  font-family:var(--font-heading);
  font-size:1.18rem;
  font-weight:800;
  line-height:1.3;
  color:var(--text);
}
.section-card__subtitle{
  display:block;
  margin-bottom:12px;
  font-family:var(--font-heading);
  font-size:.8rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
}
.section-card__desc{margin:0;}
.tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:18px;
}
.tag{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(var(--accent-rgb),0.08);
  border:1px solid rgba(var(--accent-rgb),0.12);
  font-size:.78rem;
  font-weight:700;
  color:var(--text);
}
.quote-layout{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);
  gap:18px;
  align-items:start;
}
.quote-card__lead{
  margin:0 0 18px;
  font-family:var(--font-heading);
  font-size:clamp(1.4rem, 2vw, 1.9rem);
  font-weight:800;
  line-height:1.4;
}
.quote-copy{margin:0 0 16px;}
.value-card h3{margin-bottom:10px;}
.value-card p{margin:0;color:var(--muted);}
.value-card__index{
  display:block;
  margin-bottom:12px;
  font-family:var(--font-heading);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
}

.news-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
}
.news-meta{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:14px;
}
.news-date{
  font-family:var(--font-heading);
  font-size:.84rem;
  font-weight:700;
  color:var(--muted);
}
.news-category{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(var(--accent-rgb),0.08);
  border:1px solid rgba(var(--accent-rgb),0.12);
  font-size:.78rem;
  font-weight:800;
  color:var(--accent);
}
.news-title{
  margin:0 0 12px;
  font-family:var(--font-heading);
  font-size:1.2rem;
  font-weight:800;
  line-height:1.45;
  color:var(--text);
}
.news-excerpt{margin:0;}
.news-link{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding-top:18px;
  font-family:var(--font-heading);
  font-size:.92rem;
  font-weight:700;
  color:var(--text);
}
.news-link::after{
  content:"→";
  transition:transform var(--transition);
}
.news-card:hover .news-link::after{transform:translateX(4px);}

.company-grid,
.contact-grid,
.posts-layout{
  display:grid;
  grid-template-columns:minmax(0,.96fr) minmax(300px,1.04fr);
  gap:18px;
}
.profile-card--wide{height:100%;}
.profile-lead{margin:0 0 20px;}
.profile-list{
  display:grid;
  gap:0;
  margin:0;
}
.profile-list > div{
  display:grid;
  grid-template-columns:180px minmax(0,1fr);
  gap:20px;
  padding:14px 0;
  border-bottom:1px solid var(--line);
}
.profile-list dt{
  font-family:var(--font-heading);
  font-size:.84rem;
  font-weight:800;
  letter-spacing:.08em;
  color:var(--muted);
}
.profile-list dd{
  margin:0;
  color:var(--text);
  font-size:1rem;
  line-height:1.8;
}
.profile-list a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(var(--accent-rgb),.35);text-underline-offset:3px;}
.leadership-card .person-role{
  display:block;
  margin-bottom:8px;
  font-family:var(--font-heading);
  font-size:.84rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
}
.person-name{
  margin:0 0 12px;
  font-family:var(--font-heading);
  font-size:clamp(1.8rem, 3vw, 2.6rem);
  font-weight:800;
  letter-spacing:-.04em;
}
.person-name small{
  display:block;
  margin-top:8px;
  font-size:1rem;
  letter-spacing:0;
  color:var(--muted);
}
.pillar-card p,
.flow-card p,
.position-card p,
.contact-card p{margin:0;color:var(--muted);}

.flow-card__step,
.selection-step__number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:42px;
  min-height:42px;
  border-radius:14px;
  background:rgba(var(--accent-rgb),0.08);
  color:var(--accent);
  font-family:var(--font-heading);
  font-weight:800;
  margin-bottom:14px;
}
.deliverable-card ul{
  margin:14px 0 0;
  padding-left:18px;
}
.deliverable-card li{margin-bottom:8px;}

.contact-methods{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.contact-form{
  position:relative;
  padding:24px;
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  background:var(--surface);
  backdrop-filter:blur(22px);
  box-shadow:var(--shadow-md);
}
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.form-field{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.form-field--full{grid-column:1 / -1;}
.form-field label{
  font-family:var(--font-heading);
  font-size:.82rem;
  font-weight:800;
  letter-spacing:.08em;
  color:var(--text);
}
.form-field input,
.form-field textarea,
.form-field select{
  width:100%;
  min-height:52px;
  border-radius:16px;
  border:1px solid rgba(var(--accent-rgb),0.12);
  background:rgba(255,255,255,.84);
  color:var(--text);
  padding:0 16px;
  transition:border-color var(--transition), box-shadow var(--transition), background var(--transition);
}
.form-field textarea{
  min-height:160px;
  padding-top:14px;
  resize:vertical;
}
.form-field input:focus,
.form-field textarea:focus,
.form-field select:focus{
  outline:none;
  border-color:rgba(var(--accent-rgb),0.46);
  box-shadow:0 0 0 4px rgba(var(--accent-rgb),0.10);
  background:#fff;
}
.form-note{
  margin-top:16px;
  font-size:.92rem;
  color:var(--muted);
}
.alert{
  margin:0 0 18px;
  padding:14px 16px;
  border-radius:16px;
  border:1px solid transparent;
  font-size:.96rem;
  line-height:1.7;
}
.alert--success{
  color:#0b5d54;
  background:rgba(var(--accent-2-rgb),0.08);
  border-color:rgba(var(--accent-2-rgb),0.16);
}
.alert--error{
  color:#92400e;
  background:rgba(245,158,11,0.10);
  border-color:rgba(245,158,11,0.22);
}

.faq-list{
  display:grid;
  gap:14px;
}
.faq-item{
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  background:var(--surface);
  box-shadow:var(--shadow-sm);
  overflow:hidden;
}
.faq-item summary{
  list-style:none;
  padding:18px 22px;
  font-family:var(--font-heading);
  font-size:1rem;
  font-weight:800;
  color:var(--text);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";
  float:right;
  transition:transform var(--transition);
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{
  margin:0;
  padding:0 22px 18px;
  color:var(--muted);
}

.selection-step{
  position:relative;
  padding:22px;
  border-radius:var(--radius-lg);
  border:1px solid var(--line);
  background:var(--surface);
  box-shadow:var(--shadow-sm);
}
.selection-step__title{
  margin:0;
  font-family:var(--font-heading);
  font-size:1rem;
  font-weight:800;
}
.selection-step__number{margin-bottom:12px;}

.cta-panel{
  padding:clamp(28px, 4vw, 42px);
}
.cta-panel h2{
  font-size:clamp(2rem, 3.4vw, 3rem);
  max-width:14ch;
  margin-bottom:14px;
}
.cta-panel p{max-width:60ch;margin:0 0 24px;}

.page-shell{
  display:grid;
  gap:18px;
}
.article-card{
  padding:clamp(28px, 4vw, 40px);
}
.article-meta{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-bottom:18px;
}
.article-title{
  font-size:clamp(2rem, 3.6vw, 3rem);
  max-width:18ch;
  margin-bottom:18px;
}
.article-content > *:first-child{margin-top:0;}
.article-content > *:last-child{margin-bottom:0;}
.article-content h2,
.article-content h3,
.editor-content h2,
.editor-content h3{
  font-family:var(--font-heading);
  line-height:1.35;
}
.article-content a,
.editor-content a{color:var(--accent);text-decoration:underline;text-decoration-color:rgba(var(--accent-rgb),.35);text-underline-offset:3px;}
.article-content ul,
.article-content ol,
.editor-content ul,
.editor-content ol{padding-left:1.35rem;}
.article-content blockquote,
.editor-content blockquote{
  margin:1.6rem 0;
  padding:1rem 1.2rem;
  border-left:4px solid var(--accent);
  background:rgba(var(--accent-rgb),0.06);
  border-radius:0 16px 16px 0;
}
.pagination{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:24px;
}
.pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  padding:0 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background:var(--surface);
  color:var(--text);
  font-family:var(--font-heading);
  font-weight:700;
}
.pagination .current{
  border-color:rgba(var(--accent-rgb),0.22);
  background:rgba(var(--accent-rgb),0.08);
  color:var(--accent);
}

.editor-content{
  max-width:780px;
  color:var(--muted);
}
.editor-content > *:first-child{margin-top:0;}
.editor-content > *:last-child{margin-bottom:0;}

.site-footer{
  position:relative;
  color:var(--footer-text);
  background:
    radial-gradient(circle at 18% 18%, rgba(var(--accent-rgb),0.16), transparent 26%),
    radial-gradient(circle at 82% 20%, rgba(var(--accent-2-rgb),0.16), transparent 28%),
    var(--footer-bg);
}
.footer-top,
.footer-bottom{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.footer-top{
  padding:42px 0 24px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-bottom{
  padding:18px 0 32px;
}
.footer-brand-link{
  display:inline-flex;
  align-items:center;
  gap:14px;
  margin-bottom:14px;
}
.footer-mark{width:auto;height:48px;}
.footer-brand-text{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.footer-brand-name{
  font-family:var(--font-heading);
  font-size:1.2rem;
  font-weight:800;
  letter-spacing:-.02em;
}
.footer-note,
.footer-copy{color:rgba(255,255,255,.72);}
.footer-note{max-width:460px;margin:0;}
.footer-copy{font-size:.92rem;}
.footer-nav{display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:flex-end;}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 680ms cubic-bezier(.22,1,.36,1), transform 680ms cubic-bezier(.22,1,.36,1);
}
.reveal.is-visible{
  opacity:1;
  transform:translateY(0);
}
.reveal-delay-1{transition-delay:80ms;}
.reveal-delay-2{transition-delay:160ms;}
.reveal-delay-3{transition-delay:240ms;}
.reveal-delay-4{transition-delay:320ms;}

.interactive-card{
  transform-style:preserve-3d;
  transition:transform 260ms cubic-bezier(.22,1,.36,1), box-shadow var(--transition), border-color var(--transition);
  will-change:transform;
}
.interactive-card:hover{box-shadow:0 30px 90px rgba(7,25,45,0.14);}
.spotlight-surface{
  --mouse-x:50%;
  --mouse-y:50%;
}
.spotlight-surface::after{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at var(--mouse-x) var(--mouse-y), rgba(255,255,255,.7), transparent 46%);
  opacity:.72;
  pointer-events:none;
}
.spotlight-surface > *{position:relative;z-index:1;}

@keyframes marqueeMove{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@keyframes floatGlow{
  0%,100%{transform:translate3d(0,0,0) scale(1);}
  50%{transform:translate3d(10px,-16px,0) scale(1.08);}
}
@keyframes spinSlow{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}

@media (max-width: 1100px){
  .hero-layout,
  .company-grid,
  .contact-grid,
  .quote-layout,
  .posts-layout{
    grid-template-columns:1fr;
  }
  .card-grid--4,
  .highlight-grid,
  .value-grid,
  .recruit-grid,
  .deliverable-grid,
  .flow-grid,
  .selection-flow,
  .card-grid--3,
  .news-grid,
  .pillars-grid,
  .related-grid{
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 880px){
  .header-nav{
    position:fixed;
    top:84px;
    left:20px;
    right:20px;
    display:grid;
    gap:18px;
    padding:22px;
    border-radius:24px;
    border:1px solid var(--line);
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(24px);
    box-shadow:var(--shadow-lg);
    transform:translateY(-16px);
    opacity:0;
    visibility:hidden;
    transition:opacity var(--transition), transform var(--transition), visibility var(--transition);
  }
  body.nav-open .header-nav{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  .primary-nav .menu,
  .primary-nav__list{
    flex-direction:column;
    align-items:flex-start;
    gap:16px;
  }
  .header-nav .button{width:100%;}
  .nav-toggle{display:inline-flex;}
  .site-header .button--small{display:none;}
  .hero h1{max-width:12ch;}
  .metric-grid{grid-template-columns:1fr;}
  .contact-methods{grid-template-columns:1fr;}
  .footer-top,
  .footer-bottom{
    flex-direction:column;
    align-items:flex-start;
  }
  .footer-nav{justify-content:flex-start;}
}

@media (max-width: 640px){
  .container{width:min(var(--container), calc(100% - 28px));}
  .hero--home,
  .hero,
  .page-hero{padding-top:44px;}
  .hero-layout{padding-bottom:48px;}
  .page-hero{padding-bottom:56px;}
  .button-row{flex-direction:column;align-items:stretch;}
  .button{width:100%;}
  .card-grid--4,
  .highlight-grid,
  .value-grid,
  .recruit-grid,
  .deliverable-grid,
  .flow-grid,
  .selection-flow,
  .card-grid--3,
  .news-grid,
  .pillars-grid,
  .related-grid{
    grid-template-columns:1fr;
  }
  .profile-list > div{grid-template-columns:1fr;gap:8px;}
  .form-grid{grid-template-columns:1fr;}
  .site-header{position:sticky;}
  .header-inner{min-height:76px;}
  .brand-wordmark,.custom-logo-link img{height:42px;}
  .hero h1,
  .page-hero h1,
  .section-heading h2,
  .cta-panel h2{letter-spacing:-.03em;}
}
