/* Shared palette and typography for public pages and account entry. */
@font-face {
  font-family:'Science Hub Sans';
  src:url('/assets/fonts/hub-sans-subset.woff2') format('woff2');
  font-weight:400;
  font-display:swap
}
@font-face {
  font-family:'Science Hub Sans';
  src:url('/assets/fonts/hub-sans-semibold-subset.woff2') format('woff2');
  font-weight:600;
  font-display:swap
}
:root{--color-bg:#FAFAF7;--color-surface:#FFFFFF;--color-surface-alt:#F3F3EF;--color-surface-hover:#ECEDE8;--color-text:#262B30;--color-text-secondary:#62676B;--color-text-tertiary:#666C70;--color-accent:#3658D6;--color-accent-light:#2845B5;--color-accent-bg:#E8F0FF;--color-border:#DEDFD9;--color-border-light:#ECEDE7;--hub-preview-bg:#F1F2EF;--hub-on-accent:#FFFFFF;--glass-bg:#FFFFFF;--glass-border:#DEDFD9;--product-wash:#F0F2EE;--font-sans:'Science Hub Sans','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;--color-accent-hover:#2845B5;--color-success:#296A5D;--color-error:#A13E35;--color-warning:#885E14;--color-info:#236879;--glass-shadow:0 8px 28px #17191D10;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-2xl:16px}
[data-theme="dark"]{color-scheme:dark;--color-bg:#1B1D22;--color-surface:#24262C;--color-surface-alt:#2D3037;--color-surface-hover:#353943;--color-text:#F1F2F4;--color-text-secondary:#BEC1CA;--color-text-tertiary:#A4A9B3;--color-accent:#E3E7EE;--color-accent-light:#FFFFFF;--color-accent-bg:#353943;--color-border:#414650;--color-border-light:#33373F;--hub-preview-bg:#202228;--hub-on-accent:#202329;--glass-bg:#24262C;--glass-border:#414650;--product-wash:#262A31;--color-accent-hover:#FFFFFF;--color-success:#9DCCB7;--color-error:#F2A79D;--color-warning:#ECCB8A;--color-info:#B6CFF0}
::selection{background:var(--color-accent-bg);color:var(--color-text)}
input,textarea{caret-color:var(--color-accent)}
.levelup-overlay{background:rgb(21 23 27 / .35);backdrop-filter:blur(3px)}
.levelup-card{background:var(--color-surface);border:0;border-radius:16px;box-shadow:0 18px 60px rgb(21 23 27 / .22);animation:levelup-arrive 320ms cubic-bezier(.16,1,.3,1)}
.levelup-badge-old .hub-icon{width:28px;height:28px;color:var(--color-text-secondary)}
.levelup-badge-new{filter:none;animation:levelup-badge-arrive 420ms cubic-bezier(.16,1,.3,1)}
.levelup-badge-new .hub-icon{width:49px;height:49px;color:var(--color-accent)}
.levelup-title{font-size:24px;font-weight:600;color:var(--color-text)}
.levelup-name{font-size:21px;font-weight:600;line-height:1.6}
.levelup-hint{color:var(--color-text-secondary);font-size:12px}
.levelup-unlock:empty{display:none}
.levelup-card:has(.levelup-unlock:empty) :is(.levelup-hint,.levelup-frame-preview){display:none}
.levelup-actions .btn{min-height:42px;font-size:13px;padding:9px 19px}
@keyframes levelup-arrive{from{transform:translateY(12px) scale(.98);clip-path:inset(0 0 4% 0 round 16px)}to{transform:none;clip-path:inset(0 round 16px)}}
@keyframes levelup-badge-arrive{from{transform:scale(.88);opacity:.5}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.levelup-card,.levelup-badge-new{animation:none}}
