*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{color:#e8e8e8;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#0e0e0e;font-family:Noto Sans TC,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;overflow-x:hidden}#root{background:#1a1a1a;flex-direction:column;align-items:center;display:flex}.pixel_sprite{width:64px;height:96px;image-rendering:pixelated;background-repeat:no-repeat;background-size:256px 96px;animation:.7s steps(4,end) infinite pixel_walk}@keyframes pixel_walk{to{background-position-x:-256px}}.app_shell{background:#0e0e0e;flex-direction:column;width:100%;max-width:440px;min-height:100dvh;display:flex;position:relative;overflow:hidden}button,input,textarea{color:inherit;font-family:inherit}input,textarea{background:0 0;border:none;outline:none;width:100%}button{cursor:pointer;background:0 0;border:none;padding:0}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:0;height:0}.chat_scroll{scrollbar-width:thin;scrollbar-color:#ffffff38 transparent}.chat_scroll::-webkit-scrollbar{width:6px;height:6px}.chat_scroll::-webkit-scrollbar-track{background:0 0}.chat_scroll::-webkit-scrollbar-thumb{background:#ffffff38;border-radius:3px}.chat_scroll::-webkit-scrollbar-thumb:hover{background:#ffffff57}@keyframes typing_cursor{0%{opacity:.25;transform:scaleY(.92)}20%{opacity:1;transform:scaleY(1)}55%{opacity:1;transform:scaleY(1)}80%{opacity:.35;transform:scaleY(.92)}to{opacity:.25;transform:scaleY(.92)}}.typing_cursor{transform-origin:bottom;will-change:opacity, transform;margin-left:2px;animation:1.05s ease-in-out infinite typing_cursor;display:inline-block}@keyframes pixrun_play{to{background-position-x:var(--pixrun-end)}}.pixrun{image-rendering:pixelated;background-repeat:no-repeat;animation:.6s steps(4,end) infinite pixrun_play}@keyframes arrow_nudge_r{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes arrow_nudge_l{0%,to{transform:translate(0)}50%{transform:translate(-5px)}}.arrow_nudge_r{animation:.9s ease-in-out infinite arrow_nudge_r}.arrow_nudge_l{animation:.9s ease-in-out infinite arrow_nudge_l}@keyframes confetti_fall{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(440px)rotate(720deg)}}.confetti_piece{animation-name:confetti_fall;animation-timing-function:ease-in;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes branch_spin{to{transform:rotate(360deg)}}
