@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#141b23;--surface:#1b242f;--line:#303b48;--text:#f5f4ef;--muted:#a6b1be;--accent:#f4a36a;--wood:#dcba84;font-family:'Noto Sans KR',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.app-shell{max-width:1192px;margin:auto;padding:0 48px}.header{height:111px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font-size:1.35rem;letter-spacing:-.04em}.brand strong{font-weight:800}.brand-mark{width:32px;height:32px;display:grid;place-items:center;background:var(--wood);clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%);color:#273746;font:22px serif}.header-note{font-size:.875rem;color:var(--muted)}main{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:48px;padding:40px 0 34px}.board-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:25px}.eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:600;color:var(--muted);margin:0 0 9px}h1{font-size:1.8rem;letter-spacing:-.055em;margin:0;font-weight:700;line-height:1.4}.rule-tag{font-size:.875rem;color:#ced5dd}.rule-tag span{margin-left:10px;color:var(--muted);font-size:.75rem}.board-frame{padding:10px;background:#b88c56;border-radius:9px;box-shadow:0 18px 42px #0003,inset 0 0 0 1px #f6d7a733}.board{aspect-ratio:9/10;position:relative;background:var(--wood);border-radius:3px;color:#654a2d;box-shadow:inset 0 0 28px #b085442c;touch-action:manipulation}.board-lines{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.board-lines line,.board-lines path{stroke:#6f542f;fill:none}.intersection{position:absolute;width:11.111%;height:10%;transform:translate(-50%,-50%);border:0;padding:0;background:transparent;display:grid;place-items:center}.piece{width:84%;aspect-ratio:1;display:grid;place-items:center;position:relative;z-index:2;font:600 clamp(18px,2.55vw,34px)/1 'Batang',serif;color:#2e6498;filter:drop-shadow(1px 3px 3px #34291c70);transition:transform .16s}.piece:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 35% 25%,#fffaf0,#ebd0a1 72%);clip-path:polygon(28% 0,72% 0,100% 28%,100% 72%,72% 100%,28% 100%,0 72%,0 28%);box-shadow:inset 0 -4px #b98750}.piece.han-piece{color:#b44940}.piece.general{width:93%;font-size:clamp(24px,3vw,41px)}.piece.soldier{width:72%;font-size:clamp(16px,2.15vw,27px)}.intersection.selected .piece{transform:translateY(-4px);filter:drop-shadow(0 0 5px #2e769e)}.intersection.selected:after{content:'';position:absolute;inset:7%;border:2px solid #295e82;border-radius:50%}.intersection.legal:after{content:'';width:22%;aspect-ratio:1;border-radius:50%;background:#24566a85}.intersection.legal:has(.piece):after{position:absolute;width:90%;aspect-ratio:1;border:3px solid #b65e46;background:transparent}.intersection.last:before{content:'';position:absolute;inset:8%;background:#f4a36a55;border-radius:7px}.intersection.check .piece{filter:drop-shadow(0 0 5px #f04e31)}.board-caption{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.75rem;margin:18px 2px 0}.board-caption span{display:flex;gap:8px;align-items:center}.last-marker{width:7px;height:7px;border-radius:50%;background:var(--accent)}.game-panel{padding-top:4px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-heading .eyebrow{margin:0}.match-label{font-size:.75rem;color:var(--muted)}.mode-switch{display:flex;background:#0e141c;border:1px solid #2b3541;padding:4px;border-radius:9px;gap:4px}.mode-switch button{flex:1;min-height:42px;background:transparent;border:0;color:var(--muted);font-size:.875rem;font-weight:600;border-radius:5px}.mode-switch button[aria-pressed=true]{background:#354251;color:var(--text);box-shadow:0 2px 4px #0002}.bot-settings{padding:19px 0 2px;border-bottom:1px solid var(--line)}.bot-settings[hidden]{display:none}.bot-card{display:flex;align-items:center;gap:12px}.bot-icon,.player-stone{width:35px;height:35px;display:grid;place-items:center;flex:none;font:22px serif;border-radius:50%}.bot-icon{background:#f4a36a;color:#30251e}.bot-card div{display:grid;gap:1px}.bot-card strong{font-size:.9rem}.bot-card span{font-size:.72rem;color:var(--muted)}.bot-card b{margin-left:auto;color:var(--accent);font:.75rem ui-monospace,monospace}.difficulty-heading{display:flex;justify-content:space-between;margin:18px 0 10px;font-size:.78rem;color:var(--muted)}.difficulty-heading strong{font-size:.8rem;color:var(--text)}.level-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.level-grid button{border:1px solid #46505e;border-radius:4px;background:transparent;color:var(--muted);height:28px;font-size:.72rem}.level-grid button[aria-pressed=true]{background:var(--accent);color:#27221c;border-color:var(--accent);font-weight:700}.level-description{font-size:.75rem;line-height:1.6;color:var(--muted);margin:11px 0 14px}.status-block{padding:27px 0 23px;min-height:162px}.status-overline{font-family:ui-monospace,monospace;font-size:.75rem;letter-spacing:.08em;color:var(--accent)}h2{margin:10px 0;font-size:1.35rem;letter-spacing:-.045em;line-height:1.5}.status-block p{color:var(--muted);font-size:.875rem;line-height:1.8;margin:0}.players{display:grid;gap:9px}.player{display:flex;align-items:center;gap:14px;padding:15px;background:#19222c;border:1px solid #303a47;border-radius:8px}.player.active{border-color:#d7905d;background:#292a29}.player-stone.cho{color:#63a5df;background:#243747}.player-stone.han{color:#ed837a;background:#402b2a}.player>div{display:grid;gap:3px}.player strong{font-size:.9375rem}.player>div>span{font-size:.75rem;color:var(--muted)}.turn-tag{font-size:.75rem;color:var(--accent);margin-left:auto;white-space:nowrap}.turn-tag[hidden]{display:none}.match-stats{display:grid;grid-template-columns:1fr 1fr;margin:24px 0 23px;padding:0 5px;gap:20px}.match-stats>div{display:grid;gap:8px}.match-stats>div+div{border-left:1px solid var(--line);padding-left:24px}.match-stats span{font-size:.75rem;color:var(--muted)}.match-stats strong{font:500 1.4rem ui-monospace,monospace;color:#e8e9ea}.match-stats strong span{font:400 .875rem 'Noto Sans KR',sans-serif}.actions{display:grid;gap:9px}.primary-button,.secondary-button{border-radius:7px;padding:13px 17px;min-height:48px;font-size:.9375rem;font-weight:600;border:1px solid}.primary-button{background:var(--accent);border-color:var(--accent);color:#24201c}.secondary-button{background:transparent;border-color:#46505e;color:#e1e5ea}.secondary-button:disabled{color:#78828f;border-color:#303a46}.small-actions{display:flex;justify-content:space-between;margin-top:11px}.small-actions button{background:none;border:0;color:var(--muted);font-size:.72rem;padding:7px}.rules{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.rules summary{list-style:none;font-size:.875rem;color:#bfc8d2;cursor:pointer;display:flex;justify-content:space-between}.rules summary::-webkit-details-marker{display:none}.rules[open] summary span{transform:rotate(45deg)}.rules p{font-size:.84rem;color:var(--muted);line-height:1.8}footer{border-top:1px solid var(--line);padding:22px 0 30px;color:#929eac;display:flex;justify-content:space-between;font-size:.75rem}dialog{background:#1c2632;color:var(--text);border:1px solid #46515e;border-radius:14px;padding:30px;max-width:400px;width:calc(100% - 32px)}dialog::backdrop{background:#08101bbf}.dialog-actions{display:flex;gap:10px;margin-top:24px}.dialog-actions button{flex:1}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:900px){.app-shell{padding:0 28px}main{gap:26px;grid-template-columns:minmax(0,1fr) 280px}}@media(max-width:740px){.app-shell{padding:0 20px;max-width:600px}.header{height:79px}.header-note{font-size:.75rem}main{display:flex;flex-direction:column;gap:28px;padding:26px 0}.game-panel{padding:0}.panel-heading{display:none}.board-heading{margin-bottom:19px}h1{font-size:1.6rem}.board-caption span:last-child{display:none}.actions{grid-template-columns:1fr 1fr}.status-block{min-height:0;padding:21px 0}.level-grid{grid-template-columns:repeat(10,1fr)}footer{padding:20px 0 24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
