@tailwind base;@tailwind components;@tailwind utilities;:root{--color-hero-bg:#1b365d;--color-accent:#e87722;--color-accent-light:#fff5eb;--color-page-bg:#f7f8fa;--color-card-bg:#fff;--color-card-border:#e2e5eb;--color-text-primary:#1b365d;--color-text-secondary:#5a6070;--color-text-muted:#8a90a0;--color-footer-bg:#1b365d;--color-footer-text:#6b7a9c}body,html{overflow-x:hidden}html{scroll-behavior:smooth}body{background-color:var(--color-page-bg);font-family:Inter,Noto Sans TC,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.article-content h2,body{color:var(--color-text-primary)}.article-content h2{font-size:1.5rem;font-weight:700;margin-top:2.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid var(--color-accent)}.article-content h3{font-size:1.25rem;font-weight:600;margin-top:2rem;margin-bottom:.75rem;color:var(--color-text-primary)}.article-content h4{font-size:1.125rem;font-weight:600;margin-top:1.5rem;margin-bottom:.5rem;color:var(--color-text-secondary)}.article-content p{margin-bottom:1.25rem;line-height:1.8;color:var(--color-text-secondary)}.article-content a{color:var(--color-accent);text-decoration:underline;text-underline-offset:2px}.article-content a:hover{opacity:.8}.article-content ol,.article-content ul{margin-bottom:1.25rem;padding-left:1.5rem;color:var(--color-text-secondary)}.article-content li{margin-bottom:.5rem;line-height:1.7}.article-content ul li{list-style-type:disc}.article-content ol li{list-style-type:decimal}.article-content blockquote{border-left:4px solid var(--color-accent);padding:1rem 1.5rem;margin:1.5rem 0;background-color:var(--color-accent-light);border-radius:0 .5rem .5rem 0;color:var(--color-text-secondary)}.article-content img{max-width:100%;height:auto;border-radius:.75rem;margin:1.5rem 0}.article-content table{width:100%;border-collapse:collapse;margin:1.5rem 0;overflow-x:auto;display:block}.article-content td,.article-content th{border:1px solid var(--color-card-border);padding:.75rem 1rem;text-align:left}.article-content th{background-color:var(--color-hero-bg);color:#fff;font-weight:600}.article-content tr:nth-child(2n){background-color:var(--color-page-bg)}.article-content pre{background-color:#1a1a2e;color:#e0e0e0;padding:1rem 1.5rem;border-radius:.75rem;overflow-x:auto;margin:1.5rem 0;font-size:.875rem}.article-content code{background-color:var(--color-page-bg);padding:.125rem .375rem;border-radius:.25rem;font-size:.875em}.article-content pre code{background:none;padding:0}.article-content figure{margin:1.5rem 0}.article-content figcaption{text-align:center;font-size:.875rem;color:var(--color-text-muted);margin-top:.5rem}.reading-progress{position:fixed;top:0;left:0;height:3px;background-color:var(--color-accent);z-index:100;transition:width .1s ease}.floating-toc{position:-webkit-sticky;position:sticky;top:5rem}.floating-toc a.active{color:var(--color-accent);border-left-color:var(--color-accent);font-weight:600}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-up{animation:fadeInUp .6s ease-out forwards}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-slide-down{animation:slideDown .3s ease-out forwards}@keyframes heroFloat1{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}@keyframes heroFloat2{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes heroFloat3{0%,to{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-25px) rotate(5deg)}}@keyframes heroFloat4{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes heroFloat5{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-12px) scale(1.1)}}@keyframes heroFloat6{0%,to{transform:translateY(0)}50%{transform:translateY(-22px)}}.hero-float-1{animation:heroFloat1 6s ease-in-out infinite}.hero-float-2{animation:heroFloat2 8s ease-in-out 1s infinite}.hero-float-3{animation:heroFloat3 7s ease-in-out .5s infinite}.hero-float-4{animation:heroFloat4 9s ease-in-out 2s infinite}.hero-float-5{animation:heroFloat5 5s ease-in-out 1.5s infinite}.hero-float-6{animation:heroFloat6 7.5s ease-in-out .8s infinite}