/* Prevent browser pull-to-refresh at document edges; keep normal scrolling and zoom. */
html,body{overscroll-behavior-y:none}
:root{color-scheme:light;--ink:#243e37;--green:#183f38;--muted:#65716a;--line:#dcded3;--paper:#f3f3eb;--gold:#d2ab68}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 system-ui,-apple-system,'Noto Sans KR',sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{min-height:46px;border:1px solid #ccd3c8;border-radius:10px;background:#fffef8;color:var(--ink);padding:9px 14px;font-weight:650;cursor:pointer}button:hover{border-color:#668676;background:#ebf0e7}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#29594e;color:white}input:not([type=checkbox]):not([type=range]),select,textarea{width:100%;min-height:46px;border:1px solid #ccd3c8;border-radius:9px;background:#fff;padding:10px;color:var(--ink)}input[type=range]{width:100%;height:42px;accent-color:var(--green);margin:0}input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}label{font-weight:650;display:block}header{max-width:1120px;padding:16px 20px;margin:auto;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted)}.brand{text-decoration:none;color:var(--green);font-weight:850;letter-spacing:.12em}main{max-width:1120px;margin:auto;padding:24px 18px 60px}.entry{max-width:590px;margin:24px auto}h1{font-size:32px;line-height:1.2;letter-spacing:-.05em;margin:8px 0 18px}.entry h1{font-family:serif;font-size:46px}.entry h1 span{display:block;font:500 18px/1.8 system-ui;letter-spacing:-.04em;margin-top:12px}h2{font-size:18px;margin:0 0 12px}.eyebrow{font-size:11px;letter-spacing:.15em;font-weight:800;color:#587569;margin:0}.muted,small{color:var(--muted);font-size:13px}.card{padding:20px;background:#fffef9;border:1px solid var(--line);border-radius:16px;margin:16px 0;box-shadow:0 3px 12px #253e3710}.card.compact{padding:12px 16px;margin:0 0 12px}.card.compact p{margin:6px 0 0}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row>*{flex:1;min-width:0}.row input{flex:2}.row.settings{margin:16px 0}.row.settings label{font-size:13px}.between{justify-content:space-between}.between>*{flex:0 1 auto}.between h2{margin:0}.wide{width:100%;margin:8px 0}details{margin-top:16px}summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:650;font-size:14px}summary::before{content:'＋';margin-right:8px;color:#668173}details[open]>summary::before{content:'−'}details>.row{margin-top:12px}.gamehead{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.gamehead h1{font-family:serif;font-size:27px;margin:4px 0}.layout{display:grid;grid-template-columns:minmax(0,660px) minmax(280px,1fr);gap:24px;align-items:start}.boardcol{min-width:0}.statusbar{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:10px 0}.statusbar strong{font-size:16px}#boardWrap{border:1px solid #c09c60;border-radius:10px;overflow:hidden;box-shadow:0 8px 28px #543a1620;background:#ddbc83}#board{width:100%;height:auto;display:block;touch-action:manipulation;user-select:none}#board [data-i]{cursor:pointer}#status{font-size:13px;min-height:43px;padding:8px 2px;color:var(--muted)}#playControls #place{flex:2}#reviewToggle{font-size:13px}.reviewcard{margin-top:0}.navrow{display:grid;grid-template-columns:1fr 1fr 1.35fr 1fr 1fr;gap:6px;margin:0 0 14px}.navrow button{padding:8px 4px}#review .row{margin:8px 0}.check{font-size:12px;display:flex;align-items:center;gap:4px}#branchHint{margin:8px 0 16px}#note{resize:vertical}.bookmarklist,.movelist{display:flex;gap:6px;flex-wrap:wrap;max-height:220px;overflow:auto;margin-top:12px}.bookmarklist button,.movelist button{font-size:12px;padding:6px 9px;min-height:44px}.movelist button.current{background:var(--green);color:white}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#183f38;color:white;padding:12px 18px;max-width:90vw;width:max-content;border-radius:12px;z-index:20;box-shadow:0 6px 24px #0003}#savedList .saved{display:flex;gap:8px;border-bottom:1px solid var(--line);padding:10px 0;align-items:center}.saved>button:first-child{flex:1;text-align:left;font-size:13px}.saved small{display:block}.saved button{font-size:12px}#result{background:#e7eee2;border-color:#aebfa4}#scoreText{font-weight:750}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b28841;outline-offset:2px}[hidden]{display:none!important}@media(max-width:760px){main{padding:16px 12px 44px}.layout{grid-template-columns:1fr;gap:16px}.entry{margin:12px auto}.entry h1{font-size:40px}.card{padding:16px}.statusbar{padding:6px 0}.gamehead{margin-bottom:8px}.gamehead h1{font-size:24px}header{padding:12px}.reviewcard{margin-top:4px}.boardcol{max-width:600px;width:100%;margin:auto}aside{width:100%;max-width:600px;margin:auto}}.analysisPanel{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin:16px 0}.analysisPanel h2{font-size:16px}.analysisPanel .row button{font-size:12px;flex:1 1 90px;padding:8px}.analysisStats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.analysisStats>div{flex:1;padding:10px;background:#edf1e8;border-radius:9px;font-size:12px}.analysisStats strong{font-size:20px;display:block}.candidate{border-top:1px solid var(--line);padding:8px 0;font-size:12px}.candidate button{font-size:12px;min-height:44px;margin-top:6px;width:100%}#winGraph{display:block;width:100%;height:90px;margin:12px 0;background:#edf0e9;border-radius:8px;cursor:pointer}#analysisSummary p{font-size:13px}#toast{pointer-events:none}@media(min-width:1024px){header,main{width:calc(100% - 64px);max-width:1560px;padding-left:0;padding-right:0}.entry{max-width:1360px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:32px;align-items:start;margin:32px auto}.entry>.eyebrow,.entry>h1,.entry>.muted{grid-column:1/-1}.entry h1{font-size:52px}.entry>.card{margin-top:16px}.layout{grid-template-columns:minmax(0,1.1fr) minmax(360px,1fr);gap:32px}.boardcol{width:100%;max-width:760px;margin:0}.layout>aside{min-width:0}.reviewcard{padding:24px}.analysisPanel .row button{font-size:14px}.gamehead h1{font-size:32px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}