
/* Styles: assets/blog.css */
/* Technology journal: editorial hierarchy, calm surfaces and geometric cover art. */
.journal-page{width:100%;min-width:0;color:var(--text);background:var(--background)}
.journal-page a{text-decoration:none}.journal-page a:hover{color:var(--accent)}
.journal-page :is(h1,h2,p){margin:0}.journal-page :is(h1,h2){text-wrap:balance;letter-spacing:-.035em}
.journal-masthead,.journal-article-heading{position:relative;overflow:hidden;background:linear-gradient(110deg,var(--surface),var(--background));padding-top:clamp(28px,5vw,64px)}
.journal-masthead>.landing-wrap,.journal-article-heading>.landing-wrap{position:relative}
.journal-atmosphere{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;fill:none;stroke:var(--accent);opacity:.07;stroke-width:1}
.journal-atmosphere g{transform-origin:75% 50%;animation:journal-atmosphere 24s ease-in-out infinite alternate}
.journal-edition{display:flex;justify-content:space-between;gap:20px;font:600 .68rem/1.5 var(--font-mono,monospace);letter-spacing:.15em;color:var(--muted-text)}
.journal-edition>span:first-child{color:var(--accent)}
.journal-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:48px;padding-block:30px 40px}
.journal-title-row h1{font-size:clamp(2.8rem,6.7vw,6.2rem);line-height:.99;font-weight:800}.journal-title-row h1 span{display:block;color:var(--accent)}
.journal-title-row>p{max-width:350px;padding-bottom:6px;color:var(--muted-text);line-height:1.85;font-size:.95rem}
.journal-topics{display:flex;gap:6px;overflow:auto;scrollbar-width:thin;padding:14px 0;border-block:1px solid var(--border)}
.journal-topics>a{flex:none;padding:8px 14px;border-radius:6px;color:var(--muted-text);font-size:.82rem;font-weight:600;white-space:nowrap;transition:background .2s,color .2s}
.journal-topics>a[aria-current],.journal-topics>a:hover{background:var(--accent);color:var(--on-accent)}
.journal-front{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);padding-block:36px 48px}
.journal-card{min-width:0}.journal-card h2{font-size:1.24rem;line-height:1.35}.journal-card h2 a{color:inherit}
.journal-cover-link{display:block;overflow:hidden;border-radius:12px;isolation:isolate}
.journal-cover{width:100%;aspect-ratio:16/9;position:relative;overflow:hidden;background:var(--surface);isolation:isolate}
.journal-cover .image-render{width:100%;height:100%;aspect-ratio:16/9}.journal-cover img{object-fit:cover}
.journal-cover-art{color:var(--accent);background:radial-gradient(ellipse at 70% 20%,color-mix(in srgb,var(--accent) 25%,#182330),#111a27 75%)}
.journal-cover-art[data-art="1"]{background:radial-gradient(ellipse at 35% 80%,color-mix(in srgb,var(--accent) 20%,#172a2b),#101b22 75%)}
.journal-cover-art svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.journal-cover-link:hover svg{transform:scale(1.035)}.journal-art-grid{stroke:#c7e0f5;opacity:.07;stroke-width:1}
.journal-art-solid{fill:currentColor;fill-opacity:.15;stroke-width:2}.journal-art-dot{fill:currentColor;stroke:none}.journal-cover-label{position:absolute;inset:auto 22px 18px;color:#d8e1ec;opacity:.6;font:.6rem/1 var(--font-mono,monospace);letter-spacing:.2em}
.journal-card-copy{padding-top:18px}.journal-category{display:block;font:700 .67rem/1.5 var(--font-sans);text-transform:uppercase;letter-spacing:.09em;color:var(--accent);margin-bottom:10px}
.journal-card-copy>p{font-size:.875rem;line-height:1.8;color:var(--muted-text);margin-top:12px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.journal-meta{display:flex;gap:15px;flex-wrap:wrap;margin-top:18px;font-size:.7rem;line-height:1.5;color:var(--muted-text);font-variant-numeric:tabular-nums}.journal-meta>span{display:flex;align-items:center;gap:15px}.journal-meta>span::before{content:'';width:3px;height:3px;border-radius:50%;background:var(--accent)}
.journal-card--lead .journal-cover-link{border-radius:8px 36px 8px 8px}.journal-card--lead h2{font-size:clamp(1.6rem,2.6vw,2.5rem);line-height:1.2}.journal-card--lead .journal-card-copy{padding:24px 12px 0 0}.journal-card--lead .journal-card-copy>p{max-width:64ch;font-size:.95rem}
@media(min-width:761px){.journal-card--lead{position:relative;display:grid;isolation:isolate;overflow:hidden;border-radius:8px 36px 8px 8px;background:#111a27}.journal-card--lead .journal-cover-link{grid-area:1/1;min-height:500px}.journal-card--lead .journal-cover{height:100%;aspect-ratio:auto}.journal-card--lead .journal-cover svg{position:absolute;top:-22%;height:100%}.journal-card--lead .journal-cover-label{inset:24px auto auto 28px}.journal-card--lead .journal-card-copy{grid-area:1/1;align-self:end;z-index:1;padding:120px 30px 30px;background:linear-gradient(transparent,#111a27e8 30%,#111a27);color:#f3f6fc}.journal-card--lead .journal-category{color:color-mix(in srgb,var(--accent) 45%,#fff)}.journal-card--lead .journal-card-copy>p,.journal-card--lead .journal-meta{color:#c4cfdd}.journal-card--lead h2{font-size:clamp(1.6rem,2.35vw,2.3rem)}.journal-card--lead h2 a:hover{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}}
.journal-front-side{min-width:0;border-inline-start:1px solid var(--border);padding-inline-start:clamp(22px,3vw,40px)}
.journal-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--border)}
.journal-section-head h2{font-size:1.55rem}.journal-section-head>span:not(.journal-overline):not(.journal-live-dot),.journal-section-head>a{font-size:.75rem;color:var(--muted-text)}
.journal-overline{font-size:.67rem;letter-spacing:.12em;line-height:1.6;font-weight:700;color:var(--muted-text)}
.journal-live-dot{width:6px;height:6px;flex:none;background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px var(--accent-soft)}
.journal-card--brief{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:20px;align-items:start;padding-bottom:25px;margin-bottom:25px;border-bottom:1px solid var(--border)}
.journal-card--brief:last-child{margin:0;border:0;padding:0}.journal-card--brief .journal-cover-link{grid-column:2;grid-row:1;margin-top:2px;border-radius:6px}.journal-card--brief .journal-cover{aspect-ratio:1}.journal-card--brief .journal-cover svg{width:178%;max-width:none;transform:translateX(-22%)}.journal-card--brief .journal-cover-label{display:none}
.journal-card--brief .journal-card-copy{grid-column:1;grid-row:1;padding:0}.journal-card--brief .journal-card-copy>p{font-size:.8rem;-webkit-line-clamp:2}.journal-card--brief h2{font-size:1.15rem}.journal-card--brief .journal-meta{gap:8px;margin-top:12px;font-size:.65rem}
.journal-divider{display:block;width:100%;height:40px;fill:none;stroke:var(--border);pointer-events:none}.journal-divider-signal{stroke:var(--accent);stroke-dasharray:4 96;animation:journal-signal 18s linear infinite;opacity:.6}
@media(min-width:761px){.journal-card--lead h2{color:#f3f6fc}}
html[data-motion="paused"] :is(.journal-atmosphere g,.journal-divider-signal){animation-play-state:paused}
.journal-feed-section{position:relative;isolation:isolate;padding-block:35px 65px}.journal-feed-section>.journal-atmosphere{opacity:.035}.journal-feed{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(28px,4vw,64px)}
.journal-feed>div{min-width:0}.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}.journal-grid .journal-card{padding-bottom:22px;border-bottom:1px solid var(--border)}
.journal-sidebar{min-width:0}.journal-sidebar-note{position:relative;padding:28px 24px 34px;background:var(--surface);border:1px solid var(--border);border-radius:4px 28px 4px 4px;overflow:hidden}
.journal-sidebar-note::after{content:'';position:absolute;inset:auto 0 0;height:4px;background:linear-gradient(90deg,var(--accent) 35%,transparent 35%)}
.journal-sidebar-note h2{font-size:1.9rem;line-height:1.16;margin-top:24px}.journal-sidebar-note p{margin-top:18px;color:var(--muted-text);font-size:.85rem;line-height:1.8}.journal-sidebar-note>a{display:flex;justify-content:space-between;gap:16px;margin-top:30px;color:var(--accent);font-size:.8rem;font-weight:600}
.journal-tag-section{padding-top:32px}.journal-tag-section h2{font-size:1rem;margin-bottom:18px}.journal-tags{display:flex;flex-wrap:wrap;gap:8px}.journal-tags a{font-size:.75rem;color:var(--muted-text);padding:6px 10px;border:1px solid var(--border);border-radius:5px;transition:color .2s,background .2s}.journal-tags a:hover,.journal-tags a[aria-current]{background:var(--accent-soft);color:var(--accent)}
.journal-filter,.journal-pagination{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:24px;font-size:.8rem;color:var(--muted-text)}.journal-filter a{color:var(--accent)}
.journal-empty{padding-block:60px}.journal-empty p,.journal-empty-note{color:var(--muted-text);line-height:1.8;padding-block:20px}
/* Article pages retain the same publication identity and a comfortable reading measure. */
.journal-article-heading{padding-bottom:44px}.journal-back{display:block;font-size:.8rem;color:var(--muted-text);margin-bottom:40px}.journal-article-heading h1{max-width:22ch;font-size:clamp(2rem,4.5vw,4.3rem);line-height:1.12}.journal-deck{max-width:65ch;line-height:1.85;color:var(--muted-text);margin-top:24px!important}
.journal-reading-layout{display:grid;grid-template-columns:220px minmax(0,760px);justify-content:space-between;gap:48px;padding-block:40px 60px}.journal-reading-aside>p{font-size:1.25rem;line-height:1.5;margin:16px 0 28px}.journal-prose{min-width:0}.journal-prose>.journal-cover{border-radius:12px;margin-bottom:36px}.journal-prose>h2{font-size:1.6rem;margin:36px 0 16px;line-height:1.35}.journal-prose>p{font-size:1rem;line-height:1.95;color:var(--muted-text);margin-bottom:20px;overflow-wrap:anywhere}.journal-more{padding-block:32px 64px}.journal-more .journal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@keyframes journal-signal{to{stroke-dashoffset:-100}}@keyframes journal-atmosphere{to{transform:translate(12px,6px) rotate(2deg)}}
@media(min-width:1500px){.journal-front{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}.journal-card--brief{grid-template-columns:minmax(0,1fr) 140px}}
@media(max-width:1000px){.journal-front{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px}.journal-front-side{padding-left:24px}.journal-card--brief{grid-template-columns:1fr}.journal-card--brief .journal-cover-link{display:none}.journal-feed{grid-template-columns:minmax(0,1fr) 220px;gap:28px}.journal-reading-layout{grid-template-columns:160px minmax(0,1fr);gap:28px}}
@media(max-width:760px){.journal-title-row{display:block;padding-block:24px}.journal-title-row>p{margin-top:22px;max-width:50ch;font-size:.85rem}.journal-edition{font-size:.59rem;gap:12px}.journal-edition>span:last-child{letter-spacing:0;text-align:right}.journal-front{grid-template-columns:1fr;padding-block:24px}.journal-front-side{border:0;padding:24px 0 0}.journal-card--brief{grid-template-columns:minmax(0,1fr) 100px}.journal-card--brief .journal-cover-link{display:block}.journal-card--brief h2{font-size:1.1rem}.journal-feed{grid-template-columns:1fr}.journal-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:24px}.journal-tag-section{padding-top:0}.journal-section-head h2{font-size:1.4rem}.journal-feed-section{padding-bottom:36px}.journal-reading-layout{display:flex;flex-direction:column-reverse;padding-block:24px;gap:30px}.journal-reading-aside{border-top:1px solid var(--border);padding-top:24px}.journal-more .journal-grid{grid-template-columns:1fr}.journal-article-heading{padding-bottom:24px}.journal-back{margin-bottom:24px}}
@media(max-width:480px){.journal-grid{grid-template-columns:1fr;gap:26px}.journal-sidebar{grid-template-columns:1fr}.journal-section-head>span:not(.journal-overline):not(.journal-live-dot){max-width:100px;text-align:right}.journal-card--lead h2{font-size:1.65rem}.journal-meta{font-size:.68rem}.journal-card--brief{gap:14px;grid-template-columns:minmax(0,1fr) 84px}.journal-card--brief .journal-card-copy>p{display:none}.journal-title-row h1{font-size:clamp(2.7rem,12.5vw,3.8rem)}.journal-topics>a{padding:8px 12px}.journal-filter{align-items:flex-start}.journal-filter>a{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.journal-atmosphere g,.journal-divider-signal{animation:none}.journal-page *{transition:none!important}}
