/* Photato additions to the existing Forensic Intelligence shared stylesheet. */
html { scroll-padding-top: 88px; }
figure { margin: 0; }
.language-label { order: 1; font-size: 13px; font-weight: 600; border: 1px solid var(--line); padding: 7px 14px; border-radius: 999px; }
.workspace-figure { margin-top: 0; }
.stage-photato { background: radial-gradient(ellipse at 68% 0, #526e9f 0, transparent 65%), #111c2c; padding: clamp(20px, 4vw, 56px); }
.capture-link { display: block; position: relative; border-radius: 10px; overflow: hidden; box-shadow: 0 20px 60px #0003; }
.capture-link img { width: 100%; height: auto; }
.capture-link:focus-visible { outline-offset: 5px; }
.enlarge-hint { position: absolute; right: 14px; bottom: 14px; border: 1px solid #ffffff40; border-radius: 999px; background: #15212dea; color: #fff; padding: 8px 14px; font-size: 13px; font-weight: 600; }
figcaption.fine { margin: 16px auto 0; text-align: center; max-width: 850px; }
.preview-note { margin-top: 42px; padding: 24px 28px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-2); font-size: 16px; }
.preview-note strong { color: var(--ink); }
.feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.feature-card { padding: clamp(26px, 3.3vw, 44px); background: #fff; border-radius: var(--radius-lg); }
.feature-mark { display: block; color: var(--blue); font: 600 14px var(--mono); margin-bottom: 28px; }
.feature-card h3 { font-size: 26px; }
.feature-card p { margin-top: 12px; color: var(--ink-2); font-size: 18px; max-width: 490px; }
.section-footnote { margin-top: 24px; max-width: 850px; }
.detail-figure { padding: clamp(18px, 3vw, 38px); background: var(--wash); border-radius: var(--radius-lg); }
.lineage { padding: 0; margin: 0; list-style: none; }
.lineage li { display: grid; grid-template-columns: 64px 1fr; gap: 28px; padding: 30px 0; border-top: 1px solid var(--line); }
.lineage-number { width: 48px; height: 48px; border-radius: 50%; background: #fff; color: var(--blue); display: grid; place-items: center; font-size: 20px; font-weight: 600; }
.lineage h3 { font-size: clamp(22px, 2.2vw, 28px); }
.lineage p { color: var(--ink-2); margin: 12px 0; max-width: 900px; font-size: 18px; }
.provenance-notes { display: grid; grid-template-columns: 1fr 1fr; gap: 44px; margin-top: 30px; padding-top: 40px; border-top: 1px solid var(--line); }
.provenance-notes h3 { font-size: 22px; }
.provenance-notes p { margin: 14px 0; color: var(--ink-2); }
.license-links { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.compare-card .chip { align-self: flex-start; margin-bottom: 24px; }
.compare-card .fine { margin-top: 24px; }
.closing { text-align: center; }
.closing img { margin: 0 auto 24px; border-radius: 22px; }
.closing .btn { margin: 28px 0 18px; }
.footer-heading { font-size: 14px; font-weight: 600; letter-spacing: 0; margin-bottom: 14px; }
.trademark-note { margin-top: 30px; max-width: 990px; font-size: 13px; }
.capture-dialog { border: 1px solid #ffffff30; border-radius: 16px; padding: 54px 12px 16px; background: #18232f; color: #fff; width: min(1450px, 96vw); max-width: 96vw; max-height: 94dvh; }
.capture-dialog::backdrop { background: #09121ddd; backdrop-filter: blur(5px); }
.capture-dialog figure { display: grid; justify-items: center; gap: 14px; }
.capture-dialog img { max-height: calc(94dvh - 125px); width: auto; max-width: 100%; object-fit: contain; }
.capture-dialog figcaption { font-size: 14px; text-align: center; }
.dialog-close { position: absolute; top: 8px; right: 12px; min-height: 36px; padding: 7px 16px; }
body.has-capture { overflow: hidden; }
@media (max-width: 1000px) and (min-width: 721px) { .lnav-inner { gap: 10px; } .lnav-links { margin-left: 0; } .lnav-links a { padding-inline: 9px; } }
@media (max-width: 720px) { html { scroll-padding-top: 115px; } .feature-grid, .provenance-notes { grid-template-columns: 1fr; } .feature-card p { font-size: 17px; } .lineage li { gap: 16px; grid-template-columns: 40px 1fr; } .lineage-number { width: 36px; height: 36px; font-size: 17px; } .lineage p { font-size: 17px; } .enlarge-hint { right: 8px; bottom: 8px; padding: 6px 10px; font-size: 11px; } .preview-note { padding: 20px; } .stage-photato { min-height: 0; } .phero .lead { max-width: 570px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
@media print { .gnav, .lnav, .btn-row, .enlarge-hint, .capture-dialog, .menu-btn { display: none; } .section { padding: 30px 0; } .capture-link { box-shadow: none; } .phero { padding-top: 20px; } }

/* Development journal: the same type, spacing and blue accents as the product site. */
.journal-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:44px; }
.journal-intro .lead { max-width:660px; }
.journal-intro > .btn { flex-shrink:0; margin-bottom:8px; }
.journal-preview { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); }
.journal-preview-entry { display:flex; flex-direction:column; gap:18px; color:var(--ink); padding:32px 26px 30px; text-decoration:none; border-bottom:1px solid var(--line); transition:background .15s; }
.journal-preview-entry:first-child { padding-left:0; }
.journal-preview-entry + .journal-preview-entry { border-left:1px solid var(--line); }
.journal-preview-entry:hover { background:#ffffff88; }
.journal-preview-entry h3 { font-size:25px; line-height:1.25; }
.journal-preview-entry p { color:var(--ink-2); line-height:1.65; }
.journal-preview-entry .textlink { margin-top:auto; padding-top:10px; }
.entry-meta { display:flex; flex-wrap:wrap; gap:8px 18px; font-size:12px; font-weight:600; letter-spacing:.035em; color:var(--ink-2); }
.entry-meta > span { color:var(--blue); }
.source-release-note { display:flex; justify-content:space-between; align-items:center; gap:32px; padding:32px 0 0; }
.source-release-note h3 { font-size:19px; }
.source-release-note p { max-width:730px; color:var(--ink-2); margin-top:8px; }
.source-release-note > a { white-space:nowrap; }
.journal-hero { padding:68px 0 62px; background:linear-gradient(180deg,#f5f8fc,#fff); }
.journal-hero-grid { display:grid; grid-template-columns:minmax(0,1fr) 310px; align-items:end; gap:70px; }
.journal-back { display:inline-block; font-size:14px; margin-bottom:40px; }
.journal-hero h1 { font-size:clamp(38px,5vw,66px); line-height:1.07; letter-spacing:-.045em; margin:16px 0 22px; }
.journal-hero .lead { max-width:670px; }
.journal-meta { margin-top:28px; font-size:13px; color:var(--ink-2); }
.journal-meta span { margin:0 10px; }
.repo-note { padding:28px; border:1px solid var(--line); border-radius:var(--radius-sm); background:#fff; }
.repo-note h2 { font-size:24px; margin:20px 0 12px; }
.repo-note p { color:var(--ink-2); font-size:15px; line-height:1.6; margin-bottom:20px; }
.repo-note small { display:block; font-size:12px; color:var(--ink-2); margin-top:14px; }
.journal-layout { display:grid; grid-template-columns:250px minmax(0,1fr); gap:70px; }
.journal-side { align-self:start; position:sticky; top:110px; }
.journal-side h2 { font-size:24px; line-height:1.2; margin:14px 0 18px; }
.journal-side > p { color:var(--ink-2); line-height:1.6; }
.journal-side > a { display:inline-block; margin:24px 0; }
.journal-controls { padding:0 0 28px; border-bottom:1px solid var(--line); }
.journal-controls > label { display:block; font-size:14px; font-weight:600; margin-bottom:10px; }
.journal-search-row { display:flex; gap:10px; }
.journal-search-row input { flex:1; min-width:0; width:100%; border:1px solid #a6b2c2; border-radius:10px; padding:13px 16px; font:inherit; background:#fff; color:var(--ink); }
.journal-search-row input:focus-visible { outline:3px solid #bfdbfe; outline-offset:2px; border-color:var(--blue); }
.journal-filter-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:15px; font-size:13px; color:var(--ink-2); }
.journal-sort select { padding:6px 8px; margin-left:5px; border:1px solid var(--line); border-radius:7px; font:inherit; color:var(--ink); background:#fff; }
.journal-entry { border-bottom:1px solid var(--line); scroll-margin-top:24px; }
.journal-entry summary { display:grid; grid-template-columns:minmax(0,1fr) 24px; gap:11px 20px; list-style:none; cursor:pointer; padding:26px 0; }
.journal-entry summary::-webkit-details-marker { display:none; }
.journal-entry summary:focus-visible { outline:3px solid #bfdbfe; outline-offset:5px; border-radius:6px; }
.journal-entry .entry-meta { grid-column:1; }
.entry-title { grid-column:1; font-size:clamp(19px,2vw,24px); font-weight:600; line-height:1.3; letter-spacing:-.018em; }
.entry-plus { grid-column:2; grid-row:1 / 3; align-self:center; font-size:28px; line-height:1; font-weight:300; color:var(--blue); }
.journal-entry[open] .entry-plus { transform:rotate(45deg); }
.journal-entry[open] .entry-title { color:var(--blue); }
.entry-body { padding:0 24px 32px 0; font-size:16px; color:var(--ink-2); line-height:1.75; overflow-wrap:anywhere; }
.entry-body p + p,.entry-body ul,.entry-body h3 { margin-top:18px; }
.entry-body h3 { font-size:19px; color:var(--ink); }
.entry-body ul { padding-left:24px; }
.entry-body code { font-size:.85em; color:var(--ink); background:var(--wash); padding:2px 4px; border-radius:4px; }
.entry-body pre { overflow:auto; white-space:pre-wrap; padding:18px; background:var(--wash); border-radius:10px; }
.entry-permalink { display:inline-block; margin-top:22px; font-size:13px; }
.diary-table { max-width:100%; overflow-x:auto; margin:20px 0; }
.diary-table table { border-collapse:collapse; font-size:13px; }
.diary-table td,.diary-table th { padding:8px 10px; text-align:left; border:1px solid var(--line); }
#diary-empty { padding:40px 0; color:var(--ink-2); }
@media(max-width:1000px) { .journal-layout { grid-template-columns:210px minmax(0,1fr); gap:36px; } .journal-hero-grid { gap:36px; grid-template-columns:minmax(0,1fr) 280px; } .journal-intro { display:block; } .journal-intro > .btn { margin-top:28px; } }
@media(max-width:720px) { .journal-hero { padding:35px 0 40px; } .journal-hero-grid,.journal-layout,.journal-preview { grid-template-columns:1fr; gap:28px; } .journal-back { margin-bottom:28px; } .journal-side { position:static; } .journal-side h2 br { display:none; } .journal-side > a { margin:16px 0; } .journal-preview { gap:0; } .journal-preview-entry,.journal-preview-entry:first-child { padding:27px 0; } .journal-preview-entry + .journal-preview-entry { border-left:0; } .source-release-note { display:block; } .source-release-note > a { display:inline-block; margin-top:20px; } .entry-body { padding-right:0; } .journal-entry { scroll-margin-top:24px; } .journal-entry summary { padding:23px 0; } .repo-note { padding:24px; } }
@media print { .journal-controls,.repo-note,.journal-back { display:none; } .journal-layout { display:block; } .journal-side { position:static; margin-bottom:30px; } .journal-entry { break-inside:avoid; } }

/* Keep the journal navigation reachable without widening a small viewport. */
@media(max-width:720px) { .lnav-links { scrollbar-width:thin; } }

/* Engineering provenance at the diary overview; source text lives in the diary. */
.journal-process { padding:0 0 28px; scroll-margin-top:24px; }
.process-note { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:32px 0; max-width:100%; color:var(--ink-2); line-height:1.7; }
.process-note h3 { color:var(--ink); font-size:clamp(24px,3vw,34px); letter-spacing:-.025em; margin:0 0 18px; }
.process-note p { max-width:950px; margin:0 0 16px; }
.process-note p:last-child { margin-bottom:0; font-size:14px; }
.process-note strong { color:var(--ink); }
.journal-process-link { display:inline-block; margin-top:22px; font-size:14px; font-weight:600; }

.process-note ol { max-width:950px; padding-left:24px; margin:0 0 22px; }
.process-note li { padding-left:7px; margin:0 0 14px; }
.entry-body ol { padding-left:24px; margin-top:18px; }
