:root{
  --cyan:#00ffcc; --navy:#1b2d43; --orange:#df9b46; --teal:#275459; --red:#d15d4b; --cream:#f4efe5;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:#05050f;color:#fff;font-family:"Segoe UI",Arial,sans-serif;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:none}
#game{position:fixed;inset:0;width:100vw;height:100vh;display:block;background:#05050f}
#cam{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none;left:0;top:0}

.screen{position:fixed;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:clamp(8px,2vh,22px);padding:3vh 4vw;text-align:center;overflow:auto}
.screen.active{display:flex}
.screen.dim{background:rgba(0,0,0,.69)}
.screen.dark-strong{background:rgba(10,5,20,.9)}
.screen.light{background:var(--cream);color:var(--navy);justify-content:flex-start;padding:0;gap:0}

.title{font-size:clamp(34px,6.6vh,72px);margin:0;color:var(--cyan);font-weight:800;letter-spacing:.02em}
.title.red{color:#ff3232}
.subtitle{font-size:clamp(16px,3.3vh,36px);margin:0;color:#ebf5ff;font-weight:700}

/* menu principal */
.main-head{position:relative;z-index:2;width:100%;background:var(--navy);padding:5vh 4vw 4.5vh;border-bottom:14px solid var(--orange)}
.main-head h1{margin:0;font-size:clamp(30px,7vh,78px);color:#f8f6f0;font-weight:800}
.main-head p{margin:1.4vh 0 0;font-size:clamp(14px,2.6vh,28px);color:#e2dacd}
.deco{position:absolute;z-index:1;pointer-events:none}
.deco-a{left:0;top:25vh;width:26vw;height:30vh;background:var(--teal);clip-path:polygon(0 0,100% 0,0 100%)}
.deco-b{right:0;top:18vh;width:16vw;height:28vh;background:var(--red);clip-path:polygon(100% 0,100% 100%,0 55%)}
.game-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,3vh,38px);width:min(1260px,92vw);margin-top:6vh}
.game-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:clamp(70px,11vh,118px);border-radius:8px;border:2px solid #afa697;background:#e8e1d4;color:#70675c;font:700 clamp(16px,3.3vh,36px) "Segoe UI",Arial,sans-serif;text-align:center;padding:8px}
.game-btn small{font-weight:400;font-size:clamp(12px,2.6vh,28px);color:#8e8578}
.game-btn.available{background:#fffffa;border-color:var(--teal);color:var(--navy);cursor:pointer}
.game-btn.available:hover,.game-btn.available:focus-visible{background:var(--orange);outline:none}
.hint-dark{position:relative;z-index:2;margin-top:4vh;font-size:clamp(13px,2.6vh,28px);color:#4a5056}

/* intro */
.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,2.6vh,28px);width:min(1320px,92vw)}
.intro-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:clamp(8px,1.8vh,18px) 10px;background:#0f1224;border:2px solid #2d4b5f;border-radius:8px}
.intro-item canvas{width:clamp(36px,5.4vh,58px);height:clamp(36px,5.4vh,58px)}
.intro-item b{font-size:clamp(16px,3.3vh,36px)}
.intro-item span{font-size:clamp(12px,2.6vh,28px);color:#becddc}
.cam-note{margin:0;min-height:1.4em;font-size:clamp(13px,2.4vh,24px);color:#bfeee2}
.cta{font:700 clamp(16px,3.3vh,36px) "Segoe UI",Arial,sans-serif;color:var(--cyan);background:none;border:0;cursor:pointer;padding:10px 18px}
.cta.muted{color:#969696}
.cta:hover{filter:brightness(1.25)}

/* formulario */
#form-player{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(420px,90vw);margin-top:2vh}
#form-player label{text-align:left;font:700 clamp(18px,3.3vh,36px) Arial,sans-serif}
#form-player input{height:clamp(46px,6vh,58px);font:700 clamp(18px,3.3vh,36px) Arial,sans-serif;color:#fff;background:#0f0f1e;border:2px solid #646464;border-radius:5px;padding:0 12px;outline:none;user-select:text;-webkit-user-select:text}
#form-player input:focus{background:#1e1e3c;border-color:var(--cyan)}
#form-player .start{margin:clamp(14px,4vh,40px) auto 0;width:min(320px,100%);height:64px;border:0;border-radius:8px;background:var(--cyan);color:#0b0b1e;font:700 clamp(18px,3.3vh,36px) Arial,sans-serif;cursor:pointer}
#form-player .start:disabled{background:#32645a;cursor:not-allowed}

/* game over */
.final{margin:0;font-size:clamp(18px,3.3vh,36px)}
.qr-info{margin:1vh 0 0;font-size:clamp(14px,3vh,34px);color:var(--cyan);font-weight:700}
#qr-img{background:#fff;width:clamp(180px,30vh,300px);height:clamp(180px,30vh,300px);image-rendering:pixelated}
.save-status{margin:0;min-height:1.4em;font-size:clamp(13px,2.4vh,24px);color:#bfeee2}
.save-status.err{color:#ff9d9d}
.small-btn{font:600 16px Arial,sans-serif;padding:8px 14px;border-radius:6px;border:1px solid #888;background:#222;color:#fff;cursor:pointer}

/* extras */
.pill{position:fixed;left:12px;bottom:12px;z-index:5;font:600 14px Arial,sans-serif;padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.55);color:#cfe;pointer-events:none}
.icon-btn{position:fixed;right:12px;bottom:12px;z-index:6;width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.45);color:#fff;font-size:22px;cursor:pointer}
.icon-btn:hover{background:rgba(0,0,0,.7)}
@media (max-width:640px){
  .game-grid,.intro-grid{grid-template-columns:repeat(2,1fr)}
}
