<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Hello, world</title>
</head>
<body>
<main>
<h1>Hello, world.</h1>
<p>Every good idea starts somewhere.</p>
</main>
</body>
</html>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>SergiolandPhone</title>
<style>
*{
box-sizing:border-box;
margin:0;
padding:0;
font-family:Arial,Helvetica,sans-serif;
}
html,body{
width:100%;
min-height:100%;
}
body{
background:#000;
color:#fff;
display:flex;
justify-content:center;
align-items:center;
min-height:100vh;
}
button{
border:0;
cursor:pointer;
color:white;
}
input,textarea{
width:100%;
padding:13px;
border:0;
outline:none;
border-radius:12px;
background:#273247;
color:white;
font-size:15px;
}
textarea{
resize:none;
}
.hidden{
display:none!important;
}
/* =====================================================
TELÉFONO
===================================================== */
.phone{
width:390px;
height:790px;
background:#101010;
border:8px solid #222;
border-radius:45px;
overflow:hidden;
position:relative;
box-shadow:0 30px 100px #000;
}
@media(max-width:500px){
body{
align-items:center;
overflow:hidden;
}
.phone{
width:100vw;
height:100dvh;
border-radius:0;
border:0;
}
}
/* =====================================================
BARRA SUPERIOR
===================================================== */
.statusBar{
height:27px;
padding:3px 14px;
display:flex;
justify-content:space-between;
align-items:center;
font-size:12px;
background:rgba(0,0,0,.15);
position:relative;
z-index:5;
}
.statusRight{
display:flex;
gap:6px;
align-items:center;
}
/* =====================================================
PANTALLAS
===================================================== */
.screen{
position:absolute;
inset:27px 0 0;
overflow:hidden;
background:#101010;
}
#lockScreen{
z-index:20;
background:linear-gradient(160deg,#18263d,#080b12);
display:flex;
flex-direction:column;
align-items:center;
padding:35px 20px 20px;
}
.lockClock{
font-size:66px;
font-weight:300;
margin-top:35px;
}
.lockDate{
font-size:17px;
margin-top:5px;
}
.lockNotifications{
width:100%;
margin-top:40px;
display:flex;
flex-direction:column;
gap:10px;
max-height:270px;
overflow:auto;
}
.lockNotification{
background:rgba(255,255,255,.13);
border:1px solid rgba(255,255,255,.1);
padding:13px;
border-radius:15px;
backdrop-filter:blur(12px);
}
.lockNotification b{
display:block;
font-size:14px;
margin-bottom:5px;
}
.lockNotification p{
font-size:13px;
line-height:1.4;
overflow-wrap:anywhere;
}
.lockNotification small{
display:block;
opacity:.7;
font-size:11px;
margin-top:6px;
}
.lockBottom{
margin-top:auto;
width:100%;
display:flex;
justify-content:space-between;
align-items:center;
padding:10px 8px 20px;
}
.lockBottom button{
background:rgba(255,255,255,.15);
border-radius:50%;
width:48px;
height:48px;
font-size:21px;
}
.unlockHint{
font-size:12px;
opacity:.8;
margin-top:12px;
}
/* =====================================================
INICIO
===================================================== */
#homeScreen{
background:#101b2d;
padding:20px 15px 12px;
overflow-y:auto;
}
.homeGreeting{
font-size:27px;
margin:15px 0 35px;
line-height:1.3;
}
.homeGrid{
display:grid;
grid-template-columns:repeat(4,minmax(0,1fr));
gap:25px 10px;
}
.app{
text-align:center;
cursor:pointer;
min-width:0;
}
.appIcon{
width:74px;
height:74px;
border-radius:23px;
display:flex;
align-items:center;
justify-content:center;
font-size:37px;
margin:0 auto 8px;
}
.app span{
font-size:13px;
display:block;
overflow-wrap:anywhere;
}
.homePageNav{
display:flex;
justify-content:center;
align-items:center;
gap:30px;
background:#171d2a;
padding:13px 18px;
border-radius:30px;
width:max-content;
margin:25px auto 12px;
}
.homePageNav button{
background:transparent;
font-size:23px;
}
.homePage{
display:none;
}
.homePage.active{
display:block;
}
/* =====================================================
APLICACIONES
===================================================== */
#normalApp{
background:#101b2d;
display:none;
flex-direction:column;
}
.appHeader{
min-height:55px;
padding:12px 15px;
display:flex;
align-items:center;
gap:12px;
background:#18263d;
border-bottom:1px solid #29354a;
}
.appHeader button{
background:#273247;
border-radius:10px;
padding:9px 13px;
}
.appHeader h2{
font-size:18px;
}
#normalContent{
flex:1;
overflow:auto;
padding:15px;
}
.card,.info,.setting{
background:#19263a;
border:1px solid #2a3951;
border-radius:15px;
padding:15px;
margin-bottom:12px;
}
.setting{
cursor:pointer;
}
.setting b,.setting small{
display:block;
}
.setting small{
opacity:.7;
margin-top:6px;
}
button.main{
width:100%;
background:#2879e8;
padding:13px;
border-radius:12px;
font-weight:bold;
margin-top:10px;
}
button.secondary{
background:#29364c;
padding:12px;
border-radius:11px;
}
.row{
display:flex;
gap:10px;
align-items:center;
}
.row>*{
flex:1;
min-width:0;
}
/* =====================================================
MODALES
===================================================== */
#modal{
position:absolute;
inset:0;
z-index:100;
display:none;
align-items:center;
justify-content:center;
padding:20px;
background:rgba(0,0,0,.75);
}
.modalBox{
width:100%;
max-width:340px;
max-height:85%;
overflow:auto;
background:#172338;
border:1px solid #35445c;
border-radius:20px;
padding:20px;
}
.modalBox h2{
font-size:20px;
margin-bottom:10px;
}
.modalBox p{
line-height:1.5;
opacity:.85;
margin-bottom:15px;
}
.modalActions{
display:flex;
gap:10px;
margin-top:15px;
}
.modalActions button{
flex:1;
padding:12px;
border-radius:10px;
background:#29364c;
}
.modalActions button.confirm{
background:#2879e8;
}
/* =====================================================
NOTIFICACIONES
===================================================== */
#toastContainer{
position:absolute;
z-index:150;
top:35px;
left:10px;
right:10px;
display:flex;
flex-direction:column;
gap:8px;
pointer-events:none;
}
.toast{
background:#24334a;
border:1px solid #3b4c65;
padding:13px;
border-radius:14px;
box-shadow:0 8px 25px #0005;
animation:toastIn .2s ease-out;
}
.toast b{
display:block;
margin-bottom:4px;
}
.toast p{
font-size:13px;
line-height:1.4;
}
@keyframes toastIn{
from{opacity:0;transform:translateY(-8px)}
to{opacity:1;transform:translateY(0)}
}
/* =====================================================
ES-ALERT DE ROL
===================================================== */
.esAlertOverlay{
position:absolute;
inset:0;
z-index:200;
background:#c90000;
color:white;
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
text-align:center;
padding:25px;
}
.esAlertOverlay h1{
font-size:32px;
margin-bottom:20px;
}
.esAlertOverlay p{
font-size:20px;
line-height:1.5;
overflow-wrap:anywhere;
}
.esAlertOverlay button{
background:white;
color:#b00000;
font-weight:bold;
border-radius:12px;
padding:14px 25px;
margin-top:30px;
}
</style>
</head>
<body>
<div class="phone" id="phone">
<div class="statusBar">
<span id="statusTime">20:45</span>
<div class="statusRight">
<span>📶</span>
<span>4G</span>
<span>🔋 100%</span>
</div>
</div>
<div class="screen" id="lockScreen">
<div class="lockClock" id="lockClock">20:45</div>
<div class="lockDate" id="lockDate">domingo, 18 de octubre</div>
<div class="lockNotifications" id="lockNotifications"></div>
<div class="lockBottom">
<button onclick="showToast('Cámara','Desbloquea el móvil para usarla.')">📷</button>
<button onclick="unlockPhone()">🔓</button>
</div>
<div class="unlockHint">Pulsa el candado para desbloquear</div>
</div>
<div class="screen" id="homeScreen" style="display:none;">
<div class="homeGreeting" id="homeGreeting">
Hola, <b>Sergietesergus</b> 👋
</div>
<div id="homePages">
<div class="homePage active" data-page="0">
<div class="homeGrid">
<div class="app" onclick="openApp('messages')"><div class="appIcon" style="background:#2879e8">💬</div><span>Mensajes</span></div>
<div class="app" onclick="openApp('phone')"><div class="appIcon" style="background:#18b765">📞</div><span>Teléfono</span></div>
<div class="app" onclick="openApp('browser')"><div class="appIcon" style="background:#2879e8">🌐</div><span>Navegador</span></div>
<div class="app" onclick="openApp('camera')"><div class="appIcon" style="background:#555">📷</div><span>Cámara</span></div>
<div class="app" onclick="openApp('gallery')"><div class="appIcon" style="background:#d84b91">🖼️</div><span>Galería</span></div>
<div class="app" onclick="openApp('store')"><div class="appIcon" style="background:#263f7b">🛍️</div><span>Store</span></div>
<div class="app" onclick="openApp('instantgram')"><div class="appIcon" style="background:linear-gradient(135deg,#ffb347,#e1306c,#833ab4)">◎</div><span>Instantgram</span></div>
<div class="app" onclick="openApp('bank')"><div class="appIcon" style="background:#2058aa">🏦</div><span>Banco</span></div>
<div class="app" onclick="openApp('sim')"><div class="appIcon" style="background:#18b765">📶</div><span>SIM Sergioland</span></div>
<div class="app" onclick="openApp('games')"><div class="appIcon" style="background:#7645d9">🎮</div><span>Juegos</span></div>
<div class="app" onclick="openApp('contacts')"><div class="appIcon" style="background:#e89018">👥</div><span>Contactos</span></div>
<div class="app" onclick="openApp('settings')"><div class="appIcon" style="background:#555">⚙️</div><span>Ajustes</span></div>
<div class="app" onclick="openApp('about')"><div class="appIcon" style="background:#2879e8">ℹ️</div><span>Información</span></div>
</div>
<div class="homePageNav">
<button onclick="changeHomePage(-1)">‹</button>
<span id="homePageNumber">1 / 3</span>
<button onclick="changeHomePage(1)">›</button>
</div>
</div>
<div class="homePage" data-page="1"><div class="homeGrid" id="downloadedApps1"></div></div>
<div class="homePage" data-page="2"><div class="homeGrid" id="downloadedApps2"></div></div>
</div>
</div>
<div class="screen" id="normalApp">
<div class="appHeader">
<button onclick="showHome()">←</button>
<h2 id="normalTitle">Aplicación</h2>
</div>
<div id="normalContent"></div>
</div>
<div id="modal">
<div class="modalBox">
<h2 id="modalTitle"></h2>
<p id="modalText"></p>
<div id="modalBody"></div>
<div class="modalActions">
<button onclick="closeModal()">Cancelar</button>
<button class="confirm" id="modalConfirm">Aceptar</button>
</div>
</div>
</div>
<div id="toastContainer"></div>
<script>