:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#243d35;background:#f7f7f2;font-synthesis:none;font-weight:400;font-size:14px;--ink:#183e34;--green:#234e40;--muted:#899089;--paper:#fffef9;--line:#e7e9df;--gold:#bfa26a;--serif:"Songti SC","STSong","SimSun",serif}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b49c62;outline-offset:4px}input:focus-visible,textarea:focus-visible{outline:2px solid #577b65;outline-offset:1px}button{border:0;background:none}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:600}input,textarea,select{width:100%;background:#fffefb;border:1px solid #dfe4d9;border-radius:8px;padding:12px 14px;color:#243d35;transition:border-color .2s}input::placeholder,textarea::placeholder{color:#a3aaa0}input:disabled{background:#f2f3ed;color:#94998f}textarea{resize:vertical;line-height:1.8}input[type=checkbox]{width:16px;height:16px;accent-color:var(--ink);padding:0}input[type=range]{accent-color:var(--ink);padding:0;cursor:pointer}fieldset{margin:0;padding:0;border:0;min-width:0}legend{font-weight:600;margin-bottom:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 21px;border-radius:8px;font-size:13px;font-weight:600;white-space:nowrap;border:1px solid transparent;transition:background .2s,transform .2s}.btn:hover:not(:disabled){transform:translateY(-1px)}.primary{background:var(--ink);color:#fffdf5;border-color:var(--ink)}.primary:hover:not(:disabled){background:#2e5947}.outline{background:#fffef9;border-color:#dce3d6;color:#385448}.outline:hover:not(:disabled){background:#f1f4e9}.danger{background:#a34f42;color:#fff}.danger-quiet,.danger-text{color:#aa5549}.danger-quiet:hover{background:#f9eee8}.full{width:100%}.small-btn{padding:9px 14px;font-size:12px}.text-btn{padding:0;color:#466651;font-weight:500;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px}.text-btn:hover{color:#183e34}.align-start{align-self:flex-start}.icon-btn{display:grid;place-items:center;padding:8px;border-radius:50%}.icon-btn:hover{background:#f0f1e9}.button-row{display:flex;gap:10px}.button-row>.btn{flex:1}.muted{color:#899087;line-height:1.85;font-size:13px}.eyebrow{display:block;color:#83917d;letter-spacing:2.8px;font-size:10px;font-weight:600;margin-bottom:14px}.loading-dots{display:inline-block;width:22px;height:22px;border:2px solid #dbe1d5;border-top-color:#365b43;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.boot-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:22px;background:#f7f5eb}.boot-screen p{font-family:var(--serif);letter-spacing:2px;color:#7f8e7d}.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:1px;white-space:nowrap}.brand-mark{width:43px;height:43px;background:var(--ink);border-radius:12px;color:#f7f3e5;display:grid;place-items:center;font-family:var(--serif);font-size:29px;line-height:1;font-weight:400;box-shadow:0 4px 9px #183e3412}.brand small{display:block;font-family:Arial,sans-serif;font-size:8px;letter-spacing:2px;color:#949d8c;line-height:2.1}.app-layout{display:flex;min-height:100vh}.sidebar{width:234px;flex-shrink:0;background:#fffef9;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:34px 24px 20px;display:flex;flex-direction:column;z-index:20}.sidebar-caption{color:#9ba28f;font-size:10px;letter-spacing:3px;margin:22px 0 40px;text-align:center}.desktop-nav{display:flex;flex-direction:column;gap:10px}.desktop-nav a{display:flex;align-items:center;gap:14px;padding:14px 17px;color:#7d897d;border-radius:9px;font-size:13px}.desktop-nav a.active{background:#eaf0e4;color:var(--ink);font-weight:600}.desktop-nav a:hover{background:#f2f4eb}.desktop-nav .nav-dot{width:5px;height:5px;background:#617f4e;border-radius:50%;margin-left:auto}.sidebar-note{position:relative;margin-top:auto;margin-bottom:37px;padding:24px 17px 19px;border:1px solid #e7e9dd;border-radius:10px;overflow:hidden;background:linear-gradient(140deg,#f5f5e9,#fafbf5)}.sidebar-note h3{font-family:var(--serif);font-size:22px;line-height:1.7;font-weight:400;letter-spacing:2px;margin:5px 0 13px}.sidebar-note p{font-size:10px;color:#9a9f8e}.sidebar-note>span{font-size:7px;letter-spacing:1.3px;color:#b2b49d;display:block;margin-top:22px}.note-grid{width:70px;height:70px;background-image:linear-gradient(#dfe4ce 1px,transparent 1px),linear-gradient(90deg,#dfe4ce 1px,transparent 1px);background-size:18px 18px;position:absolute;right:-18px;bottom:30px;transform:rotate(-12deg)}.note-grid i{width:17px;height:17px;border-radius:50%;position:absolute;left:28px;top:28px;background:#234335}.note-grid i+i{left:9px;top:47px;background:#fffdf3;border:1px solid #d7d7c6}.sidebar-bottom{display:flex;align-items:center;gap:7px;color:#929a8c;font-size:10px;margin:0 0 17px;padding-left:7px}.connection-dot,.presence-dot{width:6px;height:6px;border-radius:50%;background:#b6b9ad;display:inline-block;flex-shrink:0}.connection-dot.connected,.presence-dot{background:#78985e}.connection-dot.connecting{background:#c6ac6b}.connection-dot.disconnected,.presence-dot.offline{background:#bd8269}.sidebar-user{display:flex;align-items:center;gap:10px;padding:15px 0 0;border-top:1px solid var(--line);text-align:left}.sidebar-user strong{font-size:12px;display:block;max-width:114px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user small{font-size:9px;color:#a3aa9a;display:block;margin-top:5px}.sidebar-user>svg{margin-left:auto;color:#9eaa96}.avatar{width:42px;height:42px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:#e9ddc2;color:#826e46;border-radius:50%;font-family:var(--serif);font-size:21px}.avatar.small{width:35px;height:35px;font-size:18px}.avatar.tiny{width:29px;height:29px;font-size:15px}.avatar.large{width:88px;height:88px;font-size:43px}.avatar-1{background:#e0e8d6;color:#5d7959}.avatar-2{background:#edddd4;color:#987163}.avatar-3{background:#d9e7e5;color:#587f7b}.avatar-4{background:#e6dff0;color:#867398}.avatar.empty{background:#eff1e8;color:#bac2b0;border:1px dashed #ccd5c0}.main-shell{width:calc(100% - 234px);margin-left:234px}.topbar{height:77px;background:#fffef9aa;border-bottom:1px solid var(--line);padding:0 42px;display:flex;align-items:center;justify-content:space-between}.breadcrumbs{display:flex;align-items:center;gap:16px;font-size:12px;color:#9ba192}.breadcrumbs strong{font-weight:500;color:#52634f}.slash{color:#c4caba}.topbar-right{display:flex;align-items:center;gap:28px}.online-pill{display:flex;align-items:center;gap:7px;font-size:11px;color:#819174}.online-pill i{width:5px;height:5px;background:#84a56e;border-radius:50%}.header-user{display:flex;gap:8px;align-items:center;font-size:11px;max-width:180px}.header-user>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-content{max-width:1440px;margin:0 auto;padding:30px 42px 32px}.hero{position:relative;display:flex;justify-content:space-between;min-height:275px;overflow:hidden;border:1px solid #e6e8d9;border-radius:14px;background:linear-gradient(110deg,#f0f1e4,#f2f1e1 52%,#e9eddb);padding:33px 37px}.hero-copy{z-index:1;position:relative}.hero .eyebrow{letter-spacing:4px;font-size:10px;color:#8e9879;margin-bottom:17px}.hero h1{font-family:var(--serif);font-weight:400;letter-spacing:3px;font-size:37px;line-height:1.5}.hero p{font-size:12px;color:#8d947e;margin-top:8px;letter-spacing:.3px}.hero-actions{display:flex;gap:12px;margin-top:24px}.hero-actions .btn{font-size:12px;padding:10px 17px}.hero-match{color:#50684d;border:1px solid #cad2b9;background:#f7f7ec77}.hero-meta{display:flex;gap:10px;align-items:center;font-size:9px;color:#a2a58e;margin-top:23px}.hero-meta i{width:2px;height:2px;background:#b6baa0;border-radius:50%}.hero-illustration{width:360px;position:relative;flex-shrink:0;margin:-33px -24px -33px 0}.hero-circle{width:265px;height:265px;border:1px solid #d9dfc8;border-radius:50%;position:absolute;top:19px;left:53px}.hero-circle:before{content:"";position:absolute;inset:17px;border:1px solid #dfe3ce;border-radius:50%}.hero-board{width:202px;height:202px;border-radius:7px;background:linear-gradient(135deg,#d6c08e,#e7d7b0);position:absolute;left:87px;top:42px;box-shadow:12px 21px 24px #5266441a,inset 0 0 0 6px #eadfbe;transform:rotate(-12deg)}.hero-board-grid{position:absolute;inset:21px;background-image:linear-gradient(#a6925d70 1px,transparent 1px),linear-gradient(90deg,#a6925d70 1px,transparent 1px);background-size:26.5px 26.5px;border-right:1px solid #a6925d70;border-bottom:1px solid #a6925d70}.hero-piece{position:absolute;border-radius:50%;width:30px;height:30px;background:radial-gradient(circle at 30% 25%,#4e5b48,#17271e 80%);box-shadow:3px 5px 5px #25381d45}.hero-piece.p1{left:85px;top:58px}.hero-piece.p2{left:111px;top:85px;background:radial-gradient(circle at 35% 25%,#fffef8,#e7e5d7);box-shadow:2px 4px 5px #25381d30}.hero-piece.p3{left:85px;top:111px}.hero-piece.p4{left:58px;top:85px;background:radial-gradient(circle at 35% 25%,#fffef8,#e7e5d7)}.hero-piece.p5{left:111px;top:111px}.hero-seal{position:absolute;right:26px;top:52px;border:1px solid #b28765;color:#b28765;padding:5px;font-family:var(--serif);font-size:14px;line-height:1.3;border-radius:2px;transform:rotate(4deg)}.hero-verse{position:absolute;right:17px;bottom:44px;writing-mode:vertical-rl;font-family:var(--serif);font-size:11px;letter-spacing:3px;color:#8c9777}.hero-leaf{position:absolute;background:#98ab7e55;width:68px;height:27px;border-radius:0 100%;transform:rotate(-30deg);bottom:35px;left:28px}.hero-leaf:after{content:"";position:absolute;inset:13px 0 auto;height:1px;background:#91a17855;transform:rotate(15deg)}.leaf-two{width:42px;height:20px;left:18px;bottom:65px;transform:rotate(20deg)}.announcement{display:flex;align-items:center;gap:10px;border:1px solid #e9e7d6;border-radius:7px;padding:12px 15px;background:#f8f6e9;margin-top:17px;font-size:11px;color:#9c956b}.announcement strong{white-space:nowrap;font-size:10px;font-weight:600}.announcement p{overflow-wrap:anywhere;line-height:1.7}.active-room{margin-top:17px;padding:14px 17px;border:1px solid #dce5d2;background:#edf3e7;border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.active-room>span{display:flex;align-items:center;gap:8px}.games-section{margin-top:32px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.section-heading .eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:7px;color:#a3aa97}.section-heading h2{font-size:20px;letter-spacing:.7px;font-family:var(--serif);display:flex;align-items:center;gap:10px}.section-aside{font-size:10px;letter-spacing:1px;color:#a5ac99;align-self:flex-end;padding-bottom:3px}.game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.game-card{border:1px solid #e4e7da;border-radius:11px;overflow:hidden;background:#fffef9;transition:transform .2s,box-shadow .2s}.game-card:hover{transform:translateY(-4px);box-shadow:0 10px 20px #4357360c}.game-art{height:151px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#e9eddf}.xiangqi .game-art{background:#f1e9db}.jungle .game-art{background:#e9eddf}.go .game-art{background:#e7eae3}.game-badge{font-size:8px;letter-spacing:1px;background:#ffffffa3;color:#8e987d;border:1px solid #f8faf1;border-radius:4px;padding:4px 6px;position:absolute;top:11px;left:11px}.xiangqi .game-badge{color:#a38f73}.game-card-body{padding:17px 17px 0}.game-card h3{font-family:var(--serif);font-size:19px;display:flex;gap:8px;align-items:center;white-space:nowrap}.game-card h3>span{font:7px Arial,sans-serif;letter-spacing:1px;color:#acb19f;margin-top:3px}.game-card-body>p{font-size:10px;white-space:nowrap;color:#a1a694;margin-top:8px}.game-start{width:100%;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #eff0e6;margin-top:17px;padding:13px 0;font-size:11px;font-weight:500;color:#6f8462}.mini-stone-board{width:112px;height:112px;position:relative;background-image:linear-gradient(#a5b29466 1px,transparent 1px),linear-gradient(90deg,#a5b29466 1px,transparent 1px);background-size:22px 22px;transform:rotate(-8deg);border-right:1px solid #a5b29466;border-bottom:1px solid #a5b29466}.mini-stone{position:absolute;width:20px;height:20px;border-radius:50%;left:var(--x);top:var(--y);transform:translate(-50%,-50%);background:radial-gradient(circle at 30% 25%,#4d5e49,#23382b 75%);box-shadow:2px 3px 3px #233d2433}.mini-stone.white{background:radial-gradient(circle at 30% 25%,#fffef5,#e2e2cf);border:1px solid #e1e4d3;box-shadow:2px 3px 3px #233d2422}.go .mini-stone-board{transform:rotate(7deg);width:126px;height:126px;background-size:25px 25px}.go .mini-stone{width:23px;height:23px}.mini-xiangqi{width:150px;height:120px;position:relative;background-image:linear-gradient(#cbb6944a 1px,transparent 1px),linear-gradient(90deg,#cbb6944a 1px,transparent 1px);background-size:30px 30px;transform:rotate(-5deg)}.mini-xiangqi>span{font-family:var(--serif);font-size:26px;position:absolute;width:47px;height:47px;background:linear-gradient(135deg,#faf1da,#e7d0a7);border:2px solid #ba9c6b;outline:3px solid #e7d2ad;border-radius:50%;display:grid;place-items:center;box-shadow:3px 5px 5px #8a74542b;color:#a44e3d;left:52px;top:15px}.mini-xiangqi>span:first-child{left:8px;top:50px;color:#435244;transform:rotate(-9deg)}.mini-xiangqi>span:nth-child(3){left:100px;top:58px;transform:rotate(7deg)}.mini-xiangqi i{font-family:var(--serif);font-size:8px;letter-spacing:3px;color:#b39e7a;position:absolute;bottom:-1px;left:35px}.mini-jungle{position:relative;width:160px;height:128px;background-image:linear-gradient(#9bb58c25 1px,transparent 1px),linear-gradient(90deg,#9bb58c25 1px,transparent 1px);background-size:26px 26px}.mini-jungle>span:not(.jungle-river){font-size:29px;position:absolute;width:48px;height:48px;display:grid;place-items:center;background:#f8f7e9;border:1px solid #d6debf;border-radius:11px;box-shadow:2px 4px 5px #6a7c4920;top:12px;left:52px;transform:rotate(7deg)}.mini-jungle>span:nth-child(3){top:52px;left:8px;transform:rotate(-9deg)}.mini-jungle>span:nth-child(4){left:104px;top:55px;transform:rotate(12deg)}.jungle-river{position:absolute;width:103px;height:42px;background:#bdd4c64f;left:27px;top:45px;border-radius:14px;transform:rotate(-20deg)}.mini-jungle i{font-size:8px;color:#99a185;letter-spacing:3px;position:absolute;bottom:0;left:42px;font-style:normal}.rooms-section{margin-top:35px;border-radius:12px}.count-tag{font:10px Arial,sans-serif;color:#8b9c80;background:#e9efdf;border:1px solid #e0e7d3;padding:3px 6px;border-radius:5px}.rooms-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.filter-tabs{display:flex;gap:6px;flex-wrap:wrap}.filter-tabs>button{font-size:10px;padding:7px 11px;color:#8d9686;border:1px solid transparent;border-radius:6px;white-space:nowrap}.filter-tabs>button.active{color:#4c6a43;background:#eaf0e0;border-color:#dde6cf;font-weight:600}.join-form{display:flex;align-items:center;gap:8px;border:1px solid #e2e7d9;border-radius:7px;padding:0 10px;background:#fffef9;width:264px;flex-shrink:0;color:#9ca68f}.join-form input{padding:9px 0;border:0;background:none;border-radius:0;font-size:10px;min-width:0}.join-form button{font-size:10px;color:#59724d;white-space:nowrap;display:flex;align-items:center;gap:4px;padding:8px 0}.room-list{background:#fffef9;border:1px solid var(--line);border-radius:9px;padding:0 18px}.room-row,.history-row{display:flex;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid #edf0e4}.room-row:last-child,.history-row:last-child{border-bottom:0}.room-kind-icon{width:43px;height:43px;border-radius:10px;background:#eaf0df;color:#6b825a;font-family:var(--serif);font-size:23px;display:grid;place-items:center;flex-shrink:0}.room-kind-icon.xiangqi{background:#f3e8d8;color:#ad8a5c}.room-kind-icon.go{background:#e7eae5;color:#6b7c68}.room-kind-icon.jungle{background:#e4eddf;color:#7e946c}.room-row-info{min-width:0;flex:1}.room-row-info h3{font-size:12px;display:flex;gap:9px;align-items:center;flex-wrap:wrap}.room-row-info h3>span:not(.status-tag){font-size:10px;font-weight:400;color:#9eaa90}.room-row-info p{display:flex;gap:12px;font-size:10px;color:#a0a793;margin-top:7px;flex-wrap:wrap}.room-row-info p>span:first-child{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-tag{font-family:inherit;font-size:9px;font-weight:400;border-radius:4px;padding:3px 6px;white-space:nowrap;color:#8b957c;background:#f0f2e9;display:inline-block}.status-tag.waiting{color:#81985b;background:#edf3e0}.status-tag.playing{color:#b3945b;background:#f8f0dc}.status-tag.finished{color:#89908a;background:#edf0e9}.status-tag.banned{color:#a15c4e;background:#f8e7df}.room-row-meta{display:flex;align-items:center;gap:17px;margin-right:10px;font-size:10px;color:#919d84}.room-row-meta>span{display:flex;align-items:center;gap:5px}.room-row-meta small{font-size:10px}.empty-state{background:#fffef9;border:1px dashed #dfe6d3;border-radius:10px;text-align:center;min-height:220px;padding:34px 18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}.empty-state h3{font-family:var(--serif);font-size:20px;font-weight:400;letter-spacing:1px}.empty-state p{font-size:12px;color:#99a18e;line-height:1.8}.empty-state .btn{margin-top:2px}.empty-board{height:42px;width:42px;font-family:var(--serif);color:#91a27c;font-size:27px;border:1px solid #d5dec9;border-radius:7px;display:grid;place-items:center;background:#f3f5eb}.error-state{color:#a25f4a}.error-state p{color:#a17a6a}.lobby-footer{display:flex;justify-content:space-between;gap:12px;color:#adb4a1;font-size:9px;letter-spacing:.5px;border-top:1px solid #e7eadc;padding-top:20px;margin-top:30px}.mobile-nav,.mobile-only{display:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:5px 0 27px}.page-heading h1{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:1px;display:flex;align-items:center;gap:14px;margin-bottom:7px}.page-heading .eyebrow{font-size:9px;margin-bottom:12px}.back-link{margin-bottom:16px}.panel{background:#fffef9;border:1px solid var(--line);border-radius:11px;padding:23px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.panel-heading h3{font-size:14px;font-family:var(--serif);letter-spacing:.5px}.panel-heading>svg{color:#9ca58e}.panel-heading>span{font-size:10px;color:#929b87}.match-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:23px;align-items:start}.play-area{padding:19px;background:#fffef9;border:1px solid var(--line);border-radius:12px;min-width:0}.match-status{display:flex;align-items:center;gap:11px;margin-bottom:18px;padding:3px 2px 0}.match-status strong{font-size:14px;font-weight:500}.match-status p{font-size:10px;color:#98a18d;line-height:1.6;margin-top:5px}.turn-indicator{width:9px;height:9px;background:#c2c7b3;border-radius:50%;flex-shrink:0}.your-turn .turn-indicator{background:#75995b;box-shadow:0 0 0 4px #eaf0df}.your-turn strong{color:#416c40}.finished .turn-indicator{background:#bf9f5d}.move-count{margin-left:auto;font-size:10px;color:#9da58e;white-space:nowrap}.board-frame{padding:10px 10px 0;background:#dfc89b;border:1px solid #d4bb89;border-radius:8px;box-shadow:inset 0 0 0 4px #e9d6af;max-width:670px;width:100%;margin:0 auto;-webkit-user-select:none;user-select:none}.board-surface{position:relative;width:100%;background:linear-gradient(130deg,#e5d0a6,#ead8b5 45%,#e2c99e);isolation:isolate}.board-lines{position:absolute;inset:0;width:100%;height:100%;color:#927444b0;pointer-events:none}.board-cell{padding:0;position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;border:0;line-height:1;border-radius:0;background:transparent}.board-cell:disabled{opacity:1;cursor:default}.board-cell:focus-visible{outline:2px solid #567c45;outline-offset:-2px;z-index:4}.board-cell:hover:not(:disabled){background:#f8f6df44;border-radius:30%}.piece{display:grid;place-items:center;border-radius:50%;width:85%;height:85%;background:radial-gradient(circle at 35% 20%,#faf0ce,#e4c58b);border:1px solid #b5955b;outline:1px solid #ead5ac;outline-offset:1px;box-shadow:1px 3px 3px #5b421d40;font-family:var(--serif);font-weight:700;font-size:clamp(13px,2.1vw,33px);color:#ae4036;position:relative;z-index:2}.piece.side-2:not(.stone){color:#2b514d}.piece.stone{width:88%;height:88%;border:0;outline:0;background:radial-gradient(circle at 30% 20%,#4c5148,#1a211b 74%);box-shadow:1px 2px 3px #1d261e55}.piece.stone.side-2{background:radial-gradient(circle at 35% 20%,#fffef4,#e5e3d8 80%);border:1px solid #dbd5c1;box-shadow:1px 2px 3px #2a341b33}.piece.dead{opacity:.3;box-shadow:none}.selected{background:#a6bc7977!important;border-radius:50%!important}.selected .piece{box-shadow:0 0 0 3px #527b39;transform:scale(1.04)}.last-marker{width:17%;height:17%;border:1px solid #c75036;z-index:3;position:absolute;pointer-events:none}.last-move .piece.stone.side-1~.last-marker{border-color:#edc68b}.board-coordinates{display:flex;justify-content:space-around;align-items:center;height:20px;color:#a18659;font-family:Arial,sans-serif;font-size:8px}.go .board-coordinates{font-size:7px}.jungle.board-frame{background:#e9e4cb;border-color:#d7d6b9;box-shadow:inset 0 0 0 4px #f1eddb}.jungle .board-surface{background:#e7e9ce}.jungle .board-cell{border:1px solid #ccd5b1;background:#e8edcf}.jungle .board-cell:nth-child(2n){background:#edf0d9}.jungle .board-cell.water{background:repeating-linear-gradient(165deg,#bad6ce,#bad6ce 7px,#bfdcd3 7px 14px);border-color:#a8c8bc}.jungle .board-cell.trap{background:#e9d9b5;border:2px dashed #bfac7c}.jungle .board-cell.den{background:#d2bd8b}.terrain-mark{font-family:var(--serif);font-size:clamp(10px,1.5vw,20px);color:#b2945b}.piece.animal{font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;border:2px solid #bf6d50;background:#fbf4dc;outline:0;font-size:clamp(15px,2.5vw,36px);border-radius:22%;width:80%;height:80%}.piece.animal.side-2{border-color:#5c8e9b;background:#ecf3e6}.board-help{display:flex;align-items:flex-start;gap:6px;margin-top:14px;font-size:10px;color:#a5ac98;line-height:1.6}.board-help svg{margin-top:1px}.match-sidebar{display:flex;flex-direction:column;gap:16px}.players-panel{padding:19px}.live-label{display:flex;align-items:center;gap:5px}.player-card{border:1px solid #e7e9dd;background:#fafbf4;padding:13px;border-radius:8px;margin-top:12px}.player-card.thinking{border-color:#bdcfa8;background:#f2f6e9;box-shadow:0 0 0 2px #ebf0e1}.player-top{display:flex;align-items:center;gap:10px}.player-identity{min-width:0}.player-identity strong{font-size:12px;font-weight:600;display:flex;align-items:center;gap:5px;overflow-wrap:anywhere}.player-identity strong small{font-size:8px;font-weight:400;background:#e2e9d6;padding:2px 4px;border-radius:3px;white-space:nowrap}.player-identity>span{font-size:9px;color:#98a08e;display:flex;align-items:center;gap:4px;margin-top:7px}.player-identity .presence-dot{width:4px;height:4px}.player-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:15px;border-top:1px solid #e5e9d9;padding-top:12px}.clock-value{font-size:24px;font-weight:400;font-family:ui-monospace,Consolas,monospace;letter-spacing:1px;color:#47623f;font-variant-numeric:tabular-nums}.clock-value.urgent{color:#b45a44}.player-side{display:flex;gap:5px;align-items:center;font-size:9px;color:#9ca48d}.side-chip{width:10px;height:10px;border-radius:50%;background:#2e3e2d}.side-chip.side-2{background:#fffef8;border:1px solid #cbd1be}.side-chip.colored{background:#ac5946}.side-chip.colored.side-2{background:#507d7b;border:0}.ready-status{font-size:10px;color:#a7ac9a}.ready-status.ready{color:#6e8e54}.empty-player{display:flex;align-items:center;gap:11px;margin:5px 0 18px}.empty-player strong{font-size:12px;color:#a0a78e;font-weight:400}.empty-player p{font-size:9px;color:#adb39f;margin-top:7px}.empty-player+.text-btn{font-size:10px}.action-panel{padding:17px;display:flex;flex-direction:column;gap:12px}.action-panel>.btn,.action-panel .button-row .btn{padding:11px 7px;font-size:11px}.tiny-note{font-size:10px;color:#a0a891;line-height:1.8}.action-panel>.tiny-note{text-align:center}.leave-link{font-size:10px;border-top:1px solid #eef0e3;padding-top:13px;margin-top:3px;color:#9ba48d}.rules-panel{padding:19px}.rules-panel .panel-heading{margin-bottom:11px}.rules-panel p{font-size:11px;color:#959f89;line-height:1.9}.rules-panel .capture-count{border-top:1px solid #edf0e3;padding-top:10px;margin-top:10px;font-size:10px}.request-box{padding:13px;background:#f5efdf;border:1px solid #e7dcc2;border-radius:6px}.request-box strong{font-size:12px;color:#a28c5c}.request-box p{font-size:10px;color:#aaa181;line-height:1.7;margin:6px 0 10px}.request-box .btn{padding:7px}.scoring-hint{font-size:11px;line-height:1.8;color:#7c8e6e}.spectator-note{text-align:center;font-size:10px;color:#a7b09b}.history-panel{padding:0 24px}.history-panel .empty-state{border:0}.history-info{flex:1;min-width:0}.history-info h3{font-size:14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.history-info h3>span:not(.status-tag){font-size:10px;color:#9aa68b;font-weight:400}.history-info p{font-size:11px;margin:7px 0;color:#87957b;overflow-wrap:anywhere}.history-info>small{font-size:9px;color:#a9b29b}.replay-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:25px;align-items:start}.replay-board-panel{min-width:0}.replay-controls{margin-top:16px}.replay-progress{display:flex;justify-content:space-between;font-size:12px;color:#87977a;margin-bottom:15px}.replay-progress strong{font-weight:500;color:#4c6641}.replay-buttons{display:flex;gap:7px;justify-content:space-between;margin-top:16px}.replay-buttons .btn{padding:8px 9px;font-size:10px;flex:1}.move-list-panel{padding:20px}.move-list{max-height:520px;overflow:auto;margin-bottom:18px}.move-list>button{display:flex;align-items:center;width:100%;padding:11px 8px;border-radius:6px;gap:14px;text-align:left}.move-list>button:hover{background:#f4f6ed}.move-list>button.active{background:#eaf1df;color:#42633b}.move-list>button>span{font-size:10px;min-width:25px;color:#9daa8e}.move-list strong{font-size:11px;font-weight:400}.move-list small{margin-left:auto;font-size:10px;color:#a6b095}.profile-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:24px;align-items:start}.profile-summary{display:flex;align-items:center;flex-direction:column;padding:36px 22px;text-align:center}.profile-summary h2{margin-top:23px;font-family:var(--serif);font-size:24px;overflow-wrap:anywhere}.profile-summary>p:not(.profile-quote){color:#a0a791;font-size:12px;margin-top:10px}.profile-role{font-size:10px;color:#81956a;padding:6px 10px;background:#edf2e2;border-radius:5px;margin-top:20px}.profile-joined{font-size:10px;color:#acb19f;margin-top:28px;padding-top:22px;border-top:1px solid #e6eade;width:100%}.profile-quote{font-family:var(--serif);font-size:16px;color:#a1ac8f;margin-top:40px}.profile-forms,.form-stack{display:flex;flex-direction:column;gap:20px}.form-stack>label,.form-two>label{font-size:12px;font-weight:500;display:flex;flex-direction:column;gap:9px;min-width:0}.form-stack label>small{font-size:10px;font-weight:400;color:#a5ad99;line-height:1.8}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.recovery-panel>p{font-size:12px;color:#8e9c80;line-height:1.9}.recovery-panel>.tiny-note{margin-top:12px}.recovery-panel>.btn{margin-top:15px}.admin-tabs{margin-bottom:20px}.admin-tabs>button{font-size:12px;padding:10px 17px}.admin-search{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.admin-search input{max-width:300px}.admin-search .muted{font-size:11px;white-space:nowrap}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap;text-align:left}th{padding:13px 14px;background:#f2f5e9;font-weight:500;color:#8b997d}td{padding:15px 14px;border-bottom:1px solid #ebefe0;color:#778b69}.table-user{display:flex;align-items:center;gap:9px;color:#405d38}.admin-panel>.history-row:first-child{padding-top:0}.admin-panel>.history-row:last-child{padding-bottom:0}.auth-layout{display:grid;grid-template-columns:45% 55%;min-height:100dvh;background:#faf9f3}.auth-story{background:#183e34;color:#f7f2e0;padding:45px 55px;position:relative;min-height:760px;overflow:hidden;display:flex;flex-direction:column}.brand.light{color:#f9f3e1}.brand.light .brand-mark{background:#e6e4c9;color:#254537}.brand.light small{color:#a8baa0}.auth-poem{margin-top:85px;z-index:2}.light-text{color:#a2b49a;letter-spacing:4px;font-size:10px}.auth-poem h1{font-size:47px;font-family:var(--serif);font-weight:400;line-height:1.65;letter-spacing:4px}.auth-poem p{margin-top:24px;font-size:12px;color:#9cb29e;line-height:2.3;letter-spacing:1px}.auth-art{position:relative;height:260px;max-width:400px;width:100%;margin:22px auto 0}.art-board{width:250px;height:250px;border:12px solid #b4b291;background-color:#b2b08a;background-image:linear-gradient(#696f4c80 1px,transparent 1px),linear-gradient(90deg,#696f4c80 1px,transparent 1px);background-size:28px 28px;position:absolute;left:26px;top:10px;transform:rotate(-16deg) skew(7deg,7deg);box-shadow:15px 25px 30px #0b241f77;border-radius:5px}.art-stone{position:absolute;z-index:2;width:52px;height:52px;border-radius:50%;box-shadow:6px 9px 10px #142a1c66;left:130px;top:103px}.stone-dark{background:radial-gradient(circle at 30% 20%,#4f6555,#162d23 80%)}.stone-light{background:radial-gradient(circle at 30% 20%,#fbf8e9,#dcdcc8);left:181px;top:132px}.art-seal{position:absolute;right:6px;bottom:30px;color:#bca280;border:1px solid #9f896d;padding:7px;font-family:var(--serif);font-size:18px;line-height:1.4;transform:rotate(4deg)}.auth-footnote{margin-top:auto;padding-top:35px;font-size:9px;letter-spacing:2px;color:#8fa28a;z-index:1}.auth-main{position:relative;display:flex;justify-content:center;align-items:center;padding:100px 50px 70px}.auth-browse{position:absolute;right:42px;top:38px;color:#8b9a7d;font-size:11px;display:flex;align-items:center;gap:8px}.auth-card{max-width:370px;width:100%}.auth-card>.eyebrow{font-size:9px;letter-spacing:2.4px;color:#a1aa91}.auth-card h2{font-family:var(--serif);font-size:32px;letter-spacing:1px;font-weight:400;margin-bottom:13px}.auth-card>.muted{font-size:12px}.auth-tabs{display:flex;gap:30px;border-bottom:1px solid #e3e7d7;margin:31px 0 25px}.auth-tabs>button{padding:0 0 12px;font-size:13px;color:#a3ac96;position:relative}.auth-tabs>button.active{color:#294c39;font-weight:600}.auth-tabs>button.active:after{content:"";position:absolute;left:0;right:0;height:2px;bottom:-1px;background:#345b3f}.auth-card .form-stack{gap:20px}.auth-card input{background:#fffdf8;font-size:12px;padding:13px 14px}.auth-card label{font-size:11px;color:#687b5c}.auth-card .primary{margin-top:5px;padding:13px 15px}.auth-recover{margin-top:22px;font-size:10px;color:#9aa68b}.auth-privacy{display:flex;align-items:center;justify-content:center;gap:6px;border-top:1px solid #e7eadd;margin-top:30px;padding-top:22px;font-size:9px;color:#b1b7a2}.auth-copyright{position:absolute;bottom:28px;text-align:center;font-size:9px;letter-spacing:1px;color:#b4baa6}.inline-error{padding:11px 13px;background:#faeee7;border:1px solid #eed8cb;border-radius:6px;font-size:11px;color:#ab6752;line-height:1.8}.modal-backdrop{position:fixed;inset:0;background:#142d25a3;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overflow:auto}.modal{position:relative;background:#fffdf6;border:1px solid #f1efdf;border-radius:16px;padding:35px;max-width:490px;width:100%;max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 25px 80px #0c221e40;animation:appear .2s ease-out}.modal h2{font-family:var(--serif);font-size:25px;font-weight:400;letter-spacing:.5px;margin:0 20px 12px 0;line-height:1.5}.modal>.eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:12px}.modal>.muted{margin-bottom:24px;font-size:12px}.modal-close{position:absolute;right:16px;top:15px;color:#9da58f}.modal .form-stack{gap:22px}.game-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.game-picker>button{border:1px solid #e1e6d5;background:#fafbf2;border-radius:8px;display:flex;flex-direction:column;align-items:center;gap:9px;padding:14px 4px;font-size:10px;color:#929d83}.game-picker>button>span{font-family:var(--serif);font-size:22px;line-height:1.1}.game-picker>button.active{background:#edf3e2;color:#3d6236;border-color:#9bb58a;box-shadow:0 0 0 1px #a6bc95 inset}.option-row{display:flex;gap:8px}.option-row>button{flex:1;border:1px solid #e0e5d5;background:#fafbf3;padding:10px 5px;border-radius:6px;font-size:11px;color:#929e84}.option-row>button.active{border-color:#95b17f;background:#ecf2e0;color:#486c3a;font-weight:600}.modal legend{font-size:11px}.switch-label{flex-direction:row!important;justify-content:space-between;align-items:center!important;gap:15px}.switch-label>span{display:flex;flex-direction:column;gap:7px}.switch-label strong{font-size:12px;font-weight:500}.switch-label small{font-size:10px;color:#a4ae95;font-weight:400}.switch{appearance:none!important;width:37px!important;height:21px!important;border-radius:20px!important;background:#dfe5d5!important;border:0;position:relative;cursor:pointer;padding:0}.switch:before{content:"";position:absolute;width:15px;height:15px;border-radius:50%;left:3px;top:3px;background:#fff;transition:transform .2s}.switch:checked{background:#5c7b4a!important}.switch:checked:before{transform:translate(16px)}.rule-preview{padding:12px;background:#f0f3e8;border-radius:7px;display:flex;gap:8px;color:#8a9b7b}.rule-preview p{font-size:10px;line-height:1.9}.rule-preview>svg{margin-top:2px}.invite-modal{text-align:center;max-width:420px}.invite-modal h2{margin-right:0}.invite-modal>.muted{margin-bottom:20px}.qr-wrap{margin:0 auto 18px;width:222px;height:222px;display:grid;place-items:center;border:1px solid #e4e9d9;border-radius:10px;background:#fffdf8}.qr-wrap img{display:block;width:210px;height:210px}.invite-room-id{display:flex;justify-content:center;align-items:center;gap:10px;font-size:10px;color:#9ba78b;margin-bottom:20px}.invite-room-id strong{font-family:ui-monospace,monospace;font-size:15px;letter-spacing:1px;color:#4d6d3c;overflow-wrap:anywhere;min-width:0}.invite-room-id .text-btn{font-size:10px;white-space:nowrap}.invite-link{font-size:10px;background:#f3f5e9;padding:11px;margin-bottom:14px}.dialog-symbol{display:grid;place-items:center;width:58px;height:58px;background:#edf1e2;border-radius:50%;color:#829967;margin-bottom:22px}.recovery-code{display:block;font-family:ui-monospace,Consolas,monospace;background:#f0f3e6;border:1px dashed #cbd6b8;padding:17px;border-radius:7px;color:#4a6b3d;font-size:17px;letter-spacing:1px;text-align:center;overflow-wrap:anywhere;margin:20px 0 17px;-webkit-user-select:all;user-select:all}.checkbox-label{display:flex;gap:8px;align-items:center;margin:20px 0;font-size:11px;color:#8a9978}.toast-stack{position:fixed;right:28px;bottom:28px;z-index:200;display:flex;flex-direction:column;gap:10px;max-width:min(410px,calc(100vw - 32px))}.toast{background:#fffef8;border:1px solid #dce5d0;box-shadow:0 7px 25px #193b2420;border-radius:9px;padding:14px 15px;display:flex;align-items:center;gap:10px;color:#59764a;font-size:12px;animation:appear .2s ease-out}.toast.error{border-color:#e7cfbf;color:#a0694f}.toast span{line-height:1.7;overflow-wrap:anywhere}.toast>button{padding:0;display:grid;place-items:center;color:#a5ad98;margin-left:6px}@keyframes appear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat-card{background:#f3f6eb;border:1px solid #e5ead9;border-radius:8px;text-align:center;padding:14px 7px}.stat-card h4{margin:0 0 13px;font-size:11px;font-weight:500;color:#81946e}.stat-card>strong{font-family:ui-monospace,Consolas,monospace;font-size:25px;font-weight:400;color:#47673b}.stat-card>strong>small{font-family:inherit;font-size:10px;color:#9eac8f}.stat-card>p{margin-top:11px;font-size:9px;color:#8f9f80;white-space:nowrap}.stats-note{margin-top:15px}@media(max-width:520px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:15px 8px}}@media(min-width:1600px){.main-content{padding-top:40px}.hero{min-height:320px;padding:45px}.hero-illustration{margin-top:-30px;margin-bottom:-30px;width:420px}.hero-board{top:55px}.hero-circle{top:30px}.game-art{height:180px}.game-grid{gap:24px}.game-card-body{padding:23px 23px 0}.game-card-body>p{font-size:12px}.game-card h3{font-size:23px}.game-start{padding:16px 0;font-size:12px}.rooms-section{margin-top:42px}.games-section{margin-top:40px}}@media(max-width:1250px){.sidebar{width:205px;padding-left:20px;padding-right:20px}.brand{font-size:21px;gap:9px}.brand-mark{width:37px;height:37px;font-size:25px}.brand small{font-size:7px;letter-spacing:1.5px}.main-shell{width:calc(100% - 205px);margin-left:205px}.main-content{padding:26px}.topbar{padding:0 26px}.hero{padding:29px;min-height:265px}.hero h1{font-size:32px}.hero-illustration{width:290px;margin-right:-35px}.hero-board{left:45px;width:190px;height:190px;top:49px}.hero-board-grid{inset:17px;background-size:26px 26px}.hero-circle{left:20px;width:240px;height:240px;top:37px}.hero-seal{right:14px;top:58px}.hero-verse{right:19px;bottom:32px;font-size:9px}.hero-leaf{left:-2px}.leaf-two{left:0}.game-grid{gap:12px}.game-card-body{padding:14px 12px 0}.game-card h3{font-size:17px;gap:4px}.game-card h3>span{font-size:6px;letter-spacing:.5px}.game-card-body>p{font-size:9px}.game-art{height:140px}.rooms-toolbar{flex-wrap:wrap}.join-form{margin-left:auto}.match-layout{grid-template-columns:minmax(0,1fr) 254px;gap:17px}.play-area{padding:13px}.match-status strong{font-size:12px}.match-sidebar .panel{padding:15px}.player-card{padding:11px}.piece{font-size:clamp(13px,2.3vw,28px)}.profile-layout{grid-template-columns:220px minmax(0,1fr)}.auth-story{padding:40px}.auth-poem h1{font-size:40px}.auth-art{transform:scale(.9);transform-origin:left center}.auth-main{padding-left:40px;padding-right:40px}.room-row-meta{gap:10px;margin-right:0}.room-row-meta small{display:none}}@media(max-width:1024px){.sidebar{width:185px;padding:28px 16px 18px}.brand{font-size:19px}.brand-mark{width:34px;height:34px;font-size:24px}.brand small{font-size:6px;letter-spacing:1.2px}.sidebar-caption{font-size:8px;letter-spacing:2px}.desktop-nav a{padding:13px 12px;font-size:12px;gap:10px}.sidebar-note{padding-left:12px}.sidebar-note h3{font-size:20px}.main-shell{width:calc(100% - 185px);margin-left:185px}.main-content{padding:22px}.topbar{padding:0 22px;height:68px}.hero{padding:27px 24px}.hero h1{font-size:29px}.hero p{font-size:11px}.hero-illustration{width:215px;opacity:.9}.hero-board{left:15px;top:63px;transform:rotate(-14deg) scale(.88)}.hero-circle{left:-6px;top:44px;width:220px;height:220px}.hero-seal{right:-3px}.hero-verse,.hero-leaf{display:none}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.game-art{height:150px}.game-card-body{padding:18px 20px 0}.game-card h3{font-size:21px;gap:10px}.game-card h3>span{font-size:8px}.game-card-body>p{font-size:11px}.game-start{font-size:12px;padding:15px 0}.room-row{gap:12px}.room-row-meta{display:none}.room-kind-icon{width:38px;height:38px;font-size:20px}.room-row-info p{gap:4px;flex-direction:column}.match-layout{grid-template-columns:minmax(0,1fr)}.match-sidebar{display:grid;grid-template-columns:1fr 1fr;align-items:start}.players-panel{grid-row:span 2}.rules-panel{grid-column:2}.spectator-note{grid-column:1/-1}.piece{font-size:clamp(18px,3.4vw,36px)}.piece.animal{font-size:clamp(22px,4vw,40px)}.board-frame{max-width:620px}.jungle.board-frame{max-width:500px}.xiangqi.board-frame{max-width:530px}.go .piece{box-shadow:1px 1px 2px #1d261e55}.board-help{font-size:11px}.profile-layout{grid-template-columns:1fr}.profile-summary{display:grid;grid-template-columns:70px 1fr;column-gap:20px;padding:25px;text-align:left}.profile-summary .avatar{grid-row:span 3;width:70px;height:70px;font-size:35px}.profile-summary h2{margin:0;font-size:25px}.profile-summary>p:not(.profile-quote){margin-top:4px}.profile-summary .profile-role{margin-top:7px;justify-self:start}.profile-joined{grid-column:1/-1;margin-top:20px;padding-top:15px}.profile-quote{display:none}.replay-layout{grid-template-columns:minmax(0,1fr)}.move-list{max-height:250px}.auth-story{padding:35px 30px;min-height:740px}.auth-poem h1{font-size:34px}.auth-art{transform:scale(.8);width:330px;margin-left:-10px}.auth-footnote{font-size:7px;letter-spacing:1px}.auth-card h2{font-size:28px}.auth-main{padding-left:30px;padding-right:30px}.lobby-footer{font-size:8px}.sidebar-bottom{font-size:9px;gap:5px;padding-left:0}}@media(max-width:760px){.sidebar{display:none}.main-shell{margin-left:0;width:100%}.topbar{height:65px;padding:0 20px;background:#fffef9}.breadcrumbs strong{font-family:var(--serif);font-size:20px;letter-spacing:1px}.desktop-only{display:none!important}.topbar-right{gap:13px}.header-user>span:last-child{display:none}.online-pill{font-size:9px}.main-content{padding:20px 18px 100px}.hero{padding:25px 24px;min-height:255px}.hero h1{font-size:31px;line-height:1.5;letter-spacing:2px}.hero .eyebrow{font-size:8px;letter-spacing:2.7px;margin-bottom:11px}.hero-copy>p{font-size:10px;max-width:210px;line-height:1.9;margin-top:10px}.hero-illustration{width:215px;margin-left:-10px;margin-right:-45px}.hero-board{left:7px;top:69px}.hero-circle{left:-5px;top:48px}.hero-seal{right:7px;top:40px}.hero-actions{gap:8px;margin-top:22px}.hero-actions .btn{font-size:10px;padding:10px 12px;gap:5px}.hero-actions .btn svg{width:14px;height:14px}.hero-meta{font-size:8px;gap:7px;margin-top:20px}.games-section{margin-top:27px}.section-heading{margin-bottom:17px}.section-heading h2{font-size:20px}.section-heading .eyebrow{font-size:7px;letter-spacing:1.8px}.section-aside{font-size:8px;letter-spacing:.3px}.game-grid{gap:13px}.game-art{height:145px}.game-card-body{padding:17px 17px 0}.game-card h3{font-size:20px;gap:7px}.game-card h3>span{font-size:6px;letter-spacing:.6px}.game-card-body>p{font-size:10px}.game-start{font-size:11px;padding:13px 0;margin-top:15px}.announcement{font-size:10px;padding:10px 12px;gap:7px}.announcement strong{font-size:9px}.announcement>svg{width:15px;height:15px}.active-room{font-size:10px;padding:12px}.active-room .text-btn{font-size:10px;white-space:nowrap}.rooms-section{margin-top:28px}.rooms-toolbar{gap:15px}.filter-tabs{gap:4px}.filter-tabs>button{font-size:10px;padding:7px 10px}.join-form{width:100%;padding:0 12px;gap:10px}.join-form input{font-size:11px;padding:12px 0}.join-form button{font-size:11px}.room-list{padding:0 13px}.room-row{padding:17px 0}.room-row-info h3{font-size:11px;gap:6px}.room-row-info p{font-size:9px;gap:5px}.room-row .btn{padding:8px 9px;font-size:10px;gap:5px}.room-row .btn svg{width:12px;height:12px}.room-kind-icon{width:36px;height:36px;font-size:20px;border-radius:8px}.lobby-footer{flex-direction:column;text-align:center;gap:8px;margin-top:24px;padding-top:20px}.mobile-nav{display:flex;align-items:center;justify-content:space-around;height:67px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));box-sizing:content-box;position:fixed;bottom:0;left:0;right:0;background:#fffef9f5;border-top:1px solid #e3e7d8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30}.mobile-nav>a,.mobile-nav>button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#a0a992;font-size:9px;flex:1;min-width:0;padding:5px}.mobile-nav>a.active{color:#284e35}.mobile-nav .mobile-create{color:#e8eddc;position:relative;padding-top:3px}.mobile-create>svg{background:#284e35;border-radius:11px;box-sizing:content-box;padding:8px;margin-top:-17px;box-shadow:0 3px 10px #284e3522}.mobile-create>span{color:#718263}.page-heading{margin:4px 0 22px;gap:12px}.page-heading h1{font-size:27px}.page-heading>.btn{padding:9px 11px;font-size:10px}.page-heading>.btn svg{width:14px;height:14px}.page-heading .muted{font-size:10px}.page-heading .eyebrow{font-size:7px;letter-spacing:1.5px}.back-link{font-size:10px;margin-bottom:13px}.match-layout{gap:17px}.play-area{padding:13px}.match-status{gap:10px;margin-bottom:14px}.match-status strong{font-size:13px}.match-status p,.move-count{font-size:9px}.board-frame{padding:7px 7px 0;box-shadow:inset 0 0 0 3px #e9d6af}.piece{font-size:clamp(13px,4.5vw,32px)}.piece.animal{font-size:clamp(20px,6vw,36px)}.board-coordinates{height:16px;font-size:7px}.go .board-coordinates{font-size:6px}.board-help{font-size:9px;gap:5px;line-height:1.9}.board-help svg{width:12px;height:12px;margin-top:2px}.match-sidebar{gap:13px;grid-template-columns:1fr 1fr}.match-sidebar .panel{padding:14px}.panel-heading{margin-bottom:14px}.panel-heading h3{font-size:13px}.panel-heading>span{font-size:8px}.player-card{padding:10px;margin-top:10px}.player-top{gap:8px}.player-card .avatar{width:32px;height:32px;font-size:17px}.player-identity strong{font-size:10px}.player-identity>span{font-size:8px;gap:3px;line-height:1.6;flex-wrap:wrap;margin-top:5px}.player-identity .presence-dot{width:3px;height:3px}.player-bottom{margin-top:10px;padding-top:9px}.clock-value{font-size:22px;letter-spacing:0}.player-side{font-size:8px;gap:4px}.side-chip{width:8px;height:8px}.ready-status{font-size:8px}.action-panel{gap:10px}.action-panel>.btn,.action-panel .button-row .btn{font-size:9px;padding:10px 5px;gap:5px}.action-panel .button-row{gap:5px}.action-panel .tiny-note{font-size:8px}.leave-link,.rules-panel p{font-size:9px}.rules-panel .panel-heading h3{font-size:12px}.rules-panel .panel-heading svg{width:14px;height:14px}.empty-player{gap:8px}.empty-player strong{font-size:10px}.empty-player p{font-size:8px;line-height:1.7}.empty-player+.text-btn{font-size:8px;gap:3px}.request-box{padding:10px}.request-box strong{font-size:10px}.request-box p{font-size:9px}.request-box .btn,.scoring-hint{font-size:10px}.history-panel{padding:0 16px}.history-row{gap:12px;padding:18px 0}.history-info h3{font-size:12px;gap:7px}.history-info p{font-size:10px}.history-info h3>span:not(.status-tag){font-size:9px}.history-info>small{font-size:8px}.history-row .btn{font-size:9px;padding:8px;gap:5px}.history-row .btn svg{width:12px;height:12px}.empty-state{min-height:230px;padding:30px 16px}.empty-state h3{font-size:19px}.empty-state p{font-size:10px}.empty-state .btn{font-size:11px;padding:10px 15px}.profile-layout,.profile-forms{gap:17px}.panel{padding:20px}.form-stack{gap:18px}.form-stack>label,.form-two>label{font-size:11px}.form-stack input{padding:11px 12px;font-size:12px}.form-two{gap:12px}.recovery-panel>p{font-size:11px}.recovery-code{font-size:14px;padding:14px}.admin-tabs>button{font-size:11px;padding:8px 12px}.admin-panel{padding:16px}.admin-search{gap:12px}.admin-search input{font-size:11px;padding:10px}.admin-search .muted{font-size:10px}th,td{font-size:10px;padding:12px}.table-user{gap:6px}.auth-layout{grid-template-columns:1fr}.auth-story{padding:25px 25px 30px;min-height:285px;max-height:285px}.auth-story .brand{font-size:23px}.auth-story .brand-mark{width:38px;height:38px;font-size:26px}.auth-story .brand small{font-size:7px;letter-spacing:1.5px}.auth-poem{margin-top:30px}.auth-poem .eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:10px}.auth-poem h1{font-size:28px;line-height:1.6;letter-spacing:3px}.auth-poem p{font-size:9px;line-height:1.8;margin-top:11px}.auth-art{position:absolute;right:-70px;bottom:-27px;transform:scale(.65);transform-origin:bottom right;opacity:.8;width:320px}.auth-footnote{display:none}.auth-main{padding:36px 27px 80px;align-items:flex-start}.auth-card{max-width:420px}.auth-browse{top:-250px;right:25px;color:#b4c3a8;font-size:9px;z-index:3}.auth-card>.eyebrow{display:none}.auth-card h2{font-size:27px}.auth-card>.muted{font-size:11px}.auth-tabs{margin:24px 0}.auth-card .form-stack{gap:18px}.auth-card input{font-size:12px;padding:12px}.auth-card .primary{font-size:12px}.auth-privacy{font-size:9px;margin-top:26px;padding-top:20px}.auth-copyright{bottom:25px;font-size:8px}.modal-backdrop{padding:17px;align-items:center}.modal{padding:29px 24px;max-height:calc(100dvh - 34px);border-radius:13px}.modal h2{font-size:23px;margin-bottom:10px}.modal>.muted{font-size:11px;line-height:1.9;margin-bottom:23px}.modal .eyebrow{font-size:7px;letter-spacing:1.8px}.modal .form-stack{gap:21px}.modal legend{font-size:11px}.game-picker{gap:6px}.game-picker>button{font-size:9px;padding:12px 2px;gap:9px}.game-picker>button>span{font-size:21px}.option-row{gap:7px}.option-row>button{font-size:10px;padding:10px 3px}.switch-label small,.rule-preview p{font-size:9px}.modal .btn{font-size:11px;padding:11px 13px}.qr-wrap{width:211px;height:211px}.qr-wrap img{width:200px;height:200px}.toast-stack{right:16px;bottom:calc(90px + env(safe-area-inset-bottom));left:16px;max-width:none}.toast{padding:12px;font-size:11px}.modal-backdrop~.toast-stack{z-index:200}.invite-modal h2{font-size:24px}.replay-controls{padding:16px}.replay-buttons{gap:5px}.replay-buttons .btn{font-size:9px;padding:8px 6px}.replay-progress{font-size:10px}.move-list-panel{padding:18px}.move-list{max-height:260px}.active-room{align-items:flex-start}.active-room>span{gap:5px}.active-room>span svg{width:14px;height:14px}}@media(max-width:400px){.main-content{padding-left:13px;padding-right:13px}.topbar{padding:0 16px}.hero{padding:22px 19px;min-height:257px}.hero h1{font-size:30px}.hero-illustration{position:absolute;right:-9px;top:45px;bottom:0;opacity:.65;transform:scale(.85);transform-origin:right bottom}.hero-circle,.hero-seal{display:none}.hero-copy>p{max-width:185px}.hero-actions{position:relative;z-index:3}.game-grid{gap:11px}.game-card-body{padding:15px 12px 0}.game-card h3{font-size:18px;gap:5px}.game-card h3>span{font-size:5px}.game-card-body>p{font-size:9px}.game-art{height:133px}.mini-stone-board{transform:rotate(-8deg) scale(.9)}.go .mini-stone-board{transform:rotate(7deg) scale(.88)}.mini-xiangqi,.mini-jungle{transform:scale(.9)}.section-aside{display:none}.filter-tabs>button{padding:7px 8px;font-size:9px}.room-row{gap:9px}.room-kind-icon{width:31px;height:34px;font-size:19px}.room-row .btn{font-size:9px;padding:8px 7px}.room-row .btn svg{display:none}.room-row-info h3{font-size:10px;gap:4px}.room-row-info .status-tag{font-size:8px;padding:2px 4px}.room-row-info p{font-size:8px}.match-sidebar{gap:10px}.match-sidebar .panel{padding:11px}.player-card{padding:9px}.player-top{gap:6px}.player-card .avatar{width:28px;height:28px;font-size:15px}.player-identity strong{font-size:9px}.player-identity>span{font-size:7px}.clock-value{font-size:20px}.player-side{font-size:7px}.panel-heading h3{font-size:12px}.panel-heading .live-label{font-size:7px}.action-panel .button-row{flex-direction:column}.auth-story{min-height:275px;max-height:275px;padding:23px}.auth-art{right:-75px;transform:scale(.57)}.auth-browse{top:-240px;right:23px}.auth-poem h1{font-size:27px}.auth-main{padding-left:23px;padding-right:23px}.form-two{grid-template-columns:1fr}.game-picker>button{font-size:8px}.modal{padding:27px 20px}.modal h2{font-size:22px}.recovery-code{font-size:12px}.profile-summary{grid-template-columns:60px 1fr;gap:6px 16px}.profile-summary .avatar{width:60px;height:60px;font-size:30px}.profile-summary h2{font-size:22px}.page-heading h1{font-size:25px}.page-heading>.btn{font-size:9px;padding:9px}.history-row{gap:9px}.history-row .btn{font-size:8px}.history-info p{font-size:9px}.history-info>small{font-size:7px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
