@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;600;700&family=Inter:wght@400;500;600&display=swap";:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#e9e6dc;background:#0b1e1a;font-synthesis:none;--ink:#0b1e1a;--panel:#122b25;--jade:#1f463c;--red:#b94b3f;--gold:#caa96b;--paper:#eee7d5}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 15% 10%,#1c3b32 0,transparent 35%),linear-gradient(140deg,#0c211c,#081713);min-height:100vh}button,input{font:inherit}.app-shell{min-height:100vh}.topbar{height:82px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff16;background:#0b1e1ad9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}.brand{border:0;background:none;color:#f4efe3;display:flex;align-items:center;gap:12px;font-family:"Noto Serif SC";font-size:20px}.brand small{display:block;font:9px Inter;letter-spacing:3px;color:#8fa79f}.brand-seal{width:38px;height:38px;display:grid;place-items:center;background:var(--red);border-radius:4px;box-shadow:inset 0 0 0 2px #ffffff35}.topbar nav{display:flex;gap:4px}.topbar nav button{background:none;border:0;color:#8fa79f;padding:12px 20px;border-radius:6px}.topbar nav button:hover,.topbar nav .active{color:#fff;background:#ffffff0b}.profile{display:flex;align-items:center;gap:8px;font-size:13px;color:#b7c6c1}.online-dot{width:7px;height:7px;border-radius:50%;background:#72b69d}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#caa96b;color:#193128;font-family:"Noto Serif SC"}main{max-width:1440px;margin:auto;padding:56px 6vw 80px}.eyebrow,.panel-index{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold)}h1,h2,h3{font-family:"Noto Serif SC";margin:0;font-weight:600}.hero-copy{padding:30px 0 62px}.hero-copy h1{font-size:clamp(38px,5vw,68px);line-height:1.25;letter-spacing:-2px}.hero-copy h1 em{font-style:normal;color:#d5bd8a}.hero-copy>p:last-child{color:#92a59e;line-height:1.8}.section-heading,.page-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.section-heading span{color:var(--gold);font-size:12px}.section-heading h2{font-size:26px;margin-top:7px}.section-heading p{font-size:12px;color:#84968f}.game-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:22px}.game-card{border:1px solid #ffffff13;border-radius:14px;overflow:hidden;background:#122822;min-height:370px;transition:.25s transform,.25s border}.game-card:hover{transform:translateY(-4px);border-color:#caa96b55}.card-art{height:205px;background:linear-gradient(135deg,#bd9b62,#8e693c);padding:30px;position:relative;overflow:hidden}.mini-board{width:250px;height:160px;margin:auto;border:3px solid #60451f;display:grid;grid-template-columns:repeat(9,1fr);align-items:start;padding:10px;color:#7c271f;background:repeating-linear-gradient(0deg,#caa56a 0 29px,#73552d 30px 31px);transform:rotate(-4deg);box-shadow:0 24px 40px #1a120b55}.mini-board span{width:23px;height:23px;border-radius:50%;background:#e6c789;border:1px solid #7a4b25;display:grid;place-items:center;font:12px "Noto Serif SC"}.mini-board b{grid-column:1/-1;text-align:center;margin-top:38px;color:#6f4b29;letter-spacing:20px;font:13px "Noto Serif SC"}.live-pill{position:absolute;top:16px;right:16px;background:#11271fee;padding:7px 10px;border-radius:20px;font-size:10px}.card-copy{padding:24px}.card-copy p{font-size:10px;letter-spacing:2px;color:var(--gold);margin:0 0 7px}.card-copy h3{font-size:27px}.card-copy span{display:block;color:#80958d;font-size:13px;margin:7px 0 22px}.card-copy button,.primary{border:0;background:var(--red);color:#fff;padding:12px 18px;border-radius:6px}.card-copy button{width:100%;display:flex;justify-content:space-between}.coming-art{height:205px;display:grid;place-items:center;font:80px "Noto Serif SC";color:#c4b690;background:radial-gradient(circle,#294940,#10251f)}.coming-art.cards{font:52px Georgia}.muted{opacity:.72}.card-copy i{font-style:normal;font-size:11px;border:1px solid #ffffff20;padding:6px 10px;border-radius:20px;color:#899b95}.back{border:0;background:none;color:#98aba4;padding:0 0 14px}.page-title h1{font-size:38px}.page-title p{color:#849a92}.lobby-stat{display:flex;align-items:center;gap:12px}.lobby-stat b{font:44px "Noto Serif SC";color:var(--gold)}.lobby-stat span{font-size:11px;color:#879a93}.lobby-layout{display:grid;grid-template-columns:340px 1fr;gap:24px}.create-panel,.rooms-panel{background:#102720;border:1px solid #ffffff13;border-radius:12px;padding:30px}.create-panel h2,.rooms-panel h2{font-size:23px;margin:10px 0}.create-panel>p{color:#80928c;font-size:13px;line-height:1.7;margin-bottom:30px}.create-panel label{font-size:12px;color:#a9b8b3}.duration-value{font:35px "Noto Serif SC";margin:10px 0;color:#ead8ad}.create-panel input{width:100%;accent-color:var(--red)}.ticks{display:flex;justify-content:space-between;color:#70847d;font-size:8px;margin-bottom:30px}.create-panel .primary{width:100%}.create-panel small{display:block;text-align:center;color:#657970;margin-top:13px}.search-row{display:flex;justify-content:space-between;align-items:center}.search{display:flex}.search input{width:240px;padding:11px;border:1px solid #ffffff1f;background:#0b1c18;color:#fff;border-radius:6px 0 0 6px}.search button{border:0;background:#d1b374;color:#18342b;padding:0 16px;border-radius:0 6px 6px 0}.room-list{margin-top:24px}.room-row{display:grid;grid-template-columns:130px 1fr 100px 90px 70px;align-items:center;gap:18px;border-top:1px solid #ffffff0e;padding:20px 4px}.room-row small{display:block;color:#647a72;font-size:9px;text-transform:uppercase}.room-row strong{font-size:13px}.room-code b{font:22px "Noto Serif SC";letter-spacing:2px}.status{color:#dbb36c;font-size:11px}.status.waiting{color:#78b99e}.room-row button{border:0;background:none;color:#d9c28e}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.game-header div{text-align:center}.game-header div span{font-size:9px;color:#789087;display:block}.game-header div b{font:20px "Noto Serif SC"}.spectator{font-size:11px;background:#ffffff0a;padding:8px 12px;border-radius:20px;color:#a9b9b3}.game-layout{display:grid;grid-template-columns:190px minmax(420px,650px) 190px 92px;gap:18px;align-items:center;justify-content:center}.player-card{background:#112821;border:1px solid #ffffff15;border-radius:10px;padding:18px;display:flex;align-items:center;gap:12px}.player-card time{margin-left:auto;font:17px monospace}.piece-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#e5c98e;color:#952f28;font:20px "Noto Serif SC"}.player-card.black .piece-avatar{color:#213b32}.player-card small{display:block;font-size:9px;color:#778c84}.player-card strong{font-size:12px}.board-wrap{position:relative}.xiangqi-board{width:100%;display:block}.xiangqi-board line{stroke:#6c4d2d;stroke-width:2}.board-bg{fill:#c9a269;stroke:#674721;stroke-width:7}.river{font:28px "Noto Serif SC";fill:#72532f;text-anchor:middle;letter-spacing:8px}.board-piece circle:first-child{fill:#d9ba7c;stroke:#6d4926;stroke-width:3}.board-piece circle:nth-child(2){fill:none;stroke:#93683a;stroke-width:1.5}.board-piece text{text-anchor:middle;font:30px "Noto Serif SC"}.board-piece.red text{fill:#a7352d}.board-piece.black text{fill:#20382f}.game-actions{display:flex;flex-direction:column;gap:10px}.game-actions button{padding:12px 8px;border:1px solid #ffffff16;color:#b6c3be;background:#112821;border-radius:7px}.game-actions .danger{color:#d78077}.pause-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;background:#10251fee;border:1px solid #d0af6c55;padding:28px 38px;border-radius:10px;box-shadow:0 20px 60px #0008;min-width:260px;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.pause-card span,.pause-card small{font-size:10px;color:var(--gold);letter-spacing:2px}.pause-card h3{font-size:25px;margin:8px}.pause-card p{font-size:11px;color:#a4b3ae}.admin-table{background:#102720;border:1px solid #ffffff13;border-radius:12px;padding:10px 26px}.table-head,.table-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1.4fr;padding:17px 4px;border-bottom:1px solid #ffffff0d;font-size:12px}.table-head{color:#70857d;font-size:9px}.table-row button{border:0;background:none;color:#cdb982;font-size:10px;margin-right:8px}@media(max-width:950px){.game-grid,.lobby-layout,.game-layout{grid-template-columns:1fr}.player-card{max-width:650px;margin:auto;width:100%}.game-actions{flex-direction:row;justify-content:center}.game-actions button{min-width:70px}.topbar nav{display:none}.room-row{grid-template-columns:100px 1fr 80px}.room-row>div:nth-child(3),.room-row .status{display:none}}@media(max-width:600px){main{padding:28px 16px}.topbar{padding:0 16px}.profile{font-size:0}.hero-copy h1{font-size:38px}.lobby-layout{display:block}.rooms-panel{margin-top:18px;padding:18px}.search-row{display:block}.search input{width:100%}.room-row{grid-template-columns:90px 1fr 55px;gap:8px}.game-page{margin:0 -8px}.xiangqi-board{width:100%}.table-head,.table-row{grid-template-columns:1fr 1fr}.table-head span:nth-child(n+3),.table-row span:nth-child(3),.table-row span:nth-child(4){display:none}}.auth-screen{min-height:100vh;display:grid;place-items:center;padding:24px;color:#29344b;background:radial-gradient(circle at 15% 15%,#dff7ec,transparent 34%),radial-gradient(circle at 85% 80%,#e6eaff,transparent 38%),#f7f9fd}.auth-card,.loading-card{width:min(430px,100%);background:#fff;border:1px solid #e8ecf4;border-radius:24px;padding:38px;box-shadow:0 22px 60px #4f64a31a}.auth-card>.brand-seal{background:linear-gradient(135deg,#667dff,#61d4b0);color:#fff;border-radius:13px}.auth-card h1{font-family:Inter,Microsoft YaHei,sans-serif;font-size:28px;margin-top:14px}.auth-card>p:not(.eyebrow){color:#7b8497;line-height:1.7}.auth-card label{display:block;font-size:12px;color:#687286;margin-top:16px}.auth-card input{display:block;width:100%;margin-top:7px;padding:13px 14px;border:1px solid #dfe4ee;border-radius:11px;outline:none}.auth-card input:focus{border-color:#7086f5;box-shadow:0 0 0 3px #7086f51c}.auth-card .primary{width:100%;margin-top:22px;background:linear-gradient(135deg,#5e76f3,#7089ff);border-radius:11px}.form-error,.inline-notice,.game-message{padding:11px 14px;border-radius:10px;background:#fff0ed;color:#bd5148;font-size:12px;margin:14px 0}.empty-state{text-align:center;padding:50px 20px;color:#939cad}.profile{border:0;background:none;cursor:pointer}.legal-target{fill:#bf4d3f;opacity:.65;cursor:pointer}.board-piece{cursor:pointer}.board-piece.selected circle:first-child{stroke:#fff1a8;stroke-width:7}.ready-bar{text-align:center;margin-top:20px}.result-card{border-color:#caa96b}.loading-card{text-align:center;color:#778197;margin:80px auto}.action-request{max-width:680px;margin:18px auto 0;padding:14px 18px;border:1px solid #caa96b55;background:#10251f;color:#e9e6dc;border-radius:10px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.action-request span{display:flex;gap:9px;align-items:center}.action-request button,.dialog-card button{border:1px solid #ffffff25;background:#ffffff0d;color:inherit;padding:8px 14px;border-radius:7px}.dialog-backdrop{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:#06110dd1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:20px}.dialog-card{width:min(390px,100%);padding:28px;background:#122b25;border:1px solid #caa96b55;border-radius:14px;box-shadow:0 24px 70px #0009;color:#f1ecdf}.dialog-card h3{margin-bottom:18px}.dialog-card label{display:block;margin-top:13px;font-size:11px;color:#aebbb6}.dialog-card select,.dialog-card input{display:block;width:100%;margin-top:7px;padding:11px;border:1px solid #ffffff22;border-radius:7px;background:#0c201a;color:#f1ecdf}.dialog-card>div{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.dialog-card .primary{background:#b94b3f;border-color:#b94b3f}.board-piece.last-move circle:first-child{stroke:#4e7567;stroke-width:6}.board-piece.in-check circle:first-child{stroke:#d33f32;stroke-width:8;animation:check-pulse 1s ease-in-out infinite alternate}@keyframes check-pulse{to{stroke:#ffb0a8}}.public-theme{color:#26324a;background:linear-gradient(180deg,#f8fbff 0,#f5f7fc);min-height:100vh;--red:#ff7168;--gold:#5578ff}.public-theme:before,.public-theme:after{content:"";position:fixed;border-radius:50%;pointer-events:none;z-index:0}.public-theme:before{width:330px;height:330px;background:#dff7ec;right:-80px;top:120px}.public-theme:after{width:260px;height:260px;background:#e6eaff;left:-100px;bottom:20px}.public-theme .topbar{height:72px;background:#ffffffde;border-bottom:1px solid #e8ebf3;box-shadow:0 5px 24px #4d63a00a;color:#26324a}.public-theme .brand{font-family:Inter,Microsoft YaHei,sans-serif;font-weight:700;color:#26324a}.public-theme .brand small{color:#9aa4b8;letter-spacing:2px}.public-theme .brand-seal{background:linear-gradient(135deg,#667dff,#61d4b0);color:#fff;border-radius:13px;box-shadow:0 7px 18px #607bf23d}.public-theme .topbar nav{background:#f4f6fb;padding:4px;border-radius:14px}.public-theme .topbar nav button{color:#7b8497;padding:9px 18px;border-radius:10px}.public-theme .topbar nav button:hover,.public-theme .topbar nav .active{background:#fff;color:#4f67e8;box-shadow:0 3px 12px #53658914}.public-theme .profile{color:#5c667a}.public-theme .avatar{background:#e8edff;color:#5269df;font-family:Inter}.public-theme main{position:relative;z-index:1;padding-top:42px}.public-theme .eyebrow,.public-theme .panel-index{color:#5871ef;font-weight:700;letter-spacing:1.4px}.public-theme .hero-copy{position:relative;padding:36px 0 54px}.public-theme .hero-copy:after{content:"🐟";position:absolute;right:8%;top:5px;font-size:110px;transform:rotate(8deg);filter:drop-shadow(0 15px 14px #7385cb24)}.public-theme .hero-copy h1,.public-theme h1,.public-theme h2,.public-theme h3{font-family:Inter,Microsoft YaHei,sans-serif;letter-spacing:-1px}.public-theme .hero-copy h1{font-size:clamp(42px,5vw,66px);line-height:1.08;color:#27324b;font-weight:800}.public-theme .hero-copy h1 em{color:#5b73f2}.public-theme .hero-copy>p:last-of-type{color:#778197;font-size:15px}.quick-tags{display:flex;gap:10px;margin-top:22px}.quick-tags span{background:#fff;border:1px solid #edf0f6;border-radius:22px;padding:8px 13px;font-size:11px;color:#647087;box-shadow:0 5px 16px #4e5f8f0c}.public-theme .section-heading span{color:#5b73f2;font-weight:700}.public-theme .section-heading h2{color:#29344b}.public-theme .game-grid{gap:18px}.public-theme .game-card{background:#fff;border:1px solid #e9edf5;border-radius:22px;box-shadow:0 12px 35px #4a5f9a12;min-height:350px}.public-theme .game-card:hover{border-color:#9aaaff;box-shadow:0 18px 45px #4a62b322}.public-theme .card-art{background:linear-gradient(135deg,#7791ff,#62d7b1);height:190px}.public-theme .card-copy p{color:#637af2;font-weight:700}.public-theme .card-copy h3{color:#29344b;font-family:Inter,Microsoft YaHei,sans-serif;font-weight:750}.public-theme .card-copy span{color:#7e8799}.public-theme .card-copy button,.public-theme .primary{background:linear-gradient(135deg,#5e76f3,#7089ff);border-radius:11px;box-shadow:0 8px 18px #5c72e833;font-weight:700}.public-theme .coming-art{height:190px;background:linear-gradient(145deg,#fff1d7,#ffe3de);color:#ff796f}.public-theme .muted{opacity:1}.public-theme .muted:nth-child(3) .coming-art{background:linear-gradient(145deg,#e4f8ef,#dceefb);color:#4ab891}.public-theme .card-copy i{color:#8a94a6;border-color:#e5e9f1;background:#f7f8fb}.public-theme .page-title h1{color:#27324a;font-weight:800}.public-theme .page-title p{color:#7c869a}.public-theme .back{color:#677cf0}.public-theme .lobby-stat{background:#fff;border:1px solid #e8ecf4;padding:10px 16px;border-radius:16px;box-shadow:0 8px 24px #4d619314}.public-theme .lobby-stat b{font-family:Inter;color:#5c73ef}.public-theme .lobby-layout{grid-template-columns:350px 1fr}.public-theme .create-panel,.public-theme .rooms-panel{background:#fff;border:1px solid #e8ecf4;border-radius:22px;box-shadow:0 12px 35px #50659b10}.public-theme .create-panel{background:linear-gradient(160deg,#fff,#f1f4ff)}.public-theme .create-panel h2,.public-theme .rooms-panel h2{color:#2a354d}.public-theme .create-panel>p,.public-theme .create-panel small{color:#818a9c}.public-theme .create-panel label{color:#5e687a}.public-theme .duration-value{font-family:Inter;color:#5c73ef;font-weight:800}.public-theme .ticks{color:#a2a9b8}.public-theme .search input{background:#f6f7fb;border-color:#e4e8f1;color:#303a50}.public-theme .search button{background:#5f77f2;color:#fff}.public-theme .room-row{border-color:#edf0f5;border-radius:12px;padding:20px 12px;transition:.2s background,.2s transform}.public-theme .room-row:hover{background:#f7f9ff;transform:translate(3px)}.public-theme .room-row small{color:#a0a8b7}.public-theme .room-row strong,.public-theme .room-code b{color:#303a50}.public-theme .status{color:#ff8c67;background:#fff1eb;padding:6px 9px;border-radius:20px;text-align:center}.public-theme .status.waiting{color:#2da67e;background:#e7f8f1}.public-theme .room-row button{color:#5871ee;font-weight:700}.public-theme .admin-table{background:#fff;border-color:#e8ecf4;border-radius:22px;box-shadow:0 12px 35px #50659b10}.public-theme .table-head,.public-theme .table-row{border-color:#edf0f5}.public-theme .table-head{color:#9ba4b5}.public-theme .table-row button{color:#5a72ed}.game-theme{background:radial-gradient(circle at 15% 10%,#1c3b32 0,transparent 35%),linear-gradient(140deg,#0c211c,#081713);min-height:100vh}@media(max-width:600px){.public-theme .hero-copy:after{font-size:58px;right:0}.quick-tags{flex-wrap:wrap}.public-theme .lobby-stat{display:none}}
