:root {
  --public-shadow-glow:0 28px 70px rgb(4 17 32 / .36);
}

html,
body {
  overflow-x:hidden;
}

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

.tp-public-shell .tp-public-container,
.tp-public-shell .public-container,
.tp-public-page .tp-public-container,
.tp-public-page .public-container {
  width:min(100% - 32px, 1180px);
  max-width:1180px;
  margin-inline:auto;
}

.public-body {
  margin:0;
  min-height:100vh;
  padding-top:0 !important;
  color:var(--tp-public-text);
}

.public-shell {
  position:relative;
  min-height:100vh;
  overflow-x:hidden;
}

.public-shell::before,
.public-shell::after {
  content:"";
  position:absolute;
  pointer-events:none;
  filter:blur(22px);
}

.public-shell::before {
  top:6rem;
  right:-4rem;
  width:17rem;
  height:17rem;
  border-radius:999px;
  background:rgb(42 194 122 / .14);
}

.public-shell::after {
  left:-6rem;
  bottom:12rem;
  width:20rem;
  height:20rem;
  border-radius:999px;
  background:rgb(34 211 238 / .10);
}

.public-main {
  padding:0 0 5rem;
}

.auth-section.public-container {
  width:min(100% - 32px, 1180px);
  min-height:calc(100vh - 9.75rem);
  display:grid;
  align-items:center;
  margin-bottom:0 !important;
  padding:clamp(1rem, 2vh, 2rem) 0 clamp(1.25rem, 3vh, 2.5rem);
}

.tp-public-shell .tp-section,
.tp-public-page .tp-section {
  margin-bottom:clamp(4rem, 7vw, 5.75rem);
}

.public-header {
  z-index:30;
}

.public-header .tp-header-inner {
  display:grid;
  grid-template-columns:auto minmax(0, 1fr) auto auto;
  align-items:center;
  width:min(100% - 32px, 1180px);
  max-width:1180px;
  margin-inline:auto;
}

.public-nav {
  justify-content:center;
}

.public-header-actions {
  justify-content:flex-end;
}

.public-mobile-menu {
  display:none;
  margin-left:auto;
}

.public-mobile-menu summary {
  list-style:none;
  cursor:pointer;
  color:var(--tp-public-text);
  font-weight:800;
  padding:.8rem 1rem;
  border:1px solid rgba(255, 255, 255, .12);
  border-radius:1rem;
  background:rgba(255, 255, 255, .05);
}

.public-mobile-menu summary::-webkit-details-marker {
  display:none;
}

.public-mobile-panel {
  display:grid;
  gap:.8rem;
  margin-top:.8rem;
  padding:1rem;
  border:1px solid var(--tp-public-border);
  border-radius:1.2rem;
  background:rgba(7, 19, 29, .94);
  box-shadow:var(--public-shadow-glow);
}

.public-mobile-panel .tp-nav-link {
  min-height:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
}

.public-hero,
.public-section,
.auth-layout {
  animation:public-fade-up 620ms ease both;
}

.public-hero {
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(460px, 560px);
  gap:clamp(32px, 6vw, 72px);
  align-items:center;
  justify-content:center;
  padding-top:clamp(2rem, 4vw, 4rem);
}

.public-hero > *,
.long-run-layout > *,
.final-cta-panel > *,
.public-action-row > * {
  min-width:0;
}

.public-hero .tp-title {
  font-size:var(--tp-text-hero);
  line-height:.94;
  letter-spacing:-.065em;
}

.auth-aside .tp-title {
  font-size:clamp(2.4rem, 1.8rem + 2.1vw, 3.6rem);
}

.public-action-row {
  margin-top:.2rem;
  flex-wrap:wrap;
}

.public-chip-list,
.public-bullet-list {
  margin:0;
  padding:0;
  list-style:none;
}

.public-chip-list {
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
}

.public-chip-list li {
  padding:.62rem .95rem;
  border:1px solid rgba(255, 255, 255, .09);
  border-radius:var(--tp-radius-pill);
  background:rgba(255, 255, 255, .04);
  color:var(--tp-public-text);
  font-size:.93rem;
  font-weight:700;
}

.public-bullet-list {
  display:grid;
  gap:.82rem;
}

.public-bullet-list li {
  position:relative;
  padding-left:1.2rem;
  color:var(--tp-public-text-muted);
  line-height:1.65;
}

.public-bullet-list li::before {
  content:"";
  position:absolute;
  left:0;
  top:.62rem;
  width:.42rem;
  height:.42rem;
  border-radius:999px;
  background:linear-gradient(135deg, var(--tp-accent-green), var(--tp-accent-cyan));
}

