*,:before,:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}:root{--bg:#282626;--surface:#1c1c1c;--border:#2e2e2e;--border-soft:#4e4c4c;--text:#fff;--ink:#eee;--card-ink:#111;--accent:#01f5d0;--unknown:#f87171;--danger:#fe5252;--overlay-hover:#ffffff1a;--overlay-press:#ffffff26;--overlay-hover-on-light:#0000000d;--overlay-press-on-light:#0000001a;--font-sans:"Work Sans", "Noto Sans TC", sans-serif;--font-serif:"Noto Serif TC", serif;--font-kai:"ZCOOL XiaoWei", serif;--font-xing:"Ma Shan Zheng", cursive;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}html,body{overscroll-behavior:none;width:100%;height:100%;overflow:hidden}#root{flex-direction:column;height:100%;display:flex}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.5}button{cursor:pointer;color:inherit;font-family:inherit;font-size:inherit;font-weight:400;line-height:inherit;touch-action:manipulation;background:0 0;border:none;padding:0}input{color:inherit;font-family:inherit;font-size:inherit;background:0 0;border:none;outline:none;width:100%}.pressable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}:root{--cover-height:480px;--frame-surround:#000}@keyframes preload-dot-pulse{0%,to{opacity:.25}50%{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes card-lift{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.spinner{border:2px solid var(--border);border-top-color:var(--text);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.65s linear infinite spin}#root{container-type:inline-size}@media (width>=601px) and (height>=600px){body{background:var(--frame-surround);justify-content:center;align-items:center;display:flex}#root{aspect-ratio:9/17.6;border:2px solid var(--border-soft);contain:layout;background:var(--bg);border-radius:8px;width:auto;height:min(100% - 16px,880px);margin:8px 0;overflow:hidden}}.rotate-notice{display:none}@media (hover:none) and (orientation:landscape) and (height<=600px){.rotate-notice{display:flex}}.btn{letter-spacing:.04em;text-transform:uppercase;text-align:center;cursor:pointer;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:none;outline:none;justify-content:center;align-items:center;width:100%;padding:16px 24px;font-family:inherit;font-size:24px;font-weight:500;display:inline-flex}.btn:focus-visible{outline:2px solid var(--text);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.4}.btn-accent{color:var(--accent)}.btn-bright{color:var(--ink)}.btn-dark{color:var(--bg)}.btn-danger{color:var(--danger)}@media (hover:hover){.btn:hover:not(:disabled):not(:active){background:var(--overlay-hover)}.btn-dark:hover:not(:disabled):not(:active){background:var(--overlay-hover-on-light)}}.btn:active:not(:disabled){background:var(--overlay-press)}.btn-dark:active:not(:disabled){background:var(--overlay-press-on-light)}.btn-icon{font-size:inherit;letter-spacing:0;text-transform:none;flex-shrink:0;padding:0;line-height:1}.btn-border{cursor:pointer;letter-spacing:.04em;text-transform:uppercase;text-align:center;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:2px solid;outline:none;justify-content:center;align-items:center;font-family:inherit;font-size:24px;font-weight:500;display:inline-flex}.btn-border:focus-visible{outline:2px solid var(--text);outline-offset:2px}.btn-border:disabled{cursor:not-allowed;opacity:.4}.btn-border-accent{color:var(--accent);border-color:var(--accent)}.btn-border-bright{color:var(--ink);border-color:var(--ink)}.btn-border-dark{color:var(--bg);border-color:var(--bg)}.btn-border-danger{color:var(--danger);border-color:var(--danger)}@media (hover:hover){.btn-border:hover:not(:disabled):not(:active){background:var(--overlay-hover)}.btn-border-dark:hover:not(:disabled):not(:active){background:var(--overlay-hover-on-light)}}.btn-border:active:not(:disabled){background:var(--overlay-press)}.btn-border-dark:active:not(:disabled){background:var(--overlay-press-on-light)}
