:root{font-family:Microsoft YaHei UI,Noto Sans SC,system-ui,sans-serif;color:#20253c;background:#f6f8ff;font-synthesis:none;--mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--ink: #20253c;--muted: #59617e;--line: #dce2f2;--surface: #fff;--blue: #4f63dc;--purple: #795ac9;--peach: #e97658;--mint: #34aa86;--shadow: 0 20px 55px rgba(49, 59, 112, .13)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 85% 0%,#e8e2ff 0,transparent 25rem),#f6f8ff}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid rgba(93,112,234,.5);outline-offset:3px}.site-header,main{width:min(1180px,calc(100% - 44px));margin:0 auto}.site-header{height:88px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.04em;font-size:18px}.brand-mark{width:32px;height:32px;display:grid;place-items:center;color:#fff;border-radius:11px;background:linear-gradient(135deg,var(--blue),var(--purple));box-shadow:0 7px 15px #5d70ea47}.site-header nav{display:flex;align-items:center;gap:24px;font-size:14px;color:var(--muted)}.site-header nav>a:hover{color:var(--blue)}.online-dot:before{content:"";display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:var(--mint)}.primary-button,.user-button{border:0;border-radius:13px;padding:13px 19px;background:linear-gradient(135deg,var(--blue),#7180ec);color:#fff;font-weight:700;box-shadow:0 9px 20px #5d70ea3b;transition:transform .18s,box-shadow .18s}.primary-button:hover{transform:translateY(-2px);box-shadow:0 13px 25px #5d70ea47}.primary-button:disabled{opacity:.65;cursor:wait;transform:none}.compact{padding:10px 14px;border-radius:10px;font-size:13px}.user-button{padding:9px 12px;color:var(--blue);box-shadow:none;background:#eef0ff}.hero{min-height:465px;padding:69px 58px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;overflow:hidden;border-radius:30px;background:linear-gradient(128deg,#fff,#edf0ff);box-shadow:var(--shadow);position:relative}.eyebrow{margin:0 0 11px;color:var(--blue);font:500 11px var(--mono);letter-spacing:.15em}.hero h1,.game-page h1{margin:0;font-size:clamp(42px,5vw,68px);line-height:1.15;letter-spacing:-.075em}.hero h1 em{color:var(--blue);font-style:normal}.hero-copy{max-width:420px;color:var(--muted);line-height:1.85;margin:23px 0 29px}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.hero-action{display:inline-block}.secondary-button{border:1px solid #cfd7f4;border-radius:13px;padding:12px 16px;color:var(--blue);background:#ffffffb8;font-size:13px;font-weight:800;transition:transform .18s,border-color .18s,background .18s}.secondary-button:hover{transform:translateY(-2px);border-color:var(--blue);background:#fff}.hero-visual{height:320px;position:relative}.float-tile{position:absolute;display:grid;place-items:center;width:110px;height:110px;border-radius:27px;color:#fff;font-size:35px;font-weight:800;box-shadow:0 21px 35px #4a4e872e;transform:rotate(-10deg)}.tile-one{top:27px;left:12%;background:#f2bc74}.tile-two{top:28px;right:4%;background:var(--blue);transform:rotate(9deg)}.tile-three{bottom:16px;left:31%;background:var(--purple);transform:rotate(13deg)}.tile-four{bottom:1px;right:4%;background:var(--mint);transform:rotate(-8deg)}.continue-link{display:block;width:max-content;max-width:100%;margin-top:17px;color:var(--purple);font-size:12px;font-weight:700}.continue-link:hover{color:var(--blue)}.catalog{padding:104px 0 76px}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:27px}.section-title h2,.leaderboard h2{margin:0;font-size:30px;letter-spacing:-.06em}.section-title>p{margin:0;color:var(--muted);font-size:14px}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.game-card{min-height:430px;display:grid;grid-template-rows:auto 145px auto minmax(47px,auto) auto auto auto;align-content:start;padding:23px;overflow:hidden;border:1px solid rgba(220,226,242,.96);border-radius:23px;background:var(--surface);box-shadow:0 10px 26px #313b7013;transition:transform .2s,box-shadow .2s}.game-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}.card-top,.tags,.play-link{display:flex;justify-content:space-between;align-items:center}.card-top{color:var(--muted);font:600 11px var(--mono)}.card-top b{color:#9aa5ca}.card-art{height:145px;display:flex;align-items:center;justify-content:center;gap:8px}.card-2048 .card-art i{width:47px;height:47px;display:grid;place-items:center;border-radius:12px;font-style:normal;font-weight:800;color:#fff;background:#ffac7c;transform:rotate(-5deg)}.card-2048 .card-art i:nth-child(2){background:#f0bf74;transform:translateY(-18px) rotate(6deg)}.card-2048 .card-art i:nth-child(3){background:#8874df;transform:translateY(10px) rotate(-3deg)}.card-2048 .card-art i:nth-child(4){background:#6679e9;transform:translateY(-5px) rotate(7deg)}.snake-art{color:var(--mint);font-size:46px;letter-spacing:-13px;transform:rotate(-15deg)}.mine-art{font-size:80px;color:#8d6fda;text-shadow:12px 9px 0 #ece8ff}.game-card h3{margin:0 0 8px;font-size:25px;letter-spacing:-.055em}.game-card>p{min-height:47px;margin:0 0 16px;color:var(--muted);line-height:1.7;font-size:13px}.tags{min-height:31px;flex-wrap:wrap;justify-content:flex-start;gap:6px;margin-bottom:12px}.tags span{padding:5px 9px;border-radius:99px;color:#525c80;background:#eef1fa;font-size:11px;font-weight:600}.play-link{width:100%;min-height:45px;margin:0;padding-top:14px;border-top:1px solid rgba(220,226,242,.82);color:var(--blue);font-weight:800;font-size:13px}.play-link b{font-size:18px}.notice{display:flex;gap:16px;align-items:center;margin-bottom:70px;padding:21px 25px;border:1px solid #ded8ff;border-radius:18px;background:#ffffffb8}.notice>span{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border-radius:12px;background:#edeaff;color:var(--purple)}.notice b{font-size:14px}.notice p{margin:5px 0 0;color:var(--muted);font-size:12px}.catalog-tools{display:flex;gap:8px;margin:-9px 0 24px}.catalog-tools button{border:0;border-radius:999px;padding:8px 14px;color:var(--muted);background:#edf0fa;font-size:12px;font-weight:700}.catalog-tools button.active{color:#fff;background:var(--blue)}.tetris-art,.memory-art,.whack-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;font-size:54px;font-weight:800}.tetris-art{color:#fff;background:linear-gradient(135deg,#5d70ea 0 35%,#f0a06f 35% 62%,#69c8aa 62%)}.memory-art{color:#8d6fda;background:#f0ecff}.whack-art{position:relative;color:#fff4e9;background:#d4b498;box-shadow:inset 0 -18px #9e745e}.whack-art:before,.whack-art:after{content:"";position:absolute;top:28px;width:8px;height:8px;border-radius:50%;background:#fff}.whack-art:before{left:25px}.whack-art:after{right:25px}.empty-filter{color:var(--muted)}.card-tetris{background:linear-gradient(145deg,#fff,#f2f3ff)}.card-memory{background:linear-gradient(145deg,#fff,#fff5ed)}.card-whack{background:linear-gradient(145deg,#fff,#f2fbf7)}.breakout-art,.reaction-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;font-size:52px;font-weight:800}.breakout-art{color:#fff;background:linear-gradient(160deg,#6d81e9 0 34%,#ffac7c 34% 58%,#f4cc74 58%)}.reaction-art{color:#ff9b73;background:#fff0e9;box-shadow:inset 0 0 0 9px #fff8f4}.card-breakout{background:linear-gradient(145deg,#fff,#eff4ff)}.card-reaction{background:linear-gradient(145deg,#fff,#fff6ef)}.wide-control{min-width:74px!important}.game-page{padding:37px 0 70px}.game-page-head{display:flex;justify-content:space-between;align-items:end;gap:30px;padding:0 2px 30px}.back-link{display:inline-block;margin-bottom:26px;color:var(--muted);font-size:13px}.back-link:hover{color:var(--blue)}.game-page-head h1{font-size:44px}.game-page-head p:not(.eyebrow){margin:9px 0 0;color:var(--muted);font-size:14px}.personal-record{min-width:190px;padding:16px 20px;border-radius:17px;background:#fff;box-shadow:0 8px 20px #3d477e0f}.personal-record span,.personal-record small{display:block;color:var(--muted);font-size:11px}.personal-record strong{display:block;margin:3px 0;font:700 28px DM Mono,monospace;color:var(--blue)}.personal-record button{padding:0;border:0;background:none;color:var(--blue);font-weight:700;font-size:11px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 312px;gap:22px;align-items:start}.play-area,.leaderboard{padding:20px;border-radius:22px;background:#fff;box-shadow:0 10px 28px #3d477e0f}.mode-row{display:flex;gap:7px;margin-bottom:16px;overflow:auto}.mode-row button{flex:0 0 auto;border:0;border-radius:9px;padding:8px 11px;color:var(--muted);background:#f3f5fb;font-size:12px;font-weight:600}.mode-row button.active{color:#fff;background:var(--blue)}.game-stage{position:relative;display:grid;place-items:center;overflow:hidden;border-radius:16px;background:linear-gradient(135deg,#eef0ff,#fafbff)}.game-canvas{width:min(560px,100%);max-width:100%;aspect-ratio:7 / 6;touch-action:none}.stage-controls{display:flex;justify-content:center;gap:8px;padding-top:16px}.stage-controls button,.restart-button{min-width:44px;height:40px;border:0;border-radius:10px;background:#eff1ff;color:var(--blue);font-weight:800}.restart-button{padding:0 14px}.game-message{min-height:20px;margin:14px 3px 0;color:var(--muted);font-size:12px}.leaderboard-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:18px}.leaderboard-head h2{font-size:21px}.leaderboard-head>span{padding:5px 8px;border-radius:99px;color:var(--purple);background:#f0ecff;font-size:10px}.leaderboard ol{padding:0;margin:0;list-style:none}.leaderboard li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:11px 2px;border-bottom:1px solid var(--line);font-size:13px}.leaderboard li b{color:#aab1ca;font:500 12px DM Mono,monospace}.leaderboard li:nth-child(-n+3) b{color:var(--purple)}.leaderboard li strong{color:var(--blue);font:600 12px DM Mono,monospace}.empty-board{padding:45px 6px;color:var(--muted);text-align:center;line-height:1.8;font-size:13px}.game-status{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;padding:0 3px;color:var(--muted);font:600 12px var(--mono)}.game-canvas{display:grid;place-items:center}.game-canvas canvas{display:block;width:100%!important;height:100%!important;border-radius:14px;image-rendering:auto}.stage-controls{align-items:center}.stage-controls button.active{color:#fff;background:var(--purple)}.stage-controls>span{color:var(--muted);font-size:11px;font-weight:600}.game-loading{aspect-ratio:7 / 6;display:grid;place-items:center;border-radius:16px;color:var(--muted);background:linear-gradient(135deg,#eef0ff,#fafbff);font-size:14px}.dialog-backdrop{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:20px;background:#1f253e57;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.auth-dialog{width:min(100%,400px);position:relative;padding:31px;border-radius:23px;background:#fff;box-shadow:0 30px 90px #191e413b}.close{position:absolute;top:14px;right:14px}.icon-button{width:32px;height:32px;border:0;border-radius:50%;background:#f1f3f9;color:var(--muted);font-size:22px}.auth-dialog h2{margin:0;font-size:27px;letter-spacing:-.06em}.muted{color:var(--muted);font-size:13px;line-height:1.7}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:21px 0;padding:4px;border-radius:11px;background:#f3f5fb}.auth-tabs button{padding:8px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:13px}.auth-tabs .active{background:#fff;color:var(--blue);box-shadow:0 2px 7px #3d477e1a}.auth-dialog label:not(.remember){display:grid;gap:7px;margin-bottom:15px;color:var(--muted);font-size:12px;font-weight:600}.auth-dialog input:not([type=checkbox]){height:42px;padding:0 11px;border:1px solid var(--line);border-radius:10px;outline-color:var(--blue)}.remember{display:flex;gap:7px;align-items:center;margin:4px 0 18px;color:var(--muted);font-size:12px}.auth-dialog .primary-button{width:100%}.auth-dialog small{display:block;margin-top:16px;color:#a1a7ba;text-align:center;font-size:10px}.form-error{margin:0 0 12px;padding:9px 10px;border-radius:9px;color:#bd4661;font-size:12px}@media(max-width:760px){.site-header,main{width:min(100% - 28px,600px)}.site-header{height:70px}.site-header nav>a,.online-dot{display:none}.site-header nav>a.dashboard-link{display:inline-flex}.hero{min-height:0;padding:43px 28px 28px;grid-template-columns:1fr}.hero h1{font-size:44px}.hero-visual{height:174px;transform:scale(.7);transform-origin:center bottom;margin-top:-8px}.catalog{padding:69px 0 47px}.section-title>p{display:none}.game-grid{grid-template-columns:1fr}.game-card{min-height:330px}.game-page{padding-top:22px}.game-page-head{align-items:start;flex-direction:column;gap:17px}.game-page-head h1{font-size:38px}.personal-record{width:100%}.game-layout{grid-template-columns:1fr}.game-stage{min-height:0}.leaderboard{order:2}.notice{margin-bottom:35px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}.puzzle-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;color:#fff;background:linear-gradient(135deg,#7e70d9,#63cfae);font:800 30px var(--mono);box-shadow:inset 18px 0 #ffffff1c,inset 0 18px #ffffff14}.card-sliding-puzzle{background:linear-gradient(145deg,#fff,#f0fbf8)}.stage-controls button,.restart-button{min-height:44px}.game-card:focus-visible{transform:translateY(-3px)}.gomoku-art{display:grid;place-items:center;width:86px;height:86px;border-radius:50%;color:#fff;background:radial-gradient(circle at 32% 28%,#647082 0 7%,#20253c 41%,#111522);font-size:48px;box-shadow:18px 10px #f7dfb5,inset -7px -9px 16px #00000040}.card-gomoku{background:linear-gradient(145deg,#fff,#fff9e9)}.othello-art{display:grid;place-items:center;width:86px;height:86px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#20253c 48%,#fff8e9 49%);font-size:57px;text-shadow:2px 1px 0 #20253c;box-shadow:inset 0 0 0 9px #63a981}.card-othello{background:linear-gradient(145deg,#fff,#effbf6)}.sudoku-art{display:grid;place-items:center;width:86px;height:86px;border-radius:22px;color:#4f63dc;background:repeating-linear-gradient(90deg,#fff 0 19px,#d4dcf5 20px 21px),repeating-linear-gradient(0deg,transparent 0 19px,#d4dcf5 20px 21px);box-shadow:inset 0 0 0 8px #eef1fc;font:800 34px var(--mono)}.card-sudoku{background:linear-gradient(145deg,#fff,#f3f5ff)}.tictactoe-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;color:#fff;background:linear-gradient(135deg,#4f63dc 0 48%,#e97658 49%);font:800 31px var(--mono);letter-spacing:-9px}.card-tic-tac-toe{background:linear-gradient(145deg,#fff,#fff4ef)}.sokoban-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;color:#fff;background:linear-gradient(135deg,#f0aa63,#d97948);box-shadow:inset 0 0 0 9px #fff3;font:800 42px var(--mono)}.card-sokoban{background:linear-gradient(145deg,#fff,#fff7ed)}.flappy-art{position:relative;display:grid;place-items:center;width:86px;height:86px;border-radius:50% 50% 45% 45%;color:#fff;background:#ffca61;font-size:34px;box-shadow:inset -13px -10px #e18d3f29}.flappy-art:after{content:"";position:absolute;right:15px;top:23px;width:9px;height:9px;border-radius:50%;background:#26314f}.card-flappy{background:linear-gradient(145deg,#fff,#eefaff)}.lightsout-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;color:#fff4bc;background:#202b4c;box-shadow:inset 0 0 0 9px #36476f,0 8px 17px #202b4c2e;font-size:46px}.card-lights-out{background:linear-gradient(145deg,#fff,#f4f7ff)}.math-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;color:#fff;background:linear-gradient(135deg,#ff9876,#8d6fda);font:800 52px var(--mono);box-shadow:inset 0 0 0 9px #ffffff29}.card-math-sprint{background:linear-gradient(145deg,#fff,#fff3ef)}.math-controls button:not(.wide-control){min-width:68px}.link-match-art{display:grid;place-items:center;width:86px;height:86px;border-radius:23px;color:#fff;background:linear-gradient(135deg,#34aa86,#4f63dc);font:800 52px var(--mono);box-shadow:inset 0 0 0 9px #ffffff2e}.card-link-match{background:linear-gradient(145deg,#fff,#eefbf7)}.card-best{display:grid;grid-template-columns:auto 1fr auto;align-items:baseline;gap:7px;margin:0 0 12px;min-height:19px;color:var(--muted);font-size:10px}.card-best b{color:var(--blue);font:700 12px var(--mono)}.card-best small{overflow:hidden;max-width:74px;color:var(--purple);text-overflow:ellipsis;white-space:nowrap;font-size:10px}.card-best.empty b{color:#9da4ba;font-family:inherit}.catalog-tools{align-items:center;justify-content:space-between}.catalog-tools [role=tablist]{display:flex;gap:8px;flex-wrap:wrap}.game-search{display:flex;align-items:center;gap:7px;min-width:220px;padding:0 11px;border:1px solid var(--line);border-radius:11px;color:var(--muted);background:#fff}.game-search input{width:100%;height:36px;border:0;outline:0;color:var(--ink);background:transparent;font-size:12px}.game-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px #5d70ea1f}@media(max-width:760px){.catalog-tools{align-items:stretch;flex-direction:column}.game-search{min-width:0}}@media(max-width:760px){.play-area,.leaderboard{padding:14px}.play-area{min-width:0}.game-status,.stage-controls{flex-wrap:wrap}.stage-controls>span{width:100%;text-align:center;line-height:1.55}}@media(max-width:760px){.play-area:has(.mode-row [role=tab]:nth-child(3)[aria-selected=true]) .game-stage{display:block;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.play-area:has(.mode-row [role=tab]:nth-child(3)[aria-selected=true]) .game-canvas{width:560px;min-width:560px;touch-action:pan-x}}@media(max-width:760px){.play-area:has(.mode-row [role=tab]:nth-child(3)[aria-selected=true]) .stage-controls>span:after{content:" 高级棋盘可左右滑动查看。"}}
