.ds-hero {
  position: relative;
  overflow: hidden;
}

.ds-hero-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1;
}

.ds-hero-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 100px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 56px;
}

.ds-hero-text {
  max-width: 520px;
}

.ds-hero-meta {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 24px;
}

.ds-hero-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 44px;
  line-height: 1.2;
  color: #FFFFFF;
  margin-bottom: 24px;
}

.ds-hero-intro {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 17px;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.9);
}

.ds-hero-card {
  flex-shrink: 0;
  width: 420px;
  height: 340px;
  background: #FFFFFF;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 30px 70px rgba(2, 20, 90, 0.35);
  overflow: hidden;
}

.ds-hero-card-img {
  width: 70%;
  object-fit: contain;
}

/* ---------- Why this system exists ---------- */

.why {
  padding: 120px 40px;
}

.why-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  gap: 56px;
}

.why-left {
  flex: 1 1 460px;
}

.section-eyebrow {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: var(--blue);
  margin-bottom: 8px;
}

.why-heading {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 28px;
  color: #1A1A1A;
  margin-bottom: 24px;
}

.why-desc {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 17px;
  line-height: 1.6;
  color: #33415C;
  margin-bottom: 20px;
}

.why-cards {
  flex: 1 1 460px;
  display: flex;
  gap: 16px;
}

.why-card {
  flex: 1;
  border: 1px solid #E7ECF3;
  border-radius: 12px;
  padding: 20px;
  align-self: flex-start;
}

.why-card-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8A96AC;
  margin-bottom: 12px;
}

.why-card-text {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
  color: #33415C;
}

@media (max-width: 980px) {
  .ds-hero-inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .ds-hero-card {
    width: 100%;
    height: 280px;
    align-self: center;
  }

  .ds-hero-title {
    font-size: 34px;
  }

  .why-inner {
    flex-direction: column;
  }

  .why-cards {
    flex-direction: column;
  }
}

/* ---------- Foundation ---------- */

.foundation {
  padding: 0 40px 120px;
}

.foundation-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.foundation-eyebrow {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 12px;
}

.foundation-heading {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 26px;
  color: #1A1A1A;
  margin-bottom: 40px;
}

.foundation-card {
  display: flex;
  border: 1px solid #E7ECF3;
  border-radius: 16px;
  margin-bottom: 24px;
}

.foundation-col {
  flex: 1;
  padding: 32px 36px;
}

.foundation-col + .foundation-col {
  border-left: 1px solid #E7ECF3;
}

.foundation-col-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 24px;
}

.type-font-name {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: #1A1A1A;
  margin-bottom: 20px;
}

.type-scale {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 20px;
}

