body{margin:0;background:var(--bg-dark)}
textarea,input,button{font-family:var(--font-body)}
textarea:focus,input:focus{outline:none;border-color:var(--accent-primary)!important}
button:focus-visible,summary:focus-visible,a:focus-visible,input[type=checkbox]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
@keyframes esFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fade{animation:esFade 380ms var(--ease-flow) both}
.fade-in{animation:esFade 420ms var(--ease-flow) both}

/* ---------- Layout ---------- */
.shell{min-height:100vh;min-height:100dvh;position:relative;background:var(--bg-dark);font-family:var(--font-body)}
.orbs{position:fixed;inset:0;overflow:hidden;pointer-events:none}
.orb{position:absolute;border-radius:50%;opacity:.28;filter:blur(2px);animation:floatOrb var(--motion-orb) var(--ease-flow) infinite;pointer-events:none}
.stage{position:relative;z-index:1;display:flex;gap:28px;align-items:flex-start;justify-content:center}
.app{width:100%;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-light);position:relative;color:var(--text-primary)}
.demo-panel{display:none}
.stage-caption{display:none}

@media (min-width:980px){
  .shell{padding:28px 16px 44px}
  .stage{flex-wrap:wrap}
  .app-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}
  .app{width:402px;min-height:874px;border-radius:48px;overflow:clip;box-shadow:0 40px 80px -20px rgba(0,0,0,.55),0 0 0 10px #0B0F20}
  .stage-caption{display:block;font-size:12.5px;color:var(--text-on-dark-muted);max-width:380px;text-align:center}
  .demo-panel{display:flex;position:sticky;top:28px}
}

