:root{--bg: #12141a;--bg-raised: #181b22;--line: #2a2e38;--text: #edeff2;--text-dim: #9aa0ac;--accent: #ff5a48;--accent-dim: #7a3c34;--mono-tint: #8fa6a3;--tag-release: #ff5a48;--tag-tool: #8fa6a3;--tag-paper: #c9b458;--tag-pattern: #7fa8ff;--tag-tutorial: #8ce08c;--tag-announcement: #ff8ab8;--tag-news: #8fb8d9;--cat-ai: #b088ff;--cat-security: #e26fd6;--cat-cloud: #6ba3d6;--cat-devops: #5ecfc7;--cat-software-engineering: #9fb3d9;--cat-backend: #7d8db0;--cat-frontend: #ffb454;--cat-mobile: #6fd68a;--cat-data: #4ec9e0;--cat-databases: #5b9ee0;--cat-ui-ux: #ff8fb3;--cat-enterprise: #c9a06a;--cat-automation: #ff9d6e;--cat-emerging-tech: #c98dff;--cat-hardware: #8fd6c4;--cat-developer-tools: #a8c9ff;--cat-tech-business: #e08a8a;--cat-research-education: #b39ddb;--cat-it-management: #b0b8c4;--radius: 6px;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: "Source Sans 3", -apple-system, BlinkMacSystemFont, sans-serif;color-scheme:dark}html[data-theme=light]{--bg: #f6f5f2;--bg-raised: #ffffff;--line: #e2e0da;--text: #1c1d1f;--text-dim: #55565c;--accent: #e0472f;--accent-dim: #f2c3ba;--mono-tint: #3f6b66;--tag-release: #e0472f;--tag-tool: #3f6b66;--tag-paper: #9c7c14;--tag-pattern: #3457b8;--tag-tutorial: #2f8a2f;--tag-announcement: #b83f6e;--tag-news: #3f6b8f;--cat-ai: #6b3fd4;--cat-security: #a83f9e;--cat-cloud: #2f6ba8;--cat-devops: #1f8a82;--cat-software-engineering: #4a648a;--cat-backend: #45536e;--cat-frontend: #a86a12;--cat-mobile: #2a8f4a;--cat-data: #1878a3;--cat-databases: #2c5c96;--cat-ui-ux: #c23d68;--cat-enterprise: #8a6a2e;--cat-automation: #c86530;--cat-emerging-tech: #7a3fc9;--cat-hardware: #2f8a70;--cat-developer-tools: #3a5fa8;--cat-tech-business: #a83f3f;--cat-research-education: #5e3d8a;--cat-it-management: #5a6472;color-scheme:light}html,body{transition:background-color .2s ease,color .2s ease}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);overflow-anchor:none}.app{margin:0 20%}.body-columns{display:grid;grid-template-columns:3fr 2fr;align-items:start;gap:40px}.main-column{min-width:0;order:1}.side-column{position:sticky;top:24px;margin-top:56px;order:2;display:flex;flex-direction:column;gap:24px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}a{color:inherit;text-decoration:none}.hero{padding:0 0 64px;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--mono);font-size:15px;color:var(--mono-tint);letter-spacing:.02em;margin-bottom:28px;animation:rise .5s ease-out both}.wordmark-glyph{color:var(--accent);margin-right:6px}.wordmark-logo{width:18px;height:18px;border-radius:3px;margin-right:8px;vertical-align:-4px}.cursor{display:inline-block;width:8px;height:1em;background:var(--accent);margin-left:6px;vertical-align:-.15em;animation:blink 1s steps(1) infinite}h1{font-family:var(--sans);color:var(--text);font-size:clamp(2.2rem,5vw,3.4rem);line-height:1.08;font-weight:700;letter-spacing:-.02em;margin:0 0 20px;animation:rise .6s ease-out both;animation-delay:80ms}.accent{color:var(--accent)}.hero-sub{font-size:1.08rem;line-height:1.6;color:var(--text-dim);max-width:46ch;margin:0 0 36px;animation:rise .6s ease-out both;animation-delay:.16s}.subscribe-form{display:flex;align-items:center;gap:10px;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;max-width:460px;animation:rise .6s ease-out both;animation-delay:.22s}.prompt-glyph{font-family:var(--mono);color:var(--mono-tint)}.subscribe-form input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--mono);font-size:.95rem;min-width:0}.subscribe-form input::placeholder{color:#565c68}.subscribe-form button{font-family:var(--mono);font-size:.85rem;background:var(--accent);color:#1a0b08;border:none;border-radius:4px;padding:8px 14px;cursor:pointer;font-weight:600;transition:transform .15s ease,background .15s ease}.subscribe-form button:hover{background:#ff7461;transform:translateY(-1px)}.subscribe-form button:focus-visible,.entry:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero-meta{font-size:.82rem;color:#5c6270;margin-top:12px;animation:rise .6s ease-out both;animation-delay:.26s}.subscribe-status{font-size:.85rem;margin:10px 0 0;font-family:var(--mono)}.subscribe-status.success{color:#4caf82}.subscribe-status.error{color:var(--accent)}.sponsor-banner{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:16px;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);text-decoration:none;transition:border-color .15s ease}.sponsor-banner:hover{border-color:var(--accent-dim)}.sponsor-label{font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-dim);border-radius:3px;padding:2px 6px}.sponsor-copy{font-size:.9rem;line-height:1.5;color:var(--text-dim)}.sponsor-copy strong{color:var(--text)}.sponsor-cta{font-family:var(--mono);font-size:.82rem;color:var(--mono-tint)}.feed{padding:56px 0 24px}.feed-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:28px}.feed-head h2,.how h2{font-family:var(--mono);font-size:.95rem;text-transform:lowercase;letter-spacing:.06em;color:var(--mono-tint);margin:0}.feed-count{font-family:var(--mono);font-size:.8rem;color:#5c6270}.feed-day{margin-bottom:28px}.feed-date{display:flex;align-items:center;gap:12px;margin-bottom:12px}.feed-date-label{font-family:var(--mono);font-size:.78rem;color:#5c6270;white-space:nowrap}.feed-date-rule{height:1px;flex:1;background:var(--line)}.entry{display:block;width:100%;text-align:left;font-family:inherit;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);padding:16px 18px;margin-bottom:10px;animation:rise .42s ease-out both;transition:border-color .15s ease,transform .15s ease}.native-ad{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);padding:12px 18px 16px;margin-bottom:10px}.native-ad-label{display:block;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px}.display-ad{display:flex;flex-direction:column;align-items:center;width:300px;max-width:100%;margin-bottom:0}.display-ad iframe{border-radius:4px}.entry:hover{border-color:var(--accent-dim);transform:translate(2px)}.entry-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin-bottom:6px}.entry-title{font-size:1.02rem;font-weight:600;margin:0;line-height:1.35}.entry-detail{font-size:.92rem;line-height:1.55;color:var(--text-dim);margin:0}.tag{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:3px;flex-shrink:0;border:1px solid currentColor}.tag-release{color:var(--tag-release)}.tag-tool{color:var(--tag-tool)}.tag-paper{color:var(--tag-paper)}.tag-pattern{color:var(--tag-pattern)}.tag-tutorial{color:var(--tag-tutorial)}.tag-announcement{color:var(--tag-announcement)}.tag-news{color:var(--tag-news)}.tag-cat-ai{color:var(--cat-ai)}.tag-cat-security{color:var(--cat-security)}.tag-cat-cloud{color:var(--cat-cloud)}.tag-cat-devops{color:var(--cat-devops)}.tag-cat-software-engineering{color:var(--cat-software-engineering)}.tag-cat-backend{color:var(--cat-backend)}.tag-cat-frontend{color:var(--cat-frontend)}.tag-cat-mobile{color:var(--cat-mobile)}.tag-cat-data{color:var(--cat-data)}.tag-cat-databases{color:var(--cat-databases)}.tag-cat-ui-ux{color:var(--cat-ui-ux)}.tag-cat-enterprise{color:var(--cat-enterprise)}.tag-cat-automation{color:var(--cat-automation)}.tag-cat-emerging-tech{color:var(--cat-emerging-tech)}.tag-cat-hardware{color:var(--cat-hardware)}.tag-cat-developer-tools{color:var(--cat-developer-tools)}.tag-cat-tech-business{color:var(--cat-tech-business)}.tag-cat-research-education{color:var(--cat-research-education)}.tag-cat-it-management{color:var(--cat-it-management)}.filter-sidebar{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.filter-toggle{display:none;width:100%;align-items:center;justify-content:space-between;background:none;border:none;color:var(--text);font-family:var(--mono);font-size:.85rem;padding:12px 14px;cursor:pointer}.filter-toggle-caret{transition:transform .15s ease}.filter-toggle-caret.open{transform:rotate(180deg)}.sidebar-body{display:flex;flex-direction:column;gap:18px;padding:16px}.search-input{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;font-family:var(--mono);font-size:.9rem;color:var(--text);outline:none;transition:border-color .15s ease}.search-input::placeholder{color:#6b7280}.search-input:focus-visible{border-color:var(--accent)}.sidebar-group-title{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:0 0 8px}.sidebar-list{display:flex;flex-wrap:wrap;gap:6px}.sidebar-pill{display:flex;align-items:center;gap:6px;text-align:left;font-family:var(--mono);font-size:.78rem;background:var(--bg);color:var(--text-dim);border:1px solid var(--line);border-radius:20px;padding:5px 11px;cursor:pointer;transition:border-color .15s ease,color .15s ease,background .15s ease}.sidebar-pill:hover{border-color:var(--line);color:var(--text)}.sidebar-pill.active{background:var(--accent);border-color:var(--accent);color:#1a0b08}html[data-theme=light] .sidebar-pill.active{color:#fff8f6}.search-empty{color:var(--text-dim);font-size:.92rem;padding:20px 0}.load-more{display:block;width:100%;margin-top:8px;font-family:var(--mono);font-size:.85rem;background:var(--bg-raised);color:var(--mono-tint);border:1px solid var(--line);border-radius:var(--radius);padding:12px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.load-more:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.load-more:disabled{cursor:default;opacity:.6}.how,.subscribe-section{padding:48px 0 72px;border-top:1px solid var(--line)}.subscribe-section h2{font-family:var(--mono);font-size:.95rem;text-transform:lowercase;letter-spacing:.06em;color:var(--mono-tint);margin:0 0 20px}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}.how-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.how-glyph{display:inline-block;font-family:var(--mono);font-size:.72rem;color:var(--accent);border:1px solid var(--accent-dim);border-radius:3px;padding:2px 8px;margin-bottom:12px}.how-card h3{margin:0 0 8px;font-size:1.05rem}.how-card p{margin:0;font-size:.9rem;line-height:1.55;color:var(--text-dim)}.article-view{padding:64px 0 96px;animation:rise .4s ease-out both}.back-link{display:inline-block;font-family:var(--mono);font-size:.85rem;color:var(--mono-tint);background:none;border:none;cursor:pointer;padding:0;margin-bottom:40px;transition:color .15s ease}.back-link:hover{color:var(--accent)}.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px}.article-date{font-family:var(--mono);font-size:.82rem;color:#5c6270}.article-subcategory{font-family:var(--mono);font-size:.78rem;color:var(--text-dim);background:var(--bg-raised);border:1px solid var(--line);border-radius:4px;padding:2px 7px}.article-title{font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.2;font-weight:700;letter-spacing:-.01em;margin:0 0 24px}.article-content-block{margin-bottom:24px}.article-content-block:after{content:"";display:table;clear:both}.article-content-block .display-ad{float:right;margin:0 0 16px 24px}@media (max-width: 640px){.article-content-block{display:flex;flex-direction:column}.article-content-block .display-ad{float:none;order:2;margin:0 0 24px}.article-content-block .article-title{order:1}.article-content-block .article-body{order:3}}.article-body{font-size:1.05rem;line-height:1.7;color:var(--text-dim);max-width:62ch;margin:0 0 32px;text-align:justify;text-justify:inter-word}@media (min-width: 900px){.article-body{max-width:100%}}.article-link{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:.9rem;color:var(--accent);border:1px solid var(--accent-dim);border-radius:4px;padding:10px 16px;transition:background .15s ease,color .15s ease}.article-link:hover{background:var(--accent);color:#1a0b08}.article-no-link{font-family:var(--mono);font-size:.85rem;color:#5c6270}.article-missing{color:var(--text-dim);max-width:46ch}.share-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.share-button{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:.82rem;color:var(--text-dim);background:none;border:1px solid var(--line);border-radius:4px;padding:7px 12px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.share-button:hover{border-color:var(--accent-dim);color:var(--accent)}.related{margin-top:48px;padding-top:32px;border-top:1px solid var(--line);max-width:62ch}.related h2{font-family:var(--mono);font-size:.95rem;text-transform:lowercase;letter-spacing:.06em;color:var(--mono-tint);margin:0 0 16px}.related-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.related-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font-family:inherit;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);padding:10px 14px;transition:border-color .15s ease,transform .15s ease}.related-item:hover{border-color:var(--accent-dim);transform:translate(2px)}.related-title{flex:1;min-width:0;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.related-date{flex-shrink:0;font-family:var(--mono);font-size:.78rem;color:#5c6270}.top-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:32px;margin-bottom:32px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;background:var(--bg-raised);color:var(--text-dim);font-size:15px;cursor:pointer;transition:border-color .15s ease,color .15s ease}.theme-toggle:hover{border-color:var(--accent-dim);color:var(--accent)}.legal-updated{font-family:var(--mono);font-size:.8rem;color:#5c6270;margin:-12px 0 32px}.legal-body{max-width:62ch;color:var(--text-dim);line-height:1.7}.legal-body h2{font-size:1.05rem;color:var(--text);margin:32px 0 10px}.legal-body h2:first-child{margin-top:0}.legal-body p{margin:0 0 16px}.legal-body a{color:var(--accent)}.loading-indicator{display:flex;align-items:center;gap:10px;padding:48px 0;font-family:var(--mono);font-size:.9rem;color:var(--text-dim)}.loading-glyph{color:var(--accent)}.loading-dots{display:inline-flex;gap:3px}.loading-dots span{width:4px;height:4px;border-radius:50%;background:var(--accent);animation:loadingPulse 1.2s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes loadingPulse{0%,80%,to{opacity:.25;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.consent-banner{position:fixed;left:0;right:0;top:0;z-index:40;display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:16px 20%;background:var(--bg-raised);border-bottom:1px solid var(--line);animation:rise .3s ease-out both}@media (max-width: 900px){.consent-banner{padding:16px 20px}}.consent-text{flex:1;min-width:240px;margin:0;font-size:.85rem;line-height:1.5;color:var(--text-dim)}.consent-text a{color:var(--mono-tint);text-decoration:underline}.consent-toggles{display:flex;gap:20px;flex-shrink:0}.toggle{display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;cursor:pointer;font-family:var(--mono);font-size:.8rem;color:var(--text-dim)}.toggle:disabled{cursor:default;opacity:.5}.toggle-track{position:relative;width:34px;height:20px;border-radius:10px;background:var(--line);transition:background .15s ease;flex-shrink:0}.toggle-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--text);transition:transform .15s ease}.toggle.on .toggle-track{background:var(--accent)}.toggle.on .toggle-thumb{transform:translate(14px)}.toggle.on .toggle-label{color:var(--text)}.consent-accept{font-family:var(--mono);font-size:.82rem;border-radius:4px;padding:8px 14px;cursor:pointer;transition:background .15s ease,transform .15s ease;background:var(--accent);color:#1a0b08;border:none;font-weight:600;flex-shrink:0}.consent-accept:hover{background:#ff7461;transform:translateY(-1px)}html[data-theme=light] .consent-accept{color:#fff8f6}@media (prefers-reduced-motion: reduce){.consent-banner{animation:none}.toggle-track,.toggle-thumb{transition:none}}.site-footer{display:flex;align-items:center;gap:10px;padding:28px 0 64px;font-family:var(--mono);font-size:.78rem;color:#4a505c}.footer-links{display:flex;gap:8px;margin-inline-start:auto}.footer-links a,.footer-links button{color:#4a505c;transition:color .15s ease}.footer-links button{font:inherit;background:none;border:none;padding:0;cursor:pointer}.footer-links a:hover,.footer-links button:hover{color:var(--accent)}.footer-dot{color:var(--accent);animation:blink 1.4s steps(1) infinite}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion: reduce){.wordmark,h1,.hero-sub,.subscribe-form,.hero-meta,.entry{animation:none!important;opacity:1!important;transform:none!important}.cursor,.footer-dot,.loading-dots span{animation:none!important;opacity:1!important}}@media (max-width: 900px){.app{margin:0 auto;max-width:760px;padding:0 24px}.body-columns{display:block}.side-column{position:static;margin-top:32px}.filter-toggle{display:flex}.sidebar-body{display:none}.sidebar-body.expanded{display:flex;border-top:1px solid var(--line)}}@media (max-width: 640px){.hero{padding:64px 0 48px}.how-grid{grid-template-columns:1fr}.subscribe-form{flex-wrap:wrap}.subscribe-form button{width:100%}}
