:root{--champagne-500:#d7b377;--champagne-400:#e6c27a;--moss-500:#70866d;--moss-400:#96a993;--clay-500:#a96f5f;--clay-400:#c58d7c;--ink-980:#09090b;--ink-950:#11100e;--ink-930:#18181b;--font-sans:"Inter","Noto Sans TC","PingFang TC","Microsoft JhengHei",ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-serif:"Noto Serif TC","Songti TC","PMingLiU",serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--white:#fff;--white-92:#fafafa;--white-72:#d4d4d8;--white-45:#a1a1aa;--white-32:#71717a;--white-14:#ffffff24;--white-08:#ffffff14;--white-04:#ffffff0a;--bg-app:#11100e;--bg-surface:#18181b;--bg-surface-subtle:#d7b3771a;--bg-surface-elevated:#09090b73;--bg-panel:#09090b85;--bg-overlay:#09090bb8;--bg-page-surface:#f5f7fb;--text-primary:var(--white-92);--text-secondary:var(--white-72);--text-muted:var(--white-45);--text-faint:var(--white-32);--text-on-accent:#09090b;--text-on-light:#111827;--type-display-font:var(--font-serif);--type-display-size:32px;--type-display-weight:500;--type-display-line-height:1.2;--type-display-letter-spacing:-.02em;--type-title-font:var(--font-serif);--type-title-size:22px;--type-title-weight:500;--type-title-line-height:1.65;--type-title-letter-spacing:0;--type-subtitle-font:var(--font-sans);--type-subtitle-size:18px;--type-subtitle-weight:600;--type-subtitle-line-height:1.45;--type-subtitle-letter-spacing:0;--type-body-font:var(--font-sans);--type-body-size:15px;--type-body-weight:400;--type-body-line-height:2;--type-body-letter-spacing:0;--type-label-font:var(--font-sans);--type-label-size:14px;--type-label-weight:600;--type-label-line-height:1;--type-label-letter-spacing:.16em;--type-caption-font:var(--font-sans);--type-caption-size:12px;--type-caption-weight:400;--type-caption-line-height:1.35;--type-caption-letter-spacing:0;--type-overline-font:var(--font-sans);--type-overline-size:11px;--type-overline-weight:600;--type-overline-line-height:1.2;--type-overline-letter-spacing:.26em;--type-button-font:var(--font-sans);--type-button-size:14px;--type-button-weight:700;--type-button-line-height:1;--type-button-letter-spacing:0;--type-chip-font:var(--font-sans);--type-chip-size:12px;--type-chip-weight:600;--type-chip-line-height:1;--type-chip-letter-spacing:0;--border-subtle:#a1a1aa29;--border-default:#27272a;--accent-primary:var(--champagne-500);--accent-primary-hover:var(--champagne-400);--accent-danger:var(--clay-500);--radius-sm:12px;--radius-md:20px;--radius-lg:32px;--radius-pill:999px;--shadow-card:0 30px 80px #0000007a;--shadow-floating:0 24px 60px #00000061;--motion-fast:.16s;--motion-base:.22s;--layout-bottom-tab-height:72px;--app-stage-max-width:600px;--app-stage-max-height:1000px;--app-stage-radius:32px;--app-stage-border:#a1a1aa29;--app-stage-shadow:0 32px 80px #00000057;--app-shell-stage-padding-block:24px;--discover-card-radius:2rem;--movie-backdrop-filter:saturate(112%)contrast(102%)brightness(1.08);--movie-backdrop-opacity:1;--movie-hero-gradient:linear-gradient(to bottom,#09090b00 0%,#09090b14 38%,#18181b80 78%,#18181be6 94%,var(--bg-surface)100%),linear-gradient(to right,#09090b5c 0%,#09090b14 46%,#09090b47 100%)}html{-webkit-text-size-adjust:100%;font-family:var(--font-sans);scroll-behavior:smooth;tab-size:4;height:100%;line-height:1.5}body{background:var(--bg-app);height:100%;min-height:100vh;color:var(--text-primary);font-family:inherit;line-height:inherit;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;overflow:hidden}*,:before,:after{box-sizing:border-box}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}.type-display{font-family:var(--type-display-font);font-size:var(--type-display-size);font-weight:var(--type-display-weight);line-height:var(--type-display-line-height);letter-spacing:var(--type-display-letter-spacing)}.type-title{font-family:var(--type-title-font);font-size:var(--type-title-size);font-weight:var(--type-title-weight);line-height:var(--type-title-line-height);letter-spacing:var(--type-title-letter-spacing)}.type-subtitle{font-family:var(--type-subtitle-font);font-size:var(--type-subtitle-size);font-weight:var(--type-subtitle-weight);line-height:var(--type-subtitle-line-height);letter-spacing:var(--type-subtitle-letter-spacing)}.type-body{font-family:var(--type-body-font);font-size:var(--type-body-size);font-weight:var(--type-body-weight);line-height:var(--type-body-line-height);letter-spacing:var(--type-body-letter-spacing)}.type-label{font-family:var(--type-label-font);font-size:var(--type-label-size);font-weight:var(--type-label-weight);line-height:var(--type-label-line-height);letter-spacing:var(--type-label-letter-spacing)}.type-caption{font-family:var(--type-caption-font);font-size:var(--type-caption-size);font-weight:var(--type-caption-weight);line-height:var(--type-caption-line-height);letter-spacing:var(--type-caption-letter-spacing)}.type-overline{font-family:var(--type-overline-font);font-size:var(--type-overline-size);font-weight:var(--type-overline-weight);line-height:var(--type-overline-line-height);letter-spacing:var(--type-overline-letter-spacing);text-transform:uppercase}.type-button{font-family:var(--type-button-font);font-size:var(--type-button-size);font-weight:var(--type-button-weight);line-height:var(--type-button-line-height);letter-spacing:var(--type-button-letter-spacing)}.type-chip{font-family:var(--type-chip-font);font-size:var(--type-chip-size);font-weight:var(--type-chip-weight);line-height:var(--type-chip-line-height);letter-spacing:var(--type-chip-letter-spacing)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-faint{color:var(--text-faint)}.text-accent{color:var(--accent-primary)}img,picture,svg,canvas,video{max-width:100%;display:block}pre,code,kbd,samp{font-family:var(--font-mono)}:focus-visible{outline-offset:2px;outline:2px solid #52a3ffd9}::selection{background:#52a3ff38}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.app-scrollbar{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent}.app-scrollbar::-webkit-scrollbar{width:4px}.app-scrollbar::-webkit-scrollbar-track{background:0 0}.app-scrollbar::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:10px}
