/* ============================================================================
   Hide & Seek: Mecha Chameleon — SEOULTRA Games
   ========================================================================== */
:root{
  --bg:#0f1720; --bg2:#131e2a; --panel:#18242f; --panel2:#1e2d3b;
  --ink:#eaf2f8; --muted:#93a6b6; --line:#294050;
  --green:#4ade80; --green-d:#16a34a; --orange:#ff8a3d; --hot:#ff5a5f;
  --gold:#ffcb45; --blue:#5eb8ff;
  --r:16px; --shadow:0 18px 50px rgba(0,0,0,.45);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font); color:var(--ink); background:
    radial-gradient(1100px 700px at 80% -10%, #1b2a3a 0%, transparent 60%),
    radial-gradient(900px 600px at -10% 110%, #16241f 0%, transparent 55%),
    var(--bg);
  min-height:100dvh; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
.hsc-app{min-height:100dvh; display:flex; flex-direction:column}
b{font-weight:800}

/* ---- Top bar ------------------------------------------------------------- */
.hsc-topbar{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 16px; border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, rgba(20,32,44,.9), rgba(15,23,32,.7));
  position:sticky; top:0; z-index:20; backdrop-filter:blur(8px);
}
.hsc-brand{display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink); font-weight:900; letter-spacing:.2px}
.hsc-brand-mark{font-size:22px; filter:drop-shadow(0 3px 6px rgba(0,0,0,.5))}
.hsc-brand-text{font-size:17px}
.hsc-topbar-actions{display:flex; align-items:center; gap:8px}
.hsc-icon-btn{
  border:1px solid var(--line); background:var(--panel); color:var(--ink);
  width:38px; height:38px; border-radius:11px; font-size:16px; cursor:pointer; line-height:1;
}
.hsc-icon-btn:hover{background:var(--panel2)}
.hsc-chip{
  border:1px solid var(--line); background:var(--panel); color:var(--ink);
  padding:9px 14px; border-radius:11px; font-weight:700; font-size:14px; cursor:pointer;
  text-decoration:none; display:inline-flex; align-items:center; gap:7px;
}
.hsc-chip:hover{background:var(--panel2)}
.hsc-chip-google .hsc-g{
  display:inline-grid; place-items:center; width:19px; height:19px; border-radius:50%;
  background:#fff; color:#4285F4; font-weight:900; font-size:13px;
}
.hsc-user{display:flex; align-items:center; gap:8px}
.hsc-user img,.hsc-user-fallback{width:32px; height:32px; border-radius:50%; object-fit:cover; border:2px solid var(--green)}
.hsc-user-fallback{display:grid; place-items:center; background:var(--green-d); color:#fff; font-weight:800}
.hsc-user-name{font-size:14px; font-weight:700; max-width:120px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.hsc-signout{color:var(--muted); text-decoration:none; font-size:16px; padding:2px 4px}
.hsc-signout:hover{color:var(--hot)}

/* ---- Stage / screens ----------------------------------------------------- */
.hsc-stage{flex:1; display:flex; position:relative}
.hsc-screen{display:none; flex:1; flex-direction:column; width:100%}
.hsc-screen.is-active{display:flex}

/* ---- START --------------------------------------------------------------- */
.hsc-start{align-items:center; justify-content:center; padding:22px 16px 40px}
.hsc-start-card{
  width:min(560px,100%); background:linear-gradient(180deg,var(--panel),var(--bg2));
  border:1px solid var(--line); border-radius:22px; padding:26px 24px 28px;
  box-shadow:var(--shadow); text-align:center;
}
.hsc-hero-lizard{
  width:96px; height:96px; margin:2px auto 6px; border-radius:26px; position:relative;
  background:
    radial-gradient(60% 60% at 50% 40%, #74e58c, #2fb15a 60%, #17823f 100%);
  box-shadow:inset 0 -10px 22px rgba(0,0,0,.28), 0 12px 30px rgba(22,163,74,.35);
  animation:hsc-breathe 3.2s ease-in-out infinite;
}
.hsc-hero-lizard::before,.hsc-hero-lizard::after{
  content:""; position:absolute; border-radius:50%; background:radial-gradient(circle,#fff 0 30%,#123 30% 55%,transparent 56%);
}
.hsc-hero-eye{position:absolute; inset:0; }
.hsc-hero-lizard::before{width:22px; height:22px; top:26px; left:22px}
.hsc-hero-lizard::after{width:22px; height:22px; top:26px; right:22px}
@keyframes hsc-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.hsc-title{font-size:15px; letter-spacing:4px; text-transform:uppercase; color:var(--muted); margin:6px 0 0; font-weight:800}
.hsc-title span{display:block; font-size:34px; letter-spacing:.3px; text-transform:none; margin-top:2px;
  color:transparent; background:linear-gradient(90deg,#7df3a0,#5eb8ff); -webkit-background-clip:text; background-clip:text}
.hsc-tag{color:var(--muted); font-size:15px; line-height:1.5; margin:12px auto 18px; max-width:440px}
.hsc-tag b{color:var(--ink)}

.hsc-diff{display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:0 0 14px}
.hsc-diff-opt{
  border:1.5px solid var(--line); background:var(--panel2); color:var(--ink); cursor:pointer;
  border-radius:13px; padding:12px 8px; text-align:center; transition:.15s; display:flex; flex-direction:column; gap:4px;
}
.hsc-diff-opt:hover{border-color:var(--muted)}
.hsc-diff-opt.is-sel{border-color:var(--green); background:linear-gradient(180deg,rgba(74,222,128,.16),rgba(74,222,128,.04)); box-shadow:0 0 0 3px rgba(74,222,128,.12)}
.hsc-diff-name{font-weight:900; font-size:16px}
.hsc-diff-sub{font-size:11px; color:var(--muted); line-height:1.3}

.hsc-guestname{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:8px; margin:4px 0 16px; font-size:14px; color:var(--muted)}
.hsc-guestname input{
  background:var(--bg); border:1.5px solid var(--line); color:var(--ink); border-radius:10px;
  padding:9px 12px; font-size:14px; width:160px; font-family:var(--font);
}
.hsc-guestname input:focus{outline:none; border-color:var(--green)}
.hsc-google-hint{color:var(--blue); text-decoration:none; font-weight:700}
.hsc-google-hint:hover{text-decoration:underline}

.hsc-play-btn{
  border:0; cursor:pointer; color:#06210f; font-weight:900; font-size:18px; letter-spacing:.3px;
  padding:15px 26px; border-radius:14px; width:100%;
  background:linear-gradient(180deg,#7df3a0,#43d17b 55%,#25b866);
  box-shadow:0 12px 26px rgba(37,184,102,.35), inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .08s, filter .15s;
}
.hsc-play-btn:hover{filter:brightness(1.05)}
.hsc-play-btn:active{transform:translateY(2px)}

.hsc-how{list-style:none; padding:0; margin:18px 0 0; display:grid; gap:7px; text-align:left; color:var(--muted); font-size:13.5px}
.hsc-how li b{color:var(--ink)}

/* ---- PLAY ---------------------------------------------------------------- */
.hsc-play{padding:0}
.hsc-hud{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:14px;
  padding:12px 16px; border-bottom:1px solid var(--line); background:rgba(15,23,32,.6);
}
.hsc-hud-left{display:flex; flex-direction:column; gap:2px; min-width:0}
.hsc-hud-round{font-size:13px; color:var(--muted)}
.hsc-hud-round b{color:var(--ink)}
.hsc-hud-scene{font-weight:900; font-size:16px; letter-spacing:.3px}
.hsc-timerbar{height:12px; border-radius:8px; background:#0b131b; border:1px solid var(--line); overflow:hidden}
.hsc-timerbar i{display:block; height:100%; width:100%; border-radius:8px;
  background:linear-gradient(90deg,#4ade80,#ffcb45 60%,#ff5a5f); transition:width .12s linear}
.hsc-hud-right{display:flex; align-items:center; gap:12px; font-size:15px}
.hsc-hud-right b{font-size:18px}
.hsc-hud-streak b{color:var(--orange)}

.hsc-warmth{
  display:flex; align-items:center; gap:10px; padding:7px 16px; font-size:12px; color:var(--muted);
  background:rgba(0,0,0,.18); border-bottom:1px solid var(--line);
}
.hsc-warmth{--w:0}
.hsc-warmth i{flex:1; height:8px; border-radius:6px; background:#0b131b; position:relative; overflow:hidden}
.hsc-warmth i::after{content:""; position:absolute; inset:0; width:calc(var(--w)*1%); border-radius:6px;
  background:linear-gradient(90deg,#3b82f6,#22d3ee 30%,#facc15 70%,#ef4444); transition:width .15s}
.hsc-warmth span{min-width:64px; text-align:right; font-weight:700}
.hsc-warmth.is-off{display:none}

/* The 3D room */
.hsc-scene-wrap{
  flex:1; position:relative; perspective:1300px; overflow:hidden;
  min-height:340px; cursor:none;
  background:radial-gradient(120% 90% at 50% 0%, #12202c, #0b131b 80%);
}
.hsc-scene{
  position:absolute; inset:0; transform-style:preserve-3d;
  transform:rotateX(calc(var(--ty,0)*1deg)) rotateY(calc(var(--tx,0)*1deg));
  transition:transform .18s ease-out;
}
.hsc-layer{position:absolute; inset:0; transform-style:preserve-3d; will-change:transform}
.hsc-scene svg{display:block}
/* Flat, untilted layer that holds the chameleon so clicks map 1:1 to pixels. */
.hsc-cham-layer{position:absolute; inset:0; pointer-events:none; z-index:6}

/* The chameleon */
.hsc-cham{
  position:absolute; transform-origin:center; cursor:none; z-index:5;
  transition:filter .2s, opacity .3s;
  animation:hsc-cham-breathe var(--bpm,3.4s) ease-in-out infinite;
}
@keyframes hsc-cham-breathe{
  0%,100%{transform:rotate(var(--rot,0deg)) scale(var(--s,1))}
  50%{transform:rotate(var(--rot,0deg)) scale(calc(var(--s,1)*1.045))}
}
.hsc-cham.is-hint{filter:drop-shadow(0 0 7px rgba(255,255,255,.55)) drop-shadow(0 0 2px rgba(255,255,255,.9))}
.hsc-cham.is-blink .cham-eye{transform:scaleY(.12)}
.hsc-cham.is-caught{animation:hsc-caught .5s ease forwards; z-index:9}
@keyframes hsc-caught{0%{transform:rotate(var(--rot,0deg)) scale(1)}35%{transform:scale(1.35) rotate(-8deg); filter:drop-shadow(0 0 14px var(--gold))}100%{transform:scale(.2) rotate(30deg); opacity:0}}
.hsc-cham .cham-eye{transform-box:fill-box; transform-origin:center; transition:transform .08s}
.hsc-cham .cham-body{transition:fill .8s ease, stroke .8s ease}

/* Torch / hunter cursor */
.hsc-torch{
  position:absolute; width:190px; height:190px; margin:-95px 0 0 -95px; pointer-events:none; z-index:8;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,240,200,.16) 0%, rgba(255,240,200,.08) 40%, transparent 68%);
  mix-blend-mode:screen;
}
.hsc-torch::after{content:""; position:absolute; left:50%; top:50%; width:30px; height:30px; margin:-15px;
  border:2px solid rgba(255,255,255,.65); border-radius:50%;
  box-shadow:0 0 0 2px rgba(0,0,0,.25) inset}
.hsc-torch.is-hot::after{border-color:var(--hot); box-shadow:0 0 12px var(--hot)}

.hsc-scene-wrap.reveal-all .hsc-cham{filter:drop-shadow(0 0 10px var(--hot))!important; opacity:1!important}
.hsc-scene-wrap.shake{animation:hsc-shake .26s ease}
@keyframes hsc-shake{0%,100%{transform:translate(0,0)}20%{transform:translate(-6px,2px)}40%{transform:translate(6px,-2px)}60%{transform:translate(-4px,3px)}80%{transform:translate(4px,-1px)}}

.hsc-toast{
  position:absolute; left:50%; bottom:22px; transform:translateX(-50%) translateY(10px);
  background:rgba(10,16,22,.92); border:1px solid var(--line); color:var(--ink);
  padding:10px 18px; border-radius:12px; font-weight:800; font-size:15px; opacity:0; pointer-events:none;
  transition:.2s; z-index:12; box-shadow:var(--shadow);
}
.hsc-toast.show{opacity:1; transform:translateX(-50%) translateY(0)}
.hsc-toast.good{border-color:var(--green); color:#c7ffd8}
.hsc-toast.bad{border-color:var(--hot); color:#ffd2d3}

/* ---- END / share card ---------------------------------------------------- */
.hsc-end{align-items:center; justify-content:flex-start; padding:24px 16px 48px; gap:20px; overflow-y:auto}
.hsc-card{
  width:min(460px,100%); border-radius:20px; overflow:hidden; color:#eaf2f8;
  background:linear-gradient(160deg,#173a2b 0%,#12202c 45%,#1a1230 100%);
  border:1px solid #2b4a3d; box-shadow:var(--shadow);
}
.hsc-card-top{display:flex; align-items:center; justify-content:space-between; padding:14px 18px; background:rgba(0,0,0,.22)}
.hsc-card-logo{font-weight:900; letter-spacing:.3px}
.hsc-card-diff{font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:1px; padding:4px 10px; border-radius:20px; background:rgba(94,184,255,.2); color:#bfe2ff}
.hsc-card-body{padding:22px 20px 8px; text-align:center}
.hsc-card-who{display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:10px}
.hsc-card-avatar{width:40px; height:40px; border-radius:50%; background:#0e1a16; display:grid; place-items:center; font-size:20px; overflow:hidden; border:2px solid var(--green)}
.hsc-card-avatar img{width:100%; height:100%; object-fit:cover}
.hsc-card-name{font-weight:800; font-size:18px}
.hsc-card-scorelabel{font-size:12px; letter-spacing:2px; text-transform:uppercase; color:#8fdcb0}
.hsc-card-score{font-size:66px; font-weight:900; line-height:1; margin:2px 0 6px;
  color:transparent; background:linear-gradient(90deg,#7df3a0,#ffcb45); -webkit-background-clip:text; background-clip:text}
.hsc-card-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:12px}
.hsc-card-stat{background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.08); border-radius:12px; padding:10px 6px}
.hsc-card-stat b{display:block; font-size:20px}
.hsc-card-stat span{font-size:11px; color:#9fb3c2; text-transform:uppercase; letter-spacing:.6px}
.hsc-card-foot{display:flex; align-items:center; justify-content:space-between; padding:14px 18px; margin-top:10px; background:rgba(0,0,0,.28); font-size:12px}
.hsc-card-foot #hsc-card-verdict{font-weight:800; color:var(--gold)}
.hsc-card-url{color:#8fa6b6}

.hsc-share{width:min(460px,100%); text-align:center}
.hsc-share-title{font-size:13px; color:var(--muted); text-transform:uppercase; letter-spacing:1.5px; margin-bottom:10px}
.hsc-share-row{display:flex; flex-wrap:wrap; gap:8px; justify-content:center}
.hsc-share-btn{border:0; cursor:pointer; color:#fff; font-weight:800; font-size:14px; padding:11px 16px; border-radius:11px; transition:transform .08s, filter .15s}
.hsc-share-btn:hover{filter:brightness(1.08)} .hsc-share-btn:active{transform:translateY(2px)}
.hsc-native{background:linear-gradient(180deg,#5eb8ff,#2f8fe0)}
.hsc-wa{background:linear-gradient(180deg,#25d366,#1da851)}
.hsc-tw{background:linear-gradient(180deg,#2b3138,#101418); border:1px solid #3a444d}
.hsc-fb{background:linear-gradient(180deg,#3b7bf6,#1e5fd6)}
.hsc-ig{background:linear-gradient(90deg,#f9ce34,#ee2a7b 45%,#6228d7)}
.hsc-dl{background:linear-gradient(180deg,#48586a,#31404f)}
.hsc-share-note{font-size:12.5px; color:var(--muted); margin-top:10px; min-height:16px}
.hsc-share-note a{color:var(--blue)}

.hsc-end-actions{display:flex; gap:10px; align-items:center; width:min(460px,100%)}
.hsc-end-actions .hsc-play-btn{flex:1}

/* ---- Leaderboard modal --------------------------------------------------- */
.hsc-modal{position:fixed; inset:0; z-index:60; display:grid; place-items:center; padding:18px;
  background:rgba(4,8,12,.66); backdrop-filter:blur(4px)}
.hsc-modal[hidden]{display:none}
.hsc-modal-card{width:min(460px,100%); max-height:82dvh; display:flex; flex-direction:column;
  background:var(--panel); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); overflow:hidden}
.hsc-modal-head{display:flex; align-items:center; justify-content:space-between; padding:16px 18px; border-bottom:1px solid var(--line)}
.hsc-modal-head h2{margin:0; font-size:18px}
.hsc-board-tabs{display:flex; gap:6px; padding:12px 14px 6px}
.hsc-board-tabs button{flex:1; border:1px solid var(--line); background:var(--panel2); color:var(--muted);
  padding:8px; border-radius:9px; font-weight:700; cursor:pointer; font-size:13px}
.hsc-board-tabs button.is-sel{color:var(--ink); border-color:var(--green); background:rgba(74,222,128,.12)}
.hsc-board-list{overflow-y:auto; padding:6px 14px 16px}
.hsc-board-empty{color:var(--muted); text-align:center; padding:26px 0}
.hsc-brow{display:grid; grid-template-columns:30px 1fr auto; align-items:center; gap:10px; padding:9px 8px; border-bottom:1px solid rgba(255,255,255,.05)}
.hsc-brow .rk{font-weight:900; color:var(--muted); text-align:center}
.hsc-brow.top1 .rk{color:var(--gold)} .hsc-brow.top2 .rk{color:#cdd7e0} .hsc-brow.top3 .rk{color:#e0a56b}
.hsc-brow .who{display:flex; align-items:center; gap:8px; min-width:0}
.hsc-brow .who img{width:26px; height:26px; border-radius:50%; object-fit:cover}
.hsc-brow .who .nm{font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.hsc-brow .who .df{font-size:11px; color:var(--muted); border:1px solid var(--line); border-radius:20px; padding:1px 7px; text-transform:capitalize}
.hsc-brow .sc{font-weight:900; color:var(--green)}

@media (max-width:520px){
  .hsc-brand-text{display:none}
  .hsc-user-name{display:none}
  .hsc-card-score{font-size:56px}
  .hsc-hud{gap:9px}
}