.type-scale-row {
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.type-scale-size {
  flex-shrink: 0;
  width: 22px;
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 13px;
  color: #8A96AC;
}

.type-scale-sample {
  font-family: 'Inter', sans-serif;
  color: #1A1A1A;
}

.type-weights {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 14px;
  color: #1A1A1A;
}

.palette-group-label {
  font-family: 'Inter', sans-serif;
  font-weight: 700;
  font-size: 13px;
  color: #1A1A1A;
  margin-bottom: 14px;
}

.palette-row {
  display: flex;
  gap: 20px;
  margin-bottom: 28px;
}

.palette-row:last-child {
  margin-bottom: 0;
}

.swatch {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.swatch-color {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  display: block;
}

.swatch-hex {
  font-family: 'Inter', sans-serif;
  font-weight: 400;
  font-size: 12px;
  color: #8A96AC;
}

.asset-grid {
  display: flex;
  gap: 20px;
}

.asset-left {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.asset-left-bottom {
  display: flex;
  gap: 20px;
}

.asset-left-bottom .asset-cell {
  flex: 1;
}

.asset-cell {
  border: 1px solid #E7ECF3;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #FFFFFF;
}

.asset-cell--wide {
  height: 320px;
}

.asset-cell--tall {
  flex: 1;
}

.asset-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (max-width: 900px) {
  .foundation-card {
    flex-direction: column;
  }

  .foundation-col + .foundation-col {
    border-left: none;
    border-top: 1px solid #E7ECF3;
  }

  .asset-grid {
    flex-direction: column;
  }

  .asset-cell--tall {
    height: 320px;
  }
}

/* ---------- Token Architecture ---------- */

.tokens {
  padding: 0 40px 120px;
}

.tokens-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.token-table {
  display: flex;
  gap: 24px;
}

.token-card {
  flex: 1;
  border: 1px solid #E7ECF3;
  border-radius: 12px;
  overflow: hidden;
}

.token-card-header {
  background: #EEF0F3;
  border-bottom: 1px solid #E7ECF3;
  padding: 16px;
  text-align: center;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 18px;
  color: #1A1A1A;
}

.token-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 28px;
}

.token-row + .token-row {
  border-top: 1px solid #F1F3F6;
}

.token-row-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 17px;
  color: #1A1A1A;
}

.token-row-value {
  display: flex;
  align-items: center;
  gap: 12px;
}

.token-swatch {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  display: block;
}

.token-row-name {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 17px;
  color: #1A1A1A;
}

/* ---------- Component Library ---------- */

.component-library {
  padding: 0 40px 120px;
}

.component-library-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.component-lib-card {
  border: 1px solid #E7ECF3;
  border-radius: 12px;
  overflow: hidden;
}

.component-lib-card + .component-lib-card {
  margin-top: 24px;
}

.component-lib-title {
  padding: 24px 28px;
  border-bottom: 1px solid #E7ECF3;
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 20px;
  color: #1A1A1A;
}

.component-lib-body {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 56px 24px;
}

.component-lib-body--dark {
  background: #0D0D0F;
  padding: 64px 24px;
}

.component-lib-shot {
  width: 100%;
  max-width: 420px;
  height: auto;
  display: block;
}

.component-lib-shot--frame {
  max-width: 700px;
  border-radius: 8px;
  box-shadow: 0 30px 70px rgba(0, 0, 0, 0.5);
}

@media (max-width: 900px) {
  .token-table {
    flex-direction: column;
  }
}

/* ---------- Icon Library ---------- */

.icon-library {
  padding: 0 40px 120px;
}

.icon-library-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.icon-library-grid {
  display: flex;
  gap: 40px;
  align-items: stretch;
}

.icon-library-cards {
  flex: 1;
  display: flex;
  gap: 16px;
}

.icon-lib-card {
  flex: 1;
  border: 1px solid #E7ECF3;
  border-radius: 12px;
  padding: 20px;
}

.icon-lib-label {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8A96AC;
  margin-bottom: 16px;
}

.icon-lib-text {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.5;
  color: #1A1A1A;
}

.icon-library-shot-wrap {
  flex: 1.3;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 20px 50px rgba(20, 30, 60, 0.1);
}

.icon-library-shot {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 980px) {
  .icon-library-grid {
    flex-direction: column;
  }

  .icon-library-cards {
    flex-direction: column;
  }
}

/* ---------- Motion ---------- */

.motion {
  padding: 0 40px 120px;
}

.motion-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.motion-card {
  border: 1px solid #E7ECF3;
  border-radius: 16px;
  overflow: hidden;
}

.motion-card + .motion-card {
  margin-top: 32px;
}

.motion-card-header {
  padding: 22px 28px;
  border-bottom: 1px solid #E7ECF3;
}

.motion-card-title {
  font-family: 'DM Sans', sans-serif;
  font-weight: 600;
  font-size: 20px;
  color: #1A1A1A;
  margin-bottom: 4px;
}

.motion-card-subtitle {
  font-family: 'DM Sans', sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #8A96AC;
}

.motion-card-body {
  background: #EDF2FE;
  padding: 40px;
}

.motion-micro {
  display: grid;
  grid-template-columns: 340px 1fr;
  gap: 24px;
}

.payment-pending-card {
  display: flex;
}

.payment-pending-shot {
  width: 100%;
  height: auto;
  align-self: flex-start;
  border-radius: 16px;
  box-shadow: 0 20px 44px rgba(20, 30, 60, 0.14);
}

.scan-state-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.scan-state-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border: 1.5px dashed #C7D0E8;
  border-radius: 14px;
  padding: 32px;
  background: #FFFFFF;
}

