*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;--color-text: #191f28;--color-foreground: #333d4b;--color-muted-foreground: #8b95a1;--color-border: #e5e8eb;--color-soft-border: #f2f4f6;--color-surface: #f9fafb;--color-primary: #3182f6;--color-primary-hover: #1b64da;--color-ring: #3182f6;color:var(--color-text);background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background:#fff}#root{min-height:100vh}a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid color-mix(in srgb,var(--color-ring) 70%,transparent);outline-offset:3px}img{max-width:100%;height:auto;display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.header{background:#fff;border-bottom:1px solid var(--color-soft-border);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px)}.header-container{max-width:1120px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:72px}.logo{text-decoration:none;color:var(--color-text)}.logo h1{font-size:21px;font-weight:800;margin:0;letter-spacing:0}.nav{display:flex;gap:28px;flex:1;justify-content:flex-start;margin-left:56px}.nav-link{text-decoration:none;color:#4e5968;font-size:15px;font-weight:700;transition:color .2s;padding:24px 0;position:relative}.nav-link:hover,.nav-link.active{color:var(--color-text)}.nav-link:after{content:"";position:absolute;bottom:17px;left:0;width:0;height:2px;background:var(--color-primary);transition:width .2s}.nav-link:hover:after,.nav-link.active:after{width:100%}.header-actions{display:flex;align-items:center;gap:16px}.search-btn{background:var(--color-surface);border:none;color:#4e5968;cursor:pointer;width:40px;height:40px;border-radius:999px;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.search-btn:hover{background:#eef6ff;color:var(--color-primary)}@media(max-width:768px){.nav{display:none}.header-container{justify-content:space-between;height:64px}}.footer{background:#f9fafb;border-top:1px solid #e5e8eb;margin-top:80px}.footer-container{max-width:1200px;margin:0 auto;padding:60px 20px 20px}.footer-content{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:40px}.footer-section h3{font-size:20px;font-weight:700;color:#191f28;margin:0 0 12px}.footer-section p{color:#4e5968;font-size:14px;line-height:1.6;margin:0}.footer-section h4{font-size:14px;font-weight:600;color:#191f28;margin:0 0 16px;text-transform:uppercase;letter-spacing:0}.footer-section ul{list-style:none;padding:0;margin:0}.footer-section ul li{margin-bottom:12px}.footer-section ul li a{color:#4e5968;text-decoration:none;font-size:14px;transition:color .2s}.footer-section ul li a:hover{color:var(--color-primary)}.footer-bottom{padding-top:20px;border-top:1px solid #e5e8eb;text-align:center}.footer-bottom p{color:#8b95a1;font-size:13px;margin:0}@media(max-width:768px){.footer-content{grid-template-columns:1fr;gap:32px}}.hero{position:relative;display:block;text-decoration:none;color:#fff;border-radius:8px;overflow:hidden;min-height:420px;margin-bottom:28px;transition:transform .2s,box-shadow .2s;border:1px solid var(--color-soft-border);background:#191f28}.hero:hover{transform:translateY(-3px);box-shadow:0 18px 50px #191f2829}.hero-image{position:absolute;top:0;left:0;width:100%;height:100%}.hero-image img{width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,#191f28e0,#191f28a8 43%,#191f281f)}.hero-content{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;padding:56px;max-width:650px}.hero-category{display:inline-block;font-size:13px;font-weight:800;color:#fff;background:#ffffff24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:7px 14px;border-radius:999px;margin-bottom:18px;text-transform:uppercase;letter-spacing:0;width:fit-content}.hero-title{font-size:44px;font-weight:800;margin:0 0 18px;line-height:1.25;word-break:keep-all;text-shadow:0 2px 16px rgba(0,0,0,.24)}.hero-preview{font-size:17px;line-height:1.6;margin:0 0 28px;color:#ffffffdb;text-shadow:0 1px 8px rgba(0,0,0,.24)}.hero-meta{display:flex;align-items:center;gap:12px;font-size:14px;color:#ffffffc7}.hero-author{font-weight:500}.hero-date:before{content:"•";margin-right:12px}@media(max-width:768px){.hero{min-height:390px;margin-bottom:28px}.hero-content{padding:32px}.hero-title{font-size:30px}.hero-preview{font-size:16px}}.article-card{display:flex;gap:32px;text-decoration:none;color:inherit;background:#fff;padding:30px 0;border-radius:0;transition:background .2s;border-bottom:1px solid var(--color-soft-border)}.article-card:hover{background:#fbfcfd}.article-card:last-child{border-bottom:0}.article-content{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}.article-category{display:inline-block;font-size:13px;font-weight:800;color:var(--color-primary);width:fit-content}.article-title{font-size:24px;font-weight:800;color:var(--color-text);margin:0;line-height:1.42;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}.article-preview{font-size:16px;color:#6b7684;line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:keep-all}.article-meta{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--color-muted-foreground);margin-top:auto}.article-author{font-weight:500}.article-date:before{content:"·";margin-right:8px}.article-thumbnail{width:196px;height:124px;flex-shrink:0;border-radius:8px;overflow:hidden;background:var(--color-surface)}.article-thumbnail img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.article-card:hover .article-thumbnail img{transform:scale(1.05)}@media(max-width:768px){.article-card{gap:16px;padding:24px 0}.article-thumbnail{width:112px;height:84px}.article-title{font-size:18px}.article-preview{font-size:14px}}.home{min-height:calc(100vh - 64px);padding:56px 0 24px;background:#fff}.container{max-width:1120px;margin:0 auto;padding:0 24px}.category-filter{display:flex;gap:8px;margin-bottom:52px;flex-wrap:wrap}.category-btn{background:var(--color-surface);border:1px solid transparent;color:#4e5968;padding:9px 18px;border-radius:999px;font-size:14px;font-weight:700;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.category-btn:hover{background:#eef6ff;color:var(--color-primary)}.category-btn.active{background:#191f28;border-color:#191f28;color:#fff}.article-section{margin-top:0}.article-section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:14px}.article-section-header h2{margin:0;color:var(--color-text);font-size:28px;line-height:1.35;font-weight:800}.article-section-header span{color:var(--color-muted-foreground);font-size:14px;font-weight:600}.articles-grid{display:flex;flex-direction:column;background:#fff;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.no-articles{text-align:center;color:#8b95a1;font-size:16px;padding:60px 20px}@media(max-width:768px){.home{padding:28px 0 12px}.container{padding:0 20px}.category-filter{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.category-filter::-webkit-scrollbar{display:none}.category-btn{flex:0 0 auto}.article-section-header{align-items:flex-start;flex-direction:column;gap:4px}.article-section-header h2{font-size:24px}}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1}.route-loading{min-height:50vh;display:grid;place-items:center;color:var(--color-muted-foreground);font-size:15px}
