*{box-sizing:border-box;margin:0;padding:0}
:root{--acc:#2f8f6a;--ink:#f2f5f3;--card:rgba(12,18,16,.55)}
body.noche{--acc:#7fe3c4;--card:rgba(6,10,14,.62)}
body.dorada{--acc:#e07a3a}
html,body{height:100%;overflow:hidden;background:#0c141b;font-family:-apple-system,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--ink);-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}
#mundo{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}
#mundo:active{cursor:grabbing}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.caja{background:var(--card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.14);border-radius:16px;color:var(--ink)}
#ui{position:fixed;inset:0;pointer-events:none}
#ui>*{pointer-events:auto;position:absolute}
.tit{left:22px;top:20px;padding:12px 16px;display:flex;align-items:center;gap:14px}
.tit b{display:block;font-size:22px;letter-spacing:.01em;line-height:1.1}
.tit small{font-size:12px;opacity:.75}
.chip{font-size:12px;padding:5px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.3);white-space:nowrap}
.son{left:22px;top:100px;width:240px;padding:14px 16px}
.st{font-size:13px;font-weight:600;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}
.mini{font-size:12px;opacity:.85;padding:2px 6px}
.mx{font-size:12px;margin:8px 0}
.mx span{display:block;opacity:.85;margin-bottom:4px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:5px;border-radius:3px;background:rgba(255,255,255,.18);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--acc);border:2px solid #fff}
input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--acc);border:2px solid #fff}
.dormir{left:22px;top:330px;width:240px;padding:14px 16px}
.dh{font-size:15px;font-weight:700;margin-bottom:8px}
.chips{display:flex;gap:6px;margin-bottom:10px}
.chips button{font-size:12px;padding:4px 9px;border-radius:10px;border:1px solid rgba(255,255,255,.3)}
.chips .on{background:var(--acc);color:#0b1310;border-color:var(--acc)}
.btn{display:block;width:100%;text-align:center;font-size:14px;font-weight:600;padding:10px;border-radius:12px;background:var(--acc);color:#0b1310}
.dormir small{display:block;font-size:11.5px;line-height:1.4;opacity:.8;margin-top:8px}
.desc{right:22px;top:20px;width:230px;padding:14px 16px}
.desc h4{font-size:14px;margin-bottom:8px;display:flex;justify-content:space-between}
.desc li{list-style:none;font-size:12.5px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.1);cursor:pointer}
.desc li.no{opacity:.45;cursor:default}
.desc li b{color:var(--acc);display:inline-block;width:16px}
.desc li.nuevo{animation:brillo 1.5s ease 2}
@keyframes brillo{50%{background:rgba(255,255,255,.12)}}
.lore{right:22px;top:300px;width:230px;padding:14px 16px;font-size:13.5px;line-height:1.45}
.lore p{font-style:italic}
.lore small{display:block;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-bottom:6px}
.hint{left:22px;bottom:18px;padding:9px 14px;font-size:13px}
#verEntera{left:50%;bottom:18px;transform:translateX(-50%);padding:8px 14px;font-size:13px;display:none}
#verEntera.ver{display:block}
.dio{right:22px;bottom:18px;display:flex;gap:8px;font-size:12.5px}
.dio button{padding:7px 13px}
.dio .act{outline:2px solid var(--acc)}
.dio .pronto{opacity:.6}
.solo-cel{display:none}
#toast{position:fixed;left:50%;top:22px;transform:translate(-50%,-220%);transition:transform .5s;background:var(--card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.2);border-radius:14px;padding:10px 16px;font-size:14px;z-index:20;pointer-events:none;max-width:90vw;text-align:center}
#toast.ver{transform:translate(-50%,0)}
#suenio{position:fixed;inset:0;display:none;flex-direction:column;justify-content:flex-end;align-items:center;padding:0 20px 40px;background:rgba(0,0,0,.55);z-index:15;transition:background 3s}
#suenio .reloj{font-weight:300;font-size:26px;color:#cfe;opacity:.85;margin-bottom:14px}
#suenio .btn{max-width:340px;background:rgba(127,227,196,.85)}
body.durmiendo #suenio{display:flex}
body.durmiendo #ui{display:none}
body.apagado #suenio{background:rgba(0,0,0,.97)}
#splash{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,rgba(20,40,32,.6),rgba(4,8,8,.92));transition:opacity .8s}
#splash.fuera{opacity:0;pointer-events:none}
.sp-caja{text-align:center;padding:30px;max-width:360px}
.sp-t{font-size:38px;font-weight:800;letter-spacing:.01em;line-height:1.05;margin-bottom:22px}
.sp-s{font-size:16px;opacity:.75;margin-bottom:26px}
.btn.grande{font-size:17px;padding:14px;max-width:220px;margin:0 auto 18px}
.sp-caja p{font-size:13px;opacity:.75;line-height:1.5}
.cargando{margin-top:10px;opacity:.5!important}
#entrar[disabled]{opacity:.4}
#fps{position:fixed;right:6px;bottom:4px;font:11px monospace;opacity:.6;z-index:40;pointer-events:none}

/* ---------- celu parado: la pecera arriba, los controles abajo */
@media (max-width:760px),(max-aspect-ratio:9/10){
  .solo-pc{display:none}.solo-cel{display:inline-block}
  .tit{left:12px;right:12px;top:calc(10px + env(safe-area-inset-top));padding:9px 12px;justify-content:space-between;background:transparent;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}
  .tit b{font-size:18px;text-shadow:0 1px 6px rgba(0,0,0,.5)}
  .tit small{display:none}
  .tit .chip{background:var(--card)}
  .son{left:12px;right:12px;top:auto;bottom:calc(108px + env(safe-area-inset-bottom));width:auto;padding:8px 14px}
  .son .mx{margin:4px 0;display:grid;grid-template-columns:44% 1fr;align-items:center;gap:8px}
  .son .mx span{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dormir small.solo-pc,.son .st{display:none}
  .dormir{left:12px;right:12px;top:auto;bottom:calc(44px + env(safe-area-inset-bottom));width:auto;padding:10px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .dormir .dh{display:none}.dormir .chips{margin:0}
  .dormir .btn{flex:1;width:auto;padding:9px}
  .hint{left:0;right:0;bottom:calc(14px + env(safe-area-inset-bottom));background:none;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;text-align:center;font-size:11.5px;opacity:.8;padding:0}
  .dio{display:none}
  #verEntera{bottom:auto;top:calc(52px + env(safe-area-inset-top))}
  .desc,.lore{left:12px;right:12px;width:auto;display:none}
  .desc{top:auto;bottom:calc(108px + env(safe-area-inset-bottom));max-height:46vh;overflow:auto;z-index:5}
  .lore{top:calc(56px + env(safe-area-inset-top));z-index:5}
  body.hoja .desc,body.hoja .lore{display:block}
  body.hoja .son{display:none}
  #cerrarDesc{margin-top:8px}
}

.instalar{display:none;margin:0 auto 16px;font-size:13px;padding:8px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.35)}
.instalar2{display:none}
body.instalable .instalar,body.instalable .instalar2{display:inline-block}
body.app .instalar,body.app .instalar2{display:none!important}
.sp-logo{width:88px;height:88px;display:block;margin:0 auto 10px;filter:drop-shadow(0 8px 18px rgba(0,0,0,.4))}
.sp-marca{font-size:12px;font-weight:700;letter-spacing:.32em;opacity:.7;margin-bottom:14px}
body.limpio #ui,body.limpio #toast,body.limpio #fps{display:none!important}

/* ---------- modo «solo la pecera»: nada más que el tanque */
body.inmersivo #ui,body.inmersivo #toast,body.inmersivo #verEntera,body.inmersivo #fps{display:none!important}
#salir{position:fixed;top:calc(14px + env(safe-area-inset-top));right:14px;z-index:25;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:17px;display:none;opacity:0;transition:opacity .5s;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
body.inmersivo #salir{display:block}
body.inmersivo.verx #salir{opacity:1}
body.inmersivo:not(.verx) #mundo{cursor:none}
