@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;font-size:16px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,a,summary{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button{transition:background .16s,color .16s,border-color .16s,transform .16s}.app-shell{max-width:1192px;margin:0 auto;padding:0 48px}.header{height:111px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.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;position:relative;display:inline-block}.brand-mark i{position:absolute;width:21px;height:21px;border-radius:50%;border:2px solid var(--bg);background:#f5f4ef;left:0;top:0}.brand-mark i+i{left:12px;top:12px;background:var(--accent)}.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;white-space:nowrap;padding-bottom:4px}.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:1;position:relative;background:var(--wood);border-radius:3px;color:#654a2d;box-shadow:inset 0 0 28px #b085442c;touch-action:manipulation;--stone-size:5.65%}.board-lines{position:absolute;inset:6.5%;width:87%;height:87%;overflow:visible;pointer-events:none}.coordinates{position:absolute;font-size:.75rem;color:#705738;pointer-events:none;font-family:ui-monospace,monospace}.horizontal{left:6.5%;right:6.5%;bottom:1.7%;height:16px}.horizontal span{position:absolute;transform:translateX(-50%)}.vertical{top:6.5%;bottom:6.5%;left:1.6%;width:17px}.vertical span{position:absolute;transform:translateY(-50%);width:100%;text-align:center}.board-cells{position:absolute;inset:0}.cell{position:absolute;width:6.21%;height:6.21%;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:transparent;display:grid;place-items:center;z-index:1;outline-offset:-1px!important}.cell:focus-visible{outline:2px solid #92522c;z-index:3}.cell .stone{width:91%;height:91%;border-radius:50%;position:relative;display:none;pointer-events:none}.cell[data-color='1'] .stone,.cell[data-color='2'] .stone{display:block;animation:place .18s ease-out}.stone.black,.player-stone.black{background:radial-gradient(circle at 33% 27%,#495058 0%,#262a2e 34%,#101215 75%);box-shadow:1px 3px 4px #34291c70,inset 0 0 0 1px #0007}.stone.white,.player-stone.white{background:radial-gradient(circle at 33% 25%,#fff 0%,#f3f2ee 42%,#d1d0c7 87%);box-shadow:1px 3px 4px #34291c70,inset 0 0 0 1px #fdfcfb55}.cell.last .stone:after{content:'';position:absolute;inset:36%;border-radius:50%;background:#f4a36a;box-shadow:0 0 0 1px #4c2e1680}.cell.winning .stone{outline:2px solid #ce6527;outline-offset:2px}.board[data-locked='true'] .cell{cursor:default}.cell[data-color='0']{cursor:crosshair}@media(hover:hover){.board:not([data-locked='true']) .cell[data-color='0']:hover .stone{display:block;background:#242a3080;box-shadow:none;animation:none;width:72%;height:72%}.board[data-turn='2']:not([data-locked='true']) .cell[data-color='0']:hover .stone{background:#fff9}}.board-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.75rem;margin:18px 2px 0}.board-caption>span{display:flex;align-items:center;gap:8px}.last-marker{display:inline-block;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;gap:10px}.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}.mode-switch button:hover{color:#fff}.status-block{padding:31px 0 26px;min-height:174px}.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;word-break:keep-all}.players{display:grid;gap:9px}.player{display:flex;align-items:center;gap:14px;padding:16px;background:#19222c;border:1px solid #303a47;border-radius:8px;min-width:0}.player.active{border-color:#d7905d;background:#292a29}.player-stone{display:block;width:34px;height:34px;flex:none;border-radius:50%}.player>div{display:grid;gap:3px}.player strong{font-size:.9375rem;font-weight:600}.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>div>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;color:var(--muted)}.actions{display:grid;gap:9px}.primary-button,.secondary-button{border-radius:7px;padding:13px 17px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:.9375rem;font-weight:600}.primary-button{background:var(--accent);color:#24201c;border:1px solid var(--accent)}.primary-button:hover{background:#ffb984;border-color:#ffb984}.secondary-button{background:transparent;border:1px solid #46505e;color:#e1e5ea}.secondary-button:hover{background:#293542}.secondary-button:disabled{color:#78828f;border-color:#303a46;background:transparent}.actions svg{width:18px;height:18px}.rules{border-top:1px solid var(--line);margin-top:25px;padding-top:19px}.rules summary{list-style:none;font-size:.875rem;color:#bfc8d2;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}.rules summary::-webkit-details-marker{display:none}.rules summary span{font-size:1.2rem;font-weight:400}.rules[open] summary span{transform:rotate(45deg)}.rules p{font-size:.875rem;color:var(--muted);line-height:1.8;word-break:keep-all}.rules strong{color:#e3e5e7}footer{border-top:1px solid var(--line);padding:22px 0 30px;color:#929eac;display:flex;justify-content:space-between;gap:20px;font-size:.75rem}footer span:last-child{font-family:ui-monospace,monospace;letter-spacing:.04em}dialog{background:#1c2632;color:var(--text);border:1px solid #46515e;border-radius:14px;padding:30px;max-width:400px;width:calc(100% - 32px);box-shadow:0 28px 90px #0008}dialog::backdrop{background:#08101bbf;backdrop-filter:blur(4px)}dialog p{font-size:.9375rem;line-height:1.7;color:var(--muted)}.dialog-actions{display:flex;gap:10px;margin-top:24px}.dialog-actions button{flex:1}body:has(dialog[open]){overflow:hidden}@keyframes place{from{transform:scale(.82)}to{transform:scale(1)}}@media(min-width:1300px){.app-shell{padding-top:12px}main{padding-top:45px}}@media(max-width:980px){.app-shell{padding:0 28px}main{gap:26px;grid-template-columns:minmax(0,1fr) 280px}.board-heading{align-items:flex-start}.rule-tag{display:none}.board-caption .keyboard-hint{display:none}.player{padding:13px;gap:11px}}@media(max-width:740px){.app-shell{padding:0 20px;max-width:600px}.header{height:79px}.header-note{font-size:.75rem}.brand{font-size:1.15rem}main{display:flex;flex-direction:column;gap:28px;padding:26px 0}.board-heading{margin-bottom:19px;align-items:flex-end}h1{font-size:1.6rem}.rule-tag{display:block;font-size:.75rem}.rule-tag span{display:none}.board-frame{padding:7px}.board-caption{margin-top:14px}.game-panel{padding:0}.panel-heading{display:none}.status-block{padding:21px 0;min-height:0}.status-block h2{margin:6px 0}.players{grid-template-columns:1fr 1fr;gap:10px}.player{padding:13px 11px;gap:10px;flex-wrap:wrap}.player-stone{width:30px;height:30px}.turn-tag{margin-left:40px;margin-top:-5px;width:100%}.match-stats{margin:23px 0}.actions{grid-template-columns:1fr 1fr}.coordinates{font-size:.75rem}.vertical{left:.7%}.horizontal{bottom:1%}.rules{margin-top:22px}.eyebrow{font-size:.75rem}footer{padding:20px 0 24px}.status-block p{font-size:.875rem}}@media(max-width:380px){.app-shell{padding:0 12px}.header-note{display:none}.coordinates{font-size:.75rem}.vertical{left:0;width:15px}.horizontal{bottom:0}.player strong{font-size:.875rem}.primary-button,.secondary-button{padding:12px 8px;font-size:.875rem}.rule-tag{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
