:root{--ark-bg:#FAFBFE;--ark-surface:#FFFFFF;--ark-sunken:#F2F4FA;--ark-hover:#ECEFF7;--ark-side:#FFFFFF;--ark-pane:#F6F7FC;--ark-line:#E3E7F1;--ark-line-strong:#CDD4E3;--ark-field-line:#8A93AC;--ark-ink:#0D1330;--ark-fg:#2C3452;--ark-fg-muted:#626B88;--ark-fg-faint:#9AA2BA;--ark-accent:#2E5BFF;--ark-accent-fill:#2E5BFF;--ark-accent-fill-hover:#1A44D6;--ark-on-accent:#FFFFFF;--ark-accent-soft:#E9EEFF;--ark-accent-ink:#1A44D6;--ark-side-active:#EEF2FF;--ark-side-active-ink:#1A44D6;--ark-signal:#12B3E6;--ark-link-line:rgba(46,91,255,0.22);--ark-star:rgba(46,91,255,0.13);--ark-good:#08775A;--ark-good-soft:#E2F4EE;--ark-warn:#965700;--ark-warn-soft:#FCF0DC;--ark-bad:#C7241F;--ark-bad-soft:#FCE8E7;--ark-r-sm:8px;--ark-r:12px;--ark-r-lg:16px;--ark-r-full:999px;--ark-font:"Geist","Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;--ark-font-num:"Geist Mono",ui-monospace,"SF Mono",monospace;--ark-fs-page:1.5rem;--ark-fs-section:1.125rem;--ark-fs-card:0.9375rem;--ark-fs-read:0.9375rem;--ark-fs-ui:0.875rem;--ark-fs-meta:0.8125rem;--ark-fs-badge:0.75rem;--ark-fs-stat:1.75rem}:root[data-theme=dark],[data-theme=dark]{--ark-bg:#060A18;--ark-surface:#0C1230;--ark-sunken:#0A0F27;--ark-hover:#131A3D;--ark-side:#050817;--ark-pane:#0A0F27;--ark-line:rgba(130,165,255,0.12);--ark-line-strong:rgba(130,165,255,0.24);--ark-field-line:#56639A;--ark-ink:#ECF0FF;--ark-fg:#BCC4E6;--ark-fg-muted:#8189B0;--ark-fg-faint:#545C85;--ark-accent:#4A78FF;--ark-accent-fill:#3563F0;--ark-accent-fill-hover:#2F5CEB;--ark-on-accent:#FFFFFF;--ark-accent-soft:rgba(74,120,255,0.18);--ark-accent-ink:#A9BEFF;--ark-side-active:rgba(74,120,255,0.16);--ark-side-active-ink:#DCE4FF;--ark-signal:#3FD8FF;--ark-link-line:rgba(120,170,255,0.28);--ark-star:rgba(190,210,255,0.14);--ark-good:#3FD3A0;--ark-good-soft:rgba(63,211,160,0.13);--ark-warn:#F5B651;--ark-warn-soft:rgba(245,182,81,0.13);--ark-bad:#FF7A75;--ark-bad-soft:rgba(255,122,117,0.13)}:root{--widget-legacy-font:"DM Sans",Inter,"Segoe UI",system-ui,sans-serif,"Noto Sans TC","PingFang TC","Microsoft JhengHei","Segoe UI",system-ui,sans-serif,system-ui,sans-serif;--widget-legacy-fg:#0F172A;--ark-safe-top:env(safe-area-inset-top,0px);--ark-safe-right:env(safe-area-inset-right,0px);--ark-safe-bottom:env(safe-area-inset-bottom,0px);--ark-safe-left:env(safe-area-inset-left,0px);--ark-mobile-gutter:16px;--ark-mobile-touch-min:44px;--ark-mobile-touch-primary:48px;--ark-mobile-topbar-min:56px;--ark-mobile-bottomnav-min:64px;--ark-mobile-input-text:16px;--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1)}.gpu-accelerate{transform:translateZ(0);will-change:transform,opacity;backface-visibility:hidden}.contain-layout{contain:layout}.contain-style{contain:style}.contain-paint{contain:paint}.contain-strict{contain:layout style paint}@keyframes node-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}.animate-pulse-slow{animation:node-pulse 3s var(--ease-in-out) infinite}.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0,transparent 70%);transform:scale(0);opacity:0;transition:transform .5s ease,opacity .3s ease}.btn-ripple:active:after{transform:scale(2);opacity:1;transition:transform 0s,opacity 0s}@keyframes success-pop{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.animate-success{animation:success-pop .4s var(--ease-spring) forwards}@keyframes slide-in-right{0%{transform:translateX(20px);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes slide-in-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-down{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-in-right{animation:slide-in-right .3s var(--ease-spring) forwards}.animate-slide-in-up{animation:slide-in-up .3s var(--ease-spring) forwards}.animate-slide-in-down{animation:slide-in-down .3s var(--ease-spring) forwards}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}