/* ---------- Brand pieces ---------- */
.blob{display:inline-block;flex:none;border-radius:var(--blob-a);animation:morphBlobA var(--motion-blob) var(--ease-flow) infinite}
.blob.warm{background:var(--gradient-warm)}
.blob.cool{background:var(--gradient-cool)}
.logo{position:relative;display:inline-block;flex:none;border-radius:50%;background:linear-gradient(135deg,#FF7A59,#FFC59B)}
.logo>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(38deg);background:linear-gradient(to bottom,#151B33 50%,#FBF6F1 50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.tag{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;padding:6px 14px 6px 10px;border-radius:var(--radius-pill);color:var(--text-primary)}
.tag.warm{background:var(--bg-light-2)}
.tag.cool{background:rgba(143,168,216,0.14)}
.tag>i{width:10px;height:10px;border-radius:50%}
.tag.warm>i{background:var(--gradient-warm)}
.tag.cool>i{background:var(--gradient-cool)}
.toast{display:inline-flex;align-items:center;gap:12px;background:var(--indigo-950);color:#fff;padding:14px 22px;border-radius:var(--radius-pill);font-size:15px;box-shadow:var(--shadow-card-hover);max-width:calc(100vw - 32px)}
.toast>i{width:10px;height:10px;min-width:10px;border-radius:50%;background:var(--gradient-warm)}

/* ---------- Type ---------- */
.kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-primary-text)}
.kicker.warm{color:var(--accent-warm)}
.kicker.muted{color:var(--text-muted)}
.display{font-family:var(--font-display);font-weight:500}
.muted{color:var(--text-muted)}
.on-dark-muted{color:var(--text-on-dark-muted)}

/* ---------- Buttons ---------- */
.btn{cursor:pointer;border-radius:var(--radius-pill);transition:transform var(--motion-fast) var(--ease-flow),background var(--motion-fast) var(--ease-flow),box-shadow var(--motion-fast) var(--ease-flow)}
.btn-primary{border:none;background:var(--accent-primary-btn);color:#fff;font-size:16px;font-weight:600;padding:16px 24px}
.btn-primary.lift{box-shadow:var(--shadow-btn)}
.btn-primary:not(:disabled):hover{background:#B83E1F;transform:translateY(-1px)}
.btn-primary.sm{font-size:14.5px;padding:11px 22px}
.btn-primary:disabled,.btn:disabled{opacity:.45;cursor:default;box-shadow:none}
.btn-ghost-dark{background:transparent;border:2px solid rgba(255,255,255,0.45);color:#fff;font-size:15px;font-weight:500;padding:14px 24px}
.btn-ghost-dark:hover{border-color:#fff;background:rgba(255,255,255,0.06)}
.btn-ghost-dark.sm{font-size:14px;padding:11px 20px}
.btn-outline{border:2px solid var(--text-primary);background:transparent;color:var(--text-primary);font-size:15px;font-weight:500;padding:14px 24px}
.btn-outline:hover{background:var(--text-primary);color:var(--bg-light)}
.btn-outline.sm{font-size:14.5px;padding:11px 20px}
.btn-quiet{border:2px solid var(--border-subtle);background:transparent;color:var(--text-primary);font-size:14px;padding:11px 18px}
.btn-quiet:hover{border-color:rgba(20,23,38,0.3)}
.btn-back{background:transparent;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;text-align:left;padding:0;min-height:44px}
.btn-back:hover{color:var(--text-primary)}
.w100{width:100%}

/* ---------- Surfaces ---------- */
.card{background:var(--surface-card);box-shadow:var(--shadow-card)}
.dark-card{background:var(--bg-dark-2);color:var(--text-on-dark);border:1px solid var(--border-subtle-dark)}
.soft{background:var(--bg-light-2)}
.dashed{border:1px dashed var(--border-subtle);border-radius:24px;padding:24px;text-align:center}
.dashed p{font-size:15px;line-height:1.6;color:var(--text-muted)}
.r-odd{border-radius:34px 34px 34px 72px}
.r-even{border-radius:34px 72px 34px 34px}
.outline-dark{border:1px solid var(--border-subtle-dark)}

/* ---------- Lists ---------- */
.row-link{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:none;border-bottom:1px solid var(--border-subtle);padding:15px 2px;cursor:pointer;text-align:left;color:var(--text-primary)}
.row-link:hover{background:rgba(20,23,38,0.025)}
.row-link .t{flex:1;font-size:15.5px;line-height:1.35}
.row-link .chev{color:var(--text-muted);font-size:16px}
.row-link .st{font-size:12.5px;color:var(--accent-primary-text);white-space:nowrap}
.row-lock{display:flex;align-items:center;gap:12px;padding:15px 2px;border-bottom:1px solid var(--border-subtle);opacity:.5}
.dot{display:inline-block;width:12px;height:12px;min-width:12px;border-radius:var(--blob-a)}

.faq{background:var(--surface-card);border-radius:20px;padding:16px 18px;box-shadow:var(--shadow-card)}
.faq summary{font-size:15px;font-weight:500;line-height:1.4}
.faq p{font-size:14.5px;line-height:1.6;color:var(--text-muted);margin-top:10px}

/* ---------- Form controls ---------- */
.opt{border:none;cursor:pointer;font-size:13.5px;font-weight:500;padding:11px 16px;border-radius:var(--radius-pill);min-height:44px;background:var(--bg-light-2);color:var(--text-primary)}
.opt.sel{background:var(--text-primary);color:var(--bg-light)}
.opt.wide{font-size:15px;padding:13px 18px;min-height:48px;text-align:left}
.grid6{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}
.num{border:none;cursor:pointer;font-size:15px;font-weight:500;min-height:46px;border-radius:16px;background:var(--bg-light-2);color:var(--text-primary)}
.num.sel{background:var(--accent-primary-btn);color:#fff}
.field{width:100%;font-size:16px;padding:14px 16px;border-radius:var(--radius-input);border:2px solid var(--border-subtle);background:#fff;color:var(--text-primary)}
textarea.field{line-height:1.55;border-radius:20px;resize:vertical}
.field-dark{width:100%;font-size:16px;padding:14px 16px;border-radius:var(--radius-input);border:2px solid var(--border-subtle-dark);background:rgba(255,255,255,0.06);color:#fff}
.field-dark::placeholder{color:rgba(255,255,255,0.4)}
.check{width:22px;height:22px;min-width:22px;accent-color:var(--coral-btn);margin-top:1px}
.check-row{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.stepper{width:48px;height:48px;border-radius:999px;border:2px solid var(--border-subtle);background:transparent;font-size:22px;color:var(--text-primary);cursor:pointer}
.chip{font-size:12.5px;font-weight:500;padding:8px 14px;border-radius:var(--radius-pill);cursor:pointer;border:1px solid}

/* ---------- Pantallas oscuras de entrada ---------- */
.hero{flex:1;display:flex;flex-direction:column;background:var(--bg-dark);color:var(--text-on-dark);padding:calc(env(safe-area-inset-top,0px) + 44px) 24px 40px}
@media (min-width:980px){.hero{padding-top:78px}}
.hero h1{font-family:var(--font-display);font-weight:500;color:#fff}
.hero-box{border:1px solid var(--border-subtle-dark);padding:18px 20px}
.check-box{border:1px solid var(--border-subtle-dark);border-radius:20px;padding:16px}

/* ---------- App chrome ---------- */
.topbar{position:sticky;top:0;z-index:20;background:var(--bg-dark);color:var(--text-on-dark);padding:calc(env(safe-area-inset-top,0px) + 18px) 20px 16px;border-radius:0 0 26px 26px}
@media (min-width:980px){.topbar{padding-top:58px}}
.bottomnav{position:sticky;bottom:0;z-index:20;background:rgba(251,246,241,0.93);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border-subtle);padding:10px 6px calc(env(safe-area-inset-bottom,0px) + 14px);display:grid;grid-template-columns:repeat(4,1fr);gap:2px}
@media (min-width:980px){.bottomnav{padding-bottom:30px}}
.nav-btn{border:none;background:transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 2px;min-height:56px}
.nav-btn .blob{width:18px;height:18px;background:rgba(20,23,38,0.16)}
.nav-btn.act .blob{background:var(--gradient-warm)}
.nav-btn span:last-child{font-size:11.5px;line-height:1.2;text-align:center;color:var(--text-muted);font-weight:400}
.nav-btn.act span:last-child{color:var(--text-primary);font-weight:600}
.toast-dock{position:sticky;bottom:96px;height:0;display:flex;justify-content:center;z-index:40;pointer-events:none}
.toast-dock>div{transform:translateY(-100%);animation:esFade 260ms var(--ease-flow) both}
.toast-float{position:fixed;left:50%;bottom:32px;transform:translateX(-50%);z-index:50;pointer-events:none;animation:esFade 260ms var(--ease-flow) both}
