@font-face{font-family:Pixelify;src:url(/assets/pixelify-sans.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:ZLabsPixel;src:url(/assets/zlabs-pixel-cn.woff2) format("woff2");font-weight:400;font-display:swap}#cake-pixel{--paper:light-dark(#f5f1e5,#252c2b);--ink:light-dark(#314c40,#e1e7cf);--soft:light-dark(#6c7c67,#acb9a4);--line:light-dark(#c8d0b7,#55634f);--accent:light-dark(#738657,#b5c580);--button:light-dark(#e3e8ce,#394735);--button-shadow:light-dark(#b2bea0,#171f1a);--blush:light-dark(#bf948f,#e6b5aa);color:var(--ink);font-family:Microsoft YaHei,Arial,sans-serif;container-type:inline-size;width:100%;color-scheme:light dark}#cake-pixel *{box-sizing:border-box}#cake-pixel button,#cake-pixel a{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation}#cake-pixel button{border:0;background:none}#cake-pixel a{text-decoration:none}#cake-pixel button:focus-visible,#cake-pixel a:focus-visible{outline:2px dashed var(--ink);outline-offset:6px}#cake-pixel .pixel-site{background:var(--paper);padding:30px 43px 26px;position:relative;isolation:isolate;overflow:hidden}#cake-pixel .pixel-nav{display:flex;align-items:center;justify-content:space-between;gap:16px}#cake-pixel .pixel-brand{font-family:Pixelify,Consolas,monospace;font-size:23px;display:inline-flex;align-items:center;letter-spacing:-1px;line-height:1}#cake-pixel .brand-period{color:var(--blush)}#cake-pixel .brand-flower{position:relative;width:18px;height:18px;display:block;margin-right:10px;color:var(--accent)}#cake-pixel .brand-flower:before,#cake-pixel .brand-flower:after{content:"";position:absolute;background:currentColor;top:0;right:6px;bottom:0;left:6px}#cake-pixel .brand-flower:after{top:6px;right:0;bottom:6px;left:0}#cake-pixel .brand-flower i{position:absolute;background:var(--paper);left:7px;top:7px;width:4px;height:4px;z-index:1}#cake-pixel .about-toggle{font-size:11px;padding:10px 0 10px 14px;display:inline-flex;gap:18px;align-items:center}#cake-pixel .about-toggle span{font-size:17px}#cake-pixel .pixel-hero{display:grid;grid-template-columns:.93fr 1.07fr;align-items:center;min-height:480px;gap:15px;padding-top:15px}#cake-pixel .pixel-copy{padding:0 0 0 7px;min-width:0}#cake-pixel h1{font-family:Pixelify,Consolas,monospace;font-weight:400;font-size:clamp(64px,9cqw,98px);line-height:.96;letter-spacing:-.055em;margin:0 0 34px;text-wrap:nowrap}#cake-pixel .title-period{color:var(--blush);padding-left:7px}#cake-pixel .hero-links{display:flex;flex-direction:column;align-items:flex-start;gap:14px}#cake-pixel .github-link{display:inline-flex;gap:12px;align-items:center;font-family:Pixelify,Consolas,monospace;font-size:18px;border:2px solid var(--accent);padding:9px 18px 9px 12px;min-height:44px;background:var(--button);box-shadow:3px 3px 0 var(--button-shadow);transition:transform .12s,box-shadow .12s}#cake-pixel .blog-link{font-family:Microsoft YaHei,Arial,sans-serif;font-size:15px}#cake-pixel .github-link:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--button-shadow)}#cake-pixel .github-link:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--button-shadow)}#cake-pixel .pixel-arrow{font-family:Consolas,monospace;font-size:18px}#cake-pixel .link-tail{font-family:Consolas,monospace;opacity:.6;margin-left:7px}#cake-pixel .pixel-world{position:relative;min-width:0;padding-top:22px}#cake-pixel .island-button{display:block;width:100%;padding:0;position:relative;line-height:0}#cake-pixel .island-button:focus-visible{outline-offset:0;outline-color:var(--accent)}#cake-pixel .island-canvas{display:block;width:100%;height:auto;aspect-ratio:256 / 208;image-rendering:crisp-edges;image-rendering:pixelated}#cake-pixel .scene-toolbar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:-9px;padding:0 25px}#cake-pixel .rotate-button{min-height:44px;min-width:44px;border:1px solid var(--line);box-shadow:2px 2px 0 var(--line);padding:3px 12px;background:var(--paper);font-family:ZLabsPixel,Microsoft YaHei,sans-serif;font-size:24px;line-height:1;white-space:nowrap;display:inline-flex;justify-content:center;align-items:center}#cake-pixel .rotate-button:hover{background:var(--button)}#cake-pixel .rotate-button:active{transform:translate(2px,2px);box-shadow:none}#cake-pixel .pixel-divider{display:flex;align-items:center;gap:11px;font-family:Consolas,monospace;color:var(--line);font-size:14px;line-height:1;margin-top:16px}#cake-pixel .pixel-divider i{display:block;border-top:1px dashed var(--line);flex:1}#cake-pixel .pixel-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:23px;color:var(--soft);font-size:9px;font-family:Consolas,monospace;letter-spacing:.02em}#cake-pixel .pixel-footer>span:first-child{display:flex;gap:7px;align-items:center}#cake-pixel .footer-dot{width:4px;height:4px;background:var(--accent)}#cake-pixel .credits-button{font-size:9px;letter-spacing:0;padding:5px 0}#cake-pixel .credits-button:hover{text-decoration:underline;text-underline-offset:4px}#cake-pixel .pixel-dialog{padding:0;width:380px;max-width:calc(100% - 36px);background:var(--paper);color:var(--ink);border:2px solid var(--accent);box-shadow:7px 7px 0 var(--button-shadow)}#cake-pixel .pixel-dialog::backdrop{background:#192d2459}#cake-pixel .dialog-top{display:flex;justify-content:space-between;align-items:center;padding:9px 15px;border-bottom:1px dashed var(--line);font-family:Pixelify,monospace;font-size:12px}#cake-pixel .dialog-close{font-size:25px;min-width:32px;min-height:32px;padding:0}#cake-pixel .dialog-content{padding:25px 28px 30px}#cake-pixel .dialog-content h2{font-family:Pixelify,monospace;font-size:34px;margin:8px 0 18px;font-weight:400}#cake-pixel .dialog-content p{font-size:12px;line-height:1.9}#cake-pixel .dialog-credit{border-top:1px dashed var(--line);padding-top:17px;margin:22px 0}#cake-pixel .dialog-credit>span{font-size:10px;color:var(--soft)}#cake-pixel .dialog-credit p{font-size:11px;color:var(--soft)}#cake-pixel .dialog-content>a{font-size:12px;border-bottom:1px solid var(--accent);padding-bottom:5px}#cake-pixel .pixel-live{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@container (max-width:680px){#cake-pixel .pixel-site{padding:25px 24px 23px}#cake-pixel .pixel-brand{font-size:23px}#cake-pixel .pixel-hero{grid-template-columns:1fr;gap:4px;padding-top:50px}#cake-pixel .pixel-copy{padding:0;text-align:center}#cake-pixel .hero-links{align-items:center}#cake-pixel h1{font-size:clamp(56px,12cqw,78px)}#cake-pixel .pixel-world{width:100%;max-width:440px;justify-self:center;padding-top:36px}#cake-pixel .scene-toolbar{margin-top:-5px}#cake-pixel .pixel-divider{margin-top:35px}#cake-pixel .pixel-footer{flex-wrap:wrap;gap:12px;font-size:9px;justify-content:space-between;padding-top:17px}#cake-pixel .credits-button{font-size:9px}}@container (max-width:360px){#cake-pixel .pixel-site{padding:22px 18px}#cake-pixel .pixel-brand{font-size:21px}#cake-pixel h1{font-size:clamp(43px,15.5cqw,53px)}#cake-pixel .pixel-footer{font-size:8px;gap:10px}#cake-pixel .credits-button{font-size:8px}}@media (pointer:coarse){#cake-pixel .rotate-button,#cake-pixel .about-toggle,#cake-pixel .credits-button,#cake-pixel .dialog-close{min-height:44px;min-width:44px}}@media (prefers-reduced-motion:reduce){#cake-pixel *{transition:none!important}}html{min-width:0;color-scheme:light dark;background:light-dark(#f5f1e5,#252c2b)}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}#cake-pixel button,#cake-pixel a{cursor:pointer}#cake-pixel .pixel-site{max-width:1100px;margin:0 auto;min-height:100svh;display:flex;flex-direction:column;overflow:visible}#cake-pixel .pixel-hero{flex:1}#cake-pixel .pixel-footer{font-size:11px;display:grid;grid-template-columns:1fr auto;row-gap:12px}#cake-pixel .pixel-footer>span:nth-child(2){justify-self:end}#cake-pixel .icp-link{grid-column:1 / -1;justify-self:center;text-align:center;line-height:1.5;min-height:44px;display:inline-flex;align-items:center}#cake-pixel .icp-link:hover{text-decoration:underline;text-underline-offset:3px}#cake-pixel .credits-button{font-size:11px;min-height:44px}#cake-pixel .about-toggle,#cake-pixel .dialog-close{min-height:44px;min-width:44px}#cake-pixel .scene-fallback{aspect-ratio:256 / 208;display:grid;align-content:center;justify-items:center;color:var(--soft);font-size:12px}#cake-pixel .scene-fallback img{image-rendering:pixelated;width:50%;height:auto}@container (max-width:680px){#cake-pixel .pixel-hero{min-height:auto;padding-bottom:16px}}
