/* Blog-only editorial layout. Uses the marketing light/dark theme tokens. */
.journal-shell {
    width:min(1152px,100%);
    margin-inline:auto;
    padding-inline:24px;
}
.journal-intro {
    padding:76px 0 48px;
    border-bottom:1px solid var(--color-border);
    margin-bottom:36px;
}
.journal-kicker {
    font-family:'Geist Mono',monospace;
    font-size:11px;
    font-weight:500;
    text-transform:uppercase;
    letter-spacing:.13em;
    color:var(--color-accent);
    line-height:1.6;
}
.journal-intro h1 {
    font-size:clamp(40px,6.2vw,76px);
    line-height:1.04;
    letter-spacing:-.055em;
    font-weight:550;
    max-width:840px;
    margin:22px 0 26px;
    text-wrap:balance;
}
.journal-intro-bottom {
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:30px;
}
.journal-intro-bottom p {
    max-width:580px;
    font-size:17px;
    line-height:1.65;
    color:var(--color-text-secondary);
}
.journal-edition {
    font-family:'Geist Mono',monospace;
    font-size:13px;
    color:var(--color-text-muted);
    white-space:nowrap;
}
.journal-toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
}
.journal-toolbar h2 {
    font-size:18px;
    font-weight:550;
    letter-spacing:-.02em;
}
.journal-search {
    display:flex;
    align-items:center;
    gap:10px;
    border-bottom:1px solid var(--color-border-strong);
    padding:9px 0;
    color:var(--color-text-secondary);
}
.journal-search input {
    background:none;
    border:0;
    outline:none;
    box-shadow:none;
    padding:0;
    font-size:14px;
    width:230px;
    color:var(--color-text-primary);
}
.journal-search:focus-within {
    outline:2px solid var(--color-focus);
    outline-offset:5px;
}
.journal-search input:focus {
    outline:none;
    box-shadow:none;
}
.journal-filters {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:23px 0 30px;
}
.journal-filters button {
    padding:8px 15px;
    border:1px solid var(--color-border);
    border-radius:100px;
    font-size:12px;
    color:var(--color-text-secondary);
    transition:background .2s,color .2s;
}
.journal-filters button:hover {
    border-color:var(--color-accent);
}
.journal-filters button[aria-pressed=true] {
    background:var(--color-text-primary);
    color:var(--color-bg);
    border-color:var(--color-text-primary);
}
.journal-result-count {
    font-size:12px;
    color:var(--color-text-muted);
    margin-bottom:18px;
}
.journal-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:32px 24px;
    margin-top:26px;
    margin-bottom:64px;
}
.journal-card {
    position:relative;
    min-width:0;
    border:1px solid var(--color-border);
    border-radius:16px;
    overflow:hidden;
    background:var(--color-panel);
    display:flex;
    flex-direction:column;
    transition:transform .2s,box-shadow .2s;
}
.journal-card:hover {
    transform:translateY(-4px);
    box-shadow:var(--shadow-elevated);
}
.journal-card:focus-within {
    outline:2px solid var(--color-focus);
    outline-offset:4px;
}
.journal-card--featured {
    grid-column:1/-1;
    display:grid;
    grid-template-columns:1.15fr 1fr;
}
.journal-card-body {
    padding:25px;
    display:flex;
    flex-direction:column;
    flex:1;
}
.journal-card h2 {
    font-size:23px;
    font-weight:550;
    letter-spacing:-.035em;
    line-height:1.2;
    margin:12px 0;
}
.journal-card h2 a:after {
    content:'';
    position:absolute;
    inset:0;
}
.journal-card-description {
    font-size:14px;
    line-height:1.7;
    color:var(--color-text-secondary);
    margin-bottom:24px;
}
.journal-card-meta {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    font-size:11px;
    color:var(--color-text-secondary);
    margin-top:auto;
}
.journal-read {
    margin-top:22px;
    padding-top:17px;
    border-top:1px solid var(--color-border);
    display:flex;
    justify-content:space-between;
    font-size:12px;
    font-weight:550;
}
.journal-read span {
    color:var(--color-accent);
    font-size:18px;
    line-height:1;
}
.journal-card--featured .journal-card-body {
    padding:42px;
}
.journal-card--featured h2 {
    font-size:clamp(26px,3vw,38px);
    line-height:1.15;
    margin:20px 0 16px;
}
.journal-card--featured .journal-card-description {
    font-size:15px;
}
.journal-cover {
    position:relative;
    isolation:isolate;
    overflow:hidden;
    min-width:0;
    aspect-ratio:1.5;
    color:#f5ede2;
    background:#20333e;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:22px 24px;
}
.journal-cover:before {
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    background-image:radial-gradient(#fff2 .7px,transparent .7px);
    background-size:16px 16px;
    mask-image:linear-gradient(135deg,black,transparent);
}
.journal-cover--handoff {
    background:#352b43;
}
.journal-cover--knowledge {
    background:#71503c;
}
.journal-cover--routing {
    background:#243b55;
}
.journal-cover img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
    z-index:-1;
    transition:transform .5s;
}
.journal-card:hover .journal-cover img {
    transform:scale(1.035);
}
.journal-cover-brand {
    font-family:'Geist Mono',monospace;
    font-size:9px;
    letter-spacing:.17em;
    color:#f5ede2ba;
}
.journal-cover-caption {
    font-size:14px;
    letter-spacing:-.015em;
    font-weight:500;
    max-width:90%;
    line-height:1.2;
}
.journal-card--featured .journal-cover {
    aspect-ratio:auto;
    min-height:380px;
}
.journal-card--featured .journal-cover-caption {
    font-size:20px;
}
.journal-empty {
    padding:70px 24px;
    text-align:center;
    color:var(--color-text-secondary);
    border:1px dashed var(--color-border);
    border-radius:12px;
    margin-bottom:60px;
}
.journal-tool {
    margin-bottom:64px;
    border-block:1px solid var(--color-border);
    padding-block:32px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:28px;
}
.journal-tool h2 {
    font-size:27px;
    letter-spacing:-.035em;
    font-weight:550;
    margin:8px 0;
}
.journal-tool p:not(.journal-kicker) {
    font-size:14px;
    line-height:1.6;
    color:var(--color-text-secondary);
    max-width:580px;
}
.journal-tool .btn-primary {
    display:inline-flex;
    align-items:center;
    gap:20px;
    padding:14px 20px;
    white-space:nowrap;
}
.journal-article {
    padding-top:36px;
    padding-bottom:72px;
}
.journal-article-header {
    max-width:860px;
    margin:44px auto 36px;
}
.journal-article-header h1 {
    font-size:clamp(35px,5vw,60px);
    font-weight:550;
    line-height:1.08;
    letter-spacing:-.045em;
    margin-top:18px;
    text-wrap:balance;
}
.journal-article>.journal-cover {
    aspect-ratio:2.8;
    border-radius:16px;
    padding:28px 32px;
    margin-bottom:48px;
}
.journal-article>.journal-cover img {
    object-fit:contain;
}
.journal-article>.journal-cover .journal-cover-caption {
    font-size:22px;
    max-width:220px;
}
.journal-reading-layout {
    display:grid;
    grid-template-columns:220px minmax(0,720px);
    gap:64px;
    justify-content:center;
    align-items:start;
}
.journal-sidebar {
    position:sticky;
    top:100px;
    max-height:calc(100dvh - 120px);
    overflow-y:auto;
}
.journal-sidebar ol {
    list-style:none;
    margin:18px 0 28px;
    padding:0;
}
.journal-sidebar li {
    margin:0;
}
.journal-sidebar nav a {
    display:block;
    padding:9px 0 9px 14px;
    border-left:2px solid var(--color-border);
    font-size:12px;
    line-height:1.5;
    color:var(--color-text-secondary);
}
.journal-sidebar nav a:hover,.journal-sidebar nav a[aria-current=true] {
    border-color:var(--color-accent);
    color:var(--color-accent);
}
.journal-sidebar-tool {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:14px 12px;
    border:1px solid var(--color-border);
    border-radius:10px;
    font-size:12px;
    line-height:1.5;
    white-space:nowrap;
    background:var(--color-panel-muted);
}
.journal-sidebar-tool span {
    flex-shrink:0;
    color:var(--color-accent);
}
.journal-prose {
    font-size:17px;
    min-width:0;
}
.journal-reading-layout:has(.journal-sidebar[hidden]) {
    grid-template-columns:minmax(0,720px);
}
.journal-prose>p:first-child {
    font-size:20px;
    line-height:1.7;
    color:var(--color-text-primary);
}
.journal-prose h2 {
    font-size:29px;
    line-height:1.2;
    letter-spacing:-.03em;
    margin-top:2.6rem;
    scroll-margin-top:100px;
}
.journal-prose h3 {
    scroll-margin-top:100px;
}
.journal-prose blockquote {
    padding:24px 28px;
    background:var(--color-accent-soft);
    border-radius:0 12px 12px 0;
    margin:32px 0;
    font-size:19px;
}
.journal-prose p {
    margin-bottom:1.2rem;
}
.journal-prose table {
    font-size:14px;
}
.journal-progress {
    position:fixed;
    top:0;
    left:0;
    right:0;
    height:3px;
    z-index:100;
    pointer-events:none;
}
.journal-progress span {
    display:block;
    height:100%;
    background:var(--color-accent);
    transform-origin:left;
    transform:scaleX(0);
}
.journal-steps {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin:30px 0;
}
.journal-steps>div {
    border:1px solid var(--color-border);
    border-radius:12px;
    padding:18px;
    background:var(--color-panel);
}
.journal-steps span {
    font-family:'Geist Mono',monospace;
    font-size:11px;
    color:var(--color-accent);
}
.journal-steps strong {
    display:block;
    margin:8px 0;
    font-size:16px;
}
.journal-steps p {
    font-size:14px;
    margin:0;
}
.journal-shell [hidden],.journal-progress[hidden] {
    display:none!important;
}
@media(min-width:850px) {
    .journal-grid.is-filtered .journal-card--featured {
        grid-column:auto;
        display:flex;
    }
    .journal-grid.is-filtered .journal-card--featured .journal-cover {
        aspect-ratio:1.5;
        min-height:0;
    }
    .journal-grid.is-filtered .journal-card--featured .journal-card-body {
        padding:25px;
    }
    .journal-grid.is-filtered .journal-card--featured h2 {
        font-size:23px;
        margin:12px 0;
    }
    .journal-grid.is-filtered .journal-card--featured .journal-cover-caption {
        font-size:14px;
    }
}
@media(max-width:850px) {
    .journal-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .journal-card--featured .journal-card-body {
        padding:26px;
    }
    .journal-card--featured .journal-cover {
        min-height:330px;
    }
    .journal-reading-layout {
        grid-template-columns:minmax(0,720px);
        gap:30px;
    }
    .journal-sidebar {
        position:static;
        max-height:none;
    }
    .journal-sidebar ol {
        display:flex;
        flex-wrap:wrap;
        gap:5px 16px;
    }
    .journal-sidebar nav a {
        padding:5px 0;
        border-left:0;
        border-bottom:1px solid var(--color-border);
    }
    .journal-sidebar-tool {
        display:none;
    }
    .journal-article>.journal-cover {
        aspect-ratio:2.2;
    }
    .journal-article>.journal-cover .journal-cover-caption {
        font-size:16px;
        max-width:170px;
    }
}
@media(max-width:600px) {
    .journal-shell {
        padding-inline:20px;
    }
    .journal-intro {
        padding-top:44px;
        margin-bottom:24px;
    }
    .journal-intro-bottom p {
        font-size:15px;
    }
    .journal-edition {
        display:none;
    }
    .journal-toolbar {
        align-items:start;
        flex-direction:column;
    }
    .journal-search,.journal-search input {
        width:100%;
    }
    .journal-grid {
        grid-template-columns:minmax(0,1fr);
        gap:24px;
    }
    .journal-card--featured {
        display:flex;
    }
    .journal-card--featured .journal-cover {
        min-height:0;
        aspect-ratio:1.5;
    }
    .journal-card--featured h2 {
        font-size:28px;
    }
    .journal-tool {
        flex-direction:column;
        align-items:start;
        padding-block:26px;
    }
    .journal-tool h2 {
        font-size:24px;
    }
    .journal-tool .journal-kicker {
        font-size:10px;
    }
    .journal-article-header {
        margin-top:30px;
    }
    .journal-article>.journal-cover {
        aspect-ratio:1.5;
        padding:20px;
        margin-bottom:30px;
    }
    .journal-article>.journal-cover .journal-cover-caption {
        max-width:100%;
        font-size:14px;
    }
    .journal-prose {
        font-size:16px;
    }
    .journal-prose>p:first-child {
        font-size:18px;
    }
    .journal-prose h2 {
        font-size:25px;
    }
    .journal-steps {
        grid-template-columns:1fr;
    }
}
@media(prefers-reduced-motion:reduce) {
    .journal-card,.journal-cover img {
        transition:none;
    }
    .journal-card:hover,.journal-card:hover .journal-cover img {
        transform:none;
    }
}
