/* Landing pública de Itaca University */
.lp { position: relative; color: var(--ink); overflow-x: clip; --lp-night: #00423c; --lp-ink-line: rgba(196, 236, 231, .26); }
.lp-bg { position: fixed; inset: 0; z-index: -2; background: #f4f6f7; pointer-events: none; }
.lp-bg svg { width: 100%; height: 100%; display: block; }
.lp-corners { position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, #000 62%, transparent 100%); mask-image: linear-gradient(to bottom, #000 62%, transparent 100%); }
.lp-corners svg { width: 100%; height: 100%; display: block; }
.lp-spark { position: absolute; width: 70px; height: 70px; transform: rotate(var(--r, 0deg)); pointer-events: none; z-index: -1; }
.lp-spark i { position: absolute; left: 50%; bottom: 50%; width: 7px; height: 30px; margin-left: -3.5px; background: linear-gradient(to top, transparent, var(--brand-strong)); clip-path: polygon(50% 0, 100% 100%, 0 100%); transform-origin: 50% 100%; }
.lp-spark i:nth-child(1) { transform: rotate(-38deg) translateY(-6px); }
.lp-spark i:nth-child(2) { transform: translateY(-6px); }
.lp-spark i:nth-child(3) { transform: rotate(38deg) translateY(-6px); opacity: .35; }
.lp-progress { position: fixed; z-index: 40; left: 0; top: 0; height: 3px; width: 100%; transform-origin: left; transform: scaleX(0); background: linear-gradient(90deg, var(--brand), var(--brand-soft)); pointer-events: none; }
.lp-bar.is-scrolled { box-shadow: 0 6px 24px -14px rgba(0, 35, 31, .35); }
.lp h1, .lp h2, .lp h3 { font-family: var(--font); margin: 0; letter-spacing: -.02em; line-height: 1.15; }
.lp h2 { font-size: clamp(26px, 3.4vw, 38px); font-weight: 800; }
.lp h3 { font-size: 18px; font-weight: 700; }
:where(.lp) p { margin: 0; }
.lp #lp-main:focus { outline: none; }
.lp-note { font-size: 13px; color: var(--muted); }

/* Barra */
.lp-bar { position: sticky; top: 0; z-index: 30; background: var(--surface); border-bottom: 1px solid var(--line); }
.lp-bar-in { max-width: 1200px; margin: 0 auto; height: var(--topbar-h); padding: 0 24px; display: flex; align-items: center; gap: 28px; }
.lp-links { display: flex; gap: 4px; flex: 1; }
.lp-link { background: none; border: 0; padding: 8px 12px; border-radius: var(--radius-s); font: 600 14px var(--font); color: var(--muted); cursor: pointer; }
.lp-link:hover { color: var(--ink); background: var(--surface-sunk); }

/* Héroe: texto a la izquierda, foto con marco desplazado a la derecha */
.lp-hero { position: relative; isolation: isolate; margin: 0 auto; padding: clamp(40px, 7vw, 88px) max(24px, calc((100% - 1200px) / 2)) clamp(48px, 7vw, 88px); display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 80px); align-items: center; }
.lp-hero-text h1 { max-width: 11ch; }
.lp-hero h1 .word { display: inline-block; white-space: nowrap; }
.lp-hero h1 .ch { display: inline-block; will-change: transform; }
.lp-hero h1 { font-size: clamp(36px, 5.6vw, 66px); font-weight: 800; line-height: 1.05; letter-spacing: -.03em; }
.lp-lead { margin-top: 22px; font-size: clamp(16px, 1.6vw, 19px); line-height: 1.65; color: var(--ink-2); max-width: 52ch; }
.lp-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.lp-photo { position: relative; margin: 0; isolation: isolate; }
.lp-photo::before { content: ''; position: absolute; inset: 0; transform: translate(14px, 14px); border: 2px solid var(--brand); border-radius: var(--radius); z-index: -1; }
.lp-photo img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); background: var(--brand-tint); box-shadow: 0 24px 48px -20px rgba(0, 35, 31, .45); }
.lp-hero-photo img { aspect-ratio: 5 / 4; }

