/* PlayBaduk 바둑 정석 사전(2026-10-23): 학습 화면(.js-study, 대국장과 같은 짙은 숲색) + 소개 화면(.jx, 홈과 같은 종이색) */
:root{--bg:#0f231e;--bg2:#13302a;--card:#183a33;--ink:#f3efe4;--dim:#b9c4b9;--dim2:#86948a;--line:rgba(255,255,255,.1);--gold:#d6b25e;--gold2:#f0d896;--jade:#5fc0a2;
  --paper:#f4f2eb;--pink:#203b32;--muted:#6f776b;--forest:#102b26;--pline:#d9ddd0}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans KR","Malgun Gothic",sans-serif}
button{font-family:inherit}

/* ───────── 학습 화면 ───────── */
.js-study{background:var(--bg);color:var(--ink);min-height:100dvh;word-break:keep-all}
.js-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:16px;padding:10px 18px;background:#0b1d18f2;border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}
.js-back{color:var(--gold2);text-decoration:none;font-size:13px;font-weight:700;border:1px solid #d6b25e55;border-radius:999px;padding:6px 12px;white-space:nowrap}
.js-title{display:flex;flex-direction:column;line-height:1.2}.js-title small{font-size:11px;color:var(--dim2);letter-spacing:.06em}.js-title b{font-size:18px;letter-spacing:-.02em}
.js-fams{display:flex;gap:6px;margin-left:auto;overflow-x:auto;scrollbar-width:none}.js-fams::-webkit-scrollbar{display:none}
.js-fams a{flex:none;color:var(--dim);text-decoration:none;font-size:13px;font-weight:700;padding:7px 12px;border-radius:999px;border:1px solid var(--line)}
.js-fams a.on{background:var(--gold);color:#14281f;border-color:var(--gold)}
.js-main{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:0;min-height:calc(100dvh - 58px)}
.js-boardcol{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100dvh - 58px);gap:12px;padding:clamp(10px,2.2vmin,24px);background:linear-gradient(#102b26e0,#102b26ee),url('../assets/village-palace-real-v1.png') center/cover}
.js-board{width:min(100%,calc(100dvh - 150px))}
.js-board:has(.gb[data-view="3d"]){width:min(100%,calc((100dvh - 150px) * 1.45))}
.js-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.js-nav button{white-space:nowrap;min-width:42px;height:40px;border-radius:10px;border:1px solid #ffffff26;background:#183a33;color:var(--ink);font-size:15px;cursor:pointer;padding:0 12px}
.js-nav button:hover:not(:disabled){background:#22483f}.js-nav button:disabled{opacity:.35;cursor:default}
.js-nav button.on{background:var(--gold);color:#14281f;border-color:var(--gold)}
.js-count{min-width:70px;text-align:center;font-weight:800;color:var(--gold2)}
.js-side{display:flex;flex-direction:column;gap:12px;padding:14px 16px 28px;border-left:1px solid var(--line);background:var(--bg2);overflow:auto;max-height:calc(100dvh - 58px);position:sticky;top:58px}
.js-tabs{display:none}
.js-side>*{flex-shrink:0}
.js-path{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}
.js-path button{flex:none;min-width:30px;height:30px;border-radius:50%;border:0;font-size:12px;font-weight:800;cursor:pointer;padding:0 6px}
.js-path button:first-child{border-radius:15px;padding:0 10px}
.js-path button.b{background:#151515;color:#fff;box-shadow:inset 0 0 0 1px #555}.js-path button.w{background:#f4f1e8;color:#1b1b1b}
.js-path button.on{outline:3px solid var(--gold);outline-offset:1px}
.js-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.js-card h3{margin:0 0 8px;font-size:15px;color:var(--gold2)}
.js-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.js-badge{font-size:11px;font-weight:800;color:#fff;padding:3px 9px;border-radius:999px;background:#466}.js-badge.end{background:#b8452f}.js-badge.dim{background:#0000;border:1px solid var(--line);color:var(--dim)}
.js-remark{margin:0;font-size:14.5px;line-height:1.85;white-space:pre-line;color:#efeadb;min-height:3.6em}
.js-dim{color:var(--dim2);font-size:13px}
.js-ai{margin-top:12px;padding:12px 14px;border-radius:12px;background:#fffdf5;color:#2b2b2b}.js-ai b{color:#285240;font-size:13px}.js-ai p{margin:6px 0 0;font-size:14px;line-height:1.85;white-space:pre-line}
.js-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.js-actions button{border:1px solid #d6b25e77;background:#d6b25e;color:#14281f;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:800;cursor:pointer}
.js-actions button:nth-child(n+2){background:transparent;color:var(--gold2)}
.js-filter{display:flex;gap:6px;margin-bottom:10px}.js-filter button{flex:1;border:1px solid var(--line);background:transparent;color:var(--dim);border-radius:9px;padding:6px 0;font-size:12px;font-weight:700;cursor:pointer}.js-filter button.on{background:#ffffff1a;color:var(--ink);border-color:#ffffff40}
.js-next{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;max-height:300px;overflow:auto}
.js-next li{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:#ffffff0d;cursor:pointer}
.js-next li:hover{background:#ffffff1f}
.js-next li>b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:14px}
.js-next li strong{font-size:14px;margin-right:4px}.js-next li em{font-style:normal;color:#f2a58f;font-weight:700}
.js-next li small{color:var(--dim2);font-size:11px;text-align:right}
.js-next li.js-hint{display:block;cursor:default;color:var(--dim);font-size:13px;line-height:1.7;background:#0000}
.js-practice{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:13px;color:var(--dim);line-height:1.6}
.js-opt{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.js-opt>span{font-size:12px;color:var(--dim2);font-weight:700}
.js-seg{display:flex;gap:4px;flex-wrap:wrap}.js-seg button{flex:1 1 auto;border:1px solid var(--line);background:transparent;color:var(--dim);border-radius:9px;padding:7px 8px;font-size:12px;font-weight:700;cursor:pointer}.js-seg button.on{background:var(--gold);color:#14281f;border-color:var(--gold)}
.js-boards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.js-mat{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:9px;padding:6px;font-size:12px;cursor:pointer}.js-mat.on{border-color:var(--gold);background:#d6b25e22}.js-mat:disabled{opacity:.5;cursor:not-allowed}
.js-mat i{width:18px;height:18px;border-radius:4px;flex:none;background:#c89a5a}
.js-mat[data-m=oak] i{background:#d4a868}.js-mat[data-m=kaya] i{background:#e0b56c}.js-mat[data-m=walnut] i{background:#6b4a2f}.js-mat[data-m=stone] i{background:#9a9a9a}.js-mat[data-m=jade] i{background:#5f9e84}.js-mat[data-m=gold] i{background:#d8b24a}.js-mat[data-m=crystal] i{background:#b9dfe8}.js-mat[data-m=diamond] i{background:#e8eef2}.js-mat[data-m=najeon] i{background:linear-gradient(135deg,#3b2a3f,#7aa6b8,#c49ac7)}
.js-checks{flex-direction:row;gap:16px}.js-checks label{font-size:13px;color:var(--dim)}
.js-opt input[type=range]{width:100%}
.js-dialog{border:0;border-radius:18px;padding:0;background:var(--bg2);color:var(--ink);width:min(560px,94vw);box-shadow:0 24px 60px #0009}.js-dialog::backdrop{background:#000a}
.js-dialog-in{padding:18px;position:relative}.js-dialog h3{margin:0 30px 10px 0;font-size:16px;color:var(--gold2)}.js-x{position:absolute;right:12px;top:10px;border:0;background:none;color:var(--ink);font-size:20px;cursor:pointer}
.js-dialog p{font-size:14px;line-height:1.8;white-space:pre-line}.js-ref-nav{display:flex;gap:6px}.js-ref-nav button{border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:8px;padding:5px 10px;cursor:pointer}.js-ref-nav button.on{background:var(--gold);color:#14281f}
.js-toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,30px);opacity:0;pointer-events:none;background:#fffdf5;color:#203b32;font-weight:700;font-size:14px;padding:10px 16px;border-radius:12px;box-shadow:0 10px 30px #0006;transition:.25s;z-index:50;max-width:92vw}
.js-toast.on{opacity:1;transform:translate(-50%,0)}
@media (max-width:860px){
  .js-top{padding:8px 12px;gap:10px;flex-wrap:wrap}.js-title b{font-size:16px}.js-fams{order:3;width:100%;margin-left:0}
  .js-main{grid-template-columns:1fr}
  .js-boardcol{padding:8px 6px 10px}.js-board{width:100%}
  .js-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;width:100%;background:#0b1d18f0;padding:8px 6px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);flex-wrap:nowrap;overflow-x:auto}
  .js-nav button{min-width:40px;padding:0 9px}
  .js-side{border-left:0;max-height:none;position:static;padding:10px 12px 90px}
  .js-tabs{display:flex;gap:4px;background:#0b1d18;border-radius:12px;padding:4px}.js-tabs button{flex:1;border:0;background:transparent;color:var(--dim);font-weight:800;font-size:13px;padding:9px 0;border-radius:9px}.js-tabs button.on{background:var(--gold);color:#14281f}
  .js-side .js-card{display:none}
  .js-side[data-tab=comment] .tab-comment,.js-side[data-tab=next] .tab-next,.js-side[data-tab=talk] .tab-talk,.js-side[data-tab=opts] .tab-opts{display:block}
  .js-boardcol{min-height:0;justify-content:flex-start}.js-board,.js-board:has(.gb[data-view="3d"]){width:100%}
  .js-next{max-height:none}
}

/* ───────── 소개 화면(joseki.html) ───────── */
.jx{background:var(--paper);color:var(--pink);word-break:keep-all}
.jx a{color:inherit}
.jx-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:20px;padding:14px clamp(16px,4vw,48px);background:#f4f2ebe8;backdrop-filter:blur(10px);border-bottom:1px solid var(--pline)}
.jx-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:900;font-size:18px;letter-spacing:-.02em}.jx-brand i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--forest);color:#f0d896;font-style:normal;font-size:16px}
.jx-top nav{margin-left:auto;display:flex;gap:18px;font-size:14px;font-weight:700}.jx-top nav a{text-decoration:none;color:var(--muted)}.jx-top nav a.on{color:var(--pink)}
.jx-hero{position:relative;overflow:hidden;color:#f6efdc;background:radial-gradient(ellipse at 80% 20%,#2c5a4b,transparent 60%),linear-gradient(160deg,#16352d,#0d201b)}
.jx-hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,4vw,60px);align-items:center;max-width:1200px;margin:0 auto;padding:clamp(44px,8vw,96px) clamp(16px,4vw,48px)}
.jx-over{font-size:12px;letter-spacing:.24em;color:#d6b77a;font-weight:800}
.jx-hero h1{font-size:clamp(34px,6vw,64px);line-height:1.12;margin:14px 0 18px;letter-spacing:-.04em;font-weight:900}
.jx-hero h1 em{font-style:normal;color:#f0d896}
.jx-hero p{font-size:clamp(15px,1.8vw,18px);line-height:1.9;color:#d9e2d6;margin:0 0 26px;max-width:36em}
.jx-cta{display:flex;gap:10px;flex-wrap:wrap}
.jx-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:999px;font-weight:900;font-size:15px;text-decoration:none;border:2px solid #d6b77a}
.jx-btn.primary{background:#d6b77a;color:#13281f}.jx-btn.ghost{color:#f0d896}
.jx-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:30px}
.jx-stats div{border-top:1px solid #ffffff2a;padding-top:10px}.jx-stats b{display:block;font-size:clamp(20px,2.6vw,28px);color:#f0d896;letter-spacing:-.03em}.jx-stats span{font-size:12px;color:#b9c8bd}
.jx-heroboard{width:100%;max-width:470px;justify-self:center}
.jx-sec{max-width:1100px;margin:0 auto;padding:clamp(48px,7vw,90px) clamp(16px,4vw,48px)}
.jx-sec h2{font-size:clamp(26px,3.4vw,38px);letter-spacing:-.03em;margin:8px 0 18px;line-height:1.3}
.jx-sec .jx-over{color:#9b7a3a}
.jx-lead{font-size:17px;line-height:2;color:#3d5148;max-width:46em}
.jx-two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,56px);align-items:start}
.jx-points{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
.jx-point{background:#fff;border:1px solid var(--pline);border-radius:18px;padding:22px}.jx-point b{display:block;font-size:17px;margin-bottom:8px}.jx-point p{margin:0;font-size:14.5px;line-height:1.85;color:#4c5d55}
.jx-point i{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#203b32;color:#f0d896;font-style:normal;font-weight:900;margin-bottom:12px}
.jx-steps{counter-reset:s;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px;padding:0;list-style:none}
.jx-steps li{position:relative;padding:20px 18px 18px;border-radius:18px;background:#203b32;color:#e9efe6;font-size:14px;line-height:1.8}
.jx-steps li:before{counter-increment:s;content:counter(s);display:block;font-size:30px;font-weight:900;color:#f0d896;margin-bottom:6px}
.jx-steps b{display:block;color:#fff;font-size:16px;margin-bottom:4px}
.jx-dark{background:var(--forest);color:#eef2ea}.jx-dark .jx-lead{color:#c9d6cc}.jx-dark .jx-over{color:#d6b77a}
.jx-fams{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:28px}
.jx-fam{display:flex;flex-direction:column;gap:10px;background:#fff;color:var(--pink);border-radius:20px;padding:18px;text-decoration:none;border:1px solid var(--pline);transition:transform .2s,box-shadow .2s}
.jx-fam:hover{transform:translateY(-3px);box-shadow:0 16px 40px #0003}
.jx-fam .jx-mini{width:100%;aspect-ratio:1.6;border-radius:12px;background:#e7c891}
.jx-fam h3{margin:4px 0 0;font-size:20px;letter-spacing:-.02em}.jx-fam h3 small{font-size:13px;color:#9b7a3a;margin-left:6px}
.jx-fam p{margin:0;font-size:14px;line-height:1.75;color:#4c5d55;flex:1}
.jx-fam .jx-meta{display:flex;gap:12px;font-size:12px;color:#7b8175}.jx-fam .jx-meta b{color:#203b32}
.jx-fam .jx-go{font-weight:900;color:#2f6b55}
.jx-fam.first{border:2px solid #d6b77a}
.jx-soon{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.jx-soon div{border:1px dashed #a8b4a7;border-radius:18px;padding:20px;font-size:14px;line-height:1.8;color:#4c5d55}.jx-soon b{display:block;font-size:16px;color:#203b32;margin-bottom:4px}
.jx-foot{border-top:1px solid var(--pline);padding:30px clamp(16px,4vw,48px);font-size:13px;color:#7b8175;text-align:center;line-height:1.9}
@media (max-width:900px){.jx-hero-in,.jx-two{grid-template-columns:1fr}.jx-heroboard{max-width:360px}.jx-points,.jx-soon{grid-template-columns:1fr}.jx-steps{grid-template-columns:1fr 1fr}.jx-stats{grid-template-columns:repeat(2,1fr)}.jx-top nav{gap:12px;font-size:13px}}
@media (max-width:520px){.jx-top nav a:not(.on):not(.home){display:none}.jx-steps{grid-template-columns:1fr}}
/* 정석 선생님과 대화(2026-10-23): 대국장·마을과 같은 대화창 */
.js-talkcard{padding:0;background:none;border:0}
.js-talk-open{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1px solid #d6b25e77;background:#d6b25e;color:#14281f;border-radius:14px;padding:12px 16px;font-size:15px;font-weight:900;cursor:pointer;text-align:left}
.js-talk-open small{font-size:12px;font-weight:700;opacity:.8}.js-talk-open[hidden]{display:none}
.js-talk.pb-talk{margin:0;font-family:"Noto Sans KR",sans-serif}.js-talk:after{display:none}.js-talk[hidden]{display:none}
.js-talk .talk-log{max-height:300px}
/* 되돌아가도 보이는 앞으로 갈 수순(2026-10-24) — 흐리게, 누르면 그 수로 */
.js-path button.ahead{opacity:.42;border-style:dashed}
.js-path button.ahead:hover{opacity:.85}
/* 인간 정석 / AI 정석(2026-10-24) */
.js-kind{display:inline-flex;flex:none;gap:2px;padding:3px;border-radius:999px;background:#ffffff14;margin-right:6px}
.js-kind button{border:0;background:none;color:var(--dim);font:700 13px "Noto Sans KR",sans-serif;padding:6px 12px;border-radius:999px;cursor:pointer}
.js-kind button.on{background:#3f7d70;color:#fff}
.js-kind button:disabled{opacity:.4;cursor:default}
.js-badge.ai{background:#2f5f9e!important;color:#fff}
.js-badge.match{background:#3f7d70!important;color:#fff}
.js-badge.diff{background:#8a5a1e!important;color:#fff}
.js-ai-n{color:var(--dim);font-weight:600;margin-left:4px}
.jx-kind{margin:26px 0 12px;font-size:20px;font-weight:900;letter-spacing:-.02em}
.jx-kind small{display:block;margin-top:4px;font-size:13.5px;font-weight:500;color:var(--dim)}
.jx-fam.ai{border-color:#2f5f9e88;background:linear-gradient(180deg,#14304a,#10243a)}
.jx-fam.ai .jx-go{color:#8fc0ff}
