/* HyodoGame 한지 UI 셸 — matgo·minhwatu·sokdam·sachunseong·spotdiff 공유.
 * prepare_dist가 shell:"hanji" 게임에만 주입한다.
 * 게임 <style>이 이 파일 뒤에 오므로 게임 전용 덮어쓰기가 가능하다. */

:root{
  --bg:#F2EDE1;
  --ink:#29251F; --ink-2:#6F6558; --line:#DED6C6;
  --gold:#C49A33; --gold-2:#8A6511; --gold-lt:#EFDFAE;
  --wood:#4A3226; --wood-lt:#7A5540;
  --red:#B5342A; --ok:#2C7A50; --lose:#A63D3D;
  --sh-1:0 1px 2px rgba(41,37,31,.10), 0 2px 6px rgba(41,37,31,.10);
  --sh-2:0 4px 14px rgba(41,37,31,.18);
  --sh-3:0 12px 40px rgba(41,37,31,.30);
  --serif:"Noto Serif KR","Noto Serif CJK KR","NanumMyeongjo","Batang","바탕",serif;
  --sans:"Noto Sans KR","Noto Sans CJK KR","Pretendard","Malgun Gothic","맑은 고딕",-apple-system,sans-serif;
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
[hidden]{display:none !important;}
html,body{height:100%;min-height:100%;height:100vh;height:100dvh;margin:0;overscroll-behavior:none;}
body{color:var(--ink);font-family:var(--sans);font-size:21px;overflow:hidden;user-select:none;
  display:flex;flex-direction:column;
  background:radial-gradient(140% 90% at 50% 0%, #FBF7EE 0%, var(--bg) 60%, #E7E0D0 100%);}

/* 공용 버튼 (모달·도우미) */
.btn{border:none;background:none;font:inherit;cursor:pointer;position:relative;
  font-family:var(--sans);font-size:18px;font-weight:800;color:#6E5312;
  padding:10px 16px;border-radius:13px;min-height:52px;white-space:nowrap;
  background:linear-gradient(180deg,#FFFDF7 0%,#F4EBD8 100%);
  border:1.5px solid #D9C89B;box-shadow:0 2px 0 #CDBA8D, var(--sh-1);
  transition:transform .09s ease, box-shadow .09s ease;}
.btn:active{transform:translateY(2px);box-shadow:0 0 0 #CDBA8D, var(--sh-1);}
.btn:focus-visible{outline:3px solid var(--red);outline-offset:2px;}
.btn.gold{color:#3A2A05;border-color:#9E7716;
  background:linear-gradient(180deg,#EBCC72 0%,#C49A33 55%,#AB821F 100%);
  box-shadow:0 3px 0 #7E5D10, var(--sh-2), inset 0 1px 0 rgba(255,255,255,.5);}
.btn.gold:active{box-shadow:0 0 0 #7E5D10, var(--sh-1), inset 0 1px 0 rgba(255,255,255,.4);}
.btn.big{font-size:25px;padding:16px 30px;min-height:72px;border-radius:16px;}
.btn[disabled]{opacity:.42;pointer-events:none;}

/* 상단 바 버튼 (마크업은 게임별 — 지갑 위젯이 다름) */
.topbar .btn{color:#F1E7D5;font-size:18px;font-weight:800;min-height:52px;padding:9px 16px;border-radius:12px;
  background:linear-gradient(180deg,rgba(255,247,232,.15),rgba(255,247,232,.05));
  border:1px solid rgba(247,238,222,.26);
  box-shadow:0 2px 0 rgba(0,0,0,.45), inset 0 1px 0 rgba(255,247,232,.15);}
.topbar .btn:active{transform:translateY(2px);box-shadow:0 0 0 rgba(0,0,0,.45), inset 0 1px 0 rgba(255,247,232,.10);}
.topbar .btn:focus-visible{outline:3px solid #F2D98E;outline-offset:2px;}
.topbar .btn.gold{color:#2E2003;border-color:#B08A28;
  background:linear-gradient(180deg,#F6E1A6 0%,#DEB856 48%,#C29A31 100%);
  box-shadow:0 3px 0 #7A5C12, 0 4px 14px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.55);}
.topbar .btn.gold:active{box-shadow:0 0 0 #7A5C12, 0 2px 8px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.45);}
.topbar .btn.ico{width:52px;min-width:52px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;}
.topbar .btn.ico svg{width:25px;height:25px;}
.topbar .btn.ico .wave{opacity:1;transition:opacity .15s;}
.topbar .btn.ico .slash{opacity:0;transition:opacity .15s;}
.topbar .btn.ico.off .wave{opacity:0;}
.topbar .btn.ico.off .slash{opacity:1;}
.topbar .btn.stack{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 16px;line-height:1;}
.topbar .btn.stack .mini{font-size:10.5px;font-weight:800;letter-spacing:.18em;color:#C0AA80;}
.topbar .btn.stack .val{font-size:19px;font-weight:900;}

/* 모달 */
.veil{position:fixed;inset:0;background:rgba(28,24,19,.6);backdrop-filter:blur(2px);
  z-index:80;display:flex;align-items:center;justify-content:center;padding:18px;}
.modal{background:linear-gradient(180deg,#FDFAF2 0%,#F6F0E1 100%);
  border:2px solid var(--gold);border-top:7px solid var(--gold);border-radius:22px;box-shadow:var(--sh-3);
  padding:26px 24px;max-width:560px;width:100%;max-height:88%;overflow:auto;}
.modal h2{margin:0 0 15px;font-family:var(--serif);font-size:29px;color:#7E5D10;text-align:center;letter-spacing:.03em;}
.acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px;}
.modal.help dl{margin:0;font-size:18px;line-height:1.6;}
.modal.help dt{font-weight:900;color:#7E241C;margin-top:13px;font-family:var(--serif);font-size:19px;}
.modal.help dd{margin:2px 0 0;color:#463F35;}

/* 난이도 / 레벨 선택 */
.diffbtns{display:flex;flex-direction:column;gap:13px;margin-top:6px;}
.diffbtn{display:flex;align-items:center;gap:15px;border:2px solid var(--line);
  background:linear-gradient(180deg,#FFFDF8,#F7F2E6);border-radius:16px;
  padding:14px 18px;cursor:pointer;font:inherit;text-align:left;
  box-shadow:var(--sh-1);transition:border-color .15s, box-shadow .15s;}
.diffbtn:active,.diffbtn.sel{border-color:var(--gold);box-shadow:0 0 0 3px rgba(196,154,51,.25),var(--sh-1);}
/* .em 상자 크기는 게임마다 다르다(이모지 vs 初中高 배지) — 셸이 정하지 않는다 */
.diffbtn .t{font-size:24px;font-weight:900;font-family:var(--serif);}
.diffbtn .d{font-size:15.5px;color:var(--ink-2);font-weight:700;}

/* 폭죽 */
#confetti{position:fixed;inset:0;pointer-events:none;z-index:65;overflow:hidden;}
.conf{position:absolute;top:-20px;width:12px;height:12px;}