.scan-state-cell--success {
  border-color: #1E7A46;
}

.scan-state-cell--failed {
  border-color: #C0392B;
  color: #C0392B;
}

.scan-state-icon {
  width: 56px;
  height: 56px;
  object-fit: contain;
}

.scan-state-icon--zoom {
  transform: scale(2.6);
}

.motion-ux {
  display: flex;
  align-items: stretch;
  gap: 24px;
}

.ux-stack {
  flex: 1.3;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.ux-stack-back,
.ux-stack-front {
  display: block;
  width: 100%;
  border-radius: 10px;
  box-shadow: 0 16px 32px rgba(20, 30, 60, 0.14);
}

.ux-stack-back {
  filter: brightness(0.55);
}

.onboarding-phone {
  flex: 1;
  display: flex;
}

.onboarding-phone-shot {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: 0 20px 40px rgba(20, 30, 60, 0.2);
}

@media (max-width: 900px) {
  .motion-micro {
    grid-template-columns: 1fr;
  }

  .motion-ux {
    flex-direction: column;
  }

  .ux-stack {
    width: 100%;
  }

  .onboarding-phone {
    width: 200px;
  }
}

/* ---------- The System in Use ---------- */

.system-in-use {
  padding: 0 40px 120px;
}

.system-in-use-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.use-panel {
  display: flex;
  gap: 24px;
  background: #DCE4FA;
  border-radius: 20px;
  padding: 40px;
}

.use-panel-left {
  flex: 0 0 340px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.use-panel-right {
  flex: 1;
  display: flex;
  align-items: flex-start;
}

.use-shot {
  display: block;
  width: 100%;
  border-radius: 12px;
  box-shadow: 0 20px 44px rgba(20, 30, 60, 0.14);
}

.use-shot--main {
  width: 100%;
}

@media (max-width: 980px) {
  .use-panel {
    flex-direction: column;
    padding: 24px;
  }

  .use-panel-left {
    flex: none;
    flex-direction: row;
  }
}

@media (max-width: 600px) {
  .use-panel-left {
    flex-direction: column;
  }
}

/* ---------- Impact ---------- */

.impact {
  padding: 0 40px 140px;
}

.impact-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.impact-bar {
  display: flex;
  border: 1px solid #E7ECF3;
  border-radius: 16px;
  overflow: hidden;
}

.impact-stat-col {
  flex: 1;
  padding: 32px 28px;
}

.impact-stat-col + .impact-stat-col {
  border-left: 1px solid #E7ECF3;
}

.impact-stat-figure {
  font-family: 'DM Sans', sans-serif;
  font-weight: 700;
  font-size: 32px;
  color: var(--blue);
  margin-bottom: 14px;
}

.impact-stat-caption {
  font-family: 'DM Sans', sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
  color: #33415C;
}

@media (max-width: 900px) {
  .impact-bar {
    flex-direction: column;
  }

  .impact-stat-col + .impact-stat-col {
    border-left: none;
    border-top: 1px solid #E7ECF3;
  }
}

/* ---------- Feedback Patterns ---------- */

.feedback-patterns {
  padding: 0 40px 120px;
}

.feedback-patterns-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.feedback-cards {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
}

.feedback-cards .icon-lib-card {
  flex: 1;
}

@media (max-width: 900px) {
  .feedback-cards {
    flex-direction: column;
  }
}
