
.public-landing {
  min-height: 100dvh;
  background:
    radial-gradient(circle at 15% 15%, rgba(251,146,60,.18), transparent 28%),
    radial-gradient(circle at 85% 20%, rgba(56,189,248,.12), transparent 28%),
    linear-gradient(180deg, #f8fafc 0%, #eef2ff 42%, #fff7ed 100%);
  color: #111827;
  position: relative;
  overflow: hidden;
}
.public-landing::before {
  content: '';
  position: absolute;
  inset: auto -15% -28% auto;
  width: 420px;
  height: 420px;
  background: radial-gradient(circle, rgba(251,146,60,.18), rgba(251,146,60,0));
  filter: blur(16px);
  pointer-events: none;
}
#appShell.landing-hidden {
  display: none;
}
body.landing-mode {
  background: #f8fafc;
  color: #111827;
}
body.landing-mode .modal.hidden { display:none; }
.landing-topbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:24px clamp(18px, 4vw, 34px) 12px;
  position:relative;
  z-index:2;
}
.landing-brand{display:flex;align-items:center;gap:12px;}
.landing-brand-mark{
  width:50px;height:50px;border-radius:16px;display:grid;place-items:center;
  background: linear-gradient(135deg, #fb923c, #f97316); color:#fff; font-size:24px;
  box-shadow:0 16px 34px rgba(249,115,22,.25);
}
.landing-brand-title{font-size:24px;font-weight:800;line-height:1;}
.landing-brand-title span{color:#f97316;}
.landing-brand-subtitle{font-size:12px;color:#6b7280;margin-top:4px;letter-spacing:.04em;text-transform:uppercase;}
.landing-language{display:flex;align-items:center;gap:8px;background:#ffffffd4;border:1px solid #e5e7eb;padding:8px 12px;border-radius:999px;backdrop-filter: blur(8px);}
.landing-language select{background:transparent;border:none;font-weight:700;color:#111827;outline:none;}
.landing-layout{
  max-width:1280px;margin:0 auto;padding:18px clamp(18px,4vw,34px) 40px;
  display:grid;grid-template-columns:1.2fr .9fr;align-items:center;gap:28px;position:relative;z-index:1;
}
.landing-gallery{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-height:560px;
}
.landing-photo{
  position:relative; overflow:hidden; border-radius:34px; min-height:250px; background:#dbeafe;
  box-shadow:0 24px 55px rgba(15,23,42,.14); isolation:isolate;
}
.landing-photo::before{
  content:'';position:absolute;inset:0;opacity:.97;
  background-size:cover;background-position:center;
  transform:scale(1.02);
}
.landing-photo::after{
  content:''; position:absolute; inset:auto 0 0; height:48%;
  background:linear-gradient(180deg, rgba(15,23,42,0) 0%, rgba(15,23,42,.72) 100%);
}
.landing-photo-overlay{position:absolute; inset:0; background:linear-gradient(140deg, rgba(15,23,42,.06), rgba(15,23,42,.02)); z-index:1;}
.landing-photo-copy{position:absolute;left:20px;right:20px;bottom:18px;z-index:2;color:#fff;display:flex;flex-direction:column;gap:4px;}
.landing-photo-copy span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.88;font-weight:700;}
.landing-photo-copy strong{font-size:20px;line-height:1.18;font-weight:800;max-width:18ch;}
.landing-photo-climb{grid-row:span 2;min-height:520px;}
.landing-photo-climb::before{
  background-image:
    linear-gradient(180deg, rgba(21,94,117,.15), rgba(15,23,42,.2)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 1200'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='0' y1='0' y2='1'%3E%3Cstop stop-color='%2360a5fa'/%3E%3Cstop offset='1' stop-color='%230f172a'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='800' height='1200' fill='url(%23g)'/%3E%3Cpath d='M0 1100 180 620 320 700 430 420 590 520 760 180 800 200V1200H0Z' fill='%231e293b'/%3E%3Cpath d='M95 750c22 0 39 18 39 40 0 14-6 25-16 32l12 70H84l10-58-18 28H44l29-47c-10-7-16-19-16-32 0-22 17-40 38-40Z' fill='%23fdba74'/%3E%3Cpath d='M170 650c23 0 41 19 41 42 0 14-7 27-17 34l13 72h-48l11-59-19 28h-33l30-48c-11-7-18-20-18-34 0-23 18-42 40-42Z' fill='%23fed7aa'/%3E%3Ccircle cx='113' cy='726' r='16' fill='%23ffe7d1'/%3E%3Ccircle cx='187' cy='624' r='16' fill='%23fff1e6'/%3E%3Cpath d='M137 792c55-54 87-92 114-172' stroke='%23fff7ed' stroke-width='9' stroke-linecap='round'/%3E%3C/svg%3E");
}
.landing-photo-mountain::before{
  background-image:
    linear-gradient(180deg, rgba(30,41,59,.05), rgba(15,23,42,.1)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 800'%3E%3Cdefs%3E%3ClinearGradient id='sky' x1='0' x2='0' y1='0' y2='1'%3E%3Cstop stop-color='%23e0f2fe'/%3E%3Cstop offset='1' stop-color='%23bfdbfe'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='800' height='800' fill='url(%23sky)'/%3E%3Cpath d='M0 620 160 420 290 520 430 300 610 540 800 370V800H0Z' fill='%23475569'/%3E%3Cpath d='M0 650 150 480 275 560 395 365 560 570 800 420V800H0Z' fill='%231e293b'/%3E%3Cpath d='M393 365 430 300l38 63-32-16Z' fill='%23fff'/%3E%3Cpath d='M118 610c20 0 36 16 36 36 0 12-5 22-14 29l12 57h-42l6-32h-24l11-51c-7-6-11-15-11-24 0-20 16-36 36-36Z' fill='%23fef3c7'/%3E%3Cpath d='M198 588c19 0 34 15 34 34 0 12-5 21-13 27l11 55h-40l6-31h-24l10-48c-6-6-10-14-10-23 0-19 15-34 34-34Z' fill='%23fdba74'/%3E%3Ccircle cx='118' cy='595' r='14' fill='%23fff1e6'/%3E%3Ccircle cx='198' cy='574' r='13' fill='%23ffe7d1'/%3E%3C/svg%3E");
}
.landing-photo-trek::before{
  background-image:
    linear-gradient(180deg, rgba(20,83,45,.06), rgba(15,23,42,.06)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 800'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='0' y1='0' y2='1'%3E%3Cstop stop-color='%23bbf7d0'/%3E%3Cstop offset='1' stop-color='%2386efac'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='800' height='800' fill='url(%23g)'/%3E%3Cpath d='M0 520 160 450 280 500 390 430 540 520 680 470 800 520V800H0Z' fill='%2322c55e'/%3E%3Cpath d='M0 590 170 500 280 560 390 475 560 590 700 520 800 575V800H0Z' fill='%2315803d'/%3E%3Cpath d='M150 565c22 0 39 18 39 39 0 13-6 25-15 32l12 59h-45l8-38h-28l13-49c-8-7-12-16-12-27 0-21 17-39 38-39Z' fill='%23fef3c7'/%3E%3Cpath d='M240 545c21 0 38 17 38 38 0 13-5 23-14 30l12 58h-44l8-37h-28l12-48c-7-6-11-15-11-25 0-21 17-38 38-38Z' fill='%23fdba74'/%3E%3Ccircle cx='150' cy='549' r='15' fill='%23fff1e6'/%3E%3Ccircle cx='240' cy='529' r='15' fill='%23ffe7d1'/%3E%3Cpath d='M120 652c82-34 124-46 187-51' stroke='%23dcfce7' stroke-width='10' stroke-linecap='round'/%3E%3C/svg%3E");
}
.landing-auth-wrap{display:flex;justify-content:center;}
.landing-auth-card{
  background:rgba(255,255,255,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.6); border-radius:32px; padding:clamp(24px, 3vw, 34px);
  box-shadow:0 28px 70px rgba(15,23,42,.15); max-width:480px; width:100%;
}
.landing-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#fff7ed;color:#c2410c;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;}
.landing-auth-card h1{font-size:clamp(34px,4vw,56px);line-height:.96;letter-spacing:-.03em;font-weight:900;color:#0f172a;margin:20px 0 16px;max-width:12ch;}
.landing-auth-card p{font-size:16px;line-height:1.6;color:#475569;max-width:52ch;}
.landing-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 16px;}
.landing-primary,.landing-secondary{
  appearance:none;border:none;border-radius:999px;padding:15px 20px;font-weight:800;font-size:15px;cursor:pointer;transition:.2s transform,.2s box-shadow,.2s background;
}
.landing-primary{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;box-shadow:0 18px 28px rgba(249,115,22,.28);}
.landing-primary:hover{transform:translateY(-1px);box-shadow:0 22px 34px rgba(249,115,22,.34);}
.landing-secondary{background:#fff;color:#0f172a;border:1px solid #e5e7eb;}
.landing-secondary:hover{background:#f8fafc;transform:translateY(-1px);}
.landing-mini{font-size:14px !important;color:#64748b !important;margin:0 0 16px;}
.landing-feature-list{display:grid;gap:10px;padding:0;margin:0;list-style:none;color:#0f172a;font-weight:600;}
.landing-feature-list li{display:flex;align-items:center;gap:10px;background:#ffffffaa;border:1px solid #e5e7eb;border-radius:16px;padding:12px 14px;}
@media (max-width: 1024px){
  .landing-layout{grid-template-columns:1fr;}
  .landing-gallery{order:2;min-height:unset;}
  .landing-auth-wrap{order:1;}
  .landing-auth-card h1{max-width:none;}
}
@media (max-width: 767px){
  .public-landing{padding-bottom:28px;}
  .landing-topbar{padding:18px 16px 10px;}
  .landing-layout{padding:8px 16px 24px;gap:18px;}
  .landing-gallery{grid-template-columns:1fr;gap:14px;}
  .landing-photo,.landing-photo-climb{min-height:180px;grid-row:auto;}
  .landing-photo-copy strong{font-size:18px;max-width:none;}
  .landing-auth-card{border-radius:28px;padding:22px 18px;}
  .landing-auth-card h1{font-size:34px;line-height:1.02;}
  .landing-actions{display:grid;grid-template-columns:1fr;}
  .landing-primary,.landing-secondary{width:100%;}
}


/* v0.17.1 — Portada móvil: todo el mensaje y los accesos en el primer pantallazo. */
@media (max-width: 767px) {
  .public-landing {
    min-height: 100vh;
    min-height: 100svh;
    background: #162539;
    padding-bottom: 0;
    display: flex;
    flex-direction: column;
    isolation: isolate;
  }
  .landing-topbar {
    flex: 0 0 auto;
    padding: calc(12px + env(safe-area-inset-top, 0px)) 18px 8px;
    z-index: 5;
    color: #fff;
  }
  .landing-brand-title { font-size: 23px; color: #fff; }
  .landing-brand-subtitle { color: rgba(255,255,255,.72); font-size: 10px; }
  .landing-brand-mark {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    font-size: 21px;
    background: linear-gradient(135deg, #ffb07b, #f16a4f);
  }
  .landing-language {
    background: rgba(18,29,45,.64);
    border-color: rgba(255,255,255,.24);
    color: #fff;
  }
  .landing-language select { color: #fff; }
  .landing-language option { color: #0f172a; }
  .landing-layout {
    flex: 1 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    min-height: 0;
    position: relative;
    padding: 12px 17px calc(25px + env(safe-area-inset-bottom, 0px));
    max-width: none;
    width: 100%;
  }
  .landing-gallery {
    display: grid;
    position: absolute;
    inset: -76px 0 0;
    width: 100%;
    height: calc(100% + 76px);
    min-height: 0;
    grid-template-columns: 1.15fr .85fr;
    grid-template-rows: repeat(2, 1fr);
    gap: 4px;
    overflow: hidden;
    pointer-events: none;
    order: 0;
    z-index: 0;
  }
  .landing-gallery::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 3;
    background:
      linear-gradient(180deg, rgba(12,22,36,.44) 0%, rgba(12,22,36,.52) 35%, rgba(12,22,36,.73) 100%);
  }
  .landing-photo, .landing-photo-climb {
    min-height: 0;
    height: 100%;
    border-radius: 0;
    grid-row: auto;
    box-shadow: none;
  }
  .landing-photo-climb { grid-row: 1 / 3; }
  .landing-photo::before { transform: scale(1.05); }
  .landing-photo-copy, .landing-photo-overlay { display: none; }
  .landing-auth-wrap {
    position: relative;
    z-index: 4;
    order: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: 450px;
    margin: 0 auto;
  }
  .landing-auth-card {
    width: 100%;
    padding: clamp(19px, 5vw, 27px);
    background: rgba(15,26,42,.78);
    border: 1px solid rgba(255,255,255,.24);
    border-radius: 26px;
    box-shadow: 0 24px 65px rgba(0,0,0,.30);
    color: #fff;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }
  .landing-chip {
    display: inline-block;
    font-size: 9px;
    letter-spacing: .07em;
    padding: 8px 10px;
    background: rgba(255,131,82,.15);
    color: #ffb18c;
    border: 1px solid rgba(255,167,119,.24);
    max-width: 100%;
  }
  .landing-auth-card h1 {
    max-width: none;
    font-size: clamp(28px, 8vw, 36px);
    line-height: 1.06;
    letter-spacing: -.035em;
    margin: 15px 0 11px;
    color: #fff;
    text-wrap: balance;
  }
  .landing-auth-card p {
    color: rgba(244,247,251,.83);
    font-size: 13.5px;
    line-height: 1.48;
    margin: 0;
  }
  .landing-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 10px;
    margin: 20px 0 0;
  }
  .landing-primary, .landing-secondary {
    width: 100%;
    min-height: 48px;
    padding: 12px 10px;
    font-size: 13.5px;
    border-radius: 12px;
  }
  .landing-secondary {
    color: #fff;
    background: rgba(255,255,255,.1);
    border: 1px solid rgba(255,255,255,.36);
  }
  .landing-secondary:hover { background: rgba(255,255,255,.18); }
  .landing-mini, .landing-feature-list { display: none; }
  /* The auth dialogs are siblings of #appShell so the hidden app cannot hide them. */
  body.partner-v16.landing-mode #loginModal,
  body.partner-v16.landing-mode #registerModal { z-index: 5000; }
}
@media (max-width: 767px) and (max-height: 590px) {
  .landing-topbar { padding-top: 8px; padding-bottom: 4px; }
  .landing-brand-mark { width: 37px; height: 37px; }
  .landing-auth-card { padding: 15px; }
  .landing-chip { display: none; }
  .landing-auth-card h1 { font-size: clamp(25px, 7vw, 31px); margin: 4px 0 9px; }
  .landing-auth-card p { font-size: 12px; line-height: 1.35; }
  .landing-actions { margin-top: 13px; }
  .landing-primary,.landing-secondary { min-height: 43px; }
}
@media (prefers-reduced-motion: reduce) {
  .landing-primary,.landing-secondary { transition: none; }
}
