/* ===================================================================
   hidely.io — 全站样式表  v8
   整份替换 /assets/style.css（旧文件只有 v7 追加块，基础样式已丢失）
   =================================================================== */

/* ---------- 1. 变量 ---------- */
:root{
  --bg:#fdfaf5;
  --ink:#1b1a17;
  --muted:#6f6a61;
  --line:#e9e2d6;
  --card:#ffffff;
  --panel:#f2ede3;
  --accent:#e4572e;
  --accent-soft:#ffd9a8;
  --console:#191d24;
  --console-line:rgba(255,255,255,.12);
  --radius:16px;
  --bad:#c93c3c;
  --sprite-boost:1;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;
}

/* ---------- 2. 基础 ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.65 var(--font);-webkit-font-smoothing:antialiased;
}
img{max-width:100%;}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}

header{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:12px max(20px, calc((100% - 980px)/2 + 20px));
  background:rgba(253,250,245,.88);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid var(--line);
}
header > a{font-weight:800;font-size:19px;color:var(--ink);letter-spacing:-.01em;}
header nav{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap;}
header nav a{
  font-size:14px;font-weight:600;color:var(--ink);
  padding:7px 14px;border-radius:999px;background:var(--panel);
  transition:background .15s,color .15s;
}
header nav a:hover{background:var(--accent);color:#fff;text-decoration:none;}

main{max-width:980px;margin:0 auto;padding:28px 20px 72px;}
h1{font-size:clamp(30px,4.6vw,42px);line-height:1.14;letter-spacing:-.025em;margin:8px 0 12px;}
h2{font-size:clamp(20px,2.6vw,26px);line-height:1.2;letter-spacing:-.02em;margin:44px 0 12px;}
h3{font-size:17px;margin:0 0 4px;}
p{margin:0 0 14px;color:#33302b;}
.intro{font-size:18px;color:var(--muted);max-width:70ch;}
section{scroll-margin-top:72px;}
ol,ul{padding-left:22px;margin:0 0 16px;}
li{margin:0 0 10px;}
strong{color:var(--ink);}

/* ---------- 3. 游戏区：一屏装得下 ---------- */
#play{margin-top:20px;}

.hud{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:10px 14px;margin:0 0 12px;
  background:var(--console);color:#f2f5f8;
  border-radius:14px;font-size:14px;font-weight:600;
  font-variant-numeric:tabular-nums;
}
.hud > span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.hud b{color:var(--accent-soft);font-size:16px;}
.hud .hint-btn{
  font:inherit;font-weight:700;color:#fff;cursor:pointer;
  padding:7px 14px;border-radius:999px;
  background:rgba(255,255,255,.13);
  border:1px solid var(--console-line);
  transition:background .15s;
}
.hud .hint-btn:hover{background:rgba(255,255,255,.24);}
.hud #backBtn{margin-left:auto;}

/* 舞台：宽度不超容器，高度按视口封顶 —— 这是「一页显示不完」的正解 */
#stage{
  position:relative;
  width:100%;
  max-width:min(100%, calc((100dvh - 240px) * 1.5));
  margin:0 auto;
  overflow:visible;
  line-height:0;
  touch-action:manipulation;
  border-radius:var(--radius);
  background:var(--panel);
  box-shadow:0 18px 44px -22px rgba(27,26,23,.45);
}
#stage > #sceneBg{
  display:block;
  width:100%;
  height:auto;
  max-height:calc(100dvh - 240px);
  object-fit:contain;
  border-radius:var(--radius);
  user-select:none;-webkit-user-drag:none;
}

