/* Home page: hero, the three doors, how it works. */
.home main { max-width: 1200px; margin: 0 auto; padding: 0 var(--gutter); overflow-x: clip; }

.hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 5vw, 72px); align-items: center;
  padding: clamp(32px, 6vw, 80px) 0 clamp(40px, 6vw, 72px); }
.hero h1 { font-size: clamp(38px, 5.4vw, 64px); font-weight: 700; margin: 18px 0 20px; }
.hero h1 em { font-style: normal; color: var(--teal); position: relative; white-space: nowrap; }
.hero h1 em::after { content: ""; position: absolute; left: 0; right: 0; bottom: .02em; height: .14em;
  background: var(--sand); z-index: -1; transform-origin: left; animation: home-underline 1s .6s var(--ease) both; }
@keyframes home-underline { from { transform: scaleX(0); } }
.hero-lede { font-size: 18px; color: var(--muted); max-width: 540px; margin: 0 0 30px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-proof { list-style: none; display: flex; flex-wrap: wrap; gap: 28px; padding: 26px 0 0; margin: 34px 0 0;
  border-top: 1px solid var(--line); }
.hero-proof li { display: flex; flex-direction: column; max-width: 170px; }
.hero-proof b { font: 700 24px/1.1 var(--head); color: var(--teal); }
.hero-proof span { font-size: 13px; color: var(--muted); }

.hero-art { position: relative; }
.sheet-frame { background-color: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: clamp(14px, 2vw, 26px); box-shadow: var(--shadow); }
.hero-art::before { content: ""; position: absolute; inset: 22px -18px -18px 22px; border: 1px solid var(--sand);
  border-radius: var(--radius-lg); z-index: -1; }

.doors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; padding-bottom: clamp(48px, 7vw, 96px); }
.door { display: flex; flex-direction: column; gap: 12px; padding: 28px 26px 24px; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--radius-lg); color: var(--ink); text-decoration: none;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.door:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--sage); }
.door-no { font: 600 12px/1 var(--head); letter-spacing: .16em; color: var(--sage); }
.door h2 { font-size: 23px; font-weight: 600; }
.door p { margin: 0; color: var(--muted); font-size: 15px; flex: 1; }
.door-go { font: 600 14.5px/1 var(--head); color: var(--teal); display: inline-flex; gap: 8px; margin-top: 8px; }
.door:hover .door-go::after { transform: translateX(4px); }
.door-dark { background: var(--teal); border-color: var(--teal); color: #fff; }
.door-dark p { color: var(--on-teal); }
.door-dark .door-no { color: var(--sand); }
.door-dark .door-go { color: #fff; }
.door-dark:hover { border-color: var(--teal-deep); background: var(--teal-deep); }

.how { border-top: 1px solid var(--line); padding: clamp(40px, 6vw, 72px) 0; }
.how-steps { list-style: none; counter-reset: step; display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 32px; padding: 0; margin: 24px 0 0; }
.how-steps li { counter-increment: step; position: relative; padding-top: 22px; border-top: 1px solid var(--ink); }
.how-steps li::before { content: counter(step, decimal-leading-zero); position: absolute; top: -9px; left: 0;
  background: var(--bg); padding-right: 10px; font: 700 13px/1 var(--head); color: var(--teal); }
.how-steps h3 { font-size: 20px; margin-bottom: 8px; }
.how-steps p { margin: 0; color: var(--muted); }

@media (max-width: 900px) {
  .hero { grid-template-columns: 1fr; }
  .hero-art { order: -1; max-width: 520px; }
  .doors, .how-steps { grid-template-columns: 1fr; }
}
