/* Johnny Five · Evidence Lab · page-scoped visual system (Astro public site) */
.jf-page{--jf-teal:#a6d9d4;--jf-gold:#efc487;--jf-ink:#102631}
.jf-page #main-content>.jf-hero{background:radial-gradient(ellipse at 82% 35%,#315858 0%,transparent 48%),linear-gradient(117deg,#0a1824,#17333a 62%,#101f2c);min-height:0;overflow:hidden;border-bottom:0}
.jf-page .jf-hero:before{width:530px;height:530px;right:3%;top:13%;border-color:#8ac1bb55;box-shadow:0 0 0 37px #80e5cf0a,0 0 0 74px #8ad7c609}
.jf-page .jf-hero:after{inset:0;background-image:linear-gradient(#c7e5de0a 1px,transparent 1px),linear-gradient(90deg,#c7e5de0a 1px,transparent 1px);background-size:35px 35px;mask-image:linear-gradient(90deg,transparent 32%,#000);pointer-events:none}
.jf-page .jf-hero>.jf-hero-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(285px,.82fr);gap:clamp(24px,4vw,72px);align-items:center;padding-top:145px;padding-bottom:65px;position:relative;z-index:2}
.jf-page .jf-hero-copy{min-width:0}
.jf-page .jf-hero .eyebrow{color:var(--jf-teal);letter-spacing:.19em}
.jf-page .jf-hero h1{font-size:clamp(4.2rem,7.9vw,7.45rem);letter-spacing:-.03em;line-height:.97;max-width:760px;margin:14px 0 23px}
.jf-page .jf-hero h1 em{font-weight:400;color:#c0e8dd}
.jf-page .jf-hero .crew-role{color:#f0c98f;letter-spacing:.15em}
.jf-page .jf-hero .lead{font-size:clamp(1.06rem,1.7vw,1.3rem);line-height:1.68;max-width:645px}
.jf-page .jf-hero .bh-crew-signature{display:inline-block;margin:9px 0 4px;color:#c0e8dd;border-left-color:#a3d5ce}
.jf-hero-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:29px}
.jf-page .jf-button{display:inline-flex;align-items:center;gap:11px;justify-content:center;padding:13px 19px;text-decoration:none;font:800 .72rem/1.4 var(--sans,Arial,sans-serif);text-transform:uppercase;letter-spacing:.07em;border:1px solid #aaccc6;transition:transform .2s,background .2s,color .2s}
.jf-page .jf-button:hover,.jf-page .jf-button:focus-visible{transform:translateY(-2px)}
.jf-page .jf-button--primary{background:#efc487;color:#132c35;border-color:#efc487}
.jf-page .jf-button--ghost{color:#f4e5ce;border-color:#d5ac7a96;background:#10273288}
.jf-page .jf-hero-footnote{font:800 .59rem/1.7 var(--sans,Arial,sans-serif);letter-spacing:.13em;color:#b9d6cf;margin:24px 0 0}
.jf-page .jf-hero-figure{margin:0;max-width:490px;width:100%;min-width:0;justify-self:center;transform:rotate(1.5deg)}
.jf-page .jf-hero-art{position:relative;background:#0b202c;border:1px solid #8cbbb3;border-top:5px solid #efc487;padding:10px;box-shadow:0 20px 60px #0008}
.jf-page .jf-hero-art img{display:block;width:100%;height:auto;aspect-ratio:860/730;object-fit:cover;background:#152e38}
.jf-page .jf-art-tape{position:absolute;top:-15px;left:20px;background:#f3d5a2;color:#12323a;padding:6px 11px;font:800 .6rem/1.3 var(--sans,Arial,sans-serif);letter-spacing:.1em;z-index:1;transform:rotate(-3deg);box-shadow:0 6px 12px #0004}
.jf-page .jf-art-stamp{position:absolute;right:-15px;bottom:24px;display:grid;place-items:center;width:85px;height:85px;border:3px double #ffe5bb;background:#25494be8;color:#f9deb7;border-radius:50%;transform:rotate(13deg);text-align:center;font:900 .68rem/1.2 var(--sans,Arial,sans-serif);letter-spacing:.08em;box-shadow:0 8px 20px #0007}
.jf-page .jf-hero-figure figcaption{font:italic .95rem/1.5 var(--serif,Georgia,serif);color:#e4dbc9;text-align:center;margin:14px 0 0}
.jf-status-strip{background:#e9bd7c;color:#18313a;border-top:1px solid #fce8c8;border-bottom:1px solid #ae7c46}
.jf-status-strip>.shell{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;padding-top:16px;padding-bottom:16px}
.jf-status-strip span{font:900 .69rem/1.4 var(--sans,Arial,sans-serif);letter-spacing:.16em}
.jf-status-strip b{color:#8c5333;margin-right:9px}
.jf-lab{background:#122731;color:#f7eee2;padding:81px 0 93px;position:relative;overflow:hidden}
.jf-lab:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 100% 0%,#2a586058,transparent 50%),linear-gradient(#bbd6cf0a 1px,transparent 1px),linear-gradient(90deg,#bbd6cf0a 1px,transparent 1px);background-size:auto,48px 48px,48px 48px;pointer-events:none}
.jf-lab .shell{position:relative}
.jf-lab .eyebrow{color:#b3ddd5}
.jf-lab-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(255px,.8fr);gap:55px;align-items:end;margin-bottom:37px}
.jf-lab-heading h2{font-size:clamp(2.5rem,5vw,5.15rem);letter-spacing:-.02em;line-height:1.07;margin:10px 0 0}
.jf-lab-heading h2 em{color:#e9c48a}
.jf-lab-heading>p{color:#cedad5;font-size:1.06rem;line-height:1.7;max-width:470px;margin:0 0 7px}
.jf-lab-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(300px,.84fr);gap:21px;align-items:start}
.jf-sample-file{background:#f5eddb;color:#182f35;border:1px solid #c7b494;margin-bottom:12px;transition:border-color .2s,box-shadow .2s}
.jf-sample-file[open]{border-color:#e6be83;box-shadow:0 0 0 2px #e6be8333}
.jf-sample-file>summary{list-style:none;cursor:pointer;padding:20px 23px;display:grid;gap:8px;position:relative}
.jf-sample-file>summary::-webkit-details-marker{display:none}
.jf-sample-file>summary::marker{content:""}
.jf-sample-file>summary:focus-visible{outline:3px solid #e2ac55;outline-offset:3px}
.jf-file-num{color:#995b3b;font:900 .66rem/1.3 var(--sans,Arial,sans-serif);letter-spacing:.16em}
.jf-file-title{font:500 clamp(1.33rem,2.1vw,1.85rem)/1.23 var(--serif,Georgia,serif);max-width:530px;padding-right:13px}
.jf-file-action{color:#785538;font:800 .64rem/1.4 var(--sans,Arial,sans-serif);letter-spacing:.12em;text-transform:uppercase;margin-top:6px}
.jf-sample-file[open] .jf-file-action span{display:inline-block;transform:rotate(45deg)}
.jf-file-interior{border-top:1px solid #d4bea0;padding:23px;background:#fff9ee;font-size:.95rem;line-height:1.62}
.jf-file-interior p{color:#394d47;margin:15px 0}
.jf-file-interior strong{color:#19343a}
.jf-assessment{display:inline-block;font:900 .65rem/1.4 var(--sans,Arial,sans-serif);letter-spacing:.08em;padding:7px 10px;border-left:3px solid #7b9a8c;background:#e0e9df;color:#294c4a}
.jf-assessment--unknown{background:#f6e3c6;color:#79502c;border-color:#bd8d55}
.jf-assessment--inferred{background:#e3e5d7;color:#50634d;border-color:#829a6b}
.jf-assessment--observed{background:#dcefe6;color:#236356;border-color:#57a28f}
.jf-file-interior .jf-next-check{border-top:1px solid #dbcbb7;margin-bottom:0;padding-top:15px}
.jf-lab-disclaimer{color:#c1d0cb;font-size:.79rem;line-height:1.55;margin:18px 0 0;max-width:650px}
.jf-lab-protocol{background:#203b42;border:1px solid #8ebbb56b;padding:33px 32px;color:#f7eadb;box-shadow:0 20px 45px #03151d4f}
.jf-lab-protocol .jf-protocol-kicker{font:800 .64rem var(--sans,Arial,sans-serif);letter-spacing:.18em;color:#e4bd85}
.jf-protocol-emblem{display:inline-flex;align-items:center;gap:15px;color:#98c7bf;border:1px solid #89b5ad87;background:#152d33;padding:10px 18px;font-size:1.5rem;margin:12px 0 13px}
.jf-protocol-emblem span{font:700 2.1rem/1 var(--serif,Georgia,serif);color:#f4d3a2}
.jf-lab-protocol h3{font-size:clamp(1.8rem,3vw,2.55rem);line-height:1.15;margin:10px 0 15px}
.jf-lab-protocol p:not(.jf-protocol-kicker):not(.jf-protocol-quote){color:#d3dfd9;line-height:1.7}
.jf-lab-protocol ol{list-style:none;counter-reset:steps;padding:0;margin:24px 0}
.jf-lab-protocol li{counter-increment:steps;position:relative;padding:12px 0 13px 42px;border-top:1px solid #d9f3e32a}
.jf-lab-protocol li:before{content:"0" counter(steps);position:absolute;left:0;top:13px;color:#e8bf82;font:900 .73rem var(--sans,Arial,sans-serif)}
.jf-lab-protocol li strong{font-size:.91rem;color:#fff4e3}
.jf-lab-protocol li span{display:block;color:#bdceca;font-size:.85rem;line-height:1.55;margin-top:3px}
.jf-lab-protocol a{display:inline-block;color:#efc487;font-size:.84rem;text-underline-offset:4px;line-height:1.6}
.jf-lab-protocol .jf-protocol-quote{font:italic 1.35rem/1.35 var(--serif,Georgia,serif);color:#b6e0d8;margin:29px 0 0;padding-top:19px;border-top:1px solid #d3ede049}
.jf-page .crew-content{scroll-margin-top:20px}
@media(max-width:1020px){.jf-page .jf-hero>.jf-hero-grid{grid-template-columns:minmax(0,1fr) minmax(260px,.75fr);gap:24px}.jf-page .jf-hero h1{font-size:clamp(3.5rem,7vw,5.7rem)}.jf-lab-grid{grid-template-columns:minmax(0,1fr) minmax(280px,.82fr)}.jf-lab-heading{gap:28px}}
@media(max-width:760px){.jf-page .jf-hero>.jf-hero-grid{display:grid;grid-template-columns:1fr;gap:34px;padding-top:124px;padding-bottom:45px}.jf-page .jf-hero h1{font-size:clamp(3.5rem,12vw,5.4rem);margin:10px 0 18px}.jf-page .jf-hero .lead{max-width:94%}.jf-page .jf-hero-figure{max-width:460px;justify-self:start;transform:none}.jf-page .jf-hero-footnote{line-height:1.65}.jf-page .jf-art-stamp{width:66px;height:66px;right:-9px;bottom:12px;font-size:.56rem}.jf-status-strip>.shell{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-block:15px}.jf-lab{padding:57px 0 62px}.jf-lab-heading,.jf-lab-grid{grid-template-columns:1fr;gap:22px}.jf-lab-heading{margin-bottom:24px}.jf-lab-heading>p{max-width:650px}.jf-lab-protocol{padding:27px 22px}.jf-page .jf-hero:before{right:-175px;top:230px;width:380px;height:380px}.jf-page .jf-hero-figure figcaption{text-align:left}}
@media(max-width:410px){.jf-page .jf-hero h1{font-size:clamp(3rem,12vw,4rem)}.jf-page .jf-button{width:100%;justify-content:space-between}.jf-sample-file>summary{padding:17px}.jf-file-interior{padding:19px}.jf-page .jf-hero-figure figcaption{font-size:.83rem}.jf-page .jf-hero-footnote{font-size:.55rem}}
@media(prefers-reduced-motion:reduce){.jf-page .jf-button,.jf-sample-file{transition:none}.jf-page .jf-button:hover{transform:none}}
@media print{.jf-page .jf-hero{background:#fff!important;color:#19313a!important;border-bottom:1px solid #aaa}.jf-page .jf-hero>.jf-hero-grid{display:block!important;padding:20px 0!important}.jf-page .jf-hero-figure{display:none!important}.jf-page .jf-hero h1,.jf-page .jf-hero h1 em,.jf-page .jf-hero .lead,.jf-page .jf-hero .crew-role,.jf-page .jf-hero-footnote{color:#19313a!important}.jf-hero-actions,.jf-status-strip,.jf-lab-protocol{display:none!important}.jf-lab{background:#fff!important;color:#19313a!important;padding:20px 0!important}.jf-lab-heading{display:block!important}.jf-lab-heading h2,.jf-lab-heading h2 em,.jf-lab-heading>p{color:#19313a!important}.jf-lab-grid{display:block!important}.jf-sample-file{break-inside:avoid;background:#fff!important}.jf-sample-file>summary{color:#19313a!important}.jf-file-interior{background:#fff!important}.jf-file-interior p{color:#19313a!important}.jf-sample-file:not([open]) .jf-file-interior{display:block!important}}