/* 赢局浮层：默认必须隐藏，否则一进页面就盖在图上 */
.win{
  position:absolute;inset:0;z-index:6;
  display:none;align-items:center;justify-content:center;
  padding:24px;text-align:center;
  background:rgba(20,18,15,.62);
  backdrop-filter:blur(3px);
  border-radius:var(--radius);
}
.win.show{display:flex;}
.win > div{
  background:var(--card);color:var(--ink);
  padding:26px 30px;border-radius:18px;
  box-shadow:0 24px 60px -24px rgba(0,0,0,.5);
  line-height:1.5;max-width:340px;
}
.win h2{margin:0 0 6px;font-size:22px;}
.win p{margin:0 0 16px;color:var(--muted);}
.btn{
  font:inherit;font-weight:700;cursor:pointer;
  padding:11px 22px;border:0;border-radius:999px;
  background:var(--accent);color:#fff;
  box-shadow:0 10px 20px -10px rgba(228,87,46,.9);
  transition:transform .12s,box-shadow .12s;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 14px 26px -10px rgba(228,87,46,.95);}

/* ---------- 4. 动物 ---------- */
.sprite{
  position:absolute;top:0;left:0;
  aspect-ratio:1 / 1;
  will-change:transform;
  cursor:pointer;z-index:2;
  display:flex;align-items:center;justify-content:center;
  touch-action:manipulation;
  transition:opacity .35s ease, transform .35s ease;
  outline:12px solid transparent;   /* 给手指留出 12px 容错 */
  outline-offset:-2px;
}
.sprite img{
  width:100%;height:100%;object-fit:contain;
  pointer-events:none;user-select:none;-webkit-user-drag:none;
}
.sprite.found{opacity:0;transform:scale(1.6);pointer-events:none;}
.sprite.hint{filter:drop-shadow(0 0 10px var(--accent)) drop-shadow(0 0 22px var(--accent));}

/* ---------- 5. 场景卡片 ---------- */
.grid{
  display:grid;gap:18px;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;cursor:pointer;
  transition:transform .15s, box-shadow .15s, border-color .15s;
}
.card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 18px 34px -22px rgba(27,26,23,.5);}
.card img{
  display:block;width:100%;height:auto;aspect-ratio:16/10;
  object-fit:cover;background:var(--panel);
}
.card .body{padding:12px 14px 14px;}
.card .body h3{margin:0 0 2px;font-size:16px;line-height:1.3;}
.card .body p{margin:0;font-size:13px;color:var(--muted);line-height:1.45;}

/* ---------- 6. FAQ ---------- */
details{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px 16px;margin:0 0 10px;
}
details[open]{border-color:var(--accent-soft);}
summary{cursor:pointer;font-weight:600;list-style:none;}
summary::-webkit-details-marker{display:none;}
summary::after{content:"+";float:right;color:var(--accent);font-weight:700;}
details[open] summary::after{content:"–";}
details p{margin:10px 0 0;color:var(--muted);}

/* ---------- 7. 页脚 ---------- */
footer{
  border-top:1px solid var(--line);
  padding:26px 20px;text-align:center;
  font-size:13px;color:var(--muted);
}

/* ---------- 8. 错误条 ---------- */
.errbar{
  background:#fdeceb;border:1px solid #f3c2bf;color:#8d1f1f;
  padding:10px 14px;border-radius:12px;margin:0 0 16px;font-size:14px;
}

/* ---------- 9. 响应式 ---------- */
@media (max-width:760px){
  :root{--sprite-boost:1.15;}
  main{padding:20px 16px 56px;}
  h1{font-size:30px;}
  header{padding:10px 16px;gap:10px;}
  header nav{margin-left:0;width:100%;}
  header nav a{padding:6px 12px;font-size:13px;}
  .hud{font-size:13px;gap:8px;padding:9px 12px;}
  .hud #backBtn{margin-left:0;}
  /* 手机竖屏：封到视口 58% 高，保证 HUD 和图片上面的标题同屏 */
  #stage{max-width:100%;}
  #stage > #sceneBg{max-height:58dvh;}
  .grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;}
  .card .body{padding:10px 11px 12px;}
  .card .body h3{font-size:14px;}
  .card .body p{display:none;}
}
