@import url('https://fonts.googleapis.com/css2?family=Anton&family=Archivo:wght@400;600;800&display=swap');

:root{
  --night: #1B1035;
  --night-2: #2A1652;
  --paper: #F3ECDA;
  --paper-2: #E9DFC4;
  --magenta: #E8368F;
  --gold: #F2B705;
  --teal: #0FA895;
  --ink: #1B1035;
  --line: rgba(243,236,218,0.16);
  --shadow-hard: 6px 6px 0 rgba(0,0,0,0.35);
  /* moldura de madeira/couro (prancha de UI) */
  --wood-dark: #2b1d12;
  --wood: #3d2a19;
  --wood-light: #6b4a2c;
  --wood-gold: #c99a3c;
  --panel-fill: rgba(30,20,12,0.82);
}
/* moldura amadeirada reutilizável, inspirada na prancha de HUD */
.wood-frame{
  background:
    linear-gradient(180deg, rgba(60,42,25,0.9), rgba(30,20,12,0.92));
  border:2px solid var(--wood-gold);
  border-radius:12px;
  box-shadow:
    inset 0 1px 0 rgba(255,220,150,0.25),
    inset 0 0 0 3px rgba(20,12,6,0.6),
    0 4px 10px rgba(0,0,0,0.45);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body{
  font-family:'Archivo',sans-serif;
  background:var(--night);
  color:var(--paper);
  overflow:hidden;
}
#app{position:relative;width:100vw;height:100vh;}

.screen{
  position:absolute;inset:0;
  display:none;
  flex-direction:column;
  align-items:center;justify-content:center;
}
.screen.active{display:flex;}

kbd{
  background:var(--paper);
  color:var(--ink);
  border-radius:4px;
  padding:2px 7px;
  font-family:'Archivo',sans-serif;
  font-weight:800;
  font-size:0.85em;
  box-shadow:2px 2px 0 rgba(0,0,0,0.3);
}

/* ---------- TÍTULO ---------- */
#screen-title{
  overflow:hidden;
  background:
    radial-gradient(ellipse at 50% 8%, rgba(120,70,160,0.55), transparent 55%),
    radial-gradient(circle at 18% 30%, rgba(232,54,143,0.18), transparent 42%),
    radial-gradient(circle at 82% 40%, rgba(15,168,149,0.16), transparent 45%),
    linear-gradient(180deg, #2a1a52 0%, #1b1035 55%, #140b28 100%);
}
.title-bg{
  position:absolute; inset:0; z-index:0;
  background:
    radial-gradient(ellipse at 50% 78%, rgba(242,183,5,0.16), transparent 55%);
  pointer-events:none;
}
/* silhueta de rua/arcos ao fundo, sugerida com formas suaves */
.title-bg::before{
  content:''; position:absolute; left:50%; top:6%; transform:translateX(-50%);
  width:min(560px,60vw); height:340px;
  background:
    radial-gradient(ellipse at 50% 100%, rgba(60,40,110,0.55), transparent 70%);
  border-radius:50% 50% 0 0;
  opacity:0.8;
}
.title-vignette{
  position:absolute; inset:0; z-index:3; pointer-events:none;
  background:radial-gradient(ellipse at 50% 55%, transparent 45%, rgba(10,6,22,0.75) 100%);
}
.title-buntings{
  position:absolute; top:0; left:0; right:0; height:120px; z-index:2; pointer-events:none;
  background-image:
    repeating-linear-gradient(90deg,
      #E8368F 0 14px, transparent 14px 28px),
    repeating-linear-gradient(90deg,
      #F2B705 0 14px, transparent 14px 28px),
    repeating-linear-gradient(90deg,
      #0FA895 0 14px, transparent 14px 28px);
  -webkit-mask:
    linear-gradient(#000,#000) 0 8px/100% 12px repeat-x,
    linear-gradient(#000,#000) 0 26px/100% 12px repeat-x,
    linear-gradient(#000,#000) 0 44px/100% 12px repeat-x;
  mask:
    linear-gradient(#000,#000) 0 8px/100% 12px repeat-x,
    linear-gradient(#000,#000) 0 26px/100% 12px repeat-x,
    linear-gradient(#000,#000) 0 44px/100% 12px repeat-x;
  opacity:0.5;
}
.title-figure{
  position:absolute; bottom:0; z-index:2; height:88vh; max-height:680px;
  background-repeat:no-repeat; background-position:bottom center; background-size:contain;
  filter:drop-shadow(0 10px 30px rgba(0,0,0,0.6));
  pointer-events:none;
}
.title-figure-left{
  left:-2%;
  background-image:url(assets/title/left.png);
  transform:scaleX(1);
}
.title-figure-right{
  right:-2%;
  background-image:url(assets/title/right.png);
}
.title-wrap{
  text-align:center;
  z-index:4;
  position:relative;
  padding:0 20px;
}
.game-title{
  font-family:'Anton',sans-serif;
  font-size:clamp(70px,15vw,168px);
  letter-spacing:4px;
  margin:0;
  color:#F3ECDA;
  position:relative;
  line-height:0.95;
  text-shadow:
    3px 0 0 #E8368F,
    6px 3px 0 #0FA895,
    9px 6px 14px rgba(0,0,0,0.5);
}
.game-sub{
  font-size:clamp(13px,2vw,20px);
  letter-spacing:3px;
  text-transform:uppercase;
  color:#2ec4b6;
  font-weight:700;
  margin:14px 0 30px;
  text-shadow:0 2px 8px rgba(0,0,0,0.5);
}
.title-buttons{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.btn-primary,.btn-ghost{
  font-family:'Archivo',sans-serif;
  font-weight:800;
  font-size:16px;
  letter-spacing:0.5px;
  text-transform:uppercase;
  padding:16px 34px;
  border-radius:10px;
  border:3px solid var(--ink);
  cursor:pointer;
  margin:8px;
  transition:transform 0.12s ease;
}
.btn-primary{
  background:var(--gold);
  color:var(--ink);
  box-shadow:var(--shadow-hard);
}
.btn-ghost{
  background:transparent;
  color:var(--paper);
  border-color:var(--paper);
}
.btn-primary:hover,.btn-ghost:hover{transform:translate(-2px,-2px);}
.btn-primary:active,.btn-ghost:active{transform:translate(2px,2px);box-shadow:none;}
.btn-ghost.small{padding:8px 16px;font-size:13px;margin:4px;}

/* ---------- COMO SE JOGA ---------- */
.panel{
  background:var(--paper);
  color:var(--ink);
  border-radius:16px;
  border:3px solid var(--ink);
  box-shadow:var(--shadow-hard);
  padding:36px 40px;
  max-width:560px;
  width:90%;
}
.panel h2{
  font-family:'Anton',sans-serif;
  font-size:34px;
  letter-spacing:1px;
  margin:0 0 18px;
  color:var(--magenta);
}
.howto-list{padding-left:20px;line-height:1.7;font-size:15px;}
.howto-list li{margin-bottom:10px;}
.howto-controls{font-size:12.5px; opacity:0.75; text-align:center; margin:14px 0 18px; line-height:2;}

/* ---------- ESCOLHER MÁSCARA ---------- */
#screen-mask{background:var(--paper);color:var(--ink);}
.mask-wrap{width:min(640px,94vw); text-align:center;}
.mask-select-title{font-family:'Anton',sans-serif;font-size:32px;color:var(--night);margin:0 0 4px;}
.mask-select-sub{font-size:14px;opacity:0.7;margin:0 0 20px;}
.mask-gallery{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:10px;
  margin-bottom:22px;
}
.mask-card{
  background:var(--paper-2);
  border:3px solid transparent;
  border-radius:14px;
  padding:8px 6px 10px;
  cursor:pointer;
  transition:transform 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}
.mask-card:hover{transform:translateY(-2px);}
.mask-card.selected{
  border-color:var(--magenta);
  background:#fff;
  box-shadow:0 4px 0 rgba(0,0,0,0.12);
}
.mask-card canvas{display:block; width:100%; height:auto;}
.mask-card-art{
  width:100%; aspect-ratio:3/4; background-size:contain;
  background-position:center; background-repeat:no-repeat;
  filter:drop-shadow(0 3px 4px rgba(0,0,0,0.3));
}
.mask-card-name{
  font-size:11.5px; font-weight:700; margin-top:6px;
  color:var(--night-2); line-height:1.2;
}

/* ---------- JOGO ---------- */
#screen-game{background:#3a2a22;}
#game-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;}

/* --- canto superior esquerdo: relógio + peraltagens --- */
.hud-topleft{
  position:absolute; top:16px; left:16px; z-index:5;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.stopwatch{width:74px;height:74px; filter:drop-shadow(0 3px 4px rgba(0,0,0,0.45));}
.sw-body{fill:#F3ECDA;}
.sw-ring{fill:none; stroke:var(--ink); stroke-width:5;}
.sw-btn{fill:var(--ink);}
.sw-hand{stroke:var(--ink); stroke-width:3; stroke-linecap:round;}
.sw-wedge{fill:#C0392B; opacity:0.85;}
.peraltagem-objectives{display:flex; flex-direction:column; gap:6px; width:150px;}
.peraltagem-obj{
  display:flex; align-items:center; gap:6px;
  background:linear-gradient(180deg, rgba(60,42,25,0.85), rgba(30,20,12,0.9));
  border:2px solid var(--wood-gold);
  border-radius:9px;
  padding:6px 9px;
  font-size:11.5px; font-weight:700;
  color:rgba(243,236,218,0.8);
  box-shadow:inset 0 1px 0 rgba(255,220,150,0.15);
  transition:border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.peraltagem-obj .dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(243,236,218,0.35); flex-shrink:0;
}
.peraltagem-obj.ready{
  border-color:var(--gold); color:var(--gold);
  background:rgba(242,183,5,0.15);
}
.peraltagem-obj.ready .dot{background:var(--gold); box-shadow:0 0 6px var(--gold);}
.peraltagem-obj.done{
  border-color:rgba(46,204,113,0.6); color:rgba(200,255,220,0.75);
  background:rgba(46,204,113,0.1);
}
.peraltagem-obj.done .dot{background:#2ecc71;}

/* --- canto superior direito: ousadia, risco, multiplicador, disfarces --- */
.hud-topright{
  position:absolute; top:16px; right:20px; z-index:5;
  text-align:right;
  background:linear-gradient(180deg, rgba(60,42,25,0.9), rgba(30,20,12,0.92));
  border:2px solid var(--wood-gold);
  border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,220,150,0.22), 0 4px 10px rgba(0,0,0,0.4);
  padding:9px 14px;
}
.hud-topright .hud-label{color:var(--paper); text-shadow:0 2px 3px rgba(0,0,0,0.5);}
.hud-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;opacity:0.85;font-weight:700;}
.hud-score{
  font-family:'Anton',sans-serif;font-size:30px;color:var(--gold);
  text-shadow:0 3px 4px rgba(0,0,0,0.5);
}
.hud-goal{font-size:14px; font-weight:700; opacity:0.6; margin-left:3px;}
.boldness-row{margin-bottom:2px;}
.risk-row{
  font-size:12px; font-weight:700; color:#ff9f6b;
  margin-bottom:6px;
}
#hud-risk{color:var(--magenta);}
#hud-mult{opacity:0.75; font-size:11px;}
.disguise-icons{display:flex; gap:5px; justify-content:flex-end;}
.disguise-icon{
  width:16px;height:19px;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,0.5));
}
.disguise-icon.spent{opacity:0.25;}

/* --- canto inferior esquerdo: disco de suspeita com rosto --- */
.hud-bottomleft{
  position:absolute; bottom:52px; left:16px; z-index:5;
}
.suspicion-dial{width:92px;height:92px; filter:drop-shadow(0 3px 5px rgba(0,0,0,0.5));}
.dial-track{fill:none; stroke:rgba(255,255,255,0.18); stroke-width:8;}
.dial-progress{
  fill:none; stroke:#2ecc71; stroke-width:8; stroke-linecap:round;
  stroke-dasharray:276.5; stroke-dashoffset:276.5;
  transform:rotate(-90deg); transform-origin:50% 50%;
  transition:stroke-dashoffset 0.15s linear, stroke 0.3s ease;
}
.dial-face-bg{fill:#F3ECDA; stroke:var(--ink); stroke-width:2;}
.dial-face{fill:var(--ink);}
.dial-mouth{stroke:var(--ink); stroke-width:2.4; stroke-linecap:round;}
.prompt-e{
  position:absolute;
  padding:8px 14px;
  background:var(--gold);
  color:var(--ink);
  font-weight:800;
  border-radius:8px;
  border:2px solid var(--ink);
  font-size:13px;
  display:none;
  z-index:6;
  transform:translate(-50%,-140%);
  pointer-events:none;
  white-space:nowrap;
}
.controls-hint{
  position:absolute;bottom:14px;left:50%;transform:translateX(-50%);
  font-size:12px;opacity:0.75;background:rgba(0,0,0,0.4);
  padding:6px 14px;border-radius:20px;
}

/* --- barra de progresso do trecho atual --- */
.segment-bar-wrap{
  position:absolute; top:16px; left:50%; transform:translateX(-50%);
  z-index:5; width:min(320px,40vw); text-align:center;
}
.segment-label{
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:1.5px;
  color:var(--paper); text-shadow:0 2px 3px rgba(0,0,0,0.6); margin-bottom:4px;
}
.segment-bar{
  height:8px; border-radius:5px; background:rgba(10,6,3,0.6);
  border:1px solid var(--wood-gold); overflow:hidden;
  box-shadow:inset 0 1px 2px rgba(0,0,0,0.5);
}
.segment-fill{
  height:100%; width:0%; background:linear-gradient(90deg,var(--teal),var(--gold));
  transition:width 0.2s linear;
}

/* --- banner central de eventos / transição --- */
.toast{
  position:absolute; top:64px; left:50%; transform:translate(-50%,-12px);
  z-index:8;
  background:linear-gradient(180deg, rgba(60,42,25,0.95), rgba(30,20,12,0.95));
  color:var(--paper);
  border:2px solid var(--wood-gold); border-radius:12px;
  box-shadow:inset 0 1px 0 rgba(255,220,150,0.25), 0 5px 14px rgba(0,0,0,0.5);
  padding:10px 22px; font-weight:800; font-size:14px; text-align:center;
  opacity:0; pointer-events:none; transition:opacity 0.35s ease, transform 0.35s ease;
  white-space:nowrap;
}
.toast.show{opacity:1; transform:translate(-50%,0);}

/* --- canto inferior direito: estado do passo --- */
.step-badge{
  position:absolute; bottom:52px; right:20px; z-index:5;
  display:flex; align-items:center; gap:6px;
  background:linear-gradient(180deg, rgba(60,42,25,0.9), rgba(30,20,12,0.92));
  border-radius:20px;
  padding:8px 16px; font-size:11.5px; font-weight:800; text-transform:uppercase;
  letter-spacing:0.5px; color:rgba(243,236,218,0.7);
  border:2px solid var(--wood-gold);
  box-shadow:inset 0 1px 0 rgba(255,220,150,0.2), 0 3px 8px rgba(0,0,0,0.4);
  transition:color 0.25s ease, border-color 0.25s ease, background 0.25s ease;
}
.step-icon{width:16px;height:16px; color:inherit;}
.step-badge.active{
  color:var(--teal); border-color:var(--teal); background:rgba(15,168,149,0.15);
}

/* --- botão de mudo da música --- */
.btn-mute{
  position:absolute; bottom:52px; left:20px; z-index:6;
  width:42px; height:42px; border-radius:10px;
  background:linear-gradient(180deg, rgba(60,42,25,0.9), rgba(30,20,12,0.92));
  border:2px solid var(--wood-gold);
  box-shadow:inset 0 1px 0 rgba(255,220,150,0.2), 0 3px 8px rgba(0,0,0,0.4);
  font-size:18px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:transform 0.1s ease;
}
.btn-mute:hover{ transform:translateY(-1px); }
.btn-mute:active{ transform:translateY(1px); }

/* --- overlay de pausa --- */
.pause-overlay{
  position:absolute; inset:0; z-index:20;
  background:rgba(10,5,3,0.72);
  display:none; align-items:center; justify-content:center;
}
.pause-overlay.show{display:flex;}
.pause-panel{text-align:center;}
.pause-panel .btn-primary, .pause-panel .btn-ghost{display:block; width:100%;}

/* ---------- FIM ---------- */
.end-panel{text-align:center;}
.end-sub{opacity:0.8;margin-top:-8px;}
.end-stars{font-size:30px; letter-spacing:4px; margin:12px 0; color:rgba(27,16,53,0.2);}
.end-stars .star.lit{color:var(--gold); text-shadow:0 2px 3px rgba(0,0,0,0.25);}
.end-stats-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:14px 10px;
  margin:14px 0 20px;
}
.stat{display:flex;flex-direction:column;align-items:center;}
.stat-num{font-family:'Anton',sans-serif;font-size:28px;color:var(--magenta);}
.stat-label{font-size:10.5px;text-transform:uppercase;letter-spacing:0.6px;opacity:0.7; text-align:center;}

@media (max-width:640px){
  .mask-gallery{grid-template-columns:repeat(3,1fr);}
}
