:root {
  --ink: #2b3038;
  --slate: #4a5563;
  --paper: #f5f4f8;
  --lavender: #dcd5f0;
  --lavender-deep: #76659e;
  --line: #dcdde3;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 320px;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: radial-gradient(circle at 88% 5%, #e7e1f5 0, transparent 27rem), var(--paper);
}

.shell { width: min(100% - 48px, 1040px); min-height: 100vh; margin: 0 auto; padding: 28px 0 36px; display: flex; flex-direction: column; }
.topbar { display: flex; justify-content: space-between; align-items: center; }
.brand { color: var(--ink); text-decoration: none; font-size: 22px; font-weight: 760; letter-spacing: -.8px; }
.status { display: inline-flex; align-items: center; gap: 8px; color: var(--slate); font-size: 14px; }
.status i { display: block; width: 8px; height: 8px; background: #78a483; border-radius: 50%; box-shadow: 0 0 0 4px #dceade; }
.hero { margin: clamp(90px, 18vh, 190px) 0 48px; }
.eyebrow { margin: 0 0 14px; color: var(--lavender-deep); font-size: 13px; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
h1 { margin: 0; max-width: 700px; font-size: clamp(48px, 7vw, 82px); line-height: .98; letter-spacing: -.065em; font-weight: 760; }
.lead { max-width: 420px; margin: 24px 0 0; color: var(--slate); font-size: 18px; line-height: 1.5; }
.modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.module { min-height: 130px; display: grid; grid-template-columns: 48px 1fr auto; align-items: center; gap: 16px; padding: 20px; color: var(--ink); text-decoration: none; background: rgba(255,255,255,.7); border: 1px solid var(--line); border-radius: 18px; transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease; }
.module:hover { transform: translateY(-2px); border-color: #bfb5d9; box-shadow: 0 10px 28px rgba(56, 51, 74, .08); }
.module-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--lavender-deep); color: #fff; font-weight: 800; font-size: 15px; }
.module strong, .module small { display: block; }
.module strong { font-size: 17px; letter-spacing: -.2px; }
.module small { margin-top: 5px; color: var(--slate); font-size: 14px; }
.module b { color: var(--lavender-deep); font-size: 20px; font-weight: 500; }
footer { margin-top: auto; padding-top: 62px; color: #858991; font-size: 13px; }

@media (max-width: 620px) {
  .shell { width: min(100% - 32px, 1040px); padding-top: 20px; }
  .status { font-size: 12px; }
  .hero { margin: 88px 0 38px; }
  .modules { grid-template-columns: 1fr; }
}