/* Cifras */
.lp-band { background: var(--brand-deep); color: var(--on-dark); position: relative; }
.lp-stats { max-width: 1200px; margin: 0 auto; padding: 36px 24px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.lp-stats div { display: flex; flex-direction: column-reverse; gap: 6px; border-top: 2px solid var(--on-dark); padding-top: 14px; }
.lp-stats dd { margin: 0; font: 800 clamp(30px, 4vw, 46px)/1 var(--font); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.lp-stats dt { font-size: 14px; line-height: 1.4; color: #c4ece7; max-width: 22ch; }

/* Secciones */
.lp-sec { max-width: 1200px; margin: 0 auto; padding: clamp(56px, 8vw, 104px) 24px; }
.lp-head { max-width: 62ch; margin-bottom: 44px; }
.lp-head p { margin-top: 14px; font-size: 17px; line-height: 1.65; color: var(--ink-2); }
.lp-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: center; }
.lp-split-rev .lp-copy { order: -1; }
.lp-copy p { margin-top: 16px; font-size: 17px; line-height: 1.7; color: var(--ink-2); }
.lp-copy h2 + p { margin-top: 20px; }
.lp-checks, .lp-schools { list-style: none; margin: 24px 0 0; padding: 0; }
.lp-checks li { position: relative; padding: 9px 0 9px 32px; font-weight: 600; font-size: 15px; border-top: 1px solid var(--line-strong); }
.lp-checks li:first-child { border-top: 2px solid var(--ink); }
.lp-checks li::before { content: '✓'; position: absolute; left: 4px; top: 9px; font: 800 16px/1.6 var(--font); color: var(--brand-strong); }
.lp-checks li:last-child { border-bottom: 1px solid var(--line); }

/* Filosofía */
.lp-dark { max-width: none; background: var(--brand-deep); color: var(--on-dark); padding-left: max(24px, calc((100% - 1200px) / 2)); padding-right: max(24px, calc((100% - 1200px) / 2)); }
.lp-wrap { max-width: 1200px; margin: 0 auto; }
.lp-dark .lp-dream { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 88px); align-items: end; padding-bottom: 56px; border-bottom: 1px solid var(--lp-ink-line); }
.lp-quote { margin-top: 24px; font: 800 clamp(24px, 3.6vw, 40px)/1.25 var(--font); letter-spacing: -.02em; color: #fff; text-wrap: balance; }
.lp-dream-side h3 { font-size: 14px; color: var(--brand-soft); margin-bottom: 10px; }
.lp-dream-side p { font-size: 20px; line-height: 1.5; font-weight: 600; }
.lp-principles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lp-principles li { padding: 36px 24px 0 0; display: flex; flex-direction: column; gap: 14px; }
.lp-principles li + li { padding-left: 24px; border-left: 1px solid var(--lp-ink-line); }
.lp-num { font: 800 40px/1 var(--font); color: var(--brand-soft); font-variant-numeric: tabular-nums; }
.lp-principles h3 { font-size: 18px; margin-bottom: 8px; }
.lp-principles p { font-size: 15px; line-height: 1.65; color: #c4ece7; }

/* Escalera de niveles */
.lp-stairs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; align-items: start; --rise: 216px; }
.lp-stairs li { display: grid; grid-template-rows: var(--rise) auto 1fr; align-content: start; row-gap: 8px; }
.lp-step { height: calc(56px + var(--step) * 40px); border-radius: var(--radius-s) var(--radius-s) 0 0; background: var(--lvl); display: flex; align-items: flex-start; padding: 12px 14px; transform-origin: bottom; align-self: end; }
.lp-step span { font: 800 22px/1 var(--font); color: #fff; font-variant-numeric: tabular-nums; }
.lp-stairs h3 { margin-top: 6px; font-size: 20px; }
.lp-stairs p { font-size: 14px; line-height: 1.6; color: var(--ink-2); }

/* Escuelas */
.lp-schools { display: flex; flex-wrap: wrap; gap: 10px; }
.lp-schools li { display: inline-flex; align-items: center; gap: 9px; padding: 8px 16px; border: 1px solid var(--line-strong); border-radius: 999px; font: 700 14px var(--font); }
.lp-schools i { width: 10px; height: 10px; border-radius: 2px; background: var(--area); }

/* Hub */
.lp-hub .lp-units { border-top: 2px solid var(--ink); }
.lp-units { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 40px; }
.lp-units li { display: flex; flex-direction: column; justify-content: space-between; align-items: center; text-align: center; gap: 28px; padding: 28px 28px 26px; background: rgba(255, 255, 255, .72); border-bottom: 1px solid var(--line-strong); min-height: 190px; }
.lp-units img { height: 44px; width: auto; max-width: 100%; object-fit: contain; object-position: center; }
.lp-units span { font-size: 14px; color: var(--ink-2); line-height: 1.6; }
.lp .lp-sub { margin: 80px 0 0; font: 800 22px/1.2 var(--font); letter-spacing: -.02em; }
.lp-biz { list-style: none; margin: 18px 0 0; padding: 0; border-top: 2px solid var(--ink); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 40px; }
.lp-biz li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 24px; align-items: center; padding: 22px 24px; background: rgba(255, 255, 255, .72); border-bottom: 1px solid var(--line-strong); }
.lp-biz-logo { display: block; width: 96px; height: 56px; }
.lp-biz-logo img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; }
.lp-biz strong { display: block; margin-bottom: 4px; font: 700 16px var(--font); }
.lp-biz span:not(.lp-biz-logo) { font-size: 14px; color: var(--ink-2); line-height: 1.6; }

/* Cierre */
.lp-final { position: relative; isolation: isolate; color: var(--on-dark); background: var(--lp-night); overflow: hidden; }
.lp-final-bg { position: absolute; inset: 0; margin: 0; z-index: -1; }
.lp-final-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .22; }
.lp-final-in { max-width: 1200px; margin: 0 auto; padding: clamp(64px, 9vw, 120px) 24px; display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.lp-final h2 { font-size: clamp(30px, 4.6vw, 52px); }
.lp-final p { font-size: 18px; max-width: 46ch; color: rgba(255, 255, 255, .88); }
.lp-final .lp-note { color: rgba(255, 255, 255, .72); font-size: 13px; }
.lp-final .btn-primary { background: var(--brand); color: var(--ink); }
.lp-final .btn-primary:hover { background: var(--brand-soft); }

.lp-foot { background: var(--lp-night); color: #fff; }
.lp-greca { height: 18px; opacity: .5; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='18' viewBox='0 0 24 18'%3E%3Cpath d='M0 16H24M17 16V2H5V11H11V6' fill='none' stroke='%2300b0a1' stroke-width='2' stroke-linecap='square'/%3E%3C/svg%3E") repeat-x left center / 24px 18px; }
.lp-foot-logo { width: 48px; height: 48px; padding: 4px; border-radius: 50%; background: #fff; }
.lp-foot-in { max-width: 1200px; margin: 0 auto; padding: 32px 24px; display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.lp-foot p { font-size: 14px; color: #fff; line-height: 1.6; font-weight: 600; }
.lp-foot span { color: #c4ece7; font-size: 13px; }


/* Enlace de vuelta en el ingreso */
.login-back { align-self: flex-start; font-size: 14px; }

@media (max-width: 1020px) {
  .lp-links { display: none; }
  .lp-bar-in { justify-content: space-between; }
  .lp-hero, .lp-split, .lp-dark .lp-dream { grid-template-columns: minmax(0, 1fr); }
  .lp-split-rev .lp-copy { order: 0; }
  .lp-stairs { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 32px; }
  .lp-units { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-biz { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .lp-bar-in { padding: 0 16px; }
  .lp-hero, .lp-sec, .lp-stats, .lp-final-in, .lp-foot-in { padding-left: 16px; padding-right: 16px; }
  .lp-photo::before { transform: translate(10px, 10px); }
  .lp-photo { margin-right: 10px; margin-bottom: 10px; }
  .lp-cta .btn { width: 100%; }
  .lp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-principles { grid-template-columns: minmax(0, 1fr); }
  .lp-principles li, .lp-principles li + li { padding: 24px 0 0; border-left: 0; }
  .lp-stairs { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .lp-stairs li { display: grid; grid-template-columns: 56px minmax(0, 1fr); column-gap: 14px; row-gap: 2px; align-items: start; grid-template-rows: auto; }
  .lp-step { grid-row: 1 / 3; height: 56px; border-radius: var(--radius-s); align-items: center; justify-content: center; padding: 0; transform-origin: left; }
  .lp-stairs h3 { margin-top: 0; }
  .lp-units { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) { .lp-spark { display: none; } }
@media (max-width: 640px) { 