:root{--font-sans:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;--bg-body:#fafaf9;--bg-surface:#fff;--bg-muted:#f5f5f4;--text-primary:#1c1917;--text-secondary:#57534e;--text-tertiary:#78716c;--accent:#0f766e;--accent-strong:#115e59;--accent-soft:#ccfbf1;--accent-contrast:#fff;--border:#e7e5e4;--border-strong:#d6d3d1;--hover:#f5f5f4;--focus:#0f766e}[data-theme=dark]{--bg-body:#0c0a09;--bg-surface:#1c1917;--bg-muted:#292524;--text-primary:#fafaf9;--text-secondary:#a8a29e;--text-tertiary:#968f88;--accent:#2dd4bf;--accent-strong:#5eead4;--accent-soft:#134e4a;--accent-contrast:#042f2e;--border:#292524;--border-strong:#44403c;--hover:#292524;--focus:#2dd4bf}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg-body);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.container{width:100%;max-width:860px;margin:0 auto;padding:0 1rem}.site-header{z-index:100;background-color:var(--bg-body);border-bottom:1px solid var(--border);position:sticky;top:0}.site-header__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;min-height:56px;display:flex}.brand{min-height:44px;color:var(--text-primary);align-items:center;gap:.625rem;display:inline-flex}.brand__mark{width:32px;height:32px;color:var(--accent);flex-shrink:0}.brand__mark svg{width:100%;height:100%;display:block}.brand__wordmark{letter-spacing:-.03em;font-size:1.25rem;font-weight:700}.brand__wordmark em{color:var(--accent);font-style:normal}.nav__link{color:var(--text-secondary);align-items:center;min-height:44px;padding:.5rem .75rem;font-size:.875rem;font-weight:500;transition:color .15s;display:inline-flex}.nav__link:hover,.nav__link[aria-current=page]{color:var(--accent)}.header-actions{align-items:center;gap:.5rem;display:flex}.nav{border-top:1px solid var(--border);-webkit-overflow-scrolling:touch;scrollbar-width:none;order:3;width:100%;margin-top:.5rem;padding-top:.5rem;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.btn-icon{appearance:none;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-secondary);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;width:44px;height:44px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.btn-icon:hover{background-color:var(--hover);color:var(--accent);border-color:var(--accent)}.btn-text{appearance:none;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;border-radius:9999px;min-height:44px;padding:.5rem .875rem;font-size:.875rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s}.btn-text:hover{background-color:var(--hover);color:var(--accent);border-color:var(--accent)}.main{padding-top:1.5rem;padding-bottom:4rem}.page-header{margin-bottom:1.5rem}.page-title{letter-spacing:-.03em;color:var(--text-primary);margin-bottom:.25rem;font-size:1.75rem;font-weight:700;line-height:1.2}.page-subtitle{color:var(--text-secondary);font-size:.9375rem}.page-subtitle a{color:var(--accent);text-underline-offset:.15em;text-decoration:underline}.page-subtitle a:hover{color:var(--accent-strong)}.filters{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;padding-bottom:1rem;display:flex}.pill{appearance:none;border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-secondary);font-family:var(--font-sans);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.pill:hover{background-color:var(--hover);color:var(--accent);border-color:var(--accent)}.pill.is-active{background-color:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.pill.is-active:hover{background-color:var(--accent-strong);border-color:var(--accent-strong)}.articles{flex-direction:column;gap:1.5rem;margin:0;padding:0;list-style:none;display:flex}.article-card{background-color:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:0 .5rem .5rem 0;padding:1.25rem 1.25rem 1.25rem calc(1.25rem - 2px);transition:border-color .15s,background-color .15s,transform .15s;display:block;position:relative}.article-card:hover{border-color:var(--accent);background-color:var(--bg-body);transform:translate(2px)}.article-card__meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;margin-bottom:.625rem;font-size:.75rem;font-weight:500;display:flex}.article-card__category{color:var(--accent)}.article-card__title{letter-spacing:-.02em;color:var(--text-primary);margin-bottom:.5rem;font-size:1.25rem;font-weight:700;line-height:1.3;transition:color .15s}.article-card:hover .article-card__title{color:var(--accent-strong)}.article-card__excerpt{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.9375rem;line-height:1.65;display:-webkit-box;overflow:hidden}[data-density=compact] .articles{gap:.75rem}[data-density=compact] .article-card{padding:.75rem 1rem .75rem calc(1rem - 2px)}[data-density=compact] .article-card__meta{margin-bottom:.375rem}[data-density=compact] .article-card__title{margin-bottom:.25rem;font-size:1.0625rem}[data-density=compact] .article-card__excerpt{-webkit-line-clamp:1}.load-more{text-align:center;margin-top:2.5rem}.btn-primary{appearance:none;border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);font-family:var(--font-sans);cursor:pointer;border-radius:9999px;min-height:48px;padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;transition:background-color .15s,border-color .15s,transform .15s}.btn-primary:hover{background-color:var(--accent-strong);border-color:var(--accent-strong);transform:translateY(-1px)}.btn-primary:disabled{opacity:.7;cursor:not-allowed;transform:none}.site-footer{border-top:1px solid var(--border);padding:2rem 0 3rem}.site-footer__inner{color:var(--text-tertiary);flex-direction:column;gap:.5rem;font-size:.8125rem;display:flex}.site-footer__brand{color:var(--text-secondary);align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.site-footer__brand svg{width:18px;height:18px;color:var(--accent)}.prefs-menu{position:relative}.prefs-panel{background:var(--bg-surface);border:1px solid var(--border);z-index:10;border-radius:.75rem;gap:.875rem;width:280px;padding:1rem;display:grid;position:absolute;top:calc(100% + .5rem);right:0;box-shadow:0 10px 30px #0000001a}.prefs-panel label{color:var(--text-secondary);gap:.35rem;font-size:.875rem;display:grid}.prefs-panel select,.prefs-panel button,.prefs-panel input[type=file]{border:1px solid var(--border-strong);background:var(--bg-body);width:100%;min-height:44px;color:var(--text-primary);-webkit-appearance:none;appearance:none;font-size:1rem;font-family:var(--font-sans);border-radius:.5rem;padding:.625rem .5rem}.prefs-panel select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23968f88' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;padding-right:2rem}.prefs-panel button{cursor:pointer;transition:background-color .15s}.prefs-panel button:hover{background-color:var(--hover)}.prefs-panel .source-list{gap:.5rem;max-height:200px;display:grid;overflow-y:auto}.prefs-panel .source-item{cursor:pointer;align-items:center;gap:.625rem;min-height:44px;padding:.375rem .25rem;font-size:.8125rem;display:flex}.prefs-panel .source-item input{width:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--accent);color:var(--accent-contrast);border-radius:0 0 .375rem .375rem;padding:.625rem 1rem;font-weight:600;transition:top .15s;position:absolute;top:-3rem;left:.5rem}.skip-link:focus-visible{outline-offset:2px;top:0}.empty-state,.error-state{text-align:center;color:var(--text-secondary);background:var(--bg-surface);border:1px solid var(--border);border-radius:.5rem;padding:2rem}.error-state{border-left:3px solid #dc2626}@media (width>=640px){.container{padding:0 1.5rem}.site-header__inner{flex-wrap:nowrap}.nav{border-top:none;order:0;width:auto;margin-top:0;padding-top:0;overflow-x:visible}.page-title{font-size:2rem}.article-card{padding:1.5rem 1.5rem 1.5rem calc(1.5rem - 2px)}.article-card__title{font-size:1.375rem}}@media (width>=768px){.main{padding-top:2.5rem}.page-title{font-size:2.25rem}.article-card__title{font-size:1.5rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.article-card:hover,.btn-primary:hover{transform:none}}.source-list{flex-direction:column;gap:.75rem;padding:0;list-style:none;display:flex}.source-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:.5rem;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.source-item a{color:var(--accent);margin-block:-.6rem;padding-block:.75rem;font-weight:600;display:inline-block}.source-item a:hover{color:var(--accent-strong);text-decoration:underline}.badge-error{color:#dc2626;text-transform:uppercase;font-size:.75rem;font-weight:600}.badge-inactive{color:var(--text-tertiary);font-size:.75rem}.search-form{gap:.5rem;margin-bottom:1.5rem;display:flex}.search-form input{border:1px solid var(--border-strong);background:var(--bg-surface);color:var(--text-primary);font-family:var(--font-sans);border-radius:9999px;flex:1;min-height:48px;padding:.75rem 1rem;font-size:1rem}.search-form input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.search-form button{appearance:none;border:1px solid var(--accent);background:var(--accent);color:var(--accent-contrast);font-family:var(--font-sans);cursor:pointer;border-radius:9999px;min-height:48px;padding:.75rem 1.25rem;font-weight:600}
