:root{--cb-ground:#f7f6f2;--cb-card:#fff;--cb-line:#e3e1da;--cb-ink:#12151c;--cb-ink-muted:#5b6170;--cb-accent:#ff5a36;--cb-accent-text:#c2401f;--cb-accent-tint:#ffe6de;--cb-font-display:"Outfit", sans-serif;--cb-font-body:"Inter", "PingFang SC", "Noto Sans SC", system-ui, sans-serif;--cb-font-mono:"JetBrains Mono", ui-monospace, monospace;--cb-font-cjk:"PingFang SC", "Noto Sans SC", sans-serif;--cb-text-xl:104px;--cb-text-lg:64px;--cb-text-md:40px;--cb-text-sm:28px;--cb-body-lg:20px;--cb-body:16px;--cb-body-sm:14px;--cb-label:12px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--cb-ground:#0f1217;--cb-card:#171b22;--cb-line:#2a2f39;--cb-ink:#f3f2ee;--cb-ink-muted:#9aa1ae;--cb-accent:#ff6b4a;--cb-accent-text:#ff8a6e;--cb-accent-tint:#3a2520}}:root[data-theme=dark]{--cb-ground:#0f1217;--cb-card:#171b22;--cb-line:#2a2f39;--cb-ink:#f3f2ee;--cb-ink-muted:#9aa1ae;--cb-accent:#ff6b4a;--cb-accent-text:#ff8a6e;--cb-accent-tint:#3a2520}.cb-wordmark{font-family:var(--cb-font-display);letter-spacing:-.03em;color:var(--cb-ink);margin-left:-.022em;font-weight:700;line-height:1}.cb-wordmark b{font-weight:inherit;color:var(--cb-accent)}.cb-wordmark small{color:var(--cb-ink-muted);margin-left:.08em;font-size:.5em;font-weight:500}.cb-lockup{align-items:baseline;gap:.178em;display:flex}.cb-lockup svg{width:.88em;height:.858em;overflow:visible}.cb-slogan{font-family:var(--cb-font-display);letter-spacing:-.02em;color:var(--cb-ink);margin-left:-.054em;font-weight:700}.cb-slogan-zh{font-family:var(--cb-font-cjk);color:var(--cb-ink-muted);margin-left:-.05em;font-size:.6em}
@font-face{font-family:Outfit;src:url(/fonts/Outfit.woff2)format("woff2-variations"),url(/fonts/Outfit.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter.woff2)format("woff2-variations"),url(/fonts/Inter.woff2)format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono.woff2)format("woff2-variations"),url(/fonts/JetBrainsMono.woff2)format("woff2");font-weight:100 800;font-display:swap}@font-face{font-family:Noto Sans SC;src:local(Noto Sans SC),local(NotoSansSC-Regular),url(/fonts/NotoSansSC.woff2)format("woff2-variations");font-weight:100 900;font-display:swap}:root{--web-font-body:"Inter", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--web-font-display:"Outfit", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--web-on-accent:#12151c;--web-max:1120px;--web-gutter:24px;--web-radius:12px;--web-radius-sm:8px;--web-shadow:0 1px 2px #12151c0a, 0 8px 24px #12151c0f;--web-cap:.727em;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--web-shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--web-shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (max-width:640px){:root{--web-gutter:16px}}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--cb-ground);min-height:100vh;color:var(--cb-ink);font-family:var(--web-font-body);font-size:var(--cb-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;margin:0;line-height:1.55;display:flex}:lang(zh) body,body:lang(zh){line-height:1.7}img,svg,iframe{max-width:100%;display:block}a{color:var(--cb-accent-text);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}::selection{background:var(--cb-accent-tint)}:focus-visible{outline:2px solid var(--cb-ink);outline-offset:2px}h1,h2,h3{font-family:var(--web-font-display);letter-spacing:-.01em;margin:0;font-weight:700;line-height:1.15}h1{font-size:var(--cb-text-md)}h2{font-size:var(--cb-text-sm)}h3{font-size:var(--cb-body-lg)}p{margin:0}code,.mono{font-family:var(--cb-font-mono);font-size:.875em}.muted{color:var(--cb-ink-muted)}.small{font-size:var(--cb-body-sm)}.label{font-family:var(--cb-font-mono);font-size:var(--cb-label);letter-spacing:.02em;color:var(--cb-ink-muted);text-transform:uppercase;font-weight:500}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{left:var(--web-gutter);z-index:100;background:var(--cb-card);color:var(--cb-ink);border:1px solid var(--cb-line);border-radius:var(--web-radius-sm);padding:8px 12px;position:absolute;top:-100px}.skip-link:focus{top:8px}.container{width:100%;max-width:calc(var(--web-max) + 2 * var(--web-gutter));padding:0 var(--web-gutter);margin:0 auto}main{flex:1}.container.wide{max-width:calc(1440px + 2 * var(--web-gutter))}.drawing{height:var(--h);flex:none;width:auto;display:block;overflow:visible}.drawing.on-baseline{top:calc(var(--h) * var(--below));position:relative}.site-header{border-bottom:1px solid var(--cb-line);background:var(--cb-ground)}.site-header .bar{align-items:baseline;gap:28px;padding-top:18px;padding-bottom:18px;display:flex}.brand-link{color:inherit;align-items:baseline;gap:10px;text-decoration:none;display:flex}.site-badge{font-size:var(--cb-body-sm);color:var(--cb-ink-muted);font-weight:500}.nav{align-items:baseline;gap:24px;font-size:15px;display:flex}.nav a,.nav .nav-button{color:var(--cb-ink);text-decoration:none}.nav a:hover,.nav .nav-button:hover{text-decoration:underline;text-decoration-thickness:1px}.nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px}.bar .spacer{flex:1}.bar>.nav:last-child{margin-left:auto}.nav-button{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.icon-inline{width:18px;height:18px;top:calc(9px - var(--web-cap) / 2);flex:none;position:relative}.nav .nav-button.icon{align-self:baseline;align-items:flex-end;display:flex}.user-chip{color:var(--cb-ink);align-items:baseline;gap:8px;text-decoration:none;display:flex}.user-chip .avatar{top:calc(12px - var(--web-cap) / 2);position:relative}@media (max-width:760px){.site-header .bar{flex-wrap:wrap;gap:16px}.nav{gap:16px}.nav .hide-narrow{display:none}}.site-footer{border-top:1px solid var(--cb-line);font-size:var(--cb-body-sm);color:var(--cb-ink-muted);margin-top:96px;padding:32px 0 40px}.site-footer .row{flex-wrap:wrap;align-items:baseline;gap:12px 24px;display:flex}.site-footer a{color:var(--cb-ink-muted);text-decoration:none}.site-footer a:hover{color:var(--cb-ink);text-decoration:underline}.button{appearance:none;border:1px solid var(--cb-line);background:var(--cb-card);min-height:44px;color:var(--cb-ink);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:15px;font-weight:600;line-height:1;text-decoration:none;transition:background-color .12s,border-color .12s;display:inline-flex}.button:hover{border-color:var(--cb-ink-muted);text-decoration:none}.button.primary{background:var(--cb-accent);border-color:var(--cb-accent);color:var(--web-on-accent)}.button.primary:hover{filter:brightness(.96)}.button.ghost{background:0 0;border-color:#0000}.button.ghost:hover{border-color:var(--cb-line)}.button.small{min-height:34px;font-size:var(--cb-body-sm);padding:0 14px}.button.large{min-height:52px;font-size:var(--cb-body);padding:0 26px}.button[disabled],.button[aria-disabled=true]{opacity:.5;cursor:not-allowed;filter:none}.button svg{width:18px;height:18px}.field{gap:6px;display:grid}.field>span:first-child,.field>label:first-child{font-size:var(--cb-body-sm);font-weight:500}.input,.select,.textarea{border:1px solid var(--cb-line);border-radius:var(--web-radius-sm);background:var(--cb-card);width:100%;min-height:44px;color:var(--cb-ink);font:inherit;padding:0 14px;font-size:16px}.textarea{resize:vertical;min-height:88px;padding:10px 14px}.input:focus,.select:focus,.textarea:focus{border-color:var(--cb-ink);outline:none}.input.small,.select.small{min-height:34px;font-size:var(--cb-body-sm);padding:0 10px}.input-group{border:1px solid var(--cb-line);border-radius:var(--web-radius-sm);background:var(--cb-card);align-items:stretch;display:flex}.input-group:focus-within{border-color:var(--cb-ink)}.input-group .prefix{color:var(--cb-ink-muted);align-items:center;padding:0 0 0 14px;display:flex}.input-group .input{background:0 0;border:0}.input-group .button{min-height:34px;margin:4px}.checkbox{font-size:var(--cb-body-sm);align-items:flex-start;gap:10px;line-height:1.6;display:flex}.checkbox input{width:16px;height:16px;accent-color:var(--cb-ink);flex:none;margin:.25em 0 0}.notice{border-radius:var(--web-radius-sm);border:1px solid var(--cb-line);background:var(--cb-card);font-size:var(--cb-body-sm);padding:12px 14px}.notice.error{color:var(--cb-accent-text);border-color:currentColor}.error-text{color:var(--cb-accent-text);font-size:var(--cb-body-sm)}.draft-banner{border:1px dashed var(--cb-ink-muted);border-radius:var(--web-radius-sm);font-size:var(--cb-body-sm);color:var(--cb-ink);padding:10px 14px}.card{background:var(--cb-card);border:1px solid var(--cb-line);border-radius:var(--web-radius)}.panel{background:var(--cb-card);border:1px solid var(--cb-line);border-radius:var(--web-radius);padding:24px}.panel-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:16px;display:flex}.stack{gap:16px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pill{border:1px solid var(--cb-line);font-size:var(--cb-label);white-space:nowrap;color:var(--cb-ink-muted);border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-weight:500;display:inline-flex}.pill.strong{color:var(--cb-ink);border-color:var(--cb-ink)}.avatar{object-fit:cover;background:var(--cb-line);color:var(--cb-ink-muted);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;overflow:hidden}.stat{gap:4px;display:grid}.stat .value{font-family:var(--web-font-display);font-weight:700;font-size:var(--cb-text-sm);letter-spacing:-.01em;line-height:1}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;display:grid}.meter{background:var(--cb-line);border-radius:999px;height:8px;overflow:hidden}.meter>span{background:var(--cb-ink);border-radius:inherit;height:100%;display:block}.table-wrap{border:1px solid var(--cb-line);border-radius:var(--web-radius);background:var(--cb-card);overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:var(--cb-body-sm)}.table th,.table td{text-align:left;border-bottom:1px solid var(--cb-line);vertical-align:top;white-space:nowrap;padding:10px 14px}.table th{color:var(--cb-ink-muted);background:var(--cb-ground);font-weight:500}.table tr:last-child td{border-bottom:0}.table td.wrap{white-space:normal;min-width:200px}.table .num{text-align:right;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--cb-ink-muted);padding:40px 16px}.hero{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:64px;padding-top:88px;padding-bottom:72px;display:grid}.hero h1{margin:0}.hero .slogan{--h:clamp(88px, 16vw, 168px)}.hero .slogan.en{--h:clamp(48px, 8.6vw, 92px)}.hero .lead{max-width:34em;font-size:var(--cb-body-lg);color:var(--cb-ink);margin-top:36px}.hero .actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.hero .note{font-size:var(--cb-body-sm);color:var(--cb-ink-muted);margin-top:14px}.demo{box-shadow:var(--web-shadow);gap:14px;padding:20px;display:grid}.demo .msg{grid-template-columns:32px minmax(0,1fr);align-items:start;gap:12px;display:grid}.demo .who{background:var(--cb-ground);border:1px solid var(--cb-line);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:600;display:flex}.demo .who .drawing{--h:20px}.demo .bubble{background:var(--cb-ground);font-size:var(--cb-body-sm);border-radius:4px 14px 14px;padding:10px 14px}.demo .game{border-radius:var(--web-radius-sm);border:1px solid var(--cb-line);margin-left:44px;overflow:hidden}.demo .game .screen{aspect-ratio:16/9;background:#12151c;position:relative;overflow:hidden}.demo .game .screen i{background:#5b6170;border-radius:50%;position:absolute}.demo .game .screen b{border-bottom:18px solid #f3f2ee;border-left:9px solid #0000;border-right:9px solid #0000;width:0;height:0;position:absolute;bottom:14%;left:46%}.demo .game .bar{font-size:var(--cb-body-sm);background:var(--cb-card);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.section{padding-top:56px}.section-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:24px;display:flex}.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0;padding:0;display:grid}.steps li{padding:24px;list-style:none}.steps .n{font-family:var(--cb-font-mono);font-size:var(--cb-label);color:var(--cb-ink-muted)}.steps h3{margin-top:10px}.steps p{color:var(--cb-ink-muted);font-size:var(--cb-body-sm);margin-top:8px}@media (max-width:900px){.hero{grid-template-columns:1fr;gap:40px;padding-top:48px}.steps{grid-template-columns:1fr}}.page-head{gap:8px;padding-top:48px;padding-bottom:24px;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.toolbar .search{flex:260px;max-width:360px}.chips{border:1px solid var(--cb-line);background:var(--cb-card);border-radius:999px;padding:3px;display:inline-flex}.chips button{appearance:none;font:inherit;font-size:var(--cb-body-sm);color:var(--cb-ink-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:6px 14px}.chips button[aria-pressed=true]{background:var(--cb-ink);color:var(--cb-ground)}.toolbar .select{width:auto;min-height:38px;font-size:var(--cb-body-sm)}.game-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px;display:grid}.game-card{color:inherit;grid-template-rows:auto 1fr;text-decoration:none;transition:border-color .12s;display:grid;overflow:hidden}.game-card:hover{border-color:var(--cb-ink-muted);text-decoration:none}.cover{aspect-ratio:16/10;background:var(--cb-ground);border-bottom:1px solid var(--cb-line);color:var(--cb-line);justify-content:center;align-items:center;display:flex;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%}.cover .drawing{--h:40px}.game-card .body{align-content:start;gap:8px;padding:14px 16px 16px;display:grid}.game-card h3{font-size:var(--cb-body);font-family:var(--web-font-body);letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-weight:600;line-height:1.4;overflow:hidden}.byline{font-size:var(--cb-body-sm);color:var(--cb-ink-muted);align-items:center;gap:8px;min-width:0;display:flex}.byline span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stats{font-size:var(--cb-label);color:var(--cb-ink-muted);font-variant-numeric:tabular-nums;gap:14px;display:flex}.player{aspect-ratio:16/9;border-radius:var(--web-radius);border:1px solid var(--cb-line);background:#000;width:100%;max-height:78vh;position:relative;overflow:hidden}.player iframe{border:0;width:100%;height:100%}.game-meta{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;margin-top:24px;display:grid}.game-meta .description{white-space:pre-wrap;max-width:44em;margin-top:12px}@media (max-width:760px){.game-meta{grid-template-columns:1fr}}.author-head{align-items:center;gap:20px;padding-top:48px;padding-bottom:32px;display:flex}.legal{max-width:760px;padding-top:48px}.legal h1{margin-bottom:12px}.legal h2{font-size:var(--cb-body-lg);margin-top:36px;margin-bottom:10px}.legal p,.legal li{margin-top:8px}.legal ul,.legal ol{margin:8px 0 0;padding-left:1.4em}.legal table{margin-top:12px}.shell{grid-template-columns:200px minmax(0,1fr);gap:40px;padding-top:40px;display:grid}.side-nav{align-content:start;gap:2px;display:grid;position:sticky;top:24px}.side-nav a{border-radius:var(--web-radius-sm);color:var(--cb-ink);padding:8px 12px;font-size:15px;text-decoration:none;display:block}.side-nav a:hover{background:var(--cb-card)}.side-nav a[aria-current=page]{background:var(--cb-card);box-shadow:inset 0 0 0 1px var(--cb-line);font-weight:600}.shell-main{align-content:start;gap:24px;min-width:0;display:grid}.shell-main>h1{font-size:var(--cb-text-sm)}@media (max-width:760px){.shell{grid-template-columns:1fr;gap:20px;padding-top:20px}.side-nav{gap:4px;display:flex;position:static;overflow-x:auto}.side-nav a{white-space:nowrap}}.auth{justify-content:center;padding-top:64px;display:flex}.auth .panel{gap:20px;width:100%;max-width:420px;padding:32px;display:grid}.auth h1{font-size:var(--cb-text-sm)}@media (max-width:480px){.auth{padding-top:24px}.auth .panel{padding:24px 20px}}.profile-row{border-top:1px solid var(--cb-line);grid-template-columns:160px minmax(0,1fr);align-items:baseline;gap:16px;padding:16px 0;display:grid}.profile-row:first-of-type{border-top:0;padding-top:0}.profile-row>:first-child{font-size:var(--cb-body-sm);color:var(--cb-ink-muted)}@media (max-width:560px){.profile-row{grid-template-columns:1fr;gap:6px}}.device{border-top:1px solid var(--cb-line);align-items:center;gap:16px;padding:16px 0;display:flex}.device:first-child{border-top:0;padding-top:0}.device .info{flex:1;gap:2px;min-width:0;display:grid}.packages{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.package{align-content:start;gap:12px;padding:20px;display:grid}.package .credits{font-family:var(--web-font-display);font-size:var(--cb-text-sm);font-weight:700;line-height:1}.pay{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:32px;display:grid}.qr{border-radius:var(--web-radius);border:1px solid var(--cb-line);background:#fff;width:232px;height:232px;padding:16px}.qr svg{width:100%;height:100%}@media (max-width:640px){.pay{grid-template-columns:1fr;justify-items:start}}dialog.dialog{border:1px solid var(--cb-line);border-radius:var(--web-radius);background:var(--cb-card);color:var(--cb-ink);width:min(440px,100vw - 32px);box-shadow:var(--web-shadow);padding:24px}dialog.dialog::backdrop{background:#12151c73}.cropper{aspect-ratio:1;border-radius:var(--web-radius-sm);background:var(--cb-ground);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;position:relative;overflow:hidden}.cropper img{pointer-events:none;max-width:none;position:absolute}.cropper:after{content:"";pointer-events:none;border-radius:50%;position:absolute;inset:0;box-shadow:0 0 0 999px #12151c73}.range{width:100%;accent-color:var(--cb-ink)}.not-found{justify-items:start;gap:16px;padding-top:96px;display:grid}.hero .hero-slogan{width:min(100%,500px);height:auto}.cover .placeholder-mark{--h:40px;opacity:.35;filter:grayscale()}
