:root{color-scheme:dark;--bg: #101116;--panel: rgba(22, 25, 31, .92);--panel-2: rgba(33, 38, 47, .94);--line: rgba(255, 255, 255, .12);--text: #f5f7fb;--muted: #a7b0bf;--accent: #5bd6a2;--accent-2: #ffd166;--danger: #ff5f6d}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 12% 18%,rgba(91,214,162,.17),transparent 26rem),radial-gradient(circle at 86% 22%,rgba(255,209,102,.12),transparent 24rem),linear-gradient(135deg,#101116,#1b2028 52%,#11151d);color:var(--text);font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif}button,input{font:inherit}button{cursor:pointer}.app-shell{width:min(1440px,calc(100vw - 24px));margin:0 auto;min-height:100vh;padding:12px 0}.topbar{height:64px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;position:sticky;top:0;z-index:20;background:#101116c7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand,.nav-tabs,.account{display:flex;align-items:center}.brand{gap:10px;border:0;background:transparent;color:var(--text);font-weight:800;font-size:18px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:var(--accent);color:#08120e;border-radius:8px;font-size:15px}.nav-tabs{justify-self:center;gap:6px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#ffffff0d}.nav-tabs button,.ghost-button,.login-button,.primary-button,.back-button,.icon-button,.mode-switch button{border:0;border-radius:8px;color:var(--text)}.nav-tabs button{min-height:36px;padding:0 13px;background:transparent;color:var(--muted)}.nav-tabs button.active{background:var(--panel-2);color:var(--text)}.account{justify-content:flex-end;gap:8px}.user-pill,.tag{min-height:30px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:8px;color:var(--muted);background:#ffffff0d;font-size:13px}.ghost-button,.login-button,.back-button{min-height:38px;padding:0 14px;background:#ffffff14;border:1px solid var(--line)}.login-button,.primary-button{background:linear-gradient(135deg,#35bf83,#76e0b4);color:#08120e;font-weight:850}.primary-button{min-height:46px;padding:0 18px}.primary-button:disabled{cursor:wait;opacity:.6}.lobby{padding:clamp(28px,5vw,70px) 0}.content-page,.game-detail{padding:clamp(24px,5vw,64px) 0}.content-hero{max-width:920px;display:grid;gap:14px;margin-bottom:24px}.content-hero h1,.detail-copy h1{margin:0;font-size:clamp(42px,8vw,82px);line-height:.98}.content-hero p,.detail-copy p,.content-panel p,.review-band p{color:var(--muted);line-height:1.7}.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.content-panel,.review-band article{min-height:190px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 24px 70px #0000003d}.content-panel h2,.review-band h2{margin:0 0 10px}.game-detail{min-height:calc(100vh - 88px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:14px;align-items:stretch}.detail-media{min-height:620px;position:relative;overflow:hidden;border:1px solid var(--line);border-radius:8px;background-position:center;background-size:cover;box-shadow:0 24px 70px #00000047}.detail-media:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000001f,#00000094)}.detail-media span{position:absolute;left:22px;bottom:22px;z-index:2;padding:9px 12px;border-radius:8px;background:#00000075;font-weight:900}.detail-copy{padding:22px;display:grid;align-content:start;gap:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 24px 70px #0000003d}.detail-list{display:grid;gap:10px}.detail-list div{min-height:54px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#ffffff0d}.detail-list span{color:var(--muted)}.result-view{min-height:calc(100vh - 88px);display:grid;place-items:center;padding:32px 0}.result-panel{width:min(680px,100%);display:grid;gap:18px;padding:clamp(22px,5vw,44px);border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 24px 70px #00000047}.result-panel h1{margin:0;font-size:clamp(34px,7vw,64px);line-height:1}.result-panel p{margin:0;color:var(--muted);line-height:1.65}.result-actions{display:flex;flex-wrap:wrap;gap:10px}.lobby-title{margin-bottom:28px}.lobby-title p,.side-panel p,.game-info p,.auth-reason,.message{color:var(--muted);line-height:1.65}.lobby-title h1{margin:4px 0 0;font-size:clamp(42px,8vw,86px);line-height:.95;letter-spacing:0}.game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.single-game-grid{grid-template-columns:minmax(0,1fr)}.game-card{min-height:540px;display:grid;grid-template-rows:1fr auto;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #00000047}.featured-game{min-height:620px;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);grid-template-rows:1fr}.game-art{position:relative;min-height:280px;overflow:hidden;background-position:center;background-size:cover}.game-art:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(0,0,0,.28),transparent 44%,rgba(0,0,0,.18)),radial-gradient(circle at 70% 22%,rgba(255,255,255,.16),transparent 22rem)}.game-art.grass_survivors{background-image:url(/images/cover-grass.jpg)}.game-art span{position:absolute;left:18px;top:18px;z-index:2;padding:7px 10px;border-radius:8px;background:#00000052;color:var(--text);font-weight:800}.game-info{padding:20px;display:grid;align-content:center;gap:18px}.game-info h2,.side-panel h1,.auth-modal h2,.game-overlay h2{margin:0;letter-spacing:0}.game-info h2{margin-top:14px;font-size:28px}.game-info p{min-height:78px;margin:8px 0 0}.review-band{margin-top:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.play-view{min-height:calc(100vh - 88px);display:grid;grid-template-columns:280px minmax(0,1fr);gap:12px;align-items:stretch}.side-panel,.unity-stage,.auth-modal{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #00000047}.side-panel{padding:18px;display:flex;flex-direction:column;gap:16px}.side-panel h1{font-size:32px}.stat-list{display:grid;gap:8px}.stat-list div{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#ffffff0d}.stat-list span{color:var(--muted)}.stat-list strong{font-size:22px}.side-panel .primary-button{margin-top:auto}.unity-stage{position:relative;overflow:hidden;align-self:center;aspect-ratio:16 / 9;max-height:calc(100vh - 88px);min-height:420px}#unity-canvas{width:100%;height:100%;display:block;background:#101820}.game-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;align-content:center;gap:16px;padding:24px;background:#080c1094;text-align:center}.game-overlay h2{font-size:clamp(34px,6vw,66px)}.game-overlay p{max-width:560px;margin:0;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:18px;background:#0000009e}.auth-modal{width:min(420px,100%);padding:22px;display:grid;gap:14px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.icon-button{width:36px;height:36px;background:#ffffff14;border:1px solid var(--line);font-size:24px}.mode-switch{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#ffffff0f}.mode-switch button{min-height:40px;background:transparent;color:var(--muted)}.mode-switch button.active{background:var(--panel-2);color:var(--text)}label{display:grid;gap:8px;color:var(--muted)}input{width:100%;min-height:46px;padding:0 13px;border:1px solid var(--line);border-radius:8px;outline:0;background:#ffffff12;color:var(--text)}input:focus{border-color:#5bd6a2b8}.message{min-height:22px;color:var(--accent-2)}.payment-link{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border-radius:8px;background:#5bd6a224;border:1px solid rgba(91,214,162,.42);color:var(--accent);font-weight:800;text-decoration:none}.captcha-row{display:grid;grid-template-columns:1fr 150px;gap:8px}.captcha-button{min-height:46px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:#ffffff14;color:var(--text)}.captcha-button img{width:100%;height:46px;display:block;object-fit:cover}.panel-modal{width:min(760px,100%);max-height:min(760px,calc(100vh - 36px));overflow:auto;padding:22px;display:grid;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px #00000057}.compact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-card{min-height:156px;display:grid;align-content:start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#ffffff0f}.mini-card span{color:var(--muted);line-height:1.5}.mini-card .primary-button{margin-top:auto}.order-list,.boost-list{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#ffffff0d}.order-list div,.boost-option{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted)}.boost-option{justify-content:flex-start}.boost-option input{width:18px;min-height:18px}.site-footer{min-height:72px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:18px 0 6px;color:var(--muted)}.site-footer button{min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#ffffff0f;color:var(--text)}.site-footer span{margin-left:auto}@media(max-width:960px){.topbar{height:auto;grid-template-columns:1fr auto;padding-bottom:10px}.nav-tabs{grid-column:1 / -1;justify-self:stretch;overflow-x:auto}.game-grid,.play-view,.game-detail,.content-grid,.review-band{grid-template-columns:1fr}.game-card{min-height:0}.featured-game{grid-template-columns:1fr;grid-template-rows:320px auto}.game-art{min-height:210px}.unity-stage{min-height:auto}.side-panel .primary-button{margin-top:0}.detail-media{min-height:360px}.compact-grid{grid-template-columns:1fr}.site-footer span{width:100%;margin-left:0}}@media(max-width:560px){.app-shell{width:min(100% - 14px,520px)}.brand span:last-child{display:none}.lobby-title h1{font-size:44px}.captcha-row{grid-template-columns:1fr}}
