/* Personal journal: a distinct reading layer, shared with the home page. */
.hero h1{font-size:clamp(105px,11.6vw,166px)}
.hero .title-second{margin-left:55px}
.journal-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:50px;margin:0 40px 46px}
.journal-heading .text-link{flex-shrink:0;margin-bottom:4px}
.journal-feature{display:grid;grid-template-columns:1.12fr .88fr;align-items:center;background:#edf1f5;border-radius:8px;overflow:hidden}
.journal-art{display:block;overflow:hidden;position:relative;min-width:0}
.journal-art img{width:100%;height:auto;transition:transform .65s var(--ease)}
.journal-art:hover img{transform:scale(1.025)}
.journal-feature-copy{padding:45px 48px}
.story-meta{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;font-size:12px;line-height:1.5;color:var(--muted)}
.story-meta>span:first-child{color:#305274}
.story-meta>span+span::before{content:'';display:inline-block;width:3px;height:3px;border-radius:50%;background:#91a0af;margin:0 13px 3px -8px}
.journal-feature h3{font-family:var(--serif);font-size:61px;font-weight:400;line-height:1.03;letter-spacing:-.02em;margin:24px 0}
.journal-feature h3 a,.journal-security h3 a,.story-row h3 a,.library-copy h2 a{text-decoration:underline;text-decoration-color:transparent;text-underline-offset:6px;text-decoration-thickness:1px;transition:text-decoration-color .25s}
.journal-feature h3 a:hover,.journal-security h3 a:hover,.story-row h3 a:hover,.library-copy h2 a:hover{text-decoration-color:currentColor}
.journal-feature-copy>p{font-size:16px;line-height:1.8;color:var(--muted);max-width:340px}
.journal-feature-copy>.text-link{margin-top:24px}
.journal-secondary{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin:55px 40px 0}
.journal-security .journal-art{border-radius:6px}
.journal-security .journal-art img{aspect-ratio:1.7;object-fit:cover}
.journal-security>.story-meta{margin-top:25px}
.journal-security h3{font-family:var(--serif);font-size:42px;line-height:1.1;font-weight:400;letter-spacing:-.02em;margin:15px 0}
.journal-security>p{font-size:15px;line-height:1.8;color:var(--muted);max-width:430px}
.journal-notes{padding-top:4px}
.journal-notes>.section-kicker{margin-bottom:0;padding-bottom:18px;border-bottom:1px solid var(--line)}
.story-row{position:relative;padding:27px 45px 28px 0;border-bottom:1px solid var(--line)}
.story-row h3{font-family:var(--serif);font-size:35px;line-height:1.15;font-weight:400;letter-spacing:-.01em;margin-top:14px;max-width:380px}
.story-arrow{position:absolute;right:-4px;top:50%;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;transition:color .25s,background .25s}
.story-arrow:hover{background:var(--ink);color:white}
.journal-all{display:flex;align-items:center;gap:25px;justify-content:space-between;font-size:13px;min-height:55px;padding-top:18px}
.journal-all svg{width:18px;height:18px}
.library{padding:65px 40px 85px}
.library-heading{display:grid;grid-template-columns:1.2fr .8fr;gap:0 80px;align-items:end;margin-bottom:60px}
.library-heading>.section-kicker{grid-column:1/-1;margin-bottom:27px}
.library-heading h1{font-family:var(--serif);font-size:112px;font-weight:400;letter-spacing:-.035em;line-height:.98}
.library-heading>p:last-child{font-size:17px;line-height:1.85;color:var(--muted);max-width:350px;padding-bottom:8px}
.library-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.filter-buttons{display:flex;flex-wrap:wrap;gap:7px}
.filter-buttons button{border:1px solid transparent;background:transparent;padding:10px 15px;border-radius:24px;font-size:13px;min-height:44px;transition:background .2s,color .2s}
.filter-buttons button[aria-pressed=true]{background:var(--ink);color:white}
.filter-buttons button:hover:not([aria-pressed=true]){background:var(--ice)}
.article-search{display:block;width:255px;flex-shrink:0}
.article-search>span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}
.article-search input{font:inherit;font-size:13px;color:var(--ink);border:1px solid #a6b5c2;background:transparent;border-radius:4px;padding:12px 14px;width:100%;min-height:44px;appearance:none}
.article-search input::placeholder{color:#687888;opacity:1}
.result-count{font-size:12px;color:var(--muted);margin-top:20px}
.library-item{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;padding:45px 0;border-bottom:1px solid var(--line);align-items:center}
.library-art{display:block;border-radius:6px;overflow:hidden}
.library-art img{width:100%;height:auto;transition:transform .5s var(--ease)}
.library-art:hover img{transform:scale(1.025)}
.library-copy h2{font-size:44px;line-height:1.12;margin:18px 0;max-width:600px}
.library-copy>p{font-size:15px;line-height:1.8;color:var(--muted);max-width:500px}
.library-copy>.text-link{margin-top:20px}
.search-empty{padding:75px 0}
.search-empty h2{font-size:46px}.search-empty p{color:var(--muted);margin:22px 0}.search-empty .button{font-size:13px}
.reading-track{position:sticky;top:96px;height:3px;z-index:29;margin-bottom:-3px;pointer-events:none}
.reading-progress{display:block;appearance:none;border:0;width:100%;height:3px;background:transparent;color:var(--blue)}
.reading-progress::-webkit-progress-bar{background:transparent}.reading-progress::-webkit-progress-value{background:var(--blue)}.reading-progress::-moz-progress-bar{background:var(--blue)}
.article-page{padding:45px 40px 0}
.article-header{max-width:1000px;margin:0 auto}
.back-to-articles{display:inline-flex;align-items:center;min-height:44px;font-size:13px;color:var(--muted);margin-bottom:30px}
.back-to-articles:hover{text-decoration:underline;text-underline-offset:4px}
.article-header h1{font-family:var(--serif);font-size:clamp(60px,6.8vw,86px);line-height:1.05;letter-spacing:-.025em;font-weight:400;margin:24px 0 28px;text-wrap:balance}
.article-intro{max-width:720px;font-size:21px;line-height:1.7;color:var(--muted);letter-spacing:-.015em}
.article-byline{display:flex;align-items:center;gap:28px;font-size:12px;color:var(--muted);margin-top:30px;padding-bottom:35px}
.article-byline>span{color:var(--ink)}
.article-cover{max-width:1000px;margin:0 auto 65px;overflow:hidden;border-radius:6px;background:var(--ice)}
.article-cover img{width:100%;max-height:560px;object-fit:contain}
.article-layout{display:grid;grid-template-columns:220px minmax(0,720px);gap:70px;justify-content:center;align-items:start}
.article-sidebar{position:sticky;top:135px;min-width:0}
.article-toc summary{font-size:12px;cursor:pointer;min-height:44px;padding:10px 0;color:var(--muted)}
.article-toc nav{display:grid;gap:4px;margin-top:8px;border-left:1px solid var(--line)}
.article-toc nav a{display:flex;align-items:center;min-height:44px;padding:10px 14px;font-size:12px;line-height:1.6;border-left:2px solid transparent;margin-left:-1px;color:var(--muted);transition:color .2s,border-color .2s}
.article-toc nav a:hover,.article-toc nav a[aria-current]{color:var(--blue);border-left-color:var(--blue)}
.aside-back{display:flex;align-items:center;gap:15px;font-size:11px;min-height:44px;margin-top:25px}.aside-back svg{width:15px;height:15px}
.article-prose{min-width:0;font-size:17px;line-height:1.95;color:#344b5d;overflow-wrap:break-word}
.article-section{scroll-margin-top:24px;margin-bottom:48px}
.article-section h2{font-family:var(--sans);font-size:28px;line-height:1.3;font-weight:500;letter-spacing:-.035em;color:var(--ink);margin-bottom:23px}
.article-section p+p{margin-top:21px}
.article-prose a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;color:#285aa2}
.article-prose ul{padding-left:24px;margin:23px 0}.article-prose li{padding:5px 0 5px 6px}
.article-prose .source-note{font-size:12px;line-height:1.8;padding-top:15px;color:var(--muted)}
.article-callout{padding:25px 28px;border-left:3px solid #5276c5;background:#eaf0f7;margin:30px 0}
.article-callout>strong{font-size:13px;font-weight:500;color:#305274}.article-callout p{font-size:20px;line-height:1.65;margin-top:10px;color:var(--ink)}
.article-prose code{font-size:.88em;background:#e8eef4;padding:2px 5px;border-radius:3px;color:#264d7c;overflow-wrap:anywhere}
.code-label{font-size:11px;color:#b9c9e1;background:#162e4c;padding:15px 24px;border-radius:5px 5px 0 0;margin-top:28px;border-bottom:1px solid #45607e}
.article-prose pre{overflow:auto;margin:0 0 27px;background:#162e4c;color:#e0e9f7;padding:24px;border-radius:0 0 5px 5px;font-size:13px;line-height:1.9;max-width:100%;tab-size:2}
.article-prose pre code{background:none;color:inherit;padding:0;font-size:inherit;overflow-wrap:normal}
.article-end{border-top:1px solid var(--line);padding-top:25px;display:flex;align-items:center;gap:20px;justify-content:space-between;font-size:12px}.article-end .text-link{font-size:12px}
.next-article{margin:80px auto 30px;padding:35px 0 45px;border-top:1px solid var(--line);max-width:1000px}
.next-article>a{display:flex;align-items:center;justify-content:space-between;gap:35px}.next-article h2{font-size:58px;max-width:700px}
.next-arrow{width:65px;height:65px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;flex-shrink:0;transition:background .2s,color .2s}.next-article a:hover .next-arrow{background:var(--ink);color:white}
@media(max-width:1100px){.hero h1{font-size:122px}.hero .title-second{margin-left:30px}.journal-heading{margin-inline:20px}.journal-feature-copy{padding:30px}.journal-feature h3{font-size:49px}.journal-feature-copy>p{font-size:15px}.journal-secondary{gap:50px;margin-inline:20px}.journal-security h3{font-size:38px}.story-row h3{font-size:32px}.library{padding-inline:20px}.library-heading{gap:40px}.library-heading h1{font-size:100px}.library-toolbar{gap:20px}.filter-buttons{gap:3px}.filter-buttons button{padding-inline:11px;font-size:12px}.article-search{width:220px}.library-item{gap:40px}.library-copy h2{font-size:39px}.article-page{padding-inline:20px}.article-layout{grid-template-columns:180px minmax(0,1fr);gap:40px}.reading-track{top:88px}.article-header h1{font-size:75px}.article-intro{font-size:20px}}
@media(max-width:800px){.hero h1{font-size:101px}.hero .title-second{margin-left:5px}.journal-heading{margin:0 12px 35px;gap:25px}.journal-heading .text-link{font-size:12px;gap:14px}.journal-feature{grid-template-columns:1fr}.journal-art img{width:100%}.journal-feature-copy{padding:32px;display:grid;grid-template-columns:1.1fr .9fr;gap:0 30px}.journal-feature-copy>.story-meta{grid-column:1/-1}.journal-feature h3{font-size:52px;grid-column:1;grid-row:2/4;margin:25px 0 5px;max-width:350px}.journal-feature-copy>p{grid-column:2;grid-row:2;margin-top:24px}.journal-feature-copy>.text-link{grid-column:2;justify-self:start;margin-top:14px}.journal-secondary{gap:35px;margin:40px 12px 0}.journal-security h3{font-size:35px}.journal-security>p{font-size:14px}.story-meta{font-size:11px;gap:8px 18px}.story-row{padding-right:36px}.story-row h3{font-size:29px}.story-arrow{width:37px;height:44px;right:-5px;border:none}.journal-all{font-size:12px}.library{padding:45px 12px 65px}.library-heading{gap:35px;margin-bottom:40px}.library-heading h1{font-size:90px}.library-heading>p:last-child{font-size:15px}.library-toolbar{display:block}.article-search{width:100%;margin-top:20px;max-width:370px}.filter-buttons{gap:8px}.filter-buttons button{padding-inline:13px;font-size:12px}.library-item{gap:30px;grid-template-columns:.85fr 1.15fr;padding-block:35px}.library-copy h2{font-size:34px}.library-copy>p{font-size:14px}.library-copy>.text-link{font-size:12px;margin-top:13px}.article-page{padding:30px 12px 0}.article-header h1{font-size:62px}.article-intro{font-size:19px}.article-cover{margin-bottom:40px}.article-layout{grid-template-columns:1fr;gap:32px}.article-sidebar{position:static}.article-toc{border-block:1px solid var(--line);padding-block:8px}.article-toc summary{font-size:13px}.article-toc nav{grid-template-columns:1fr 1fr;border-left:none;padding-bottom:12px}.article-toc nav a{font-size:12px}.aside-back{display:none}.article-prose{max-width:680px;margin-inline:auto;width:100%;font-size:17px}.article-section{scroll-margin-top:24px}.article-section h2{font-size:27px}.reading-track{top:80px}.next-article{margin-top:60px}.next-article h2{font-size:50px}.back-to-articles{margin-bottom:20px}}
@media(max-width:580px){.hero h1{font-size:clamp(76px,22.7vw,125px);margin-bottom:23px}.hero .title-second{margin-left:8%}.journal-heading{display:block;margin-inline:4px}.journal-heading .text-link{margin-top:20px}.journal-heading h2{font-size:48px}.journal-feature-copy{display:block;padding:27px 25px 30px}.journal-feature h3{font-size:49px;margin:23px 0 18px;max-width:280px}.journal-feature-copy>p{margin-top:0;font-size:15px}.journal-feature-copy>.text-link{margin-top:18px;font-size:13px}.journal-secondary{grid-template-columns:1fr;margin:35px 4px 0;gap:40px}.journal-security h3{font-size:39px;max-width:310px}.journal-security .story-meta{margin-top:20px}.journal-security>p{font-size:14px}.journal-security .journal-art img{aspect-ratio:1.45;object-fit:cover}.story-row{padding:25px 45px 26px 0}.story-row h3{font-size:34px}.story-arrow{width:44px;border:1px solid var(--line);right:0}.journal-all{min-height:58px}.story-meta{font-size:11px}.library{padding:35px 4px 60px}.library-heading{display:block;margin-bottom:35px}.library-heading>.section-kicker{font-size:11px;margin-bottom:23px}.library-heading h1{font-size:86px}.library-heading>p:last-child{font-size:15px;margin-top:27px;max-width:340px;padding:0}.library-toolbar{padding-block:20px}.filter-buttons{gap:8px 6px}.filter-buttons button{padding-inline:12px;font-size:12px}.article-search{max-width:none;margin-top:25px}.library-item{grid-template-columns:1fr;gap:23px;padding-block:30px}.library-copy h2{font-size:39px;line-height:1.12;margin-top:16px}.library-copy>p{font-size:14px}.library-copy>.text-link{margin-top:16px}.article-page{padding:20px 4px 0}.back-to-articles{font-size:12px;margin-bottom:23px}.article-header h1{font-size:49px;margin-top:22px;margin-bottom:23px;line-height:1.08;text-wrap:initial}.article-intro{font-size:17px;line-height:1.8}.article-byline{font-size:11px;gap:20px;margin-top:25px;padding-bottom:28px}.article-cover{margin-bottom:30px}.article-cover img{max-height:none}.article-toc nav{grid-template-columns:1fr}.article-toc nav a{font-size:12px;min-height:44px;padding:9px 13px}.article-prose{font-size:16px;line-height:1.9}.article-section{margin-bottom:35px}.article-section h2{font-size:25px;margin-bottom:20px}.article-section p+p{margin-top:20px}.article-prose .source-note{font-size:12px}.article-callout{padding:20px;margin-block:25px}.article-callout p{font-size:18px}.article-end{display:block;font-size:12px}.article-end>.text-link{display:flex;margin-top:8px;max-width:300px}.article-prose pre{padding:18px;font-size:12px}.code-label{padding:13px 18px}.next-article{margin-top:45px;padding-top:28px}.next-article h2{font-size:40px}.next-article>a{gap:22px}.next-arrow{width:49px;height:49px}.reading-track{top:78px}}
@media(max-width:370px){.hero h1{font-size:76px}.hero .title-second{margin-left:3%}.journal-heading h2{font-size:43px}.journal-feature-copy{padding-inline:21px}.journal-feature h3{font-size:45px}.story-row h3{font-size:30px}.story-meta{font-size:10px}.library-heading h1{font-size:75px}.library-copy h2{font-size:35px}.article-header h1{font-size:43px}.article-intro{font-size:16px}.filter-buttons{gap:6px}.filter-buttons button{font-size:11px;padding-inline:10px}.next-article h2{font-size:35px}.article-byline{font-size:10px;gap:14px}}
@media(prefers-reduced-motion:reduce){.journal-art:hover img,.library-art:hover img{transform:none}}

.cover-api{background:#e9e5f1}.cover-security{background:#e2eaf0}.cover-ai{background:#e1ebe5}.cover-performance{background:#233f89}
