:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#263c35;background:#f5f6f2;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;transition:background .2s,transform .2s;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b58d49;outline-offset:3px}button{border:0;background:none}input,select{width:100%;border:1px solid #dfe3dd;border-radius:5px;padding:12px;background:#fff;color:#263c35;outline:none}input:focus,select:focus{border-color:#537763;box-shadow:0 0 0 3px #456e5b14}h1,h2,h3,p{margin:0}h2{font-size:18px}small{font-size:12px}a{cursor:pointer;text-decoration:none;color:inherit}.app{min-height:100vh;display:flex}.sidebar{width:222px;flex-shrink:0;background:#172f28;color:#dbe2d9;padding:39px 20px 18px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:10}.brand{display:flex;align-items:center;gap:13px;padding-left:14px;font:600 30px "Noto Serif SC",serif;letter-spacing:5px}.brand-symbol{font-size:29px;border:1px solid #bda77a;color:#ddc28e;width:46px;height:49px;display:grid;place-items:center;letter-spacing:0;position:relative}.brand-symbol:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border:1px solid #bda77a55}.brand small{display:block;font:9px sans-serif;letter-spacing:2.1px;margin-top:8px;color:#9fae9f}.side-caption{text-align:center;color:#8c9e8d;font-size:12px;letter-spacing:2px;margin:24px 0 43px}.nav-item{width:100%;padding:15px 17px;display:flex;gap:14px;align-items:center;text-align:left;border-radius:5px;color:#afbeb2;margin-bottom:9px}.nav-item:hover{background:#ffffff08}.nav-item.active{color:#edddbd;background:#ffffff0d}.nav-marker{width:5px;height:5px;border-radius:50%;background:#c7ab74;margin-left:auto}.side-bottom{margin-top:auto;padding-top:35px}.side-quote{padding:25px 15px 30px;color:#abbdad;background:linear-gradient(130deg,transparent,#ffffff04);font:19px/1.8 "Noto Serif SC",serif;letter-spacing:5px}.side-quote span{display:block}.side-quote small{display:block;letter-spacing:0;font:12px sans-serif;margin-top:16px;color:#809687}.rule-link{display:flex;align-items:center;gap:9px;color:#a9b7ad;padding:18px 12px;border-bottom:1px solid #ffffff12;width:100%;font-size:13px}.rule-link svg:last-child{margin-left:auto}.side-user{display:flex;align-items:center;gap:11px;text-align:left;padding:22px 8px 5px;width:100%}.avatar,.table-avatar{display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#d8d8bc;color:#425846;font-family:"Noto Serif SC",serif}.side-user small{display:block;font-size:11px;color:#82988a;margin-top:6px}.side-user>svg{margin-left:auto}.app>main{margin-left:222px;width:calc(100% - 222px)}header{height:72px;border-bottom:1px solid #e3e7de;display:flex;align-items:center;justify-content:space-between;padding:0 42px;font-size:12px;background:#fbfcf9}header>div{display:flex;align-items:center;gap:12px}.breadcrumb{color:#929b90}.header-user{display:flex;align-items:center;gap:10px;font-size:12px}.mini-stone{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#5d6860,#14211b);box-shadow:0 2px 3px #0002}.content{max-width:1400px;margin:auto;padding:35px 42px 0}.page-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:2.4px;color:#8c9b8d;margin-bottom:11px}.page-title h1{font:500 29px/1.5 "Noto Serif SC",serif;letter-spacing:2px}.page-title p{font-size:13px;color:#869085;margin-top:7px}.seal{border:1px solid #b87562;color:#a36152;font:15px/1.4 "Noto Serif SC",serif;letter-spacing:3px;padding:5px;margin-right:3px;transform:rotate(3deg);opacity:.85}.workspace{display:grid;grid-template-columns:minmax(350px,1fr) 280px;gap:24px;align-items:start}.board-panel{background:#fff;border:1px solid #e2e6de;border-radius:8px;overflow:hidden;box-shadow:0 6px 22px #253c2803}.board-heading{display:flex;align-items:center;justify-content:space-between;padding:0 21px;height:64px;border-bottom:1px solid #eceee8}.tabs{display:flex;height:100%;gap:25px}.tabs button{position:relative;padding:0;font-size:13px;color:#90968c;display:flex;align-items:center;gap:5px;white-space:nowrap}.tabs button.selected{color:#254c3b;font-weight:600}.tabs button.selected:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:#315940}.icon-btn{width:32px;height:32px;display:grid;place-items:center;color:#91998d;border-radius:4px}.icon-btn:hover{background:#eff2eb}.board-wrap{padding:25px 27px;background:#fafbf8}.board{aspect-ratio:1;position:relative;max-width:700px;margin:auto;padding:7.5%;background:repeating-linear-gradient(1deg,#a67a3a05 0,#a67a3a05 1px,transparent 2px,transparent 5px),linear-gradient(115deg,#e5c38a,#e9cd99 38%,#dbb77e);border:7px solid #cfa970;border-radius:4px;box-shadow:inset 0 0 0 1px #a57f4455,inset 0 0 24px #a06d3220,0 7px 12px #6e4f3220}.grid{position:relative;width:100%;height:100%}.grid-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.grid-lines path{fill:none;stroke:#675836;stroke-width:.021}.grid-lines circle{fill:#594b2f}.point{position:absolute;padding:0;width:calc(96% / (var(--n) - 1));height:calc(96% / (var(--n) - 1));transform:translate(-50%,-50%);display:grid;place-items:center;border-radius:50%;z-index:2}.point:disabled{opacity:1}.point:focus-visible{outline:2px solid #9d4c33}.stone{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;font-size:clamp(7px,.85vw,13px);font-family:Arial;box-shadow:1px 2px 2px #2e200c60}.black .stone{background:radial-gradient(circle at 33% 26%,#5a5b54,#292b26 30%,#0b110f 80%);color:#f4ebd8}.white .stone{background:radial-gradient(circle at 35% 27%,#fffefa,#f2f1e5 56%,#c5c4b8 92%);color:#394132}.stone i{width:21%;height:21%;background:#ba6f50;border-radius:50%}.ghost{width:95%;height:95%;border-radius:50%;opacity:0;background:#14261b}.ghost.light{background:#ffffed}.point:hover .ghost{opacity:.25}.coordinates{position:absolute;display:flex;font-size:10px;color:#897043;pointer-events:none}.coordinates.top{top:2.3%;left:7.5%;right:7.5%;justify-content:space-between;transform:translateY(-1px)}.coordinates.top span{width:0;display:flex;justify-content:center}.coordinates.left{left:2.4%;top:7.5%;bottom:7.5%;flex-direction:column;justify-content:space-between}.coordinates.left span{height:0;display:flex;align-items:center}.board-sign{position:absolute;bottom:1.8%;left:0;right:0;text-align:center;font:9px "Noto Serif SC",serif;color:#9c814c;letter-spacing:4px}.board-footer{display:flex;justify-content:space-between;gap:12px;padding:18px 25px;font-size:12px;color:#899181;border-top:1px solid #e9ece5}.board-footer>span:first-child{display:flex;align-items:center;gap:8px;color:#496148}.status-dot{background:#618464;width:6px;height:6px;border-radius:50%}.board-footer strong{font-weight:500;color:#3d513b}.board-footer em{font-style:normal;margin:0 8px}.game-side{display:flex;flex-direction:column;gap:16px}.settings-card,.players-card,.controls-card{border:1px solid #e0e5db;background:#fff;border-radius:7px;padding:20px}.card-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.card-heading h2{font-size:15px;font-weight:600}.card-heading svg{color:#96a08e}label{display:block;font-size:12px;color:#7f8d7b;margin:15px 0 9px}.segmented{display:flex;border:1px solid #dde3d8;border-radius:5px;overflow:hidden;padding:3px;gap:3px}.segmented button{flex:1;padding:8px 0;color:#87917e;font-size:12px;border-radius:3px}.segmented .on{background:#eaf0e6;color:#38563b;font-weight:600}.settings-card select{font-size:12px;padding:11px 10px}.setting-row{display:flex;justify-content:space-between;color:#86917e;font-size:11px;margin:18px 0}.primary{background:#2b513d;color:#faf7ee;border:1px solid #2b513d;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:10px;padding:13px 20px;font-weight:500;font-size:13px}.primary:hover{background:#1e422e}.start{width:100%;justify-content:space-between}.settings-note{display:block;text-align:center;font-size:10px;color:#a0a796;margin-top:10px}.players-card{padding:17px 16px}.player{display:flex;align-items:center;gap:11px;padding:10px 5px}.player strong{font-weight:500;font-size:13px}.player small{display:block;font-size:10px;color:#94a08c;margin-top:5px}.player-stone{width:33px;height:33px;flex-shrink:0;border-radius:50%;box-shadow:1px 3px 5px #0002}.black-stone{background:radial-gradient(circle at 32% 24%,#5f655b,#20291f 50%,#101710)}.white-stone{background:radial-gradient(circle at 32% 24%,#fff,#f3f1e6 55%,#dadbcf);border:1px solid #dedfd2}.player-tag{margin-left:auto;font-size:10px;color:#88917e;white-space:nowrap}.playing .player-tag{color:#426443;background:#edf2e8;border-radius:3px;padding:4px 6px}.versus{display:flex;gap:12px;align-items:center;font-size:9px;font-weight:600;color:#b5b9ac;margin:6px 2px}.versus span{flex:1;height:1px;background:#eef0e9}.controls-card{padding:18px 16px 13px}.control-grid{display:flex;justify-content:space-around}.control-grid button{display:flex;flex-direction:column;align-items:center;gap:9px;font-size:11px;color:#74816b}.pass-icon{height:19px;font-size:20px;line-height:18px}.switch-row{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #eef0e8;padding-top:14px;margin:17px 2px 0;font-size:11px}.switch-row input{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:30px;height:17px;border-radius:20px;background:#dde3d5;border:0;padding:2px;cursor:pointer;position:relative;transition:.2s}.switch-row input:after{content:"";display:block;width:13px;height:13px;background:#fff;border-radius:50%;box-shadow:0 1px 2px #0001;transition:.2s}.switch-row input:checked{background:#4b6e48}.switch-row input:checked:after{transform:translate(13px)}.tip{display:flex;gap:12px;padding:9px 6px;color:#99a083}.tip>svg{flex-shrink:0}.tip strong{font-size:12px;font-weight:500;color:#6c7b60}.tip p{font-size:11px;line-height:1.9;margin:7px 0;color:#9ba38c}.tip button{display:flex;align-items:center;font-size:11px;color:#809473;padding:0}.lower-note{display:flex;align-items:center;justify-content:space-between;gap:15px;color:#9ba490;font-size:11px;margin:27px 0 35px}.lower-note>span:first-child{font-family:"Noto Serif SC",serif;letter-spacing:2px;color:#708065}.lower-note p{margin-right:auto}.lower-note>span:last-child{font-size:9px;letter-spacing:1px}footer{border-top:1px solid #e5e9df;margin:0 42px;padding:20px 0;color:#a4ac9b;display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px}.friends-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px}.feature-card,.login-empty{padding:38px;background:#fff;border:1px solid #e0e5db;border-radius:8px}.feature-icon{background:#edf1e7;border:1px solid #dfe5d5;color:#55704b;border-radius:14px;display:grid;place-items:center;width:62px;height:62px;margin-bottom:25px}.feature-card h2{font:23px "Noto Serif SC",serif;margin-bottom:13px}.feature-card p,.login-empty p{font-size:14px;color:#89937f;line-height:1.9;margin-bottom:25px}.feature-card .primary{margin-top:24px;width:100%}.feature-card input{height:44px}.wide-info{grid-column:1/-1;display:flex;align-items:center;gap:20px;padding:23px;color:#7c8a70;background:#edf1e7;border-radius:8px;line-height:1.9;font-size:13px;margin-bottom:50px}.wide-info svg{flex-shrink:0}.table-card{background:#fff;border:1px solid #e0e5db;border-radius:8px;padding:28px;margin-bottom:35px}.table-card .card-heading p{font-size:12px;color:#95a08d;margin-top:10px}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:12px;font-weight:400;color:#94a08b;background:#f5f7f1;padding:14px}td{padding:18px 14px;border-bottom:1px solid #edf0e7;font-size:14px}.table-avatar{width:31px;height:31px;margin-right:12px;font-size:12px}.rank-num{font-family:Georgia,serif;color:#a2aa98;font-size:21px}.rank-0{color:#ae8c42}.empty{text-align:center;padding:75px 15px;color:#95a28d}.empty>svg{stroke-width:1;margin-bottom:18px}.empty h3{font:20px "Noto Serif SC",serif;color:#627356}.empty p{font-size:13px;margin:17px 0 25px}.empty .primary{margin:auto}.member-banner{background:#203d2e;color:#e8e4cd;padding:35px;border-radius:8px;display:flex;align-items:center;gap:23px}.member-avatar{width:75px;height:75px;background:#dcd7b6;color:#536442;font:35px "Noto Serif SC",serif;display:grid;place-items:center;border-radius:50%}.member-banner h2{font:27px "Noto Serif SC",serif;margin:9px 0}.member-banner p{color:#a2b49a;font-size:12px}.member-banner .outline{margin-left:auto;color:#d2dac7;border-color:#ffffff30}.outline{padding:12px 18px;border:1px solid #dce2d3;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:9px;font-size:13px}.member-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:22px 0}.member-stats section{padding:23px;background:#fff;border:1px solid #e0e5db;border-radius:7px}.member-stats small{display:block;color:#9aa58d}.member-stats strong{display:block;font:28px "Noto Serif SC",serif;margin-top:12px}.history>div{display:flex;align-items:center;gap:20px;padding:20px 0;border-top:1px solid #edf0e7}.history strong{font-weight:500}.history small{display:block;margin-top:7px;color:#9aa68f}.history button{margin-left:auto;display:flex;gap:8px;align-items:center;font-size:12px}.win,.lose{display:grid;place-items:center;width:38px;height:38px;background:#edf3e6;color:#628250;border-radius:5px}.lose{color:#a78c77;background:#f4f0e9}.login-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:65px 20px;margin-bottom:50px}.login-empty h2{font:26px "Noto Serif SC",serif;margin-bottom:15px}.login-empty small{color:#a5ad9b;margin-top:22px}.toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%);padding:15px 24px;background:#203c2ff5;color:#f1f1df;border:1px solid #769065;border-radius:7px;box-shadow:0 10px 35px #0002;z-index:100;max-width:90vw;line-height:1.7}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#13281e77;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:80;display:flex;justify-content:center;align-items:center;padding:20px}.modal{position:relative;width:440px;max-width:100%;max-height:90vh;overflow:auto;background:#fcfcf8;padding:38px;border-radius:10px;box-shadow:0 20px 80px #0003}.modal-close{position:absolute;right:12px;top:12px}.modal h2{font:24px "Noto Serif SC",serif;margin:12px 0 15px}.modal p{color:#8a967e;font-size:13px;line-height:1.9;margin-bottom:24px}.modal label input{margin-top:9px}.modal form>.primary{width:100%;margin-top:25px}.text-button{display:flex;gap:8px;align-items:center;color:#648153;font-size:12px;margin:16px auto 0;padding:0}.modal-actions{display:flex;gap:12px;margin-top:28px}.modal-actions>*{flex:1}.rules{padding-left:20px;color:#89977e;font-size:13px;line-height:1.9}.rules li{padding:8px 0}.rules strong{display:block;color:#3e5737;font-weight:500}.modal .fine{font-size:12px;border-top:1px solid #e5e8df;padding-top:17px;margin:15px 0 0}.soft-box{padding:13px;background:#f4f6ef;font-size:12px;color:#8e9b81}.room-info{text-align:center}.room-info h2{font:30px Georgia;margin:14px;letter-spacing:4px}.room-info p{font-size:12px;color:#91a181;margin-top:22px}.result-banner{display:flex;align-items:center;gap:18px;background:#e8eedf;border:1px solid #d9e2cb;border-radius:7px;padding:24px;margin-top:22px;color:#55734b}.result-banner p{font-size:12px;margin-top:7px}.result-banner>button{margin-left:auto}.table-card .card-heading>span{font-size:12px;color:#a1ab93}@media(min-width:1500px){.content{padding-top:45px}.workspace{grid-template-columns:minmax(400px,1fr) 300px}.board-wrap{padding:35px 42px}.settings-card{padding:25px}.game-side{gap:20px}.page-title{margin-bottom:35px}.page-title h1{font-size:33px}}@media(max-width:1150px){.sidebar{width:185px;padding-left:12px;padding-right:12px}.app>main{margin-left:185px;width:calc(100% - 185px)}.content{padding:28px 25px 0}header{padding:0 25px}.workspace{grid-template-columns:minmax(300px,1fr) 235px;gap:17px}.board-wrap{padding:20px 15px}.board-heading{padding:0 15px}.tabs{gap:17px}.tabs button{font-size:12px}.settings-card{padding:17px}.game-side{gap:12px}.lower-note p{display:none}footer{margin:0 25px}.brand{font-size:27px;padding-left:8px}.brand-symbol{width:41px}.side-caption{font-size:10px}.player{gap:8px}.player-tag{font-size:9px}.players-card{padding:12px}.player-stone{width:27px;height:27px}.player strong{font-size:12px}.tip{padding:8px 2px}}@media(max-width:900px){.sidebar{width:76px;padding:25px 10px}.brand{padding:0;justify-content:center}.brand>div,.side-caption,.side-quote,.rule-link,.side-user,.nav-marker{display:none}.nav-item{font-size:0;justify-content:center;padding:17px 0;gap:0}.sidebar nav{margin-top:45px}.app>main{margin-left:76px;width:calc(100% - 76px)}.workspace{grid-template-columns:minmax(250px,1fr) 220px}.page-title h1{font-size:25px}.game-side{gap:10px}.controls-card{padding:15px 12px}.board-wrap{padding:16px 12px}.board{border-width:5px}.board-footer{padding:15px;font-size:10px}.board-footer em{margin:0 4px}.friends-layout{gap:16px}.feature-card{padding:25px}}@media(max-width:700px){.sidebar{position:fixed;inset:auto 0 0;width:100%;height:65px;padding:0;background:#173127}.brand,.side-bottom{display:none}.sidebar nav{display:flex;margin:0;justify-content:space-around}.nav-item{font-size:10px;flex-direction:column;gap:6px;padding:10px 14px;margin:0;border-radius:0}.nav-item svg{width:19px;height:19px}.app>main{margin-left:0;width:100%;padding-bottom:65px}header{height:55px;padding:0 20px}.content{padding:23px 16px 0}.page-title{margin-bottom:22px}.page-title h1{font-size:23px;letter-spacing:1px}.page-title p{font-size:11px}.eyebrow{font-size:9px}.seal{font-size:12px}.workspace{grid-template-columns:1fr;gap:18px}.board-wrap{padding:18px}.board-heading{height:54px;padding:0 20px}.tabs{gap:25px}.board-footer{font-size:11px}.game-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-card{grid-row:span 2;padding:16px}.players-card{padding:12px 8px}.player strong{font-size:11px}.player-tag{font-size:9px;padding:3px!important}.player-stone{width:24px;height:24px}.player{gap:7px;padding:9px 3px}.tip{grid-column:1/-1;padding:12px}.tip p{font-size:12px}.lower-note{margin:22px 0}.lower-note>span:first-child{font-size:10px}.lower-note>span:last-child{font-size:9px}.coordinates{font-size:8px}.board-sign{font-size:7px}.stone{font-size:9px}.controls-card{padding:12px}.control-grid button{font-size:10px}.card-heading h2{font-size:14px}.friends-layout{grid-template-columns:1fr}.feature-card{padding:27px}.wide-info{font-size:12px;margin-bottom:25px}.table-card{padding:18px 12px}.table-card .card-heading{padding:4px 6px}th,td{padding:13px 8px;font-size:12px}.table-avatar{display:none}.member-banner{padding:24px 18px;gap:15px;flex-wrap:wrap}.member-banner h2{font-size:23px}.member-avatar{width:55px;height:55px}.member-banner .outline{padding:8px 10px;font-size:11px}.member-stats{gap:9px;margin:14px 0}.member-stats section{padding:15px 10px}.member-stats small{font-size:10px}.member-stats strong{font-size:21px}.history>div{gap:10px}.history strong{font-size:12px}.history small,.history button{font-size:10px}.win,.lose{width:29px;height:29px}.result-banner{padding:18px;gap:11px;flex-wrap:wrap}.result-banner p{font-size:11px}.modal{padding:30px 24px}.toast{bottom:80px;width:max-content;max-width:90vw;font-size:12px}.login-empty h2{font-size:22px}.login-empty p{font-size:13px}}.profile-form{display:flex;align-items:center;gap:16px;margin:22px 0}.profile-form label{margin:0;white-space:nowrap}.profile-form input{max-width:280px}.profile-form button{white-space:nowrap}.offline-banner{background:#e9ead7;padding:12px 24px;display:flex;justify-content:space-between;gap:10px;font-size:13px;color:#536347}.offline-banner button{font-weight:600;text-decoration:underline}.header-actions{display:flex;align-items:center;gap:22px}.desktop-download{font-size:12px;color:#62795a;border:1px solid #dce3d6;padding:7px 10px;border-radius:4px}@media(max-width:500px){.header-actions{gap:10px}.desktop-download{font-size:10px;padding:6px}header>div:first-child .breadcrumb{display:none}}.difficulty-note{font-size:12px;color:#89937f;line-height:1.8;margin:9px 0 0}
