/* Only the homepage continuation below the impact counters. */
.sp-section { padding: 110px 0; background: #101010; color: #fff; }
.sp-section h2 { font-size: clamp(32px, 3.6vw, 52px); line-height: 1.12; }
.sp-eyebrow { color: var(--primary-color); font-size: 13px; font-weight: 700; letter-spacing: .12em; margin-bottom: 20px; }
.sp-section p { color: rgba(255,255,255,.82); line-height: 1.75; }
.sp-section .btn-main { min-height: 48px; max-width: 100%; white-space: normal; display: inline-flex; align-items: center; justify-content: center; }
.sp-section a:focus-visible { outline: 2px solid #fff; outline-offset: 5px; }
.sp-story { position: relative; isolation: isolate; padding: 0; overflow: hidden; }
.sp-story__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; z-index: -2; }
.sp-story::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(16,16,16,.97) 0%, rgba(16,16,16,.9) 27%, rgba(16,16,16,.16) 55%, rgba(16,16,16,.08) 100%); }
.sp-story__content { width: 34%; padding: 95px 0; min-height: 660px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.sp-story h2 { font-size: clamp(40px, 4vw, 60px); }
.sp-story .sp-story__lead { font-size: 20px; line-height: 1.55; color: #fff; }
.sp-story__detail { font-size: 15px; margin-bottom: 28px; }
.sp-founder__layout { display: grid; grid-template-columns: .9fr 1fr; align-items: center; gap: clamp(40px, 7vw, 100px); }
.sp-founder__image { display: block; width: 100%; height: auto; border-radius: 16px; }
.sp-founder__mobile-image { display: none; }
.sp-founder__copy > p { font-size: 17px; }
.sp-achievements { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; padding: 0; margin: 30px 0 36px; }
.sp-achievements li { border: 1px solid #424242; padding: 10px 13px; font-size: 11px; font-weight: 600; letter-spacing: .05em; color: #fff; }
.sp-projects { padding-top: 25px; }
.sp-projects__intro { max-width: 710px; margin-bottom: 45px; }
.sp-projects__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sp-project { background: #191919; border: 1px solid #303030; border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.sp-project__placeholder { aspect-ratio: 16 / 10; background: #202020; border-bottom: 1px solid #333; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: #a7a7a7; }
.sp-project__placeholder svg { width: 36px; height: 36px; opacity: .55; }
.sp-project__placeholder span { font-size: 12px; letter-spacing: .04em; }
.sp-project__body { padding: 28px; flex: 1; display: flex; flex-direction: column; align-items: flex-start; }
.sp-project__year { color: var(--primary-color); font-size: 14px; font-weight: 700; margin-bottom: 14px; }
.sp-project h3 { font-size: 23px; line-height: 1.3; margin-bottom: 15px; }
.sp-project p { font-size: 15px; margin-bottom: 22px; }
.sp-project__link { margin-top: auto; min-height: 48px; display: inline-flex; align-items: center; gap: 18px; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .05em; }
.sp-project__link span { color: var(--primary-color); font-size: 23px; }
.sp-projects__footer { text-align: center; margin-top: 42px; }
@media (max-width: 1199px) {
  .sp-story__image { position: relative; display: block; height: auto; z-index: 0; }
  .sp-story::before { display: none; }
  .sp-story__content { width: 100%; min-height: 0; padding: 40px 0 65px; max-width: 720px; }
  .sp-story h2 { font-size: clamp(34px, 6vw, 52px); }
}
@media (max-width: 991px) {
  .sp-section:not(.sp-story) { padding: 72px 0; }
  .sp-founder__layout { grid-template-columns: 1fr 1fr; gap: 32px; }
  .sp-projects__grid { gap: 16px; }
  .sp-project__body { padding: 20px; }
  .sp-project h3 { font-size: 20px; }
}
@media (max-width: 767px) {
  .sp-section:not(.sp-story) { padding: 56px 0; }
  .sp-founder__layout, .sp-projects__grid { grid-template-columns: 1fr; }
  .sp-founder__layout { gap: 32px; }
  .sp-founder .sp-founder__image { display: none; }
  .sp-founder .sp-founder__mobile-image { display: block; width: 100%; height: auto; margin-bottom: 24px; border-radius: 16px; }
  .sp-story__content { padding: 32px 0 48px; }
  .sp-story .sp-story__lead { font-size: 18px; }
  .sp-eyebrow { font-size: 12px; margin-bottom: 16px; }
  .sp-projects__grid { gap: 24px; }
  .sp-project__body { padding: 24px; }
  .sp-project h3 { font-size: 23px; }
  .sp-projects__intro { margin-bottom: 30px; }
}

/* News-only additions; existing project styles stay unchanged. */
.sp-news { padding-top: 25px; }
.sp-news__demo { color: #aaa; font-size: 12px; }
.sp-news__image { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; object-position: 50% 50%; border-bottom: 1px solid #333; }
.sp-news__meta { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 9px; margin-bottom: 16px; font-size: 11px; line-height: 1.6; color: #aaa; }
.sp-news__category { color: var(--primary-color); font-weight: 700; }
.sp-news__excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.sp-scroll-top { cursor: pointer; }
.sp-scroll-top::after { content: ""; position: absolute; top: 0; left: -12px; width: 44px; height: 240px; }
.sp-scroll-top-line { pointer-events: none; }
@media (max-width: 767px) {
  .sp-scroll-top, .sp-scroll-top-line { display: block; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .sp-news .sp-projects__grid { grid-template-columns: 1fr; }
  .sp-news .sp-news__card { max-width: 560px; width: 100%; margin-inline: auto; }
}