.hero-mockup,
.benefit-card,
.step-card,
.roadbook-preview,
.beta-panel,
.final-cta-panel,
.auth-card,
.auth-preview-card {
  box-shadow:var(--public-shadow-glow) !important;
}

.hero-mockup,
.beta-panel,
.final-cta-panel,
.auth-card {
  padding:1.4rem;
}

.auth-preview-card,
.benefit-card,
.step-card,
.roadbook-preview {
  padding:1.25rem;
}

.hero-mockup {
  display:grid;
  gap:1rem;
  justify-self:end;
  width:100%;
  max-width:560px;
  min-width:0;
  overflow:hidden;
}

.tp-course-mockup {
  width:100%;
  max-width:560px;
  min-width:0;
}

.hero-mockup-top,
.hero-panel-heading,
.roadbook-preview-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:.9rem;
}

.hero-mockup-label,
.roadbook-preview-head p,
.beta-points span,
.hero-kpi-grid span,
.hero-panel-heading span,
.auth-preview-card span {
  margin:0;
  color:var(--tp-public-text-muted);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.hero-mockup h2,
.section-heading .tp-title,
.roadbook-preview h3,
.auth-card .tp-title {
  margin:0;
}

.hero-status-pill {
  display:inline-flex;
  align-items:center;
  padding:.48rem .8rem;
  border-radius:var(--tp-radius-pill);
}

.hero-kpi-grid,
.benefit-grid,
.step-grid,
.beta-points {
  display:grid;
  gap:1rem;
}

.hero-kpi-grid {
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.hero-kpi-grid div,
.beta-points div {
  padding:1rem;
  border:1px solid rgba(255, 255, 255, .08);
  border-radius:1rem;
  background:rgba(255, 255, 255, .03);
}

.hero-kpi-grid strong,
.beta-points strong {
  display:block;
  margin-top:.45rem;
  font-size:1.15rem;
  font-weight:900;
  letter-spacing:-.03em;
  color:var(--tp-public-text);
}

.hero-mockup-panel {
  padding:1rem;
  border-radius:1.15rem;
  background:rgba(255, 255, 255, .035);
  border:1px solid rgba(255, 255, 255, .06);
}

.hero-progress-track {
  height:.75rem;
  margin:.85rem 0 .7rem;
  border-radius:var(--tp-radius-pill);
  background:rgba(255, 255, 255, .08);
  overflow:hidden;
}

.hero-progress-fill {
  display:block;
  width:68%;
  height:100%;
  background:linear-gradient(90deg, var(--tp-accent-green), var(--tp-accent-cyan) 70%, #facc15);
}

.hero-panel-note {
  margin:0;
  color:var(--tp-public-text-muted);
  font-size:.93rem;
  line-height:1.6;
}

.tp-mini-roadbook {
  width:100%;
  max-width:100%;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}

.hero-roadbook-table {
  width:100%;
  min-width:min(100%, 320px);
  margin-top:.9rem;
  border-collapse:collapse;
  table-layout:auto;
  font-size:.92rem;
}

.hero-roadbook-table th,
.hero-roadbook-table td {
  padding:.7rem .55rem;
  border-bottom:1px solid rgba(255, 255, 255, .08);
  text-align:left;
  color:var(--tp-public-text);
}

.hero-roadbook-table th {
  color:var(--tp-public-text-muted);
  font-size:.75rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.hero-roadbook-table th:first-child,
.hero-roadbook-table td:first-child {
  width:auto;
  min-width:0;
}

.hero-roadbook-table th:nth-child(2),
.hero-roadbook-table td:nth-child(2),
.hero-roadbook-table th:last-child,
.hero-roadbook-table td:last-child {
  width:1%;
  white-space:nowrap;
}

.hero-roadbook-table th:last-child,
.hero-roadbook-table td:last-child {
  text-align:right;
}

.section-heading {
  display:grid;
  gap:.85rem;
  max-width:46rem;
}

.benefit-grid,
.step-grid {
  grid-template-columns:repeat(2, minmax(0, 1fr));
  margin-top:2rem;
}

.benefit-card,
.step-card {
  display:grid;
  gap:.85rem;
}

.benefit-index,
.step-number {
  display:inline-grid;
  place-items:center;
  width:2.1rem;
  height:2.1rem;
  border-radius:50%;
  background:rgba(34, 211, 238, .12);
  color:#b8f4ff;
  font-size:.84rem;
  font-weight:900;
}

.benefit-card h3,
.step-card h3,
.roadbook-preview h3 {
  margin:0;
  color:var(--tp-public-text);
  font-size:1.18rem;
  letter-spacing:-.03em;
}

.benefit-card p,
.step-card p,
.roadbook-preview-body,
.auth-switch-line,
.auth-divider,
.auth-helper-note {
  margin:0;
  color:var(--tp-public-text-muted);
  line-height:1.68;
}

.long-run-layout {
  display:grid;
  grid-template-columns:minmax(0, 1.04fr) minmax(18rem, .96fr);
  gap:1.5rem;
  align-items:start;
}

.roadbook-preview-body {
  display:grid;
  gap:.82rem;
  margin-top:1rem;
}

.roadbook-line {
  display:grid;
  gap:.3rem;
  padding:.9rem 0;
  border-bottom:1px solid rgba(255, 255, 255, .08);
}

.roadbook-line:last-child {
  border-bottom:0;
}

.roadbook-line span {
  color:var(--tp-public-text-muted);
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.roadbook-line strong {
  color:var(--tp-public-text);
  font-size:1rem;
}

.beta-points {
  margin-top:1.5rem;
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.final-cta-panel {
  display:flex;
  justify-content:space-between;
  gap:1.5rem;
  align-items:center;
}

.auth-layout {
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(31rem, .84fr);
  gap:clamp(1.6rem, 3vw, 3rem);
  align-items:center;
  padding-top:clamp(.5rem, 1.5vw, 1.25rem);
}

.auth-aside {
  padding-right:clamp(.25rem, 1vw, .9rem);
}

.auth-aside .tp-section-header,
.auth-aside .public-bullet-list,
.auth-preview-card {
  max-width:37rem;
}

.auth-card {
  width:min(100%, 37.5rem);
  justify-self:end;
}

.auth-card .tp-title {
  font-size:clamp(1.45rem, 1.2rem + .8vw, 2rem);
}

.auth-card-head {
  margin-bottom:.35rem;
}

.auth-card .tp-form {
  margin-top:1.25rem;
}

.auth-social-button,
.auth-submit {
  width:100%;
}

.auth-divider {
  text-align:center;
  font-size:var(--tp-text-sm);
}

.auth-switch-line,
.auth-switch-line a,
.auth-helper-note {
  color:var(--tp-public-text-muted);
}

.auth-switch-line a,
.auth-helper-note a {
  color:var(--tp-public-text);
}

.auth-alert {
  margin:1rem 0 0;
}

.public-footer {
  padding:0 0 2rem;
}

.public-footer p {
  margin:0;
  color:var(--tp-public-text-muted);
  font-size:var(--tp-text-sm);
}

@keyframes public-fade-up {
  from {
    opacity:0;
    transform:translateY(16px);
  }
  to {
    opacity:1;
    transform:translateY(0);
  }
}

@media (max-width:1100px) {
  .public-header .tp-header-inner,
  .public-hero,
  .long-run-layout,
  .auth-layout,
  .final-cta-panel,
  .beta-points {
    grid-template-columns:1fr;
  }

  .public-hero,
  .long-run-layout {
    justify-items:stretch;
  }

  .hero-mockup {
    justify-self:center;
    max-width:560px;
  }

  .public-header-actions {
    justify-content:flex-start;
  }

  .auth-card {
    width:100%;
    justify-self:stretch;
  }
}

@media (max-width:820px) {
  .public-header .tp-header-inner {
    display:flex;
    align-items:center;
  }

  .public-nav,
  .public-header-actions {
    display:none;
  }

  .public-mobile-menu {
    display:block;
  }

  .benefit-grid,
  .step-grid,
  .hero-kpi-grid,
  .beta-points {
    grid-template-columns:1fr;
  }
}

@media (max-width:620px) {
  .tp-public-shell .tp-public-container,
  .tp-public-shell .public-container,
  .tp-public-page .tp-public-container,
  .tp-public-page .public-container {
    width:min(100% - 24px, 1180px);
  }

  .public-action-row .button,
  .public-action-row .tp-button {
    width:100%;
    justify-content:center;
  }

  .public-hero .tp-title,
  .auth-aside .tp-title {
    font-size:clamp(2.2rem, 1.8rem + 5vw, 3rem);
  }

  .hero-mockup,
  .beta-panel,
  .final-cta-panel,
  .auth-card,
  .auth-preview-card {
    padding:1.1rem;
  }

  .public-chip-list {
    gap:.55rem;
  }

  .public-chip-list li,
  .hero-kpi-grid div,
  .beta-points div {
    padding:.78rem .85rem;
  }
}
