/* FastVisits journal */
.journal-hero{padding:29px 0 62px;background:linear-gradient(120deg,#f2f0f8 0,var(--paper) 62%);border-bottom:1px solid var(--line)}
.journal-hero h1{max-width:900px}.journal-hero h1 em{display:inline}
.journal-hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,.5fr);gap:80px;align-items:end}
.journal-hero-grid p,.hub-lead{font-size:18px;line-height:1.75;color:var(--muted);margin-top:26px;max-width:680px}
.hub-context{font-size:14px;color:var(--muted);margin-top:18px;max-width:680px}.hub-context a,.journal-note a{color:var(--brand);font-weight:650;text-underline-offset:4px}
.journal-count{border-left:1px solid #dcd5eb;padding:6px 0 6px 34px}.journal-count>b{display:block;font-size:68px;line-height:1;letter-spacing:-.05em;color:var(--brand)}.journal-count>span{display:block;font-size:13px;font-weight:650;margin-top:8px}.journal-count div{margin-top:18px;font-size:12px;line-height:1.9;color:var(--muted)}.journal-count strong{font:600 12px ui-monospace,monospace;color:var(--ink);margin-right:6px}
.journal-library{padding-top:54px}
.journal-tools{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-bottom:22px}
.journal-filters{display:flex;gap:8px;flex-wrap:wrap}.journal-filters button{font:inherit;font-size:13px;font-weight:650;padding:10px 15px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink2);cursor:pointer;min-height:42px}.journal-filters button span{font:600 11px ui-monospace,monospace;color:var(--muted);margin-left:6px}.journal-filters button.active{background:var(--ink);border-color:var(--ink);color:#fff}.journal-filters button.active span{color:#c9c3dc}.journal-filters button:focus-visible,.journal-search input:focus-visible{outline:3px solid #b9abff;outline-offset:2px}
.journal-search{display:flex;align-items:center;gap:12px;font-size:12px;font-weight:650;color:var(--muted)}.journal-search input{width:290px;max-width:100%;font:inherit;font-size:14px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);min-height:44px}
.journal-topics{display:flex;flex-wrap:wrap;gap:8px 22px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:26px}.journal-topics a{font-size:13px;font-weight:650;text-decoration:none;color:var(--ink2)}.journal-topics a:hover{color:var(--brand);text-decoration:underline;text-underline-offset:4px}
.result-count{font-size:12px;color:var(--muted);margin-bottom:18px}
.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.journal-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 24px 22px;min-height:290px;transition:border-color .15s,box-shadow .15s;position:relative}.journal-card:hover{border-color:#cfc5f5;box-shadow:0 16px 40px -30px rgba(50,30,130,.45)}
.journal-card[hidden]{display:none}
.card-rule{display:flex;justify-content:space-between;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand);padding-bottom:16px;border-bottom:1px solid var(--line)}.card-rule span:last-child{font-family:ui-monospace,monospace;color:var(--muted)}
.card-tags{display:flex;gap:6px;margin:16px 0 14px}.card-tags span{font-size:10px;font-weight:700;letter-spacing:.04em;padding:4px 8px;border-radius:5px;background:var(--soft);color:var(--ink2)}.card-tags span:first-child{background:var(--brand-tint);color:var(--brand)}
.journal-card h2{font-size:19px;line-height:1.32;letter-spacing:-.025em}.journal-card h2 a{text-decoration:none;color:var(--ink)}.journal-card h2 a:after{content:"";position:absolute;inset:0;border-radius:14px}.journal-card h2 a:hover{color:var(--brand)}.journal-card h2 a:focus-visible{outline:none}.journal-card:focus-within{outline:3px solid #b9abff;outline-offset:2px}
.journal-card p{font-size:13px;line-height:1.7;color:var(--muted);margin:12px 0 20px}
.card-meta{margin-top:auto;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:11px;color:var(--muted)}.card-meta span+span:before{content:"·";margin-right:14px;color:#bdb8cb}
.journal-empty{padding:40px 0;color:var(--muted)}
.journal-note{border-top:1px solid var(--line);padding:30px 0;background:#fff}.journal-note p{font-size:13px;color:var(--muted)}
.sample-date{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;border-radius:4px;background:#fff6d9;color:#7a5a00;margin-right:7px}
/* Article */
.article-hero{padding:29px 0 54px;background:linear-gradient(120deg,#f2f0f8 0,var(--paper) 62%);border-bottom:1px solid var(--line)}
.article-heading{max-width:880px}.article-heading h1{font-size:clamp(34px,4.4vw,58px);line-height:1.08}
.article-deck{font-size:19px;line-height:1.7;color:var(--muted);margin-top:24px;max-width:760px}
.article-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:28px;font-size:13px;color:var(--muted)}.article-meta a{font-weight:650;color:var(--ink);text-decoration:none}.article-meta a:hover{color:var(--brand)}.article-meta>*+*{padding-left:20px;border-left:1px solid #d9d5e4}
.article-layout{display:grid;grid-template-columns:250px minmax(0,760px);gap:76px;padding-top:56px;padding-bottom:80px;justify-content:center}
.article-aside{position:sticky;top:104px;align-self:start;display:grid;gap:18px}
.article-toc summary{font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);cursor:pointer;list-style:none;margin-bottom:12px}.article-toc summary::-webkit-details-marker{display:none}
.article-toc nav{display:grid;max-height:calc(100vh - 380px);overflow:auto}.article-toc a{font-size:12.5px;line-height:1.45;padding:8px 0 8px 14px;border-left:2px solid var(--line);color:var(--muted);text-decoration:none}.article-toc a:hover,.article-toc a.active{border-color:var(--brand);color:var(--brand)}
.worksheet-card{background:#211a37;color:#fff;border-radius:14px;padding:22px}.worksheet-card .mini-label{color:#bbb0f8}.worksheet-card h2{font-size:18px;color:#fff;margin:10px 0 8px;letter-spacing:-.02em}.worksheet-card p{font-size:12px;line-height:1.6;color:#c2bcd0}.worksheet-card a{display:flex;justify-content:space-between;margin-top:14px;padding:11px 13px;border-radius:8px;background:var(--lime);color:var(--ink);font-size:13px;font-weight:700;text-decoration:none}.worksheet-card a:hover{background:#e2fa86}
.article-takeaway{border-left:3px solid var(--brand);background:var(--brand-tint);padding:20px 24px;border-radius:0 10px 10px 0;margin-bottom:40px}.article-takeaway p{font-size:16px;line-height:1.7;color:#3b3160;margin-top:8px}
.article-prose{font-size:17px;line-height:1.82;color:var(--ink2);overflow-wrap:break-word}
.article-prose>*+*{margin-top:20px}.article-prose p{color:var(--ink2)}
.article-prose h2{font-size:clamp(25px,2.6vw,32px);line-height:1.2;margin-top:58px;scroll-margin-top:100px;color:var(--ink)}
.article-prose h3{font-size:20px;line-height:1.35;margin-top:36px;scroll-margin-top:100px;color:var(--ink)}
.article-prose a{color:var(--brand);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.article-prose a:hover{text-decoration-thickness:2px}
.article-prose ul,.article-prose ol{padding-left:24px}.article-prose li+li{margin-top:9px}.article-prose li::marker{color:var(--brand);font-weight:700}
.article-prose strong{color:var(--ink);font-weight:650}
.article-prose code{font:13.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--soft);border:1px solid var(--line);padding:2px 5px;border-radius:5px;overflow-wrap:anywhere}
.article-prose pre{background:#1b1634;color:#ece9f7;padding:20px 22px;border-radius:12px;overflow-x:auto;font-size:13px;line-height:1.7}.article-prose pre code{background:none;border:0;padding:0;color:inherit;overflow-wrap:normal;white-space:pre}
.article-prose blockquote{border-left:3px solid #cfc5f5;padding:4px 0 4px 22px;color:var(--muted)}.article-prose blockquote p{color:var(--muted)}
.article-table{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:#fff}.article-table:focus-visible{outline:3px solid #b9abff;outline-offset:2px}
.article-prose table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.55;min-width:520px}.article-prose th{background:var(--soft);text-align:left;font-weight:700;color:var(--ink);padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.article-prose td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}.article-prose tr:last-child td{border-bottom:0}.article-prose td code{white-space:nowrap}
.article-prose hr{border:0;border-top:1px solid var(--line);margin:44px 0}
.article-method{margin-top:56px;padding:24px;border:1px solid var(--line);border-radius:12px;background:#fff}.article-method h2{font-size:16px;letter-spacing:-.01em}.article-method p{font-size:13px;line-height:1.7;color:var(--muted);margin:8px 0 12px}.article-method a{font-size:13px;font-weight:650;color:var(--brand);text-underline-offset:4px}
.journal-related{border-top:1px solid var(--line);background:var(--soft)}.related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.journal-context .prose p a{color:var(--brand);font-weight:650;text-underline-offset:4px}
@media(max-width:1100px){.article-layout{grid-template-columns:220px minmax(0,1fr);gap:48px}}
@media(max-width:979px){.journal-hero-grid{grid-template-columns:1fr;gap:34px}.journal-count{border-left:0;border-top:1px solid #dcd5eb;padding:24px 0 0;display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}.journal-count div{margin-top:0}.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{grid-template-columns:1fr;gap:28px;padding-top:30px}.article-aside{position:static;grid-template-columns:1fr 1fr;align-items:start}.article-toc{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px}.article-toc summary{margin-bottom:0}.article-toc[open] summary{margin-bottom:12px}.article-toc nav{max-height:none}}
@media(max-width:759px){.journal-grid,.related-grid{grid-template-columns:1fr}.journal-card{min-height:0}.journal-tools{align-items:stretch}.journal-search{flex-direction:column;align-items:stretch;gap:7px;width:100%}.journal-search input{width:100%}.article-aside{grid-template-columns:1fr}.article-prose{font-size:16px}.article-prose h2{margin-top:46px}.article-deck{font-size:17px}.article-meta>*+*{padding-left:0;border-left:0}.journal-hero-grid p,.hub-lead{font-size:16px}}
@media(max-width:479px){.journal-filters button{padding:9px 12px}.article-takeaway{padding:18px}.article-prose pre{padding:16px;font-size:12px}.journal-card{padding:20px}}
@media print{.site-header,.site-footer,.article-aside,.journal-related,.prototype-notice{display:none}.article-layout{display:block}}

/* Grid items must shrink before table and code containers scroll. */
.article-main,.article-aside,.article-takeaway,.article-prose{min-width:0;max-width:100%}.article-table{max-width:100%}.article-prose pre{max-width:100%}.article-layout>*{min-width:0}
@media(max-width:979px){.article-layout{grid-template-columns:minmax(0,1fr)}.article-aside{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px){.article-aside{grid-template-columns:minmax(0,1fr)}}
@media(max-width:979px){.article-toc summary{display:flex;align-items:center;justify-content:space-between;min-height:24px}.article-toc summary:after{content:"+";font-size:18px;letter-spacing:0}.article-toc[open] summary:after{content:"−"}.article-toc summary:focus-visible{outline:2px solid var(--brand);outline-offset:4px}}